Re-creating fullstack_hyracks_result_distribution.
git-svn-id: https://hyracks.googlecode.com/svn/branches/fullstack_hyracks_result_distribution@3260 123451ca-8445-de46-9d55-352943316053
diff --git a/algebricks/algebricks-common/pom.xml b/algebricks/algebricks-common/pom.xml
index ad2e8f7..13f879b 100644
--- a/algebricks/algebricks-common/pom.xml
+++ b/algebricks/algebricks-common/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,7 +27,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/algebricks/algebricks-compiler/pom.xml b/algebricks/algebricks-compiler/pom.xml
index 9d2a115..9527512 100644
--- a/algebricks/algebricks-compiler/pom.xml
+++ b/algebricks/algebricks-compiler/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,12 +27,12 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-rewriter</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-core</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/algebricks/algebricks-core/pom.xml b/algebricks/algebricks-core/pom.xml
index 1166842..27ce778 100644
--- a/algebricks/algebricks-core/pom.xml
+++ b/algebricks/algebricks-core/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,27 +27,27 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-rtree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-runtime</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/algebricks/algebricks-core/src/main/java/edu/uci/ics/hyracks/algebricks/core/jobgen/impl/JobGenHelper.java b/algebricks/algebricks-core/src/main/java/edu/uci/ics/hyracks/algebricks/core/jobgen/impl/JobGenHelper.java
index c18d554..530d19c 100644
--- a/algebricks/algebricks-core/src/main/java/edu/uci/ics/hyracks/algebricks/core/jobgen/impl/JobGenHelper.java
+++ b/algebricks/algebricks-core/src/main/java/edu/uci/ics/hyracks/algebricks/core/jobgen/impl/JobGenHelper.java
@@ -44,7 +44,7 @@
@SuppressWarnings("rawtypes")
public static RecordDescriptor mkRecordDescriptor(IVariableTypeEnvironment env, IOperatorSchema opSchema,
- JobGenContext context) throws AlgebricksException {
+ JobGenContext context) throws AlgebricksException {
ISerializerDeserializer[] fields = new ISerializerDeserializer[opSchema.getSize()];
ITypeTraits[] typeTraits = new ITypeTraits[opSchema.getSize()];
ISerializerDeserializerProvider sdp = context.getSerializerDeserializerProvider();
diff --git a/algebricks/algebricks-data/pom.xml b/algebricks/algebricks-data/pom.xml
index 04fc66f..9d42a5c 100644
--- a/algebricks/algebricks-data/pom.xml
+++ b/algebricks/algebricks-data/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,12 +27,12 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/algebricks/algebricks-examples/piglet-example/pom.xml b/algebricks/algebricks-examples/piglet-example/pom.xml
index 0cf1bab..d4d6c89 100644
--- a/algebricks/algebricks-examples/piglet-example/pom.xml
+++ b/algebricks/algebricks-examples/piglet-example/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-examples</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -54,7 +54,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-compiler</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
diff --git a/algebricks/algebricks-examples/pom.xml b/algebricks/algebricks-examples/pom.xml
index e538712..fc8188d 100644
--- a/algebricks/algebricks-examples/pom.xml
+++ b/algebricks/algebricks-examples/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/algebricks/algebricks-rewriter/pom.xml b/algebricks/algebricks-rewriter/pom.xml
index 9ba1603..e40f1fe 100644
--- a/algebricks/algebricks-rewriter/pom.xml
+++ b/algebricks/algebricks-rewriter/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,7 +27,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-core</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/algebricks/algebricks-runtime/pom.xml b/algebricks/algebricks-runtime/pom.xml
index 458b5ee..3ddde0f 100644
--- a/algebricks/algebricks-runtime/pom.xml
+++ b/algebricks/algebricks-runtime/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,27 +27,27 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-rtree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-data</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/algebricks/algebricks-tests/pom.xml b/algebricks/algebricks-tests/pom.xml
index a62398c..0a139fa 100644
--- a/algebricks/algebricks-tests/pom.xml
+++ b/algebricks/algebricks-tests/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
<encoding>UTF-8</encoding>
</configuration>
@@ -85,7 +85,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-compiler</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
@@ -96,17 +96,17 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/algebricks/pom.xml b/algebricks/pom.xml
index ebb8332..aa8446a 100644
--- a/algebricks/pom.xml
+++ b/algebricks/pom.xml
@@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>algebricks</name>
diff --git a/hivesterix/hivesterix-common/pom.xml b/hivesterix/hivesterix-common/pom.xml
index 33d8fb3..597de1b 100644
--- a/hivesterix/hivesterix-common/pom.xml
+++ b/hivesterix/hivesterix-common/pom.xml
@@ -1,7 +1,5 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>hivesterix-common</artifactId>
<name>hivesterix-common</name>
@@ -9,7 +7,7 @@
<parent>
<artifactId>hivesterix</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -32,21 +30,21 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-compiler</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-core</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hivesterix/hivesterix-dist/pom.xml b/hivesterix/hivesterix-dist/pom.xml
index ce61422..910d2d2 100644
--- a/hivesterix/hivesterix-dist/pom.xml
+++ b/hivesterix/hivesterix-dist/pom.xml
@@ -1,517 +1,518 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hivesterix-dist</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <name>hivesterix-dist</name>
- <dependencies>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>args4j</groupId>
- <artifactId>args4j</artifactId>
- <version>2.0.12</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.json</groupId>
- <artifactId>json</artifactId>
- <version>20090211</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-server</artifactId>
- <version>8.0.0.M1</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-servlet</artifactId>
- <version>8.0.0.M1</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-core</artifactId>
- <version>0.20.2</version>
- </dependency>
- <dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
- <version>0.9.94</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-core</artifactId>
- <version>2.0.3</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-connectionpool</artifactId>
- <version>2.0.3</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-enhancer</artifactId>
- <version>2.0.3</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-rdbms</artifactId>
- <version>2.0.3</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-dbcp</groupId>
- <artifactId>commons-dbcp</artifactId>
- <version>1.4</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-pool</groupId>
- <artifactId>commons-pool</artifactId>
- <version>1.5.4</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.1</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>javax</groupId>
- <artifactId>jdo2-api</artifactId>
- <version>2.3-ec</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.facebook</groupId>
- <artifactId>libfb303</artifactId>
- <version>0.5.0</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.thrift</groupId>
- <artifactId>libthrift</artifactId>
- <version>0.5.0</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>cli</artifactId>
- <version>1.2</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.15</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr-runtime</artifactId>
- <version>3.0.1</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-cli</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-common</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-exec</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-hwi</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-jdbc</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-metastore</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-service</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-shims</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop.hive</groupId>
- <artifactId>hive-serde</artifactId>
- <version>0.7.0</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.6.1</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-cli</groupId>
- <artifactId>commons-cli</artifactId>
- <version>1.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.6.1</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-test</artifactId>
- <version>0.20.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1.1</version>
- <type>jar</type>
- <classifier>api</classifier>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>r06</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>stringtemplate</artifactId>
- <version>3.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>10.8.1.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hbase</groupId>
- <artifactId>hbase</artifactId>
- <version>0.90.3</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>algebricks-compiler</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hivesterix-translator</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hivesterix-optimizer</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- <encoding>UTF-8</encoding>
- <fork>true</fork>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>patch</id>
- <goals>
- <goal>jar</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <classifier>patch</classifier>
- <finalName>a-hive</finalName>
- <includes>
- <include>**/org/apache/**</include>
- </includes>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>appassembler-maven-plugin</artifactId>
- <version>1.3</version>
- <executions>
- <execution>
- <configuration>
- <programs>
- <program>
- <mainClass>edu.uci.ics.asterix.hive.cli.CliDriver</mainClass>
- <name>algebricks-hivesterix-cmd</name>
- </program>
- </programs>
- <repositoryLayout>flat</repositoryLayout>
- <repositoryName>lib</repositoryName>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>assemble</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
- <executions>
- <execution>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.13</version>
- <configuration>
- <forkMode>pertest</forkMode>
- <argLine>-enableassertions -Xmx2047m -Dfile.encoding=UTF-8
- -Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
- <includes>
- <include>**/test/optimizer/*TestSuite.java</include>
- <include>**/test/optimizer/*Test.java</include>
- <include>**/test/runtimefunction/*TestSuite.java</include>
- <include>**/test/runtimefunction/*Test.java</include>
- </includes>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.5</version>
- <executions>
- <execution>
- <id>copy-scripts</id>
- <!-- here the phase you need -->
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>target/appassembler/bin</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources/scripts</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-conf</id>
- <!-- here the phase you need -->
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>target/appassembler/conf</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources/conf</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-jar</id>
- <!-- here the phase you need -->
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>target/appassembler/lib</outputDirectory>
- <resources>
- <resource>
- <directory>target</directory>
- <includes>
- <include>*patch.jar</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <version>2.5</version>
- <configuration>
- <filesets>
- <fileset>
- <directory>.</directory>
- <includes>
- <include>metastore*</include>
- <include>hadoop*</include>
- <include>edu*</include>
- <include>tmp*</include>
- <include>build*</include>
- <include>target*</include>
- <include>log*</include>
- <include>derby.log</include>
- <include>ClusterController*</include>
- </includes>
- </fileset>
- </filesets>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <repositories>
- <repository>
- <releases>
- <enabled>true</enabled>
- <updatePolicy>always</updatePolicy>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>always</updatePolicy>
- <checksumPolicy>fail</checksumPolicy>
- </snapshots>
- <id>third-party</id>
- <url>http://obelix.ics.uci.edu/nexus/content/repositories/third-party</url>
- </repository>
- <repository>
- <releases>
- <enabled>true</enabled>
- <updatePolicy>always</updatePolicy>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>always</updatePolicy>
- <checksumPolicy>fail</checksumPolicy>
- </snapshots>
- <id>hyracks-public-release</id>
- <url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-public-releases</url>
- </repository>
- </repositories>
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hivesterix-dist</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ <name>hivesterix-dist</name>
+
+ <parent>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hivesterix</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.0.12</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.json</groupId>
+ <artifactId>json</artifactId>
+ <version>20090211</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>8.0.0.M1</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>8.0.0.M1</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>jline</groupId>
+ <artifactId>jline</artifactId>
+ <version>0.9.94</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-core</artifactId>
+ <version>2.0.3</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-connectionpool</artifactId>
+ <version>2.0.3</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-enhancer</artifactId>
+ <version>2.0.3</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-rdbms</artifactId>
+ <version>2.0.3</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ <version>1.4</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-pool</groupId>
+ <artifactId>commons-pool</artifactId>
+ <version>1.5.4</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax</groupId>
+ <artifactId>jdo2-api</artifactId>
+ <version>2.3-ec</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.facebook</groupId>
+ <artifactId>libfb303</artifactId>
+ <version>0.5.0</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.thrift</groupId>
+ <artifactId>libthrift</artifactId>
+ <version>0.5.0</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>cli</artifactId>
+ <version>1.2</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.15</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr-runtime</artifactId>
+ <version>3.0.1</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-cli</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-common</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-exec</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-hwi</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-jdbc</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-metastore</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-service</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-shims</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop.hive</groupId>
+ <artifactId>hive-serde</artifactId>
+ <version>0.7.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.6.1</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.6.1</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1.1</version>
+ <type>jar</type>
+ <classifier>api</classifier>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>r06</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>stringtemplate</artifactId>
+ <version>3.2</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.8.1.2</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-core</artifactId>
+ <version>0.20.2</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hivesterix-translator</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hivesterix-optimizer</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase</artifactId>
+ <version>0.90.3</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>algebricks-compiler</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-control-cc</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-control-nc</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ <encoding>UTF-8</encoding>
+ <fork>true</fork>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>patch</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <classifier>patch</classifier>
+ <finalName>a-hive</finalName>
+ <includes>
+ <include>**/org/apache/**</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>appassembler-maven-plugin</artifactId>
+ <version>1.3</version>
+ <executions>
+ <execution>
+ <configuration>
+ <programs>
+ <program>
+ <mainClass>edu.uci.ics.asterix.hive.cli.CliDriver</mainClass>
+ <name>algebricks-hivesterix-cmd</name>
+ </program>
+ </programs>
+ <repositoryLayout>flat</repositoryLayout>
+ <repositoryName>lib</repositoryName>
+ </configuration>
+ <phase>package</phase>
+ <goals>
+ <goal>assemble</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2-beta-5</version>
+ <executions>
+ <execution>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
+ </descriptors>
+ </configuration>
+ <phase>package</phase>
+ <goals>
+ <goal>attached</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.13</version>
+ <configuration>
+ <forkMode>pertest</forkMode>
+ <argLine>-enableassertions -Xmx2047m -Dfile.encoding=UTF-8
+ -Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
+ <includes>
+ <include>**/test/optimizer/*TestSuite.java</include>
+ <include>**/test/optimizer/*Test.java</include>
+ <include>**/test/runtimefunction/*TestSuite.java</include>
+ <include>**/test/runtimefunction/*Test.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.5</version>
+ <executions>
+ <execution>
+ <id>copy-scripts</id>
+ <!-- here the phase you need -->
+ <phase>package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/appassembler/bin</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources/scripts</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-conf</id>
+ <!-- here the phase you need -->
+ <phase>package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/appassembler/conf</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources/conf</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-jar</id>
+ <!-- here the phase you need -->
+ <phase>package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/appassembler/lib</outputDirectory>
+ <resources>
+ <resource>
+ <directory>target</directory>
+ <includes>
+ <include>*patch.jar</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>2.5</version>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>.</directory>
+ <includes>
+ <include>metastore*</include>
+ <include>hadoop*</include>
+ <include>edu*</include>
+ <include>tmp*</include>
+ <include>build*</include>
+ <include>target*</include>
+ <include>log*</include>
+ <include>derby.log</include>
+ <include>ClusterController*</include>
+ </includes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <repositories>
+ <repository>
+ <releases>
+ <enabled>true</enabled>
+ <updatePolicy>always</updatePolicy>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>always</updatePolicy>
+ <checksumPolicy>fail</checksumPolicy>
+ </snapshots>
+ <id>third-party</id>
+ <url>http://obelix.ics.uci.edu/nexus/content/repositories/third-party</url>
+ </repository>
+ <repository>
+ <releases>
+ <enabled>true</enabled>
+ <updatePolicy>always</updatePolicy>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>always</updatePolicy>
+ <checksumPolicy>fail</checksumPolicy>
+ </snapshots>
+ <id>hyracks-public-release</id>
+ <url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-public-releases</url>
+ </repository>
+ </repositories>
+</project>
diff --git a/hivesterix/hivesterix-dist/src/main/resources/conf/topology-template.xml b/hivesterix/hivesterix-dist/src/main/resources/conf/topology-template.xml
new file mode 100755
index 0000000..4710706
--- /dev/null
+++ b/hivesterix/hivesterix-dist/src/main/resources/conf/topology-template.xml
@@ -0,0 +1,7 @@
+<cluster-topology>
+ <network-switch name="Global">
+ <network-switch name="local">
+ <terminal name="127.0.0.1"/>
+ </network-switch>
+ </network-switch>
+</cluster-topology>
\ No newline at end of file
diff --git a/hivesterix/hivesterix-dist/src/main/resources/scripts/startcc.sh b/hivesterix/hivesterix-dist/src/main/resources/scripts/startcc.sh
index efb79ce..484ecac 100644
--- a/hivesterix/hivesterix-dist/src/main/resources/scripts/startcc.sh
+++ b/hivesterix/hivesterix-dist/src/main/resources/scripts/startcc.sh
@@ -22,4 +22,10 @@
#Launch hyracks cc script
chmod -R 755 $HYRACKS_HOME
+if [ -f "conf/topology.xml" ]; then
+#Launch hyracks cc script with topology
+$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyrackscc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 0 -cluster-topology "conf/topology.xml" &> $CCLOGS_DIR/cc.log &
+else
+#Launch hyracks cc script without toplogy
$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyrackscc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 0 &> $CCLOGS_DIR/cc.log &
+fi
diff --git a/hivesterix/hivesterix-dist/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java b/hivesterix/hivesterix-dist/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
index 72c406f..5e2e64e 100644
--- a/hivesterix/hivesterix-dist/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
+++ b/hivesterix/hivesterix-dist/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
@@ -25,7 +25,6 @@
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.MiniMRCluster;
import edu.uci.ics.hivesterix.common.config.ConfUtil;
import edu.uci.ics.hyracks.control.cc.ClusterControllerService;
@@ -47,7 +46,6 @@
private Properties clusterProps;
private MiniDFSCluster dfsCluster;
- private MiniMRCluster mrCluster;
private JobConf conf = new JobConf();
protected FileSystem dfs;
@@ -80,10 +78,6 @@
System.setProperty("hadoop.log.dir", "logs");
dfsCluster = new MiniDFSCluster(hconf, numberOfNC, true, null);
dfs = dfsCluster.getFileSystem();
-
- mrCluster = new MiniMRCluster(2, dfs.getUri().toString(), 1);
- hconf.setVar(HiveConf.ConfVars.HADOOPJT, "localhost:" + mrCluster.getJobTrackerPort());
-
conf = new JobConf(hconf);
ConfUtil.setJobConf(conf);
diff --git a/hivesterix/hivesterix-optimizer/pom.xml b/hivesterix/hivesterix-optimizer/pom.xml
index 4e6032e..84c299f 100644
--- a/hivesterix/hivesterix-optimizer/pom.xml
+++ b/hivesterix/hivesterix-optimizer/pom.xml
@@ -1,12 +1,10 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>hivesterix</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<artifactId>hivesterix-optimizer</artifactId>
@@ -32,14 +30,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix-translator</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hivesterix/hivesterix-runtime/pom.xml b/hivesterix/hivesterix-runtime/pom.xml
index 77db0d4..9c66cf4 100644
--- a/hivesterix/hivesterix-runtime/pom.xml
+++ b/hivesterix/hivesterix-runtime/pom.xml
@@ -1,13 +1,18 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix-runtime</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hivesterix-runtime</name>
+ <parent>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hivesterix</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ </parent>
+
<dependencies>
- <dependency>
+ <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
@@ -49,11 +54,6 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-core</artifactId>
- <version>0.20.2</version>
- </dependency>
- <dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>0.9.94</version>
@@ -238,13 +238,6 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-test</artifactId>
- <version>0.20.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
@@ -283,35 +276,35 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-compiler</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix-serde</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hivesterix/hivesterix-runtime/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveMetaDataProvider.java b/hivesterix/hivesterix-runtime/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveMetaDataProvider.java
index 282bfb8..daf6a7f 100644
--- a/hivesterix/hivesterix-runtime/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveMetaDataProvider.java
+++ b/hivesterix/hivesterix-runtime/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveMetaDataProvider.java
@@ -71,13 +71,6 @@
}
@Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getResultHandleRuntime(IDataSink sink,
- int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc, boolean ordered,
- JobSpecification spec) throws AlgebricksException {
- return null;
- }
-
- @Override
public Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint> getWriteFileRuntime(IDataSink sink,
int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc) {
@@ -102,6 +95,13 @@
}
@Override
+ public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getResultHandleRuntime(IDataSink sink,
+ int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc, boolean ordered,
+ JobSpecification spec) throws AlgebricksException {
+ return null;
+ }
+
+ @Override
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getWriteResultRuntime(IDataSource<S> arg0,
IOperatorSchema arg1, List<LogicalVariable> arg2, LogicalVariable arg3, JobGenContext arg4,
JobSpecification arg5) throws AlgebricksException {
diff --git a/hivesterix/hivesterix-serde/pom.xml b/hivesterix/hivesterix-serde/pom.xml
index 0ba73bd..b5e8fe1 100644
--- a/hivesterix/hivesterix-serde/pom.xml
+++ b/hivesterix/hivesterix-serde/pom.xml
@@ -1,12 +1,10 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>hivesterix</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<artifactId>hivesterix-serde</artifactId>
@@ -46,17 +44,17 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-compiler</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-core</artifactId>
- <version>0.20.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hivesterix-common</artifactId>
+ <version>0.2.4-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
diff --git a/hivesterix/hivesterix-translator/pom.xml b/hivesterix/hivesterix-translator/pom.xml
index b99d652..2a93722 100644
--- a/hivesterix/hivesterix-translator/pom.xml
+++ b/hivesterix/hivesterix-translator/pom.xml
@@ -1,7 +1,5 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>hivesterix-translator</artifactId>
<name>hivesterix-translator</name>
@@ -9,7 +7,7 @@
<parent>
<artifactId>hivesterix</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -39,21 +37,21 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-compiler</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix-runtime</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hivesterix/pom.xml b/hivesterix/pom.xml
index a8ef4ee..00d008a 100644
--- a/hivesterix/pom.xml
+++ b/hivesterix/pom.xml
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hivesterix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>hivesterix</name>
diff --git a/hivesterix/src/main/assembly/binary-assembly.xml b/hivesterix/src/main/assembly/binary-assembly.xml
deleted file mode 100755
index de3757f..0000000
--- a/hivesterix/src/main/assembly/binary-assembly.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<assembly>
- <id>binary-assembly</id>
- <formats>
- <format>zip</format>
- <format>dir</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/appassembler/bin</directory>
- <outputDirectory>bin</outputDirectory>
- <fileMode>0755</fileMode>
- </fileSet>
- <fileSet>
- <directory>target/appassembler/lib</directory>
- <outputDirectory>lib</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>target</directory>
- <outputDirectory>lib</outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
- </fileSets>
-</assembly>
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/ExpressionConstant.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/ExpressionConstant.java
deleted file mode 100644
index 3c84566..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/ExpressionConstant.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-/**
- * some constants for expression
- *
- * @author yingyib
- *
- */
-public class ExpressionConstant {
-
- /**
- * name space for function identifier
- */
- public static String NAMESPACE = "hive";
-
- /**
- * field expression: modeled as function in Algebricks
- */
- public static String FIELDACCESS = "fieldaccess";
-
- /**
- * null string: modeled as null in Algebricks
- */
- public static String NULL = "null";
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveAlgebricksBuiltInFunctionMap.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveAlgebricksBuiltInFunctionMap.java
deleted file mode 100644
index 18380f7..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveAlgebricksBuiltInFunctionMap.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import java.util.HashMap;
-
-import org.apache.hadoop.hive.ql.exec.Description;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.AlgebricksBuiltinFunctions;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-
-public class HiveAlgebricksBuiltInFunctionMap {
-
- /**
- * hive auqa builtin function map instance
- */
- public static HiveAlgebricksBuiltInFunctionMap INSTANCE = new HiveAlgebricksBuiltInFunctionMap();
-
- /**
- * hive to Algebricks function name mapping
- */
- private HashMap<String, FunctionIdentifier> hiveToAlgebricksMap = new HashMap<String, FunctionIdentifier>();
-
- /**
- * Algebricks to hive function name mapping
- */
- private HashMap<FunctionIdentifier, String> AlgebricksToHiveMap = new HashMap<FunctionIdentifier, String>();
-
- /**
- * the bi-directional mapping between hive functions and Algebricks
- * functions
- */
- private HiveAlgebricksBuiltInFunctionMap() {
- hiveToAlgebricksMap.put("and", AlgebricksBuiltinFunctions.AND);
- hiveToAlgebricksMap.put("or", AlgebricksBuiltinFunctions.OR);
- hiveToAlgebricksMap.put("!", AlgebricksBuiltinFunctions.NOT);
- hiveToAlgebricksMap.put("not", AlgebricksBuiltinFunctions.NOT);
- hiveToAlgebricksMap.put("=", AlgebricksBuiltinFunctions.EQ);
- hiveToAlgebricksMap.put("<>", AlgebricksBuiltinFunctions.NEQ);
- hiveToAlgebricksMap.put(">", AlgebricksBuiltinFunctions.GT);
- hiveToAlgebricksMap.put("<", AlgebricksBuiltinFunctions.LT);
- hiveToAlgebricksMap.put(">=", AlgebricksBuiltinFunctions.GE);
- hiveToAlgebricksMap.put("<=", AlgebricksBuiltinFunctions.LE);
-
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.AND, "and");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.OR, "or");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.NOT, "!");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.NOT, "not");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.EQ, "=");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.NEQ, "<>");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.GT, ">");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.LT, "<");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.GE, ">=");
- AlgebricksToHiveMap.put(AlgebricksBuiltinFunctions.LE, "<=");
- }
-
- /**
- * get hive function name from Algebricks function identifier
- *
- * @param AlgebricksId
- * @return hive
- */
- public String getHiveFunctionName(FunctionIdentifier AlgebricksId) {
- return AlgebricksToHiveMap.get(AlgebricksId);
- }
-
- /**
- * get hive UDF or Generic class's corresponding built-in functions
- *
- * @param funcClass
- * @return function identifier
- */
- public FunctionIdentifier getAlgebricksFunctionId(Class<?> funcClass) {
- Description annotation = (Description) funcClass
- .getAnnotation(Description.class);
- String hiveUDFName = "";
- if (annotation == null) {
- hiveUDFName = null;
- return null;
- } else {
- hiveUDFName = annotation.name();
- return hiveToAlgebricksMap.get(hiveUDFName);
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveExpressionTypeComputer.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveExpressionTypeComputer.java
deleted file mode 100644
index afb7d39..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveExpressionTypeComputer.java
+++ /dev/null
@@ -1,200 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hadoop.hive.ql.exec.FunctionInfo;
-import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
-import org.apache.hadoop.hive.ql.plan.UDTFDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.UnnestingFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-
-public class HiveExpressionTypeComputer implements IExpressionTypeComputer {
-
- public static IExpressionTypeComputer INSTANCE = new HiveExpressionTypeComputer();
-
- @Override
- public Object getType(ILogicalExpression expr,
- IMetadataProvider<?, ?> metadataProvider,
- IVariableTypeEnvironment env) throws AlgebricksException {
- if (expr.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL) {
- /**
- * function expression
- */
- AbstractFunctionCallExpression funcExpr = (AbstractFunctionCallExpression) expr;
- IFunctionInfo funcInfo = funcExpr.getFunctionInfo();
-
- /**
- * argument expressions, types, object inspectors
- */
- List<Mutable<ILogicalExpression>> arguments = funcExpr
- .getArguments();
- List<TypeInfo> argumentTypes = new ArrayList<TypeInfo>();
-
- /**
- * get types of argument
- */
- for (Mutable<ILogicalExpression> argument : arguments) {
- TypeInfo type = (TypeInfo) getType(argument.getValue(),
- metadataProvider, env);
- argumentTypes.add(type);
- }
-
- ObjectInspector[] childrenOIs = new ObjectInspector[argumentTypes
- .size()];
-
- /**
- * get object inspector
- */
- for (int i = 0; i < argumentTypes.size(); i++) {
- childrenOIs[i] = TypeInfoUtils
- .getStandardWritableObjectInspectorFromTypeInfo(argumentTypes
- .get(i));
- }
-
- /**
- * type inference for scalar function
- */
- if (funcExpr instanceof ScalarFunctionCallExpression) {
-
- FunctionIdentifier AlgebricksId = funcInfo
- .getFunctionIdentifier();
- Object functionInfo = ((HiveFunctionInfo) funcInfo).getInfo();
- String udfName = HiveAlgebricksBuiltInFunctionMap.INSTANCE
- .getHiveFunctionName(AlgebricksId);
- GenericUDF udf;
- if (udfName != null) {
- /**
- * get corresponding function info for built-in functions
- */
- FunctionInfo fInfo = FunctionRegistry
- .getFunctionInfo(udfName);
- udf = fInfo.getGenericUDF();
- } else if (functionInfo != null) {
- /**
- * for GenericUDFBridge: we should not call get type of this
- * hive expression, because parameters may have been
- * changed!
- */
- ExprNodeGenericFuncDesc hiveExpr = (ExprNodeGenericFuncDesc) functionInfo;
- udf = hiveExpr.getGenericUDF();
- } else {
- /**
- * for other generic UDF
- */
- Class<?> udfClass;
- try {
- udfClass = Class.forName(AlgebricksId.getName());
- udf = (GenericUDF) udfClass.newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- }
- }
- /**
- * doing the actual type inference
- */
- ObjectInspector oi = null;
- try {
- oi = udf.initialize(childrenOIs);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- TypeInfo exprType = TypeInfoUtils
- .getTypeInfoFromObjectInspector(oi);
- return exprType;
-
- } else if (funcExpr instanceof AggregateFunctionCallExpression) {
- /**
- * hive aggregation info
- */
- AggregationDesc aggregateDesc = (AggregationDesc) ((HiveFunctionInfo) funcExpr
- .getFunctionInfo()).getInfo();
- /**
- * type inference for aggregation function
- */
- GenericUDAFEvaluator result = aggregateDesc
- .getGenericUDAFEvaluator();
-
- ObjectInspector returnOI = null;
- try {
- returnOI = result
- .init(aggregateDesc.getMode(), childrenOIs);
- } catch (HiveException e) {
- e.printStackTrace();
- }
- TypeInfo exprType = TypeInfoUtils
- .getTypeInfoFromObjectInspector(returnOI);
- return exprType;
- } else if (funcExpr instanceof UnnestingFunctionCallExpression) {
- /**
- * type inference for UDTF function
- */
- UDTFDesc hiveDesc = (UDTFDesc) ((HiveFunctionInfo) funcExpr
- .getFunctionInfo()).getInfo();
- GenericUDTF udtf = hiveDesc.getGenericUDTF();
- ObjectInspector returnOI = null;
- try {
- returnOI = udtf.initialize(childrenOIs);
- } catch (HiveException e) {
- e.printStackTrace();
- }
- TypeInfo exprType = TypeInfoUtils
- .getTypeInfoFromObjectInspector(returnOI);
- return exprType;
- } else {
- throw new IllegalStateException(
- "unrecognized function expression "
- + expr.getClass().getName());
- }
- } else if (expr.getExpressionTag() == LogicalExpressionTag.VARIABLE) {
- /**
- * get type for variable in the environment
- */
- VariableReferenceExpression varExpr = (VariableReferenceExpression) expr;
- LogicalVariable var = varExpr.getVariableReference();
- TypeInfo type = (TypeInfo) env.getVarType(var);
- return type;
- } else if (expr.getExpressionTag() == LogicalExpressionTag.CONSTANT) {
- /**
- * get type for constant, from its java class
- */
- ConstantExpression constExpr = (ConstantExpression) expr;
- HivesterixConstantValue value = (HivesterixConstantValue) constExpr
- .getValue();
- TypeInfo type = TypeInfoFactory
- .getPrimitiveTypeInfoFromJavaPrimitive(value.getObject()
- .getClass());
- return type;
- } else {
- throw new IllegalStateException("illegal expressions "
- + expr.getClass().getName());
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveFunctionInfo.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveFunctionInfo.java
deleted file mode 100644
index 220bd00..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveFunctionInfo.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import java.io.Serializable;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
-
-public class HiveFunctionInfo implements IFunctionInfo, Serializable {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * primary function identifier
- */
- private transient FunctionIdentifier fid;
-
- /**
- * secondary function identifier: function name
- */
- private transient Object secondaryFid;
-
- public HiveFunctionInfo(FunctionIdentifier fid, Object secondFid) {
- this.fid = fid;
- this.secondaryFid = secondFid;
- }
-
- @Override
- public FunctionIdentifier getFunctionIdentifier() {
- return fid;
- }
-
- public Object getInfo() {
- return secondaryFid;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveMergeAggregationExpressionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveMergeAggregationExpressionFactory.java
deleted file mode 100644
index 8dea691..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveMergeAggregationExpressionFactory.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IMergeAggregationExpressionFactory;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-
-/**
- * generate merge aggregation expression from an aggregation expression
- *
- * @author yingyib
- *
- */
-public class HiveMergeAggregationExpressionFactory implements
- IMergeAggregationExpressionFactory {
-
- public static IMergeAggregationExpressionFactory INSTANCE = new HiveMergeAggregationExpressionFactory();
-
- @Override
- public ILogicalExpression createMergeAggregation(ILogicalExpression expr,
- IOptimizationContext context) throws AlgebricksException {
- /**
- * type inference for scalar function
- */
- if (expr instanceof AggregateFunctionCallExpression) {
- AggregateFunctionCallExpression funcExpr = (AggregateFunctionCallExpression) expr;
- /**
- * hive aggregation info
- */
- AggregationDesc aggregator = (AggregationDesc) ((HiveFunctionInfo) funcExpr
- .getFunctionInfo()).getInfo();
- LogicalVariable inputVar = context.newVar();
- ExprNodeDesc col = new ExprNodeColumnDesc(
- TypeInfoFactory.voidTypeInfo, inputVar.toString(), null,
- false);
- ArrayList<ExprNodeDesc> parameters = new ArrayList<ExprNodeDesc>();
- parameters.add(col);
-
- GenericUDAFEvaluator.Mode mergeMode;
- if (aggregator.getMode() == GenericUDAFEvaluator.Mode.PARTIAL1)
- mergeMode = GenericUDAFEvaluator.Mode.PARTIAL2;
- else if (aggregator.getMode() == GenericUDAFEvaluator.Mode.COMPLETE)
- mergeMode = GenericUDAFEvaluator.Mode.FINAL;
- else
- mergeMode = aggregator.getMode();
- AggregationDesc mergeDesc = new AggregationDesc(
- aggregator.getGenericUDAFName(),
- aggregator.getGenericUDAFEvaluator(), parameters,
- aggregator.getDistinct(), mergeMode);
-
- String UDAFName = mergeDesc.getGenericUDAFName();
- List<Mutable<ILogicalExpression>> arguments = new ArrayList<Mutable<ILogicalExpression>>();
- arguments.add(new MutableObject<ILogicalExpression>(
- new VariableReferenceExpression(inputVar)));
-
- FunctionIdentifier funcId = new FunctionIdentifier(
- ExpressionConstant.NAMESPACE, UDAFName + "("
- + mergeDesc.getMode() + ")");
- HiveFunctionInfo funcInfo = new HiveFunctionInfo(funcId, mergeDesc);
- AggregateFunctionCallExpression aggregationExpression = new AggregateFunctionCallExpression(
- funcInfo, false, arguments);
- return aggregationExpression;
- } else {
- throw new IllegalStateException("illegal expressions "
- + expr.getClass().getName());
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveNullableTypeComputer.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveNullableTypeComputer.java
deleted file mode 100644
index 10c9b8a..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HiveNullableTypeComputer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.INullableTypeComputer;
-
-public class HiveNullableTypeComputer implements INullableTypeComputer {
-
- public static INullableTypeComputer INSTANCE = new HiveNullableTypeComputer();
-
- @Override
- public Object makeNullableType(Object type) throws AlgebricksException {
- return type;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HivePartialAggregationTypeComputer.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HivePartialAggregationTypeComputer.java
deleted file mode 100644
index 7062e26..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HivePartialAggregationTypeComputer.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.Mode;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IPartialAggregationTypeComputer;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-
-public class HivePartialAggregationTypeComputer implements
- IPartialAggregationTypeComputer {
-
- public static IPartialAggregationTypeComputer INSTANCE = new HivePartialAggregationTypeComputer();
-
- @Override
- public Object getType(ILogicalExpression expr,
- IVariableTypeEnvironment env,
- IMetadataProvider<?, ?> metadataProvider)
- throws AlgebricksException {
- if (expr.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL) {
- IExpressionTypeComputer tc = HiveExpressionTypeComputer.INSTANCE;
- /**
- * function expression
- */
- AbstractFunctionCallExpression funcExpr = (AbstractFunctionCallExpression) expr;
-
- /**
- * argument expressions, types, object inspectors
- */
- List<Mutable<ILogicalExpression>> arguments = funcExpr
- .getArguments();
- List<TypeInfo> argumentTypes = new ArrayList<TypeInfo>();
-
- /**
- * get types of argument
- */
- for (Mutable<ILogicalExpression> argument : arguments) {
- TypeInfo type = (TypeInfo) tc.getType(argument.getValue(),
- metadataProvider, env);
- argumentTypes.add(type);
- }
-
- ObjectInspector[] childrenOIs = new ObjectInspector[argumentTypes
- .size()];
-
- /**
- * get object inspector
- */
- for (int i = 0; i < argumentTypes.size(); i++) {
- childrenOIs[i] = TypeInfoUtils
- .getStandardWritableObjectInspectorFromTypeInfo(argumentTypes
- .get(i));
- }
-
- /**
- * type inference for scalar function
- */
- if (funcExpr instanceof AggregateFunctionCallExpression) {
- /**
- * hive aggregation info
- */
- AggregationDesc aggregateDesc = (AggregationDesc) ((HiveFunctionInfo) funcExpr
- .getFunctionInfo()).getInfo();
- /**
- * type inference for aggregation function
- */
- GenericUDAFEvaluator result = aggregateDesc
- .getGenericUDAFEvaluator();
-
- ObjectInspector returnOI = null;
- try {
- returnOI = result.init(
- getPartialMode(aggregateDesc.getMode()),
- childrenOIs);
- } catch (HiveException e) {
- e.printStackTrace();
- }
- TypeInfo exprType = TypeInfoUtils
- .getTypeInfoFromObjectInspector(returnOI);
- return exprType;
- } else {
- throw new IllegalStateException("illegal expressions "
- + expr.getClass().getName());
- }
- } else {
- throw new IllegalStateException("illegal expressions "
- + expr.getClass().getName());
- }
- }
-
- private Mode getPartialMode(Mode mode) {
- Mode partialMode;
- if (mode == Mode.FINAL)
- partialMode = Mode.PARTIAL2;
- else if (mode == Mode.COMPLETE)
- partialMode = Mode.PARTIAL1;
- else
- partialMode = mode;
- return partialMode;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HivesterixConstantValue.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HivesterixConstantValue.java
deleted file mode 100644
index de9cea6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/HivesterixConstantValue.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IAlgebricksConstantValue;
-
-public class HivesterixConstantValue implements IAlgebricksConstantValue {
-
- private Object object;
-
- public HivesterixConstantValue(Object object) {
- this.setObject(object);
- }
-
- @Override
- public boolean isFalse() {
- return object == Boolean.FALSE;
- }
-
- @Override
- public boolean isNull() {
- return object == null;
- }
-
- @Override
- public boolean isTrue() {
- return object == Boolean.TRUE;
- }
-
- public void setObject(Object object) {
- this.object = object;
- }
-
- public Object getObject() {
- return object;
- }
-
- @Override
- public String toString() {
- return object.toString();
- }
-
- @Override
- public boolean equals(Object o) {
- if (!(o instanceof HivesterixConstantValue)) {
- return false;
- }
- HivesterixConstantValue v2 = (HivesterixConstantValue) o;
- return object.equals(v2.getObject());
- }
-
- @Override
- public int hashCode() {
- return object.hashCode();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/Schema.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/Schema.java
deleted file mode 100644
index 2b1d191..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/expression/Schema.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package edu.uci.ics.hivesterix.logical.expression;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-
-public class Schema implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- private List<String> fieldNames;
-
- private List<TypeInfo> fieldTypes;
-
- public Schema(List<String> fieldNames, List<TypeInfo> fieldTypes) {
- this.fieldNames = fieldNames;
- this.fieldTypes = fieldTypes;
- }
-
- public ObjectInspector toObjectInspector() {
- return LazyUtils.getLazyObjectInspector(fieldNames, fieldTypes);
- }
-
- public List<String> getNames() {
- return fieldNames;
- }
-
- public List<TypeInfo> getTypes() {
- return fieldTypes;
- }
-
- public Object[] getSchema() {
- return fieldTypes.toArray();
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveAlgebricksTranslator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveAlgebricksTranslator.java
deleted file mode 100644
index 2765e44..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveAlgebricksTranslator.java
+++ /dev/null
@@ -1,849 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan;
-
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.ColumnInfo;
-import org.apache.hadoop.hive.ql.exec.ExtractOperator;
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.FilterOperator;
-import org.apache.hadoop.hive.ql.exec.GroupByOperator;
-import org.apache.hadoop.hive.ql.exec.JoinOperator;
-import org.apache.hadoop.hive.ql.exec.LateralViewJoinOperator;
-import org.apache.hadoop.hive.ql.exec.LimitOperator;
-import org.apache.hadoop.hive.ql.exec.MapJoinOperator;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator;
-import org.apache.hadoop.hive.ql.exec.SelectOperator;
-import org.apache.hadoop.hive.ql.exec.TableScanOperator;
-import org.apache.hadoop.hive.ql.exec.UDF;
-import org.apache.hadoop.hive.ql.exec.UDTFOperator;
-import org.apache.hadoop.hive.ql.exec.UnionOperator;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeFieldDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeNullDesc;
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-import org.apache.hadoop.hive.ql.plan.UDTFDesc;
-import org.apache.hadoop.hive.ql.plan.api.OperatorType;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-
-import edu.uci.ics.hivesterix.logical.expression.ExpressionConstant;
-import edu.uci.ics.hivesterix.logical.expression.HiveAlgebricksBuiltInFunctionMap;
-import edu.uci.ics.hivesterix.logical.expression.HiveFunctionInfo;
-import edu.uci.ics.hivesterix.logical.expression.HivesterixConstantValue;
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.logical.plan.visitor.ExtractVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.FilterVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.GroupByVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.JoinVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.LateralViewJoinVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.LimitVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.MapJoinVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.ProjectVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.SortVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.TableScanWriteVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.UnionVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Visitor;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalPlan;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.UnnestingFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.plan.ALogicalPlanImpl;
-import edu.uci.ics.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
-import edu.uci.ics.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter;
-
-@SuppressWarnings("rawtypes")
-public class HiveAlgebricksTranslator implements Translator {
-
- private int currentVariable = 0;
-
- private List<Mutable<ILogicalOperator>> logicalOp = new ArrayList<Mutable<ILogicalOperator>>();
-
- private boolean continueTraverse = true;
-
- private IMetadataProvider<PartitionDesc, Object> metaData;
-
- /**
- * map variable name to the logical variable
- */
- private HashMap<String, LogicalVariable> nameToLogicalVariableMap = new HashMap<String, LogicalVariable>();
-
- /**
- * map field name to LogicalVariable
- */
- private HashMap<String, LogicalVariable> fieldToLogicalVariableMap = new HashMap<String, LogicalVariable>();
-
- /**
- * map logical variable to name
- */
- private HashMap<LogicalVariable, String> logicalVariableToFieldMap = new HashMap<LogicalVariable, String>();
-
- /**
- * asterix root operators
- */
- private List<Mutable<ILogicalOperator>> rootOperators = new ArrayList<Mutable<ILogicalOperator>>();
-
- /**
- * a list of visitors
- */
- private List<Visitor> visitors = new ArrayList<Visitor>();
-
- /**
- * output writer to print things out
- */
- private static PrintWriter outputWriter = new PrintWriter(
- new OutputStreamWriter(System.out));
-
- /**
- * map a logical variable to type info
- */
- private HashMap<LogicalVariable, TypeInfo> variableToType = new HashMap<LogicalVariable, TypeInfo>();
-
- @Override
- public LogicalVariable getVariable(String fieldName, TypeInfo type) {
- LogicalVariable var = fieldToLogicalVariableMap.get(fieldName);
- if (var == null) {
- currentVariable++;
- var = new LogicalVariable(currentVariable);
- fieldToLogicalVariableMap.put(fieldName, var);
- nameToLogicalVariableMap.put(var.toString(), var);
- variableToType.put(var, type);
- logicalVariableToFieldMap.put(var, fieldName);
- }
- return var;
- }
-
- @Override
- public LogicalVariable getNewVariable(String fieldName, TypeInfo type) {
- currentVariable++;
- LogicalVariable var = new LogicalVariable(currentVariable);
- fieldToLogicalVariableMap.put(fieldName, var);
- nameToLogicalVariableMap.put(var.toString(), var);
- variableToType.put(var, type);
- logicalVariableToFieldMap.put(var, fieldName);
- return var;
- }
-
- @Override
- public void replaceVariable(LogicalVariable oldVar, LogicalVariable newVar) {
- String name = this.logicalVariableToFieldMap.get(oldVar);
- if (name != null) {
- fieldToLogicalVariableMap.put(name, newVar);
- nameToLogicalVariableMap.put(newVar.toString(), newVar);
- nameToLogicalVariableMap.put(oldVar.toString(), newVar);
- logicalVariableToFieldMap.put(newVar, name);
- }
- }
-
- @Override
- public IMetadataProvider<PartitionDesc, Object> getMetadataProvider() {
- return metaData;
- }
-
- /**
- * only get an variable, without rewriting it
- *
- * @param fieldName
- * @return
- */
- private LogicalVariable getVariableOnly(String fieldName) {
- return fieldToLogicalVariableMap.get(fieldName);
- }
-
- private void updateVariable(String fieldName, LogicalVariable variable) {
- LogicalVariable var = fieldToLogicalVariableMap.get(fieldName);
- if (var == null) {
- fieldToLogicalVariableMap.put(fieldName, variable);
- nameToLogicalVariableMap.put(fieldName, variable);
- } else if (!var.equals(variable)) {
- fieldToLogicalVariableMap.put(fieldName, variable);
- nameToLogicalVariableMap.put(fieldName, variable);
- }
- }
-
- /**
- * get a list of logical variables from the schema
- *
- * @param schema
- * @return
- */
- @Override
- public List<LogicalVariable> getVariablesFromSchema(Schema schema) {
- List<LogicalVariable> variables = new ArrayList<LogicalVariable>();
- List<String> names = schema.getNames();
-
- for (String name : names)
- variables.add(nameToLogicalVariableMap.get(name));
- return variables;
- }
-
- /**
- * get variable to typeinfo map
- *
- * @return
- */
- public HashMap<LogicalVariable, TypeInfo> getVariableContext() {
- return this.variableToType;
- }
-
- /**
- * get the number of variables s
- *
- * @return
- */
- public int getVariableCounter() {
- return currentVariable + 1;
- }
-
- /**
- * translate from hive operator tree to asterix operator tree
- *
- * @param hive
- * roots
- * @return Algebricks roots
- */
- public void translate(List<Operator> hiveRoot,
- ILogicalOperator parentOperator,
- HashMap<String, PartitionDesc> aliasToPathMap)
- throws AlgebricksException {
- /**
- * register visitors
- */
- visitors.add(new FilterVisitor());
- visitors.add(new GroupByVisitor());
- visitors.add(new JoinVisitor());
- visitors.add(new LateralViewJoinVisitor());
- visitors.add(new UnionVisitor());
- visitors.add(new LimitVisitor());
- visitors.add(new MapJoinVisitor());
- visitors.add(new ProjectVisitor());
- visitors.add(new SortVisitor());
- visitors.add(new ExtractVisitor());
- visitors.add(new TableScanWriteVisitor(aliasToPathMap));
-
- List<Mutable<ILogicalOperator>> refList = translate(hiveRoot,
- new MutableObject<ILogicalOperator>(parentOperator));
- insertReplicateOperator(refList);
- if (refList != null)
- rootOperators.addAll(refList);
- }
-
- /**
- * translate operator DAG
- *
- * @param hiveRoot
- * @param AlgebricksParentOperator
- * @return
- */
- private List<Mutable<ILogicalOperator>> translate(List<Operator> hiveRoot,
- Mutable<ILogicalOperator> AlgebricksParentOperator)
- throws AlgebricksException {
-
- for (Operator hiveOperator : hiveRoot) {
- continueTraverse = true;
- Mutable<ILogicalOperator> currentOperatorRef = null;
- if (hiveOperator.getType() == OperatorType.FILTER) {
- FilterOperator fop = (FilterOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.REDUCESINK) {
- ReduceSinkOperator fop = (ReduceSinkOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.JOIN) {
- JoinOperator fop = (JoinOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null) {
- continueTraverse = true;
- break;
- } else
- continueTraverse = false;
- }
- if (currentOperatorRef == null)
- return null;
- } else if (hiveOperator.getType() == OperatorType.LATERALVIEWJOIN) {
- LateralViewJoinOperator fop = (LateralViewJoinOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- if (currentOperatorRef == null)
- return null;
- } else if (hiveOperator.getType() == OperatorType.MAPJOIN) {
- MapJoinOperator fop = (MapJoinOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null) {
- continueTraverse = true;
- break;
- } else
- continueTraverse = false;
- }
- if (currentOperatorRef == null)
- return null;
- } else if (hiveOperator.getType() == OperatorType.SELECT) {
- SelectOperator fop = (SelectOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.EXTRACT) {
- ExtractOperator fop = (ExtractOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.GROUPBY) {
- GroupByOperator fop = (GroupByOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.TABLESCAN) {
- TableScanOperator fop = (TableScanOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.FILESINK) {
- FileSinkOperator fop = (FileSinkOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(fop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.LIMIT) {
- LimitOperator lop = (LimitOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(lop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.UDTF) {
- UDTFOperator lop = (UDTFOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(lop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null)
- break;
- }
- } else if (hiveOperator.getType() == OperatorType.UNION) {
- UnionOperator lop = (UnionOperator) hiveOperator;
- for (Visitor visitor : visitors) {
- currentOperatorRef = visitor.visit(lop,
- AlgebricksParentOperator, this);
- if (currentOperatorRef != null) {
- continueTraverse = true;
- break;
- } else
- continueTraverse = false;
- }
- } else
- ;
- if (hiveOperator.getChildOperators() != null
- && hiveOperator.getChildOperators().size() > 0
- && continueTraverse) {
- @SuppressWarnings("unchecked")
- List<Operator> children = hiveOperator.getChildOperators();
- if (currentOperatorRef == null)
- currentOperatorRef = AlgebricksParentOperator;
- translate(children, currentOperatorRef);
- }
- if (hiveOperator.getChildOperators() == null
- || hiveOperator.getChildOperators().size() == 0)
- logicalOp.add(currentOperatorRef);
- }
- return logicalOp;
- }
-
- /**
- * used in select, group by to get no-column-expression columns
- *
- * @param cols
- * @return
- */
- public ILogicalOperator getAssignOperator(Mutable<ILogicalOperator> parent,
- List<ExprNodeDesc> cols, ArrayList<LogicalVariable> variables) {
-
- ArrayList<Mutable<ILogicalExpression>> expressions = new ArrayList<Mutable<ILogicalExpression>>();
-
- /**
- * variables to be appended in the assign operator
- */
- ArrayList<LogicalVariable> appendedVariables = new ArrayList<LogicalVariable>();
-
- // one variable can only be assigned once
- for (ExprNodeDesc hiveExpr : cols) {
- rewriteExpression(hiveExpr);
-
- if (hiveExpr instanceof ExprNodeColumnDesc) {
- ExprNodeColumnDesc desc2 = (ExprNodeColumnDesc) hiveExpr;
- String fieldName = desc2.getTabAlias() + "."
- + desc2.getColumn();
-
- // System.out.println("project expr: " + fieldName);
-
- if (fieldName.indexOf("$$") < 0) {
- LogicalVariable var = getVariable(fieldName,
- hiveExpr.getTypeInfo());
- desc2.setColumn(var.toString());
- desc2.setTabAlias("");
- variables.add(var);
- } else {
- LogicalVariable var = nameToLogicalVariableMap.get(desc2
- .getColumn());
- String name = this.logicalVariableToFieldMap.get(var);
- var = this.getVariableOnly(name);
- variables.add(var);
- }
- } else {
- Mutable<ILogicalExpression> asterixExpr = translateScalarFucntion(hiveExpr);
- expressions.add(asterixExpr);
- LogicalVariable var = getVariable(hiveExpr.getExprString()
- + asterixExpr.hashCode(), hiveExpr.getTypeInfo());
- variables.add(var);
- appendedVariables.add(var);
- }
- }
-
- /**
- * create an assign operator to deal with appending
- */
- ILogicalOperator assignOp = null;
- if (appendedVariables.size() > 0) {
- assignOp = new AssignOperator(appendedVariables, expressions);
- assignOp.getInputs().add(parent);
- }
- return assignOp;
- }
-
- private ILogicalPlan plan;
-
- public ILogicalPlan genLogicalPlan() {
- plan = new ALogicalPlanImpl(rootOperators);
- return plan;
- }
-
- public void printOperators() throws AlgebricksException {
- LogicalOperatorPrettyPrintVisitor pvisitor = new LogicalOperatorPrettyPrintVisitor();
- StringBuilder buffer = new StringBuilder();
- PlanPrettyPrinter.printPlan(plan, buffer, pvisitor, 0);
- outputWriter.println(buffer);
- outputWriter.println("rewritten variables: ");
- outputWriter.flush();
- printVariables();
-
- }
-
- public static void setOutputPrinter(PrintWriter writer) {
- outputWriter = writer;
- }
-
- private void printVariables() {
- Set<Entry<String, LogicalVariable>> entries = fieldToLogicalVariableMap
- .entrySet();
-
- for (Entry<String, LogicalVariable> entry : entries) {
- outputWriter.println(entry.getKey() + " -> " + entry.getValue());
- }
- outputWriter.flush();
- }
-
- /**
- * generate the object inspector for the output of an operator
- *
- * @param operator
- * The Hive operator
- * @return an ObjectInspector object
- */
- public Schema generateInputSchema(Operator operator) {
- List<String> variableNames = new ArrayList<String>();
- List<TypeInfo> typeList = new ArrayList<TypeInfo>();
- List<ColumnInfo> columns = operator.getSchema().getSignature();
-
- for (ColumnInfo col : columns) {
- // typeList.add();
- TypeInfo type = col.getType();
- typeList.add(type);
-
- String fieldName = col.getInternalName();
- variableNames.add(fieldName);
- }
-
- return new Schema(variableNames, typeList);
- }
-
- /**
- * rewrite the names of output columns for feature expression evaluators to
- * use
- *
- * @param operator
- */
- public void rewriteOperatorOutputSchema(Operator operator) {
- List<ColumnInfo> columns = operator.getSchema().getSignature();
-
- for (ColumnInfo column : columns) {
- String columnName = column.getTabAlias() + "."
- + column.getInternalName();
- if (columnName.indexOf("$$") < 0) {
- LogicalVariable var = getVariable(columnName, column.getType());
- column.setInternalName(var.toString());
- }
- }
- }
-
- @Override
- public void rewriteOperatorOutputSchema(List<LogicalVariable> variables,
- Operator operator) {
-
- //printOperatorSchema(operator);
- List<ColumnInfo> columns = operator.getSchema().getSignature();
- if (variables.size() != columns.size()) {
- throw new IllegalStateException("output cardinality error "
- + operator.getName() + " variable size: "
- + variables.size() + " expected " + columns.size());
- }
-
- for (int i = 0; i < variables.size(); i++) {
- LogicalVariable var = variables.get(i);
- ColumnInfo column = columns.get(i);
- String fieldName = column.getTabAlias() + "."
- + column.getInternalName();
- if (fieldName.indexOf("$$") < 0) {
- updateVariable(fieldName, var);
- column.setInternalName(var.toString());
- }
- }
- //printOperatorSchema(operator);
- }
-
- /**
- * rewrite an expression and substitute variables
- *
- * @param expr
- * hive expression
- */
- public void rewriteExpression(ExprNodeDesc expr) {
- if (expr instanceof ExprNodeColumnDesc) {
- ExprNodeColumnDesc desc = (ExprNodeColumnDesc) expr;
- String fieldName = desc.getTabAlias() + "." + desc.getColumn();
- if (fieldName.indexOf("$$") < 0) {
- LogicalVariable var = getVariableOnly(fieldName);
- if (var == null) {
- fieldName = "." + desc.getColumn();
- var = getVariableOnly(fieldName);
- if (var == null) {
- fieldName = "null." + desc.getColumn();
- var = getVariableOnly(fieldName);
- if (var == null) {
- throw new IllegalStateException(fieldName
- + " is wrong!!! ");
- }
- }
- }
- String name = this.logicalVariableToFieldMap.get(var);
- var = getVariableOnly(name);
- desc.setColumn(var.toString());
- }
- } else {
- if (expr.getChildren() != null && expr.getChildren().size() > 0) {
- List<ExprNodeDesc> children = expr.getChildren();
- for (ExprNodeDesc desc : children)
- rewriteExpression(desc);
- }
- }
- }
-
- /**
- * rewrite an expression and substitute variables
- *
- * @param expr
- * hive expression
- */
- public void rewriteExpressionPartial(ExprNodeDesc expr) {
- if (expr instanceof ExprNodeColumnDesc) {
- ExprNodeColumnDesc desc = (ExprNodeColumnDesc) expr;
- String fieldName = desc.getTabAlias() + "." + desc.getColumn();
- if (fieldName.indexOf("$$") < 0) {
- LogicalVariable var = getVariableOnly(fieldName);
- desc.setColumn(var.toString());
- }
- } else {
- if (expr.getChildren() != null && expr.getChildren().size() > 0) {
- List<ExprNodeDesc> children = expr.getChildren();
- for (ExprNodeDesc desc : children)
- rewriteExpressionPartial(desc);
- }
- }
- }
-
- // private void printOperatorSchema(Operator operator) {
- // // System.out.println(operator.getName());
- // // List<ColumnInfo> columns = operator.getSchema().getSignature();
- // // for (ColumnInfo column : columns) {
- // // System.out.print(column.getTabAlias() + "." +
- // // column.getInternalName() + " ");
- // // }
- // // System.out.println();
- // }
-
- /**
- * translate scalar function expression
- *
- * @param hiveExpr
- * @return
- */
- public Mutable<ILogicalExpression> translateScalarFucntion(
- ExprNodeDesc hiveExpr) {
- ILogicalExpression AlgebricksExpr;
-
- if (hiveExpr instanceof ExprNodeGenericFuncDesc) {
- List<Mutable<ILogicalExpression>> arguments = new ArrayList<Mutable<ILogicalExpression>>();
- List<ExprNodeDesc> children = hiveExpr.getChildren();
-
- for (ExprNodeDesc child : children)
- arguments.add(translateScalarFucntion(child));
-
- ExprNodeGenericFuncDesc funcExpr = (ExprNodeGenericFuncDesc) hiveExpr;
- GenericUDF genericUdf = funcExpr.getGenericUDF();
- UDF udf = null;
- if (genericUdf instanceof GenericUDFBridge) {
- GenericUDFBridge bridge = (GenericUDFBridge) genericUdf;
- try {
- udf = bridge.getUdfClass().newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * set up the hive function
- */
- Object hiveFunction = genericUdf;
- if (udf != null)
- hiveFunction = udf;
-
- FunctionIdentifier funcId = HiveAlgebricksBuiltInFunctionMap.INSTANCE
- .getAlgebricksFunctionId(hiveFunction.getClass());
- if (funcId == null) {
- funcId = new FunctionIdentifier(ExpressionConstant.NAMESPACE,
- hiveFunction.getClass().getName());
- }
-
- Object functionInfo = null;
- if (genericUdf instanceof GenericUDFBridge) {
- functionInfo = funcExpr;
- }
-
- /**
- * generate the function call expression
- */
- ScalarFunctionCallExpression AlgebricksFuncExpr = new ScalarFunctionCallExpression(
- new HiveFunctionInfo(funcId, functionInfo), arguments);
- AlgebricksExpr = AlgebricksFuncExpr;
-
- } else if (hiveExpr instanceof ExprNodeColumnDesc) {
- ExprNodeColumnDesc column = (ExprNodeColumnDesc) hiveExpr;
- LogicalVariable var = this.getVariable(column.getColumn());
- AlgebricksExpr = new VariableReferenceExpression(var);
-
- } else if (hiveExpr instanceof ExprNodeFieldDesc) {
- FunctionIdentifier funcId;
- funcId = new FunctionIdentifier(ExpressionConstant.NAMESPACE,
- ExpressionConstant.FIELDACCESS);
-
- ScalarFunctionCallExpression AlgebricksFuncExpr = new ScalarFunctionCallExpression(
- new HiveFunctionInfo(funcId, hiveExpr));
- AlgebricksExpr = AlgebricksFuncExpr;
- } else if (hiveExpr instanceof ExprNodeConstantDesc) {
- ExprNodeConstantDesc hiveConst = (ExprNodeConstantDesc) hiveExpr;
- Object value = hiveConst.getValue();
- AlgebricksExpr = new ConstantExpression(
- new HivesterixConstantValue(value));
- } else if (hiveExpr instanceof ExprNodeNullDesc) {
- FunctionIdentifier funcId;
- funcId = new FunctionIdentifier(ExpressionConstant.NAMESPACE,
- ExpressionConstant.NULL);
-
- ScalarFunctionCallExpression AlgebricksFuncExpr = new ScalarFunctionCallExpression(
- new HiveFunctionInfo(funcId, hiveExpr));
-
- AlgebricksExpr = AlgebricksFuncExpr;
- } else {
- throw new IllegalStateException("unknown hive expression");
- }
- return new MutableObject<ILogicalExpression>(AlgebricksExpr);
- }
-
- /**
- * translate aggregation function expression
- *
- * @param aggregateDesc
- * @return
- */
- public Mutable<ILogicalExpression> translateAggregation(
- AggregationDesc aggregateDesc) {
-
- String UDAFName = aggregateDesc.getGenericUDAFName();
-
- List<Mutable<ILogicalExpression>> arguments = new ArrayList<Mutable<ILogicalExpression>>();
- List<ExprNodeDesc> children = aggregateDesc.getParameters();
-
- for (ExprNodeDesc child : children)
- arguments.add(translateScalarFucntion(child));
-
- FunctionIdentifier funcId = new FunctionIdentifier(
- ExpressionConstant.NAMESPACE, UDAFName + "("
- + aggregateDesc.getMode() + ")");
- HiveFunctionInfo funcInfo = new HiveFunctionInfo(funcId, aggregateDesc);
- AggregateFunctionCallExpression aggregationExpression = new AggregateFunctionCallExpression(
- funcInfo, false, arguments);
- return new MutableObject<ILogicalExpression>(aggregationExpression);
- }
-
- /**
- * translate aggregation function expression
- *
- * @param aggregator
- * @return
- */
- public Mutable<ILogicalExpression> translateUnnestFunction(
- UDTFDesc udtfDesc, Mutable<ILogicalExpression> argument) {
-
- String UDTFName = udtfDesc.getUDTFName();
-
- FunctionIdentifier funcId = new FunctionIdentifier(
- ExpressionConstant.NAMESPACE, UDTFName);
- UnnestingFunctionCallExpression unnestingExpression = new UnnestingFunctionCallExpression(
- new HiveFunctionInfo(funcId, udtfDesc));
- unnestingExpression.getArguments().add(argument);
- return new MutableObject<ILogicalExpression>(unnestingExpression);
- }
-
- /**
- * get typeinfo
- */
- @Override
- public TypeInfo getType(LogicalVariable var) {
- return variableToType.get(var);
- }
-
- /**
- * get variable from variable name
- */
- @Override
- public LogicalVariable getVariable(String name) {
- return nameToLogicalVariableMap.get(name);
- }
-
- @Override
- public LogicalVariable getVariableFromFieldName(String fieldName) {
- return this.getVariableOnly(fieldName);
- }
-
- /**
- * set the metadata provider
- */
- @Override
- public void setMetadataProvider(
- IMetadataProvider<PartitionDesc, Object> metadata) {
- this.metaData = metadata;
- }
-
- /**
- * insert ReplicateOperator when necessary
- */
- private void insertReplicateOperator(List<Mutable<ILogicalOperator>> roots) {
- Map<Mutable<ILogicalOperator>, List<Mutable<ILogicalOperator>>> childToParentsMap = new HashMap<Mutable<ILogicalOperator>, List<Mutable<ILogicalOperator>>>();
- buildChildToParentsMapping(roots, childToParentsMap);
- for (Entry<Mutable<ILogicalOperator>, List<Mutable<ILogicalOperator>>> entry : childToParentsMap
- .entrySet()) {
- List<Mutable<ILogicalOperator>> pList = entry.getValue();
- if (pList.size() > 1) {
- ILogicalOperator rop = new ReplicateOperator(pList.size());
- Mutable<ILogicalOperator> ropRef = new MutableObject<ILogicalOperator>(
- rop);
- Mutable<ILogicalOperator> childRef = entry.getKey();
- rop.getInputs().add(childRef);
- for (Mutable<ILogicalOperator> parentRef : pList) {
- ILogicalOperator parentOp = parentRef.getValue();
- int index = parentOp.getInputs().indexOf(childRef);
- parentOp.getInputs().set(index, ropRef);
- }
- }
- }
- }
-
- /**
- * build the mapping from child to Parents
- *
- * @param roots
- * @param childToParentsMap
- */
- private void buildChildToParentsMapping(
- List<Mutable<ILogicalOperator>> roots,
- Map<Mutable<ILogicalOperator>, List<Mutable<ILogicalOperator>>> map) {
- for (Mutable<ILogicalOperator> opRef : roots) {
- List<Mutable<ILogicalOperator>> childRefs = opRef.getValue()
- .getInputs();
- for (Mutable<ILogicalOperator> childRef : childRefs) {
- List<Mutable<ILogicalOperator>> parentList = map.get(childRef);
- if (parentList == null) {
- parentList = new ArrayList<Mutable<ILogicalOperator>>();
- map.put(childRef, parentList);
- }
- if (!parentList.contains(opRef))
- parentList.add(opRef);
- }
- buildChildToParentsMapping(childRefs, map);
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveLogicalPlanAndMetaData.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveLogicalPlanAndMetaData.java
deleted file mode 100644
index 494e796..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveLogicalPlanAndMetaData.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan;
-
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalPlan;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalPlanAndMetadata;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-
-@SuppressWarnings({ "rawtypes", "unchecked" })
-public class HiveLogicalPlanAndMetaData implements ILogicalPlanAndMetadata {
-
- IMetadataProvider metadata;
- ILogicalPlan plan;
-
- public HiveLogicalPlanAndMetaData(ILogicalPlan plan,
- IMetadataProvider metadata) {
- this.plan = plan;
- this.metadata = metadata;
- }
-
- @Override
- public IMetadataProvider getMetadataProvider() {
- return metadata;
- }
-
- @Override
- public ILogicalPlan getPlan() {
- return plan;
- }
-
- @Override
- public AlgebricksPartitionConstraint getClusterLocations() {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveOperatorAnnotations.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveOperatorAnnotations.java
deleted file mode 100644
index 0d234fb..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/HiveOperatorAnnotations.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan;
-
-public class HiveOperatorAnnotations {
-
- // hints
- public static final String LOCAL_GROUP_BY = "LOCAL_GROUP_BY";
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/ExtractVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/ExtractVisitor.java
deleted file mode 100644
index 9a84164..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/ExtractVisitor.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hadoop.hive.ql.exec.ExtractOperator;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-
-public class ExtractVisitor extends DefaultVisitor {
-
- @Override
- public Mutable<ILogicalOperator> visit(ExtractOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t) {
- Schema currentSchema = t.generateInputSchema(operator
- .getParentOperators().get(0));
- operator.setSchema(operator.getParentOperators().get(0).getSchema());
- List<LogicalVariable> latestOutputSchema = t
- .getVariablesFromSchema(currentSchema);
- t.rewriteOperatorOutputSchema(latestOutputSchema, operator);
- return null;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/FilterVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/FilterVisitor.java
deleted file mode 100644
index b276ba9..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/FilterVisitor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.FilterOperator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.FilterDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.SelectOperator;
-
-public class FilterVisitor extends DefaultVisitor {
-
- @Override
- public Mutable<ILogicalOperator> visit(FilterOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t) {
- Schema currentSchema = t.generateInputSchema(operator
- .getParentOperators().get(0));
-
- FilterDesc desc = (FilterDesc) operator.getConf();
- ExprNodeDesc predicate = desc.getPredicate();
- t.rewriteExpression(predicate);
-
- Mutable<ILogicalExpression> exprs = t.translateScalarFucntion(desc
- .getPredicate());
- ILogicalOperator currentOperator = new SelectOperator(exprs);
- currentOperator.getInputs().add(AlgebricksParentOperatorRef);
-
- // populate the schema from upstream operator
- operator.setSchema(operator.getParentOperators().get(0).getSchema());
- List<LogicalVariable> latestOutputSchema = t
- .getVariablesFromSchema(currentSchema);
- t.rewriteOperatorOutputSchema(latestOutputSchema, operator);
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/GroupByVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/GroupByVisitor.java
deleted file mode 100644
index d2180a3..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/GroupByVisitor.java
+++ /dev/null
@@ -1,291 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.exec.ColumnInfo;
-import org.apache.hadoop.hive.ql.exec.GroupByOperator;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.GroupByDesc;
-import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
-import org.apache.hadoop.hive.ql.plan.api.OperatorType;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.AggregationBuffer;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.Mode;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.plan.HiveOperatorAnnotations;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalPlan;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.OperatorAnnotations;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AggregateOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.DistinctOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.NestedTupleSourceOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.plan.ALogicalPlanImpl;
-
-@SuppressWarnings({ "rawtypes", "unchecked" })
-public class GroupByVisitor extends DefaultVisitor {
-
- private List<Mutable<ILogicalExpression>> AlgebricksAggs = new ArrayList<Mutable<ILogicalExpression>>();
- private List<IFunctionInfo> localAggs = new ArrayList<IFunctionInfo>();
- private boolean isDistinct = false;
- private boolean gbyKeyNotRedKey = false;
-
- @Override
- public Mutable<ILogicalOperator> visit(GroupByOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException {
-
- // get descriptors
- GroupByDesc desc = (GroupByDesc) operator.getConf();
- GroupByDesc.Mode mode = desc.getMode();
-
- List<ExprNodeDesc> keys = desc.getKeys();
- List<AggregationDesc> aggregators = desc.getAggregators();
-
- Operator child = operator.getChildOperators().get(0);
-
- if (child.getType() == OperatorType.REDUCESINK) {
- List<ExprNodeDesc> partKeys = ((ReduceSinkDesc) child.getConf())
- .getPartitionCols();
- if (keys.size() != partKeys.size())
- gbyKeyNotRedKey = true;
- }
-
- if (mode == GroupByDesc.Mode.PARTIAL1 || mode == GroupByDesc.Mode.HASH
- || mode == GroupByDesc.Mode.COMPLETE
- || (aggregators.size() == 0 && isDistinct == false)
- || gbyKeyNotRedKey) {
- AlgebricksAggs.clear();
- // add an assign operator if the key is not a column expression
- ArrayList<LogicalVariable> keyVariables = new ArrayList<LogicalVariable>();
- ILogicalOperator currentOperator = null;
- ILogicalOperator assignOperator = t.getAssignOperator(
- AlgebricksParentOperatorRef, keys, keyVariables);
- if (assignOperator != null) {
- currentOperator = assignOperator;
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
-
- // get key variable expression list
- List<Mutable<ILogicalExpression>> keyExprs = new ArrayList<Mutable<ILogicalExpression>>();
- for (LogicalVariable var : keyVariables) {
- keyExprs.add(t.translateScalarFucntion(new ExprNodeColumnDesc(
- TypeInfoFactory.intTypeInfo, var.toString(), "", false)));
- }
-
- if (aggregators.size() == 0) {
- List<Mutable<ILogicalExpression>> distinctExprs = new ArrayList<Mutable<ILogicalExpression>>();
- for (LogicalVariable var : keyVariables) {
- Mutable<ILogicalExpression> varExpr = new MutableObject<ILogicalExpression>(
- new VariableReferenceExpression(var));
- distinctExprs.add(varExpr);
- }
- t.rewriteOperatorOutputSchema(keyVariables, operator);
- isDistinct = true;
- ILogicalOperator lop = new DistinctOperator(distinctExprs);
- lop.getInputs().add(AlgebricksParentOperatorRef);
- return new MutableObject<ILogicalOperator>(lop);
- }
-
- // get the pair<LogicalVariable, ILogicalExpression> list
- List<Pair<LogicalVariable, Mutable<ILogicalExpression>>> keyParameters = new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>();
- keyVariables.clear();
- for (Mutable<ILogicalExpression> expr : keyExprs) {
- LogicalVariable keyVar = t.getVariable(expr.getValue()
- .toString(), TypeInfoFactory.unknownTypeInfo);
- keyParameters.add(new Pair(keyVar, expr));
- keyVariables.add(keyVar);
- }
-
- // get the parameters for the aggregator operator
- ArrayList<LogicalVariable> aggVariables = new ArrayList<LogicalVariable>();
- ArrayList<Mutable<ILogicalExpression>> aggExprs = new ArrayList<Mutable<ILogicalExpression>>();
-
- // get the type of each aggregation function
- HashMap<AggregationDesc, TypeInfo> aggToType = new HashMap<AggregationDesc, TypeInfo>();
- List<ColumnInfo> columns = operator.getSchema().getSignature();
- int offset = keys.size();
- for (int i = offset; i < columns.size(); i++) {
- aggToType.put(aggregators.get(i - offset), columns.get(i)
- .getType());
- }
-
- localAggs.clear();
- // rewrite parameter expressions for all aggregators
- for (AggregationDesc aggregator : aggregators) {
- for (ExprNodeDesc parameter : aggregator.getParameters()) {
- t.rewriteExpression(parameter);
- }
- Mutable<ILogicalExpression> aggExpr = t
- .translateAggregation(aggregator);
- AbstractFunctionCallExpression localAggExpr = (AbstractFunctionCallExpression) aggExpr
- .getValue();
- localAggs.add(localAggExpr.getFunctionInfo());
-
- AggregationDesc logicalAgg = new AggregationDesc(
- aggregator.getGenericUDAFName(),
- aggregator.getGenericUDAFEvaluator(),
- aggregator.getParameters(), aggregator.getDistinct(),
- Mode.COMPLETE);
- Mutable<ILogicalExpression> logicalAggExpr = t
- .translateAggregation(logicalAgg);
-
- AlgebricksAggs.add(logicalAggExpr);
- if (!gbyKeyNotRedKey)
- aggExprs.add(logicalAggExpr);
- else
- aggExprs.add(aggExpr);
-
- aggVariables.add(t.getVariable(aggregator.getExprString()
- + aggregator.getMode(), aggToType.get(aggregator)));
- }
-
- if (child.getType() != OperatorType.REDUCESINK)
- gbyKeyNotRedKey = false;
-
- // get the sub plan list
- AggregateOperator aggOperator = new AggregateOperator(aggVariables,
- aggExprs);
- NestedTupleSourceOperator nestedTupleSource = new NestedTupleSourceOperator(
- new MutableObject<ILogicalOperator>());
- aggOperator.getInputs().add(
- new MutableObject<ILogicalOperator>(nestedTupleSource));
-
- List<Mutable<ILogicalOperator>> subRoots = new ArrayList<Mutable<ILogicalOperator>>();
- subRoots.add(new MutableObject<ILogicalOperator>(aggOperator));
- ILogicalPlan subPlan = new ALogicalPlanImpl(subRoots);
- List<ILogicalPlan> subPlans = new ArrayList<ILogicalPlan>();
- subPlans.add(subPlan);
-
- // create the group by operator
- currentOperator = new edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator(
- keyParameters,
- new ArrayList<Pair<LogicalVariable, Mutable<ILogicalExpression>>>(),
- subPlans);
- currentOperator.getInputs().add(AlgebricksParentOperatorRef);
- nestedTupleSource.getDataSourceReference()
- .setValue(currentOperator);
-
- List<LogicalVariable> outputVariables = new ArrayList<LogicalVariable>();
- outputVariables.addAll(keyVariables);
- outputVariables.addAll(aggVariables);
- t.rewriteOperatorOutputSchema(outputVariables, operator);
-
- if (gbyKeyNotRedKey) {
- currentOperator.getAnnotations().put(
- HiveOperatorAnnotations.LOCAL_GROUP_BY, Boolean.TRUE);
- }
-
- HiveConf conf = ConfUtil.getHiveConf();
- Boolean extGby = conf.getBoolean(
- "hive.algebricks.groupby.external", false);
-
- if (extGby && isSerializable(aggregators)) {
- currentOperator.getAnnotations()
- .put(OperatorAnnotations.USE_EXTERNAL_GROUP_BY,
- Boolean.TRUE);
- }
- return new MutableObject<ILogicalOperator>(currentOperator);
- } else {
- isDistinct = false;
- // rewrite parameter expressions for all aggregators
- int i = 0;
- for (AggregationDesc aggregator : aggregators) {
- for (ExprNodeDesc parameter : aggregator.getParameters()) {
- t.rewriteExpression(parameter);
- }
- Mutable<ILogicalExpression> agg = t
- .translateAggregation(aggregator);
- AggregateFunctionCallExpression originalAgg = (AggregateFunctionCallExpression) AlgebricksAggs
- .get(i).getValue();
- originalAgg.setStepOneAggregate(localAggs.get(i));
- AggregateFunctionCallExpression currentAgg = (AggregateFunctionCallExpression) agg
- .getValue();
- if (currentAgg.getFunctionInfo() != null) {
- originalAgg.setTwoStep(true);
- originalAgg.setStepTwoAggregate(currentAgg
- .getFunctionInfo());
- }
- i++;
- }
- return null;
- }
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(ReduceSinkOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t) {
- Operator downStream = (Operator) operator.getChildOperators().get(0);
- if (!(downStream instanceof GroupByOperator)) {
- return null;
- }
-
- ReduceSinkDesc desc = (ReduceSinkDesc) operator.getConf();
- List<ExprNodeDesc> keys = desc.getKeyCols();
- List<ExprNodeDesc> values = desc.getValueCols();
-
- // insert assign for keys
- ArrayList<LogicalVariable> keyVariables = new ArrayList<LogicalVariable>();
- t.getAssignOperator(AlgebricksParentOperatorRef, keys, keyVariables);
-
- // insert assign for values
- ArrayList<LogicalVariable> valueVariables = new ArrayList<LogicalVariable>();
- t.getAssignOperator(AlgebricksParentOperatorRef, values, valueVariables);
-
- ArrayList<LogicalVariable> columns = new ArrayList<LogicalVariable>();
- columns.addAll(keyVariables);
- columns.addAll(valueVariables);
-
- t.rewriteOperatorOutputSchema(columns, operator);
- return null;
- }
-
- private boolean isSerializable(List<AggregationDesc> descs)
- throws AlgebricksException {
- try {
- for (AggregationDesc desc : descs) {
- GenericUDAFEvaluator udaf = desc.getGenericUDAFEvaluator();
- AggregationBuffer buf = udaf.getNewAggregationBuffer();
- Class<?> bufferClass = buf.getClass();
- Field[] fields = bufferClass.getDeclaredFields();
- for (Field field : fields) {
- field.setAccessible(true);
- String type = field.getType().toString();
- if (!(type.equals("int") || type.equals("long")
- || type.equals("float") || type.equals("double") || type
- .equals("boolean"))) {
- return false;
- }
- }
-
- }
- return true;
- } catch (Exception e) {
- throw new AlgebricksException(e);
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/JoinVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/JoinVisitor.java
deleted file mode 100644
index aea4be5..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/JoinVisitor.java
+++ /dev/null
@@ -1,445 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.JoinOperator;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
-import org.apache.hadoop.hive.ql.plan.JoinCondDesc;
-import org.apache.hadoop.hive.ql.plan.JoinDesc;
-import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPAnd;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPEqual;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.LeftOuterJoinOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator;
-
-@SuppressWarnings("rawtypes")
-public class JoinVisitor extends DefaultVisitor {
-
- /**
- * reduce sink operator to variables
- */
- private HashMap<Operator, List<LogicalVariable>> reduceSinkToKeyVariables = new HashMap<Operator, List<LogicalVariable>>();
-
- /**
- * reduce sink operator to variables
- */
- private HashMap<Operator, List<String>> reduceSinkToFieldNames = new HashMap<Operator, List<String>>();
-
- /**
- * reduce sink operator to variables
- */
- private HashMap<Operator, List<TypeInfo>> reduceSinkToTypes = new HashMap<Operator, List<TypeInfo>>();
-
- /**
- * map a join operator (in hive) to its parent operators (in hive)
- */
- private HashMap<Operator, List<Operator>> operatorToHiveParents = new HashMap<Operator, List<Operator>>();
-
- /**
- * map a join operator (in hive) to its parent operators (in asterix)
- */
- private HashMap<Operator, List<ILogicalOperator>> operatorToAsterixParents = new HashMap<Operator, List<ILogicalOperator>>();
-
- /**
- * the latest traversed reduce sink operator
- */
- private Operator latestReduceSink = null;
-
- /**
- * the latest generated parent for join
- */
- private ILogicalOperator latestAlgebricksOperator = null;
-
- /**
- * process a join operator
- */
- @Override
- public Mutable<ILogicalOperator> visit(JoinOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t) {
- latestAlgebricksOperator = AlgebricksParentOperator.getValue();
- translateJoinOperatorPreprocess(operator, t);
- List<Operator> parents = operatorToHiveParents.get(operator);
- if (parents.size() < operator.getParentOperators().size()) {
- return null;
- } else {
- ILogicalOperator joinOp = translateJoinOperator(operator,
- AlgebricksParentOperator, t);
- // clearStatus();
- return new MutableObject<ILogicalOperator>(joinOp);
- }
- }
-
- private void reorder(Byte[] order, List<ILogicalOperator> parents,
- List<Operator> hiveParents) {
- ILogicalOperator[] lops = new ILogicalOperator[parents.size()];
- Operator[] ops = new Operator[hiveParents.size()];
-
- for (Operator op : hiveParents) {
- ReduceSinkOperator rop = (ReduceSinkOperator) op;
- ReduceSinkDesc rdesc = rop.getConf();
- int tag = rdesc.getTag();
-
- int index = -1;
- for (int i = 0; i < order.length; i++)
- if (order[i] == tag) {
- index = i;
- break;
- }
- lops[index] = parents.get(hiveParents.indexOf(op));
- ops[index] = op;
- }
-
- parents.clear();
- hiveParents.clear();
-
- for (int i = 0; i < lops.length; i++) {
- parents.add(lops[i]);
- hiveParents.add(ops[i]);
- }
- }
-
- /**
- * translate a hive join operator to asterix join operator->assign
- * operator->project operator
- *
- * @param parentOperator
- * @param operator
- * @return
- */
- private ILogicalOperator translateJoinOperator(Operator operator,
- Mutable<ILogicalOperator> parentOperator, Translator t) {
-
- JoinDesc joinDesc = (JoinDesc) operator.getConf();
-
- // get the projection expression (already re-written) from each source
- // table
- Map<Byte, List<ExprNodeDesc>> exprMap = joinDesc.getExprs();
- reorder(joinDesc.getTagOrder(), operatorToAsterixParents.get(operator),
- operatorToHiveParents.get(operator));
-
- // make an reduce join operator
- ILogicalOperator currentOperator = generateJoinTree(
- joinDesc.getCondsList(),
- operatorToAsterixParents.get(operator),
- operatorToHiveParents.get(operator), 0, t);
- parentOperator = new MutableObject<ILogicalOperator>(currentOperator);
-
- // add assign and project operator on top of a join
- // output variables
- ArrayList<LogicalVariable> variables = new ArrayList<LogicalVariable>();
- Set<Entry<Byte, List<ExprNodeDesc>>> entries = exprMap.entrySet();
- Iterator<Entry<Byte, List<ExprNodeDesc>>> iterator = entries.iterator();
- while (iterator.hasNext()) {
- List<ExprNodeDesc> outputExprs = iterator.next().getValue();
- ILogicalOperator assignOperator = t.getAssignOperator(
- parentOperator, outputExprs, variables);
-
- if (assignOperator != null) {
- currentOperator = assignOperator;
- parentOperator = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
- }
-
- ILogicalOperator po = new ProjectOperator(variables);
- po.getInputs().add(parentOperator);
- t.rewriteOperatorOutputSchema(variables, operator);
- return po;
- }
-
- /**
- * deal with reduce sink operator for the case of join
- */
- @Override
- public Mutable<ILogicalOperator> visit(ReduceSinkOperator operator,
- Mutable<ILogicalOperator> parentOperator, Translator t) {
-
- Operator downStream = (Operator) operator.getChildOperators().get(0);
- if (!(downStream instanceof JoinOperator))
- return null;
-
- ReduceSinkDesc desc = (ReduceSinkDesc) operator.getConf();
- List<ExprNodeDesc> keys = desc.getKeyCols();
- List<ExprNodeDesc> values = desc.getValueCols();
- List<ExprNodeDesc> partitionCols = desc.getPartitionCols();
-
- /**
- * rewrite key, value, paritioncol expressions
- */
- for (ExprNodeDesc key : keys)
- t.rewriteExpression(key);
- for (ExprNodeDesc value : values)
- t.rewriteExpression(value);
- for (ExprNodeDesc col : partitionCols)
- t.rewriteExpression(col);
-
- ILogicalOperator currentOperator = null;
-
- // add assign operator for keys if necessary
- ArrayList<LogicalVariable> keyVariables = new ArrayList<LogicalVariable>();
- ILogicalOperator assignOperator = t.getAssignOperator(parentOperator,
- keys, keyVariables);
- if (assignOperator != null) {
- currentOperator = assignOperator;
- parentOperator = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
-
- // add assign operator for values if necessary
- ArrayList<LogicalVariable> variables = new ArrayList<LogicalVariable>();
- assignOperator = t.getAssignOperator(parentOperator, values, variables);
- if (assignOperator != null) {
- currentOperator = assignOperator;
- parentOperator = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
-
- // unified schema: key, value
- ArrayList<LogicalVariable> unifiedKeyValues = new ArrayList<LogicalVariable>();
- unifiedKeyValues.addAll(keyVariables);
- for (LogicalVariable value : variables)
- if (keyVariables.indexOf(value) < 0)
- unifiedKeyValues.add(value);
-
- // insert projection operator, it is a *must*,
- // in hive, reduce sink sometimes also do the projection operator's
- // task
- currentOperator = new ProjectOperator(unifiedKeyValues);
- currentOperator.getInputs().add(parentOperator);
- parentOperator = new MutableObject<ILogicalOperator>(currentOperator);
-
- reduceSinkToKeyVariables.put(operator, keyVariables);
- List<String> fieldNames = new ArrayList<String>();
- List<TypeInfo> types = new ArrayList<TypeInfo>();
- for (LogicalVariable var : unifiedKeyValues) {
- fieldNames.add(var.toString());
- types.add(t.getType(var));
- }
- reduceSinkToFieldNames.put(operator, fieldNames);
- reduceSinkToTypes.put(operator, types);
- t.rewriteOperatorOutputSchema(variables, operator);
-
- latestAlgebricksOperator = currentOperator;
- latestReduceSink = operator;
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-
- /**
- * partial rewrite a join operator
- *
- * @param operator
- * @param t
- */
- private void translateJoinOperatorPreprocess(Operator operator, Translator t) {
- JoinDesc desc = (JoinDesc) operator.getConf();
- ReduceSinkDesc reduceSinkDesc = (ReduceSinkDesc) latestReduceSink
- .getConf();
- int tag = reduceSinkDesc.getTag();
-
- Map<Byte, List<ExprNodeDesc>> exprMap = desc.getExprs();
- List<ExprNodeDesc> exprs = exprMap.get(Byte.valueOf((byte) tag));
-
- for (ExprNodeDesc expr : exprs)
- t.rewriteExpression(expr);
-
- List<Operator> parents = operatorToHiveParents.get(operator);
- if (parents == null) {
- parents = new ArrayList<Operator>();
- operatorToHiveParents.put(operator, parents);
- }
- parents.add(latestReduceSink);
-
- List<ILogicalOperator> asterixParents = operatorToAsterixParents
- .get(operator);
- if (asterixParents == null) {
- asterixParents = new ArrayList<ILogicalOperator>();
- operatorToAsterixParents.put(operator, asterixParents);
- }
- asterixParents.add(latestAlgebricksOperator);
- }
-
- // generate a join tree from a list of exchange/reducesink operator
- // both exchanges and reduce sinks have the same order
- private ILogicalOperator generateJoinTree(List<JoinCondDesc> conds,
- List<ILogicalOperator> exchanges, List<Operator> reduceSinks,
- int offset, Translator t) {
- // get a list of reduce sink descs (input descs)
- int inputSize = reduceSinks.size() - offset;
-
- if (inputSize == 2) {
- ILogicalOperator currentRoot;
-
- List<ReduceSinkDesc> reduceSinkDescs = new ArrayList<ReduceSinkDesc>();
- for (int i = reduceSinks.size() - 1; i >= offset; i--)
- reduceSinkDescs.add((ReduceSinkDesc) reduceSinks.get(i)
- .getConf());
-
- // get the object inspector for the join
- List<String> fieldNames = new ArrayList<String>();
- List<TypeInfo> types = new ArrayList<TypeInfo>();
- for (int i = reduceSinks.size() - 1; i >= offset; i--) {
- fieldNames
- .addAll(reduceSinkToFieldNames.get(reduceSinks.get(i)));
- types.addAll(reduceSinkToTypes.get(reduceSinks.get(i)));
- }
-
- // get number of equality conjunctions in the final join condition
- int size = reduceSinkDescs.get(0).getKeyCols().size();
-
- // make up the join conditon expression
- List<ExprNodeDesc> joinConditionChildren = new ArrayList<ExprNodeDesc>();
- for (int i = 0; i < size; i++) {
- // create a join key pair
- List<ExprNodeDesc> keyPair = new ArrayList<ExprNodeDesc>();
- for (ReduceSinkDesc sink : reduceSinkDescs) {
- keyPair.add(sink.getKeyCols().get(i));
- }
- // create a hive equal condition
- ExprNodeDesc equality = new ExprNodeGenericFuncDesc(
- TypeInfoFactory.booleanTypeInfo,
- new GenericUDFOPEqual(), keyPair);
- // add the equal condition to the conjunction list
- joinConditionChildren.add(equality);
- }
- // get final conjunction expression
- ExprNodeDesc conjunct = null;
-
- if (joinConditionChildren.size() > 1)
- conjunct = new ExprNodeGenericFuncDesc(
- TypeInfoFactory.booleanTypeInfo, new GenericUDFOPAnd(),
- joinConditionChildren);
- else if (joinConditionChildren.size() == 1)
- conjunct = joinConditionChildren.get(0);
- else {
- // there is no join equality condition, equal-join
- conjunct = new ExprNodeConstantDesc(
- TypeInfoFactory.booleanTypeInfo, new Boolean(true));
- }
- // get an ILogicalExpression from hive's expression
- Mutable<ILogicalExpression> expression = t
- .translateScalarFucntion(conjunct);
-
- Mutable<ILogicalOperator> leftBranch = new MutableObject<ILogicalOperator>(
- exchanges.get(exchanges.size() - 1));
- Mutable<ILogicalOperator> rightBranch = new MutableObject<ILogicalOperator>(
- exchanges.get(exchanges.size() - 2));
- // get the join operator
- if (conds.get(offset).getType() == JoinDesc.LEFT_OUTER_JOIN) {
- currentRoot = new LeftOuterJoinOperator(expression);
- Mutable<ILogicalOperator> temp = leftBranch;
- leftBranch = rightBranch;
- rightBranch = temp;
- } else if (conds.get(offset).getType() == JoinDesc.RIGHT_OUTER_JOIN) {
- currentRoot = new LeftOuterJoinOperator(expression);
- } else
- currentRoot = new InnerJoinOperator(expression);
-
- currentRoot.getInputs().add(leftBranch);
- currentRoot.getInputs().add(rightBranch);
-
- // rewriteOperatorOutputSchema(variables, operator);
- return currentRoot;
- } else {
- // get the child join operator and insert and one-to-one exchange
- ILogicalOperator joinSrcOne = generateJoinTree(conds, exchanges,
- reduceSinks, offset + 1, t);
- // joinSrcOne.addInput(childJoin);
-
- ILogicalOperator currentRoot;
-
- List<ReduceSinkDesc> reduceSinkDescs = new ArrayList<ReduceSinkDesc>();
- for (int i = offset; i < offset + 2; i++)
- reduceSinkDescs.add((ReduceSinkDesc) reduceSinks.get(i)
- .getConf());
-
- // get the object inspector for the join
- List<String> fieldNames = new ArrayList<String>();
- List<TypeInfo> types = new ArrayList<TypeInfo>();
- for (int i = offset; i < reduceSinks.size(); i++) {
- fieldNames
- .addAll(reduceSinkToFieldNames.get(reduceSinks.get(i)));
- types.addAll(reduceSinkToTypes.get(reduceSinks.get(i)));
- }
-
- // get number of equality conjunctions in the final join condition
- int size = reduceSinkDescs.get(0).getKeyCols().size();
-
- // make up the join condition expression
- List<ExprNodeDesc> joinConditionChildren = new ArrayList<ExprNodeDesc>();
- for (int i = 0; i < size; i++) {
- // create a join key pair
- List<ExprNodeDesc> keyPair = new ArrayList<ExprNodeDesc>();
- for (ReduceSinkDesc sink : reduceSinkDescs) {
- keyPair.add(sink.getKeyCols().get(i));
- }
- // create a hive equal condition
- ExprNodeDesc equality = new ExprNodeGenericFuncDesc(
- TypeInfoFactory.booleanTypeInfo,
- new GenericUDFOPEqual(), keyPair);
- // add the equal condition to the conjunction list
- joinConditionChildren.add(equality);
- }
- // get final conjunction expression
- ExprNodeDesc conjunct = null;
-
- if (joinConditionChildren.size() > 1)
- conjunct = new ExprNodeGenericFuncDesc(
- TypeInfoFactory.booleanTypeInfo, new GenericUDFOPAnd(),
- joinConditionChildren);
- else if (joinConditionChildren.size() == 1)
- conjunct = joinConditionChildren.get(0);
- else {
- // there is no join equality condition, full outer join
- conjunct = new ExprNodeConstantDesc(
- TypeInfoFactory.booleanTypeInfo, new Boolean(true));
- }
- // get an ILogicalExpression from hive's expression
- Mutable<ILogicalExpression> expression = t
- .translateScalarFucntion(conjunct);
-
- Mutable<ILogicalOperator> leftBranch = new MutableObject<ILogicalOperator>(
- joinSrcOne);
- Mutable<ILogicalOperator> rightBranch = new MutableObject<ILogicalOperator>(
- exchanges.get(offset));
-
- // get the join operator
- if (conds.get(offset).getType() == JoinDesc.LEFT_OUTER_JOIN) {
- currentRoot = new LeftOuterJoinOperator(expression);
- Mutable<ILogicalOperator> temp = leftBranch;
- leftBranch = rightBranch;
- rightBranch = temp;
- } else if (conds.get(offset).getType() == JoinDesc.RIGHT_OUTER_JOIN) {
- currentRoot = new LeftOuterJoinOperator(expression);
- } else
- currentRoot = new InnerJoinOperator(expression);
-
- // set the inputs from Algebricks join operator
- // add the current table
- currentRoot.getInputs().add(leftBranch);
- currentRoot.getInputs().add(rightBranch);
-
- return currentRoot;
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/LateralViewJoinVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/LateralViewJoinVisitor.java
deleted file mode 100644
index 004a8c2..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/LateralViewJoinVisitor.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.LateralViewJoinOperator;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.exec.UDTFOperator;
-import org.apache.hadoop.hive.ql.plan.UDTFDesc;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-
-/**
- * The lateral view join operator is used for FROM src LATERAL VIEW udtf()...
- * This operator was implemented with the following operator DAG in mind.
- *
- * For a query such as
- *
- * SELECT pageid, adid.* FROM example_table LATERAL VIEW explode(adid_list) AS
- * adid
- *
- * The top of the operator DAG will look similar to
- *
- * [Table Scan] | [Lateral View Forward] / \ [Select](*) [Select](adid_list) | |
- * | [UDTF] (explode) \ / [Lateral View Join] | | [Select] (pageid, adid.*) |
- * ....
- *
- * Rows from the table scan operator are first to a lateral view forward
- * operator that just forwards the row and marks the start of a LV. The select
- * operator on the left picks all the columns while the select operator on the
- * right picks only the columns needed by the UDTF.
- *
- * The output of select in the left branch and output of the UDTF in the right
- * branch are then sent to the lateral view join (LVJ). In most cases, the UDTF
- * will generate > 1 row for every row received from the TS, while the left
- * select operator will generate only one. For each row output from the TS, the
- * LVJ outputs all possible rows that can be created by joining the row from the
- * left select and one of the rows output from the UDTF.
- *
- * Additional lateral views can be supported by adding a similar DAG after the
- * previous LVJ operator.
- */
-
-@SuppressWarnings("rawtypes")
-public class LateralViewJoinVisitor extends DefaultVisitor {
-
- private UDTFDesc udtf;
-
- private List<Mutable<ILogicalOperator>> parents = new ArrayList<Mutable<ILogicalOperator>>();
-
- @Override
- public Mutable<ILogicalOperator> visit(LateralViewJoinOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException {
-
- parents.add(AlgebricksParentOperatorRef);
- if (operator.getParentOperators().size() > parents.size()) {
- return null;
- }
-
- Operator parent0 = operator.getParentOperators().get(0);
- ILogicalOperator parentOperator;
- ILogicalExpression unnestArg;
- if (parent0 instanceof UDTFOperator) {
- List<LogicalVariable> unnestVars = new ArrayList<LogicalVariable>();
- VariableUtilities.getLiveVariables(parents.get(1).getValue(),
- unnestVars);
- unnestArg = new VariableReferenceExpression(unnestVars.get(0));
- parentOperator = parents.get(1).getValue();
- } else {
- List<LogicalVariable> unnestVars = new ArrayList<LogicalVariable>();
- VariableUtilities.getLiveVariables(parents.get(0).getValue(),
- unnestVars);
- unnestArg = new VariableReferenceExpression(unnestVars.get(0));
- parentOperator = parents.get(0).getValue();
- }
-
- LogicalVariable var = t.getVariable(udtf.toString(),
- TypeInfoFactory.unknownTypeInfo);
-
- Mutable<ILogicalExpression> unnestExpr = t.translateUnnestFunction(
- udtf, new MutableObject<ILogicalExpression>(unnestArg));
- ILogicalOperator currentOperator = new UnnestOperator(var, unnestExpr);
-
- List<LogicalVariable> outputVars = new ArrayList<LogicalVariable>();
- VariableUtilities.getLiveVariables(parentOperator, outputVars);
- outputVars.add(var);
- currentOperator.getInputs().add(
- new MutableObject<ILogicalOperator>(parentOperator));
-
- parents.clear();
- udtf = null;
- t.rewriteOperatorOutputSchema(outputVars, operator);
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(UDTFOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t) {
- Schema currentSchema = t.generateInputSchema(operator
- .getParentOperators().get(0));
- udtf = (UDTFDesc) operator.getConf();
-
- // populate the schema from upstream operator
- operator.setSchema(operator.getParentOperators().get(0).getSchema());
- List<LogicalVariable> latestOutputSchema = t
- .getVariablesFromSchema(currentSchema);
- t.rewriteOperatorOutputSchema(latestOutputSchema, operator);
- return null;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/LimitVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/LimitVisitor.java
deleted file mode 100644
index 84cdf00..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/LimitVisitor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.LimitOperator;
-import org.apache.hadoop.hive.ql.plan.LimitDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.HivesterixConstantValue;
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
-
-public class LimitVisitor extends DefaultVisitor {
-
- @Override
- public Mutable<ILogicalOperator> visit(LimitOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t) {
- Schema currentSchema = t.generateInputSchema(operator
- .getParentOperators().get(0));
-
- LimitDesc desc = (LimitDesc) operator.getConf();
- int limit = desc.getLimit();
- Integer limitValue = new Integer(limit);
-
- ILogicalExpression expr = new ConstantExpression(
- new HivesterixConstantValue(limitValue));
- ILogicalOperator currentOperator = new edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.LimitOperator(
- expr, true);
- currentOperator.getInputs().add(AlgebricksParentOperatorRef);
-
- operator.setSchema(operator.getParentOperators().get(0).getSchema());
- List<LogicalVariable> latestOutputSchema = t
- .getVariablesFromSchema(currentSchema);
- t.rewriteOperatorOutputSchema(latestOutputSchema, operator);
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/MapJoinVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/MapJoinVisitor.java
deleted file mode 100644
index fa5d014..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/MapJoinVisitor.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.ColumnInfo;
-import org.apache.hadoop.hive.ql.exec.MapJoinOperator;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
-import org.apache.hadoop.hive.ql.plan.MapJoinDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPAnd;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPEqual;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator;
-
-@SuppressWarnings("rawtypes")
-public class MapJoinVisitor extends DefaultVisitor {
-
- /**
- * map a join operator (in hive) to its parent operators (in asterix)
- */
- private HashMap<Operator, List<Mutable<ILogicalOperator>>> opMap = new HashMap<Operator, List<Mutable<ILogicalOperator>>>();
-
- @Override
- public Mutable<ILogicalOperator> visit(MapJoinOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t) {
- List<Operator<? extends Serializable>> joinSrc = operator
- .getParentOperators();
- List<Mutable<ILogicalOperator>> parents = opMap.get(operator);
- if (parents == null) {
- parents = new ArrayList<Mutable<ILogicalOperator>>();
- opMap.put(operator, parents);
- }
- parents.add(AlgebricksParentOperatorRef);
- if (joinSrc.size() != parents.size())
- return null;
-
- ILogicalOperator currentOperator;
- // make an map join operator
- // TODO: will have trouble for n-way joins
- MapJoinDesc joinDesc = (MapJoinDesc) operator.getConf();
-
- Map<Byte, List<ExprNodeDesc>> keyMap = joinDesc.getKeys();
- // get the projection expression (already re-written) from each source
- // table
- Map<Byte, List<ExprNodeDesc>> exprMap = joinDesc.getExprs();
-
- int inputSize = operator.getParentOperators().size();
- // get a list of reduce sink descs (input descs)
-
- // get the parent operator
- List<Mutable<ILogicalOperator>> parentOps = parents;
-
- List<String> fieldNames = new ArrayList<String>();
- List<TypeInfo> types = new ArrayList<TypeInfo>();
- for (Operator ts : joinSrc) {
- List<ColumnInfo> columns = ts.getSchema().getSignature();
- for (ColumnInfo col : columns) {
- fieldNames.add(col.getInternalName());
- types.add(col.getType());
- }
- }
-
- // get number of equality conjunctions in the final join condition
- Set<Entry<Byte, List<ExprNodeDesc>>> keyEntries = keyMap.entrySet();
- Iterator<Entry<Byte, List<ExprNodeDesc>>> entry = keyEntries.iterator();
-
- int size = 0;
- if (entry.hasNext())
- size = entry.next().getValue().size();
-
- // make up the join conditon expression
- List<ExprNodeDesc> joinConditionChildren = new ArrayList<ExprNodeDesc>();
- for (int i = 0; i < size; i++) {
- // create a join key pair
- List<ExprNodeDesc> keyPair = new ArrayList<ExprNodeDesc>();
- for (int j = 0; j < inputSize; j++) {
- keyPair.add(keyMap.get(Byte.valueOf((byte) j)).get(i));
- }
- // create a hive equal condition
- ExprNodeDesc equality = new ExprNodeGenericFuncDesc(
- TypeInfoFactory.booleanTypeInfo, new GenericUDFOPEqual(),
- keyPair);
- // add the equal condition to the conjunction list
- joinConditionChildren.add(equality);
- }
- // get final conjunction expression
- ExprNodeDesc conjunct = null;
-
- if (joinConditionChildren.size() > 1)
- conjunct = new ExprNodeGenericFuncDesc(
- TypeInfoFactory.booleanTypeInfo, new GenericUDFOPAnd(),
- joinConditionChildren);
- else if (joinConditionChildren.size() == 1)
- conjunct = joinConditionChildren.get(0);
- else {
- // there is no join equality condition, full outer join
- conjunct = new ExprNodeConstantDesc(
- TypeInfoFactory.booleanTypeInfo, new Boolean(true));
- }
- // get an ILogicalExpression from hive's expression
- Mutable<ILogicalExpression> expression = t
- .translateScalarFucntion(conjunct);
-
- ArrayList<LogicalVariable> left = new ArrayList<LogicalVariable>();
- ArrayList<LogicalVariable> right = new ArrayList<LogicalVariable>();
-
- Set<Entry<Byte, List<ExprNodeDesc>>> kentries = keyMap.entrySet();
- Iterator<Entry<Byte, List<ExprNodeDesc>>> kiterator = kentries
- .iterator();
- int iteration = 0;
- ILogicalOperator assignOperator = null;
- while (kiterator.hasNext()) {
- List<ExprNodeDesc> outputExprs = kiterator.next().getValue();
-
- if (iteration == 0)
- assignOperator = t.getAssignOperator(
- AlgebricksParentOperatorRef, outputExprs, left);
- else
- assignOperator = t.getAssignOperator(
- AlgebricksParentOperatorRef, outputExprs, right);
-
- if (assignOperator != null) {
- currentOperator = assignOperator;
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
- iteration++;
- }
-
- List<Mutable<ILogicalOperator>> inputs = parentOps;
-
- // get the join operator
- currentOperator = new InnerJoinOperator(expression);
-
- // set the inputs from asterix join operator
- for (Mutable<ILogicalOperator> input : inputs)
- currentOperator.getInputs().add(input);
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
-
- // add assign and project operator
- // output variables
- ArrayList<LogicalVariable> variables = new ArrayList<LogicalVariable>();
- Set<Entry<Byte, List<ExprNodeDesc>>> entries = exprMap.entrySet();
- Iterator<Entry<Byte, List<ExprNodeDesc>>> iterator = entries.iterator();
- while (iterator.hasNext()) {
- List<ExprNodeDesc> outputExprs = iterator.next().getValue();
- assignOperator = t.getAssignOperator(AlgebricksParentOperatorRef,
- outputExprs, variables);
-
- if (assignOperator != null) {
- currentOperator = assignOperator;
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
- }
-
- currentOperator = new ProjectOperator(variables);
- currentOperator.getInputs().add(AlgebricksParentOperatorRef);
- t.rewriteOperatorOutputSchema(variables, operator);
- // opMap.clear();
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/ProjectVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/ProjectVisitor.java
deleted file mode 100644
index 0d2067c..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/ProjectVisitor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.SelectOperator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.SelectDesc;
-
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator;
-
-public class ProjectVisitor extends DefaultVisitor {
-
- /**
- * translate project operator
- */
- @Override
- public Mutable<ILogicalOperator> visit(SelectOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t) {
-
- SelectDesc desc = (SelectDesc) operator.getConf();
-
- if (desc == null)
- return null;
-
- List<ExprNodeDesc> cols = desc.getColList();
-
- if (cols == null)
- return null;
-
- // insert assign operator if necessary
- ArrayList<LogicalVariable> variables = new ArrayList<LogicalVariable>();
-
- for (ExprNodeDesc expr : cols)
- t.rewriteExpression(expr);
-
- ILogicalOperator assignOp = t.getAssignOperator(
- AlgebricksParentOperator, cols, variables);
- ILogicalOperator currentOperator = null;
- if (assignOp != null) {
- currentOperator = assignOp;
- AlgebricksParentOperator = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
-
- currentOperator = new ProjectOperator(variables);
- currentOperator.getInputs().add(AlgebricksParentOperator);
- t.rewriteOperatorOutputSchema(variables, operator);
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/SortVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/SortVisitor.java
deleted file mode 100644
index a2c0d03..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/SortVisitor.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.ExtractOperator;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
-
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.OrderColumn;
-
-public class SortVisitor extends DefaultVisitor {
-
- @SuppressWarnings("rawtypes")
- @Override
- public Mutable<ILogicalOperator> visit(ReduceSinkOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException {
- ReduceSinkDesc desc = (ReduceSinkDesc) operator.getConf();
- Operator downStream = (Operator) operator.getChildOperators().get(0);
- List<ExprNodeDesc> keys = desc.getKeyCols();
- if (!(downStream instanceof ExtractOperator
- && desc.getNumReducers() == 1 && keys.size() > 0)) {
- return null;
- }
-
- List<ExprNodeDesc> schema = new ArrayList<ExprNodeDesc>();
- List<ExprNodeDesc> values = desc.getValueCols();
- List<ExprNodeDesc> partitionCols = desc.getPartitionCols();
- for (ExprNodeDesc key : keys) {
- t.rewriteExpression(key);
- }
- for (ExprNodeDesc value : values) {
- t.rewriteExpression(value);
- }
- for (ExprNodeDesc col : partitionCols) {
- t.rewriteExpression(col);
- }
-
- // add a order-by operator and limit if any
- List<Pair<IOrder, Mutable<ILogicalExpression>>> pairs = new ArrayList<Pair<IOrder, Mutable<ILogicalExpression>>>();
- char[] orders = desc.getOrder().toCharArray();
- int i = 0;
- for (ExprNodeDesc key : keys) {
- Mutable<ILogicalExpression> expr = t.translateScalarFucntion(key);
- IOrder order = orders[i] == '+' ? OrderOperator.ASC_ORDER
- : OrderOperator.DESC_ORDER;
-
- Pair<IOrder, Mutable<ILogicalExpression>> pair = new Pair<IOrder, Mutable<ILogicalExpression>>(
- order, expr);
- pairs.add(pair);
- i++;
- }
-
- // get input variables
- ArrayList<LogicalVariable> inputVariables = new ArrayList<LogicalVariable>();
- VariableUtilities.getProducedVariables(
- AlgebricksParentOperatorRef.getValue(), inputVariables);
-
- ArrayList<LogicalVariable> keyVariables = new ArrayList<LogicalVariable>();
- ILogicalOperator currentOperator;
- ILogicalOperator assignOp = t.getAssignOperator(
- AlgebricksParentOperatorRef, keys, keyVariables);
- if (assignOp != null) {
- currentOperator = assignOp;
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
-
- OrderColumn[] keyColumns = new OrderColumn[keyVariables.size()];
-
- for (int j = 0; j < keyColumns.length; j++)
- keyColumns[j] = new OrderColumn(keyVariables.get(j),
- pairs.get(j).first.getKind());
-
- // handle order operator
- currentOperator = new OrderOperator(pairs);
- currentOperator.getInputs().add(AlgebricksParentOperatorRef);
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
-
- // project back, remove generated sort-key columns if any
- if (assignOp != null) {
- currentOperator = new ProjectOperator(inputVariables);
- currentOperator.getInputs().add(AlgebricksParentOperatorRef);
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
-
- /**
- * a special rule for hive's order by output schema of reduce sink
- * operator only contains the columns
- */
- for (ExprNodeDesc value : values) {
- schema.add(value);
- }
-
- ArrayList<LogicalVariable> variables = new ArrayList<LogicalVariable>();
- ILogicalOperator assignOperator = t.getAssignOperator(
- AlgebricksParentOperatorRef, schema, variables);
- t.rewriteOperatorOutputSchema(variables, operator);
-
- if (assignOperator != null) {
- currentOperator = assignOperator;
- AlgebricksParentOperatorRef = new MutableObject<ILogicalOperator>(
- currentOperator);
- }
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/TableScanWriteVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/TableScanWriteVisitor.java
deleted file mode 100644
index 3e12bb9..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/TableScanWriteVisitor.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.ColumnInfo;
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.TableScanOperator;
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-import org.apache.hadoop.hive.ql.plan.TableScanDesc;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hivesterix.runtime.jobgen.HiveDataSink;
-import edu.uci.ics.hivesterix.runtime.jobgen.HiveDataSource;
-import edu.uci.ics.hivesterix.runtime.jobgen.HiveMetaDataProvider;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSink;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSource;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.DataSourceScanOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.EmptyTupleSourceOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-
-public class TableScanWriteVisitor extends DefaultVisitor {
-
- /**
- * map from alias to partition desc
- */
- private HashMap<String, PartitionDesc> aliasToPathMap;
-
- /**
- * map from partition desc to data source
- */
- private HashMap<PartitionDesc, IDataSource<PartitionDesc>> dataSourceMap = new HashMap<PartitionDesc, IDataSource<PartitionDesc>>();
-
- /**
- * constructor
- *
- * @param aliasToPathMap
- */
- public TableScanWriteVisitor(HashMap<String, PartitionDesc> aliasToPathMap) {
- this.aliasToPathMap = aliasToPathMap;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(TableScanOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- TableScanDesc desc = (TableScanDesc) operator.getConf();
- if (desc == null) {
- List<LogicalVariable> schema = new ArrayList<LogicalVariable>();
- VariableUtilities.getLiveVariables(
- AlgebricksParentOperator.getValue(), schema);
- t.rewriteOperatorOutputSchema(schema, operator);
- return null;
- }
-
- List<ColumnInfo> columns = operator.getSchema().getSignature();
- for (int i = columns.size() - 1; i >= 0; i--)
- if (columns.get(i).getIsVirtualCol() == true)
- columns.remove(i);
-
- // start with empty tuple operator
- List<TypeInfo> types = new ArrayList<TypeInfo>();
- ArrayList<LogicalVariable> variables = new ArrayList<LogicalVariable>();
- List<String> names = new ArrayList<String>();
- for (ColumnInfo column : columns) {
- types.add(column.getType());
-
- LogicalVariable var = t.getVariableFromFieldName(column
- .getTabAlias() + "." + column.getInternalName());
- LogicalVariable varNew;
-
- if (var != null) {
- varNew = t.getVariable(
- column.getTabAlias() + "." + column.getInternalName()
- + operator.toString(), column.getType());
- t.replaceVariable(var, varNew);
- var = varNew;
- } else
- var = t.getNewVariable(
- column.getTabAlias() + "." + column.getInternalName(),
- column.getType());
-
- variables.add(var);
- names.add(column.getInternalName());
- }
- Schema currentSchema = new Schema(names, types);
-
- String alias = desc.getAlias();
- PartitionDesc partDesc = aliasToPathMap.get(alias);
- IDataSource<PartitionDesc> dataSource = new HiveDataSource<PartitionDesc>(
- partDesc, currentSchema.getSchema());
- ILogicalOperator currentOperator = new DataSourceScanOperator(
- variables, dataSource);
-
- // set empty tuple source operator
- ILogicalOperator ets = new EmptyTupleSourceOperator();
- currentOperator.getInputs().add(
- new MutableObject<ILogicalOperator>(ets));
-
- // setup data source
- dataSourceMap.put(partDesc, dataSource);
- t.rewriteOperatorOutputSchema(variables, operator);
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(FileSinkOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t) {
-
- if (hiveOperator.getChildOperators() != null
- && hiveOperator.getChildOperators().size() > 0)
- return null;
-
- Schema currentSchema = t.generateInputSchema(hiveOperator
- .getParentOperators().get(0));
-
- IDataSink sink = new HiveDataSink(hiveOperator,
- currentSchema.getSchema());
- List<Mutable<ILogicalExpression>> exprList = new ArrayList<Mutable<ILogicalExpression>>();
- for (String column : currentSchema.getNames()) {
- exprList.add(new MutableObject<ILogicalExpression>(
- new VariableReferenceExpression(t.getVariable(column))));
- }
-
- ILogicalOperator currentOperator = new WriteOperator(exprList, sink);
- if (AlgebricksParentOperator != null) {
- currentOperator.getInputs().add(AlgebricksParentOperator);
- }
-
- IMetadataProvider<PartitionDesc, Object> metaData = new HiveMetaDataProvider<PartitionDesc, Object>(
- hiveOperator, currentSchema, dataSourceMap);
- t.setMetadataProvider(metaData);
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/UnionVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/UnionVisitor.java
deleted file mode 100644
index f4e74f6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/UnionVisitor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.hadoop.hive.ql.exec.UnionOperator;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.DefaultVisitor;
-import edu.uci.ics.hivesterix.logical.plan.visitor.base.Translator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.utils.Triple;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-
-public class UnionVisitor extends DefaultVisitor {
-
- List<Mutable<ILogicalOperator>> parents = new ArrayList<Mutable<ILogicalOperator>>();
-
- @Override
- public Mutable<ILogicalOperator> visit(UnionOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
-
- parents.add(AlgebricksParentOperator);
- if (operator.getParentOperators().size() > parents.size()) {
- return null;
- }
-
- List<LogicalVariable> leftVars = new ArrayList<LogicalVariable>();
- List<LogicalVariable> rightVars = new ArrayList<LogicalVariable>();
-
- VariableUtilities.getUsedVariables(parents.get(0).getValue(), leftVars);
- VariableUtilities
- .getUsedVariables(parents.get(1).getValue(), rightVars);
-
- List<Triple<LogicalVariable, LogicalVariable, LogicalVariable>> triples = new ArrayList<Triple<LogicalVariable, LogicalVariable, LogicalVariable>>();
- List<LogicalVariable> unionVars = new ArrayList<LogicalVariable>();
-
- for (int i = 0; i < leftVars.size(); i++) {
- LogicalVariable unionVar = t.getVariable(leftVars.get(i).getId()
- + "union" + AlgebricksParentOperator.hashCode(),
- TypeInfoFactory.unknownTypeInfo);
- unionVars.add(unionVar);
- Triple<LogicalVariable, LogicalVariable, LogicalVariable> triple = new Triple<LogicalVariable, LogicalVariable, LogicalVariable>(
- leftVars.get(i), rightVars.get(i), unionVar);
- t.replaceVariable(leftVars.get(i), unionVar);
- t.replaceVariable(rightVars.get(i), unionVar);
- triples.add(triple);
- }
- ILogicalOperator currentOperator = new edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.UnionAllOperator(
- triples);
- for (Mutable<ILogicalOperator> parent : parents)
- currentOperator.getInputs().add(parent);
-
- t.rewriteOperatorOutputSchema(unionVars, operator);
- parents.clear();
- return new MutableObject<ILogicalOperator>(currentOperator);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/DefaultVisitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/DefaultVisitor.java
deleted file mode 100644
index 20013e3..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/DefaultVisitor.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor.base;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hadoop.hive.ql.exec.CollectOperator;
-import org.apache.hadoop.hive.ql.exec.ExtractOperator;
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.FilterOperator;
-import org.apache.hadoop.hive.ql.exec.ForwardOperator;
-import org.apache.hadoop.hive.ql.exec.GroupByOperator;
-import org.apache.hadoop.hive.ql.exec.JoinOperator;
-import org.apache.hadoop.hive.ql.exec.LateralViewForwardOperator;
-import org.apache.hadoop.hive.ql.exec.LateralViewJoinOperator;
-import org.apache.hadoop.hive.ql.exec.LimitOperator;
-import org.apache.hadoop.hive.ql.exec.MapJoinOperator;
-import org.apache.hadoop.hive.ql.exec.MapOperator;
-import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator;
-import org.apache.hadoop.hive.ql.exec.SMBMapJoinOperator;
-import org.apache.hadoop.hive.ql.exec.ScriptOperator;
-import org.apache.hadoop.hive.ql.exec.SelectOperator;
-import org.apache.hadoop.hive.ql.exec.TableScanOperator;
-import org.apache.hadoop.hive.ql.exec.UDTFOperator;
-import org.apache.hadoop.hive.ql.exec.UnionOperator;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-
-/**
- * a default empty implementation of visitor
- *
- * @author yingyib
- */
-public class DefaultVisitor implements Visitor {
-
- @Override
- public Mutable<ILogicalOperator> visit(CollectOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(JoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(ExtractOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(MapJoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(SMBMapJoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- public Mutable<ILogicalOperator> visit(FileSinkOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- public Mutable<ILogicalOperator> visit(ReduceSinkOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(FilterOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(ForwardOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(GroupByOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(
- LateralViewForwardOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(
- LateralViewJoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(LimitOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(MapOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(ScriptOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(SelectOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(TableScanOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(UDTFOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public Mutable<ILogicalOperator> visit(UnionOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperator, Translator t)
- throws AlgebricksException {
- return null;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/Translator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/Translator.java
deleted file mode 100644
index 9165386..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/Translator.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor.base;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-import org.apache.hadoop.hive.ql.plan.UDTFDesc;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-
-@SuppressWarnings("rawtypes")
-public interface Translator {
-
- /**
- * generate input schema
- *
- * @param operator
- * @return
- */
- public Schema generateInputSchema(Operator operator);
-
- /**
- * rewrite the names of output columns for feture expression evaluators to
- * use
- *
- * @param operator
- */
- public void rewriteOperatorOutputSchema(List<LogicalVariable> vars,
- Operator operator);
-
- /**
- * rewrite the names of output columns for feture expression evaluators to
- * use
- *
- * @param operator
- */
- public void rewriteOperatorOutputSchema(Operator operator);
-
- /**
- * rewrite an expression and substitute variables
- *
- * @param expr
- * hive expression
- */
- public void rewriteExpression(ExprNodeDesc expr);
-
- /**
- * rewrite an expression and substitute variables
- *
- * @param expr
- * hive expression
- */
- public void rewriteExpressionPartial(ExprNodeDesc expr);
-
- /**
- * get an assign operator as a child of parent
- *
- * @param parent
- * @param cols
- * @param variables
- * @return
- */
- public ILogicalOperator getAssignOperator(Mutable<ILogicalOperator> parent,
- List<ExprNodeDesc> cols, ArrayList<LogicalVariable> variables);
-
- /**
- * get type for a logical variable
- *
- * @param var
- * @return type info
- */
- public TypeInfo getType(LogicalVariable var);
-
- /**
- * translate an expression from hive to Algebricks
- *
- * @param desc
- * @return
- */
- public Mutable<ILogicalExpression> translateScalarFucntion(ExprNodeDesc desc);
-
- /**
- * translate an aggregation from hive to Algebricks
- *
- * @param aggregateDesc
- * @return
- */
- public Mutable<ILogicalExpression> translateAggregation(
- AggregationDesc aggregateDesc);
-
- /**
- * translate unnesting (UDTF) function expression
- *
- * @param aggregator
- * @return
- */
- public Mutable<ILogicalExpression> translateUnnestFunction(
- UDTFDesc udtfDesc, Mutable<ILogicalExpression> argument);
-
- /**
- * get variable from a schema
- *
- * @param schema
- * @return
- */
- public List<LogicalVariable> getVariablesFromSchema(Schema schema);
-
- /**
- * get variable from name
- *
- * @param name
- * @return
- */
- public LogicalVariable getVariable(String name);
-
- /**
- * get variable from field name
- *
- * @param name
- * @return
- */
- public LogicalVariable getVariableFromFieldName(String name);
-
- /**
- * get variable from name, type
- *
- * @param fieldName
- * @param type
- * @return
- */
- public LogicalVariable getVariable(String fieldName, TypeInfo type);
-
- /**
- * get new variable from name, type
- *
- * @param fieldName
- * @param type
- * @return
- */
- public LogicalVariable getNewVariable(String fieldName, TypeInfo type);
-
- /**
- * set the metadata provider
- *
- * @param metadata
- */
- public void setMetadataProvider(
- IMetadataProvider<PartitionDesc, Object> metadata);
-
- /**
- * get the metadata provider
- *
- * @param metadata
- */
- public IMetadataProvider<PartitionDesc, Object> getMetadataProvider();
-
- /**
- * replace the variable
- *
- * @param oldVar
- * @param newVar
- */
- public void replaceVariable(LogicalVariable oldVar, LogicalVariable newVar);
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/Visitor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/Visitor.java
deleted file mode 100644
index 745f93e..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/logical/plan/visitor/base/Visitor.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package edu.uci.ics.hivesterix.logical.plan.visitor.base;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hadoop.hive.ql.exec.CollectOperator;
-import org.apache.hadoop.hive.ql.exec.ExtractOperator;
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.FilterOperator;
-import org.apache.hadoop.hive.ql.exec.ForwardOperator;
-import org.apache.hadoop.hive.ql.exec.GroupByOperator;
-import org.apache.hadoop.hive.ql.exec.JoinOperator;
-import org.apache.hadoop.hive.ql.exec.LateralViewForwardOperator;
-import org.apache.hadoop.hive.ql.exec.LateralViewJoinOperator;
-import org.apache.hadoop.hive.ql.exec.LimitOperator;
-import org.apache.hadoop.hive.ql.exec.MapJoinOperator;
-import org.apache.hadoop.hive.ql.exec.MapOperator;
-import org.apache.hadoop.hive.ql.exec.ReduceSinkOperator;
-import org.apache.hadoop.hive.ql.exec.SMBMapJoinOperator;
-import org.apache.hadoop.hive.ql.exec.ScriptOperator;
-import org.apache.hadoop.hive.ql.exec.SelectOperator;
-import org.apache.hadoop.hive.ql.exec.TableScanOperator;
-import org.apache.hadoop.hive.ql.exec.UDTFOperator;
-import org.apache.hadoop.hive.ql.exec.UnionOperator;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-
-public interface Visitor {
-
- public Mutable<ILogicalOperator> visit(CollectOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(JoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(ExtractOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(MapJoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(SMBMapJoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(FilterOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(ForwardOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(GroupByOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(
- LateralViewForwardOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(
- LateralViewJoinOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(LimitOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(MapOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(ScriptOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(SelectOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(TableScanOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(FileSinkOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(ReduceSinkOperator hiveOperator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(UDTFOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-
- public Mutable<ILogicalOperator> visit(UnionOperator operator,
- Mutable<ILogicalOperator> AlgebricksParentOperatorRef, Translator t)
- throws AlgebricksException;
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rulecollections/HiveRuleCollections.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rulecollections/HiveRuleCollections.java
deleted file mode 100644
index 4ebea0a..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rulecollections/HiveRuleCollections.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package edu.uci.ics.hivesterix.optimizer.rulecollections;
-
-import java.util.LinkedList;
-
-import edu.uci.ics.hivesterix.optimizer.rules.InsertProjectBeforeWriteRule;
-import edu.uci.ics.hivesterix.optimizer.rules.IntroduceEarlyProjectRule;
-import edu.uci.ics.hivesterix.optimizer.rules.LocalGroupByRule;
-import edu.uci.ics.hivesterix.optimizer.rules.RemoveRedundantSelectRule;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.BreakSelectIntoConjunctsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.ComplexJoinInferenceRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.ConsolidateAssignsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.ConsolidateSelectsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.EliminateSubplanRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.EnforceStructuralPropertiesRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.ExtractCommonOperatorsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.ExtractGbyExpressionsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.FactorRedundantGroupAndDecorVarsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.InferTypesRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.InlineVariablesRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.InsertProjectBeforeUnionRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.IntroduceAggregateCombinerRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.IntroduceGroupByCombinerRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.IsolateHyracksOperatorsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.PullSelectOutOfEqJoin;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.PushLimitDownRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.PushProjectDownRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.PushProjectIntoDataSourceScanRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.PushSelectDownRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.PushSelectIntoJoinRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.ReinferAllTypesRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.RemoveRedundantProjectionRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.RemoveUnusedAssignAndAggregateRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.SetAlgebricksPhysicalOperatorsRule;
-import edu.uci.ics.hyracks.algebricks.rewriter.rules.SetExecutionModeRule;
-
-public final class HiveRuleCollections {
-
- public final static LinkedList<IAlgebraicRewriteRule> NORMALIZATION = new LinkedList<IAlgebraicRewriteRule>();
- static {
- NORMALIZATION.add(new EliminateSubplanRule());
- NORMALIZATION.add(new IntroduceAggregateCombinerRule());
- NORMALIZATION.add(new BreakSelectIntoConjunctsRule());
- NORMALIZATION.add(new IntroduceAggregateCombinerRule());
- NORMALIZATION.add(new PushSelectIntoJoinRule());
- NORMALIZATION.add(new ExtractGbyExpressionsRule());
- NORMALIZATION.add(new RemoveRedundantSelectRule());
- }
-
- public final static LinkedList<IAlgebraicRewriteRule> COND_PUSHDOWN_AND_JOIN_INFERENCE = new LinkedList<IAlgebraicRewriteRule>();
- static {
- COND_PUSHDOWN_AND_JOIN_INFERENCE.add(new PushSelectDownRule());
- COND_PUSHDOWN_AND_JOIN_INFERENCE.add(new InlineVariablesRule());
- COND_PUSHDOWN_AND_JOIN_INFERENCE
- .add(new FactorRedundantGroupAndDecorVarsRule());
- COND_PUSHDOWN_AND_JOIN_INFERENCE.add(new EliminateSubplanRule());
- }
-
- public final static LinkedList<IAlgebraicRewriteRule> LOAD_FIELDS = new LinkedList<IAlgebraicRewriteRule>();
- static {
- // should LoadRecordFieldsRule be applied in only one pass over the
- // plan?
- LOAD_FIELDS.add(new InlineVariablesRule());
- // LOAD_FIELDS.add(new RemoveUnusedAssignAndAggregateRule());
- LOAD_FIELDS.add(new ComplexJoinInferenceRule());
- LOAD_FIELDS.add(new InferTypesRule());
- }
-
- public final static LinkedList<IAlgebraicRewriteRule> OP_PUSHDOWN = new LinkedList<IAlgebraicRewriteRule>();
- static {
- OP_PUSHDOWN.add(new PushProjectDownRule());
- OP_PUSHDOWN.add(new PushSelectDownRule());
- }
-
- public final static LinkedList<IAlgebraicRewriteRule> DATA_EXCHANGE = new LinkedList<IAlgebraicRewriteRule>();
- static {
- DATA_EXCHANGE.add(new SetExecutionModeRule());
- }
-
- public final static LinkedList<IAlgebraicRewriteRule> CONSOLIDATION = new LinkedList<IAlgebraicRewriteRule>();
- static {
- CONSOLIDATION.add(new RemoveRedundantProjectionRule());
- CONSOLIDATION.add(new ConsolidateSelectsRule());
- CONSOLIDATION.add(new IntroduceEarlyProjectRule());
- CONSOLIDATION.add(new ConsolidateAssignsRule());
- CONSOLIDATION.add(new IntroduceGroupByCombinerRule());
- CONSOLIDATION.add(new RemoveUnusedAssignAndAggregateRule());
- }
-
- public final static LinkedList<IAlgebraicRewriteRule> PHYSICAL_PLAN_REWRITES = new LinkedList<IAlgebraicRewriteRule>();
- static {
- PHYSICAL_PLAN_REWRITES.add(new PullSelectOutOfEqJoin());
- PHYSICAL_PLAN_REWRITES.add(new SetAlgebricksPhysicalOperatorsRule());
- PHYSICAL_PLAN_REWRITES.add(new EnforceStructuralPropertiesRule());
- PHYSICAL_PLAN_REWRITES.add(new PushProjectDownRule());
- PHYSICAL_PLAN_REWRITES.add(new SetAlgebricksPhysicalOperatorsRule());
- PHYSICAL_PLAN_REWRITES.add(new PushLimitDownRule());
- PHYSICAL_PLAN_REWRITES.add(new InsertProjectBeforeWriteRule());
- PHYSICAL_PLAN_REWRITES.add(new InsertProjectBeforeUnionRule());
- }
-
- public final static LinkedList<IAlgebraicRewriteRule> prepareJobGenRules = new LinkedList<IAlgebraicRewriteRule>();
- static {
- prepareJobGenRules.add(new ReinferAllTypesRule());
- prepareJobGenRules.add(new IsolateHyracksOperatorsRule(
- HeuristicOptimizer.hyraxOperatorsBelowWhichJobGenIsDisabled));
- prepareJobGenRules.add(new ExtractCommonOperatorsRule());
- prepareJobGenRules.add(new LocalGroupByRule());
- prepareJobGenRules.add(new PushProjectIntoDataSourceScanRule());
- prepareJobGenRules.add(new ReinferAllTypesRule());
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/InsertProjectBeforeWriteRule.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/InsertProjectBeforeWriteRule.java
deleted file mode 100644
index c58982e..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/InsertProjectBeforeWriteRule.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package edu.uci.ics.hivesterix.optimizer.rules;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.ExecutionMode;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.physical.StreamProjectPOperator;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-
-public class InsertProjectBeforeWriteRule implements IAlgebraicRewriteRule {
-
- @Override
- public boolean rewritePost(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) {
- return false;
- }
-
- /**
- * When the input schema to WriteOperator is different from the output
- * schema in terms of variable order, add a project operator to get the
- * write order
- */
- @Override
- public boolean rewritePre(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) throws AlgebricksException {
- AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
- if (op.getOperatorTag() != LogicalOperatorTag.WRITE) {
- return false;
- }
- WriteOperator opWrite = (WriteOperator) op;
- ArrayList<LogicalVariable> finalSchema = new ArrayList<LogicalVariable>();
- VariableUtilities.getUsedVariables(opWrite, finalSchema);
- ArrayList<LogicalVariable> inputSchema = new ArrayList<LogicalVariable>();
- VariableUtilities.getLiveVariables(opWrite, inputSchema);
- if (!isIdentical(finalSchema, inputSchema)) {
- ProjectOperator projectOp = new ProjectOperator(finalSchema);
- Mutable<ILogicalOperator> parentOpRef = opWrite.getInputs().get(0);
- projectOp.getInputs().add(parentOpRef);
- opWrite.getInputs().clear();
- opWrite.getInputs().add(
- new MutableObject<ILogicalOperator>(projectOp));
- projectOp.setPhysicalOperator(new StreamProjectPOperator());
- projectOp.setExecutionMode(ExecutionMode.PARTITIONED);
-
- AbstractLogicalOperator op2 = (AbstractLogicalOperator) parentOpRef
- .getValue();
- if (op2.getOperatorTag() == LogicalOperatorTag.PROJECT) {
- ProjectOperator pi2 = (ProjectOperator) op2;
- parentOpRef.setValue(pi2.getInputs().get(0).getValue());
- }
- context.computeAndSetTypeEnvironmentForOperator(projectOp);
- return true;
- } else
- return false;
-
- }
-
- private boolean isIdentical(List<LogicalVariable> finalSchema,
- List<LogicalVariable> inputSchema) {
- int finalSchemaSize = finalSchema.size();
- int inputSchemaSize = inputSchema.size();
- if (finalSchemaSize != inputSchemaSize)
- throw new IllegalStateException(
- "final output schema variables missing!");
- for (int i = 0; i < finalSchemaSize; i++) {
- LogicalVariable var1 = finalSchema.get(i);
- LogicalVariable var2 = inputSchema.get(i);
- if (!var1.equals(var2))
- return false;
- }
- return true;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/IntroduceEarlyProjectRule.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/IntroduceEarlyProjectRule.java
deleted file mode 100644
index 2bebe81..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/IntroduceEarlyProjectRule.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package edu.uci.ics.hivesterix.optimizer.rules;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.commons.lang3.mutable.MutableObject;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-
-public class IntroduceEarlyProjectRule implements IAlgebraicRewriteRule {
-
- @Override
- public boolean rewritePre(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) throws AlgebricksException {
- return false;
- }
-
- @Override
- public boolean rewritePost(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) throws AlgebricksException {
- AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
- if (op.getOperatorTag() != LogicalOperatorTag.PROJECT) {
- return false;
- }
- AbstractLogicalOperator middleOp = (AbstractLogicalOperator) op
- .getInputs().get(0).getValue();
- List<LogicalVariable> deliveredVars = new ArrayList<LogicalVariable>();
- List<LogicalVariable> usedVars = new ArrayList<LogicalVariable>();
- List<LogicalVariable> producedVars = new ArrayList<LogicalVariable>();
-
- VariableUtilities.getUsedVariables(op, deliveredVars);
- VariableUtilities.getUsedVariables(middleOp, usedVars);
- VariableUtilities.getProducedVariables(middleOp, producedVars);
-
- Set<LogicalVariable> requiredVariables = new HashSet<LogicalVariable>();
- requiredVariables.addAll(deliveredVars);
- requiredVariables.addAll(usedVars);
- requiredVariables.removeAll(producedVars);
-
- if (middleOp.getInputs().size() <= 0 || middleOp.getInputs().size() > 1)
- return false;
-
- AbstractLogicalOperator targetOp = (AbstractLogicalOperator) middleOp
- .getInputs().get(0).getValue();
- if (targetOp.getOperatorTag() != LogicalOperatorTag.DATASOURCESCAN)
- return false;
-
- Set<LogicalVariable> deliveredEarlyVars = new HashSet<LogicalVariable>();
- VariableUtilities.getLiveVariables(targetOp, deliveredEarlyVars);
-
- deliveredEarlyVars.removeAll(requiredVariables);
- if (deliveredEarlyVars.size() > 0) {
- ArrayList<LogicalVariable> requiredVars = new ArrayList<LogicalVariable>();
- requiredVars.addAll(requiredVariables);
- ILogicalOperator earlyProjectOp = new ProjectOperator(requiredVars);
- Mutable<ILogicalOperator> earlyProjectOpRef = new MutableObject<ILogicalOperator>(
- earlyProjectOp);
- Mutable<ILogicalOperator> targetRef = middleOp.getInputs().get(0);
- middleOp.getInputs().set(0, earlyProjectOpRef);
- earlyProjectOp.getInputs().add(targetRef);
- context.computeAndSetTypeEnvironmentForOperator(earlyProjectOp);
- return true;
- }
- return false;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/LocalGroupByRule.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/LocalGroupByRule.java
deleted file mode 100644
index 72cbe21..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/LocalGroupByRule.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package edu.uci.ics.hivesterix.optimizer.rules;
-
-import org.apache.commons.lang3.mutable.Mutable;
-
-import edu.uci.ics.hivesterix.logical.plan.HiveOperatorAnnotations;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.IPhysicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.OperatorAnnotations;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.physical.OneToOneExchangePOperator;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-
-public class LocalGroupByRule implements IAlgebraicRewriteRule {
-
- @Override
- public boolean rewritePre(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) throws AlgebricksException {
- return false;
- }
-
- @Override
- public boolean rewritePost(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) throws AlgebricksException {
- AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
- if (op.getOperatorTag() != LogicalOperatorTag.GROUP) {
- return false;
- }
- Boolean localGby = (Boolean) op.getAnnotations().get(
- HiveOperatorAnnotations.LOCAL_GROUP_BY);
- if (localGby != null && localGby.equals(Boolean.TRUE)) {
- Boolean hashGby = (Boolean) op.getAnnotations().get(
- OperatorAnnotations.USE_HASH_GROUP_BY);
- Boolean externalGby = (Boolean) op.getAnnotations().get(
- OperatorAnnotations.USE_EXTERNAL_GROUP_BY);
- if ((hashGby != null && (hashGby.equals(Boolean.TRUE)) || (externalGby != null && externalGby
- .equals(Boolean.TRUE)))) {
- reviseExchange(op);
- } else {
- ILogicalOperator child = op.getInputs().get(0).getValue();
- AbstractLogicalOperator childOp = (AbstractLogicalOperator) child;
- while (child.getInputs().size() > 0) {
- if (childOp.getOperatorTag() == LogicalOperatorTag.ORDER)
- break;
- else {
- child = child.getInputs().get(0).getValue();
- childOp = (AbstractLogicalOperator) child;
- }
- }
- if (childOp.getOperatorTag() == LogicalOperatorTag.ORDER)
- reviseExchange(childOp);
- }
- return true;
- }
- return false;
- }
-
- private void reviseExchange(AbstractLogicalOperator op) {
- ExchangeOperator exchange = (ExchangeOperator) op.getInputs().get(0)
- .getValue();
- IPhysicalOperator physicalOp = exchange.getPhysicalOperator();
- if (physicalOp.getOperatorTag() == PhysicalOperatorTag.HASH_PARTITION_EXCHANGE) {
- exchange.setPhysicalOperator(new OneToOneExchangePOperator());
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/RemoveRedundantSelectRule.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/RemoveRedundantSelectRule.java
deleted file mode 100644
index 9958ba8..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/optimizer/rules/RemoveRedundantSelectRule.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package edu.uci.ics.hivesterix.optimizer.rules;
-
-import org.apache.commons.lang3.mutable.Mutable;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.SelectOperator;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-
-public class RemoveRedundantSelectRule implements IAlgebraicRewriteRule {
-
- @Override
- public boolean rewritePre(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) throws AlgebricksException {
- return false;
- }
-
- @Override
- public boolean rewritePost(Mutable<ILogicalOperator> opRef,
- IOptimizationContext context) throws AlgebricksException {
- AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
- if (op.getOperatorTag() != LogicalOperatorTag.SELECT) {
- return false;
- }
- AbstractLogicalOperator inputOp = (AbstractLogicalOperator) op
- .getInputs().get(0).getValue();
- if (inputOp.getOperatorTag() != LogicalOperatorTag.SELECT) {
- return false;
- }
- SelectOperator selectOp = (SelectOperator) op;
- SelectOperator inputSelectOp = (SelectOperator) inputOp;
- ILogicalExpression expr1 = selectOp.getCondition().getValue();
- ILogicalExpression expr2 = inputSelectOp.getCondition().getValue();
-
- if (expr1.equals(expr2)) {
- selectOp.getInputs().set(0, inputSelectOp.getInputs().get(0));
- return true;
- }
- return false;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/config/ConfUtil.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/config/ConfUtil.java
deleted file mode 100644
index 6b4d697..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/config/ConfUtil.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.config;
-
-import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.mapred.FileInputFormat;
-import org.apache.hadoop.mapred.InputFormat;
-import org.apache.hadoop.mapred.JobConf;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.api.client.HyracksConnection;
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
-import edu.uci.ics.hyracks.api.topology.ClusterTopology;
-
-@SuppressWarnings({ "rawtypes", "deprecation" })
-public class ConfUtil {
-
- private static JobConf job;
- private static HiveConf hconf;
- private static String[] NCs;
- private static Map<String, List<String>> ncMapping;
- private static IHyracksClientConnection hcc = null;
- private static ClusterTopology topology = null;
-
- public static JobConf getJobConf(Class<? extends InputFormat> format,
- Path path) {
- JobConf conf = new JobConf();
- if (job != null)
- conf = job;
-
- String hadoopPath = System.getProperty("HADOOP_HOME", "/hadoop");
- Path pathCore = new Path(hadoopPath + "/conf/core-site.xml");
- conf.addResource(pathCore);
- Path pathMapRed = new Path(hadoopPath + "/conf/mapred-site.xml");
- conf.addResource(pathMapRed);
- Path pathHDFS = new Path(hadoopPath + "/conf/hdfs-site.xml");
- conf.addResource(pathHDFS);
-
- conf.setInputFormat(format);
- FileInputFormat.setInputPaths(conf, path);
- return conf;
- }
-
- public static JobConf getJobConf() {
- JobConf conf = new JobConf();
- if (job != null)
- conf = job;
-
- String hadoopPath = System.getProperty("HADOOP_HOME", "/hadoop");
- Path pathCore = new Path(hadoopPath + "/conf/core-site.xml");
- conf.addResource(pathCore);
- Path pathMapRed = new Path(hadoopPath + "/conf/mapred-site.xml");
- conf.addResource(pathMapRed);
- Path pathHDFS = new Path(hadoopPath + "/conf/hdfs-site.xml");
- conf.addResource(pathHDFS);
-
- return conf;
- }
-
- public static void setJobConf(JobConf conf) {
- job = conf;
- }
-
- public static void setHiveConf(HiveConf hiveConf) {
- hconf = hiveConf;
- }
-
- public static HiveConf getHiveConf() {
- if (hconf == null) {
- hconf = new HiveConf(SessionState.class);
- hconf.addResource(new Path("conf/hive-default.xml"));
- }
- return hconf;
- }
-
- public static String[] getNCs() throws AlgebricksException {
- if (NCs == null) {
- try {
- loadClusterConfig();
- } catch (Exception e) {
- throw new AlgebricksException(e);
- }
- }
- return NCs;
- }
-
- public static Map<String, List<String>> getNCMapping()
- throws AlgebricksException {
- if (ncMapping == null) {
- try {
- loadClusterConfig();
- } catch (Exception e) {
- throw new AlgebricksException(e);
- }
- }
- return ncMapping;
- }
-
- private static void loadClusterConfig() {
- try {
- getHiveConf();
- String ipAddress = hconf.get("hive.hyracks.host");
- int port = Integer.parseInt(hconf.get("hive.hyracks.port"));
- int mpl = Integer.parseInt(hconf.get("hive.hyracks.parrallelism"));
- hcc = new HyracksConnection(ipAddress, port);
- topology = hcc.getClusterTopology();
- Map<String, NodeControllerInfo> ncNameToNcInfos = hcc
- .getNodeControllerInfos();
- NCs = new String[ncNameToNcInfos.size() * mpl];
- ncMapping = new HashMap<String, List<String>>();
- int i = 0;
- for (Map.Entry<String, NodeControllerInfo> entry : ncNameToNcInfos
- .entrySet()) {
- String ipAddr = InetAddress.getByAddress(
- entry.getValue().getNetworkAddress().getIpAddress())
- .getHostAddress();
- List<String> matchedNCs = ncMapping.get(ipAddr);
- if (matchedNCs == null) {
- matchedNCs = new ArrayList<String>();
- ncMapping.put(ipAddr, matchedNCs);
- }
- matchedNCs.add(entry.getKey());
- for (int j = i * mpl; j < i * mpl + mpl; j++)
- NCs[j] = entry.getKey();
- i++;
- }
- } catch (Exception e) {
- throw new IllegalStateException(e);
- }
- }
-
- public static ClusterTopology getClusterTopology() {
- if (topology == null)
- loadClusterConfig();
- return topology;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AbstractExpressionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AbstractExpressionEvaluator.java
deleted file mode 100644
index 8f6d9ca..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AbstractExpressionEvaluator.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.io.BytesWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyFactory;
-import edu.uci.ics.hivesterix.serde.lazy.LazyObject;
-import edu.uci.ics.hivesterix.serde.lazy.LazySerDe;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-public abstract class AbstractExpressionEvaluator implements ICopyEvaluator {
-
- private List<ICopyEvaluator> children;
-
- private ExprNodeEvaluator evaluator;
-
- private IDataOutputProvider out;
-
- private ObjectInspector inspector;
-
- /**
- * output object inspector
- */
- private ObjectInspector outputInspector;
-
- /**
- * cached row object
- */
- private LazyObject<? extends ObjectInspector> cachedRowObject;
-
- /**
- * serializer/derialzer for lazy object
- */
- private SerDe lazySer;
-
- /**
- * data output
- */
- DataOutput dataOutput;
-
- public AbstractExpressionEvaluator(ExprNodeEvaluator hiveEvaluator,
- ObjectInspector oi, IDataOutputProvider output)
- throws AlgebricksException {
- evaluator = hiveEvaluator;
- out = output;
- inspector = oi;
- dataOutput = out.getDataOutput();
- }
-
- protected ObjectInspector getRowInspector() {
- return null;
- }
-
- protected IDataOutputProvider getIDataOutputProvider() {
- return out;
- }
-
- protected ExprNodeEvaluator getHiveEvaluator() {
- return evaluator;
- }
-
- public ObjectInspector getObjectInspector() {
- return inspector;
- }
-
- @Override
- public void evaluate(IFrameTupleReference r) throws AlgebricksException {
- // initialize hive evaluator
- try {
- if (outputInspector == null)
- outputInspector = evaluator.initialize(inspector);
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- }
-
- readIntoCache(r);
- try {
- Object result = evaluator.evaluate(cachedRowObject);
-
- // if (result == null) {
- // result = evaluator.evaluate(cachedRowObject);
- //
- // // check if result is null
- //
- // String errorMsg = "serialize null object in \n output " +
- // outputInspector.toString() + " \n input "
- // + inspector.toString() + "\n ";
- // errorMsg += "";
- // List<Object> columns = ((StructObjectInspector)
- // inspector).getStructFieldsDataAsList(cachedRowObject);
- // for (Object column : columns) {
- // errorMsg += column.toString() + " ";
- // }
- // errorMsg += "\n";
- // Log.info(errorMsg);
- // System.out.println(errorMsg);
- // // result = new BooleanWritable(true);
- // throw new IllegalStateException(errorMsg);
- // }
-
- serializeResult(result);
- } catch (HiveException e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- } catch (IOException e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- }
- }
-
- /**
- * serialize the result
- *
- * @param result
- * the evaluation result
- * @throws IOException
- * @throws AlgebricksException
- */
- private void serializeResult(Object result) throws IOException,
- AlgebricksException {
- if (lazySer == null)
- lazySer = new LazySerDe();
-
- try {
- BytesWritable outputWritable = (BytesWritable) lazySer.serialize(
- result, outputInspector);
- dataOutput.write(outputWritable.getBytes(), 0,
- outputWritable.getLength());
- } catch (SerDeException e) {
- throw new AlgebricksException(e);
- }
- }
-
- /**
- * bind the tuple reference to the cached row object
- *
- * @param r
- */
- private void readIntoCache(IFrameTupleReference r) {
- if (cachedRowObject == null)
- cachedRowObject = (LazyObject<? extends ObjectInspector>) LazyFactory
- .createLazyObject(inspector);
- cachedRowObject.init(r);
- }
-
- /**
- * set a list of children of this evaluator
- *
- * @param children
- */
- public void setChildren(List<ICopyEvaluator> children) {
- this.children = children;
- }
-
- public void addChild(ICopyEvaluator child) {
- if (children == null)
- children = new ArrayList<ICopyEvaluator>();
- children.add(child);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AggregationFunctionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AggregationFunctionEvaluator.java
deleted file mode 100644
index 271b5e4..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AggregationFunctionEvaluator.java
+++ /dev/null
@@ -1,231 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFCount;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.AggregationBuffer;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.BytesWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyObject;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyAggregateFunction;
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-public class AggregationFunctionEvaluator implements ICopyAggregateFunction {
-
- /**
- * the mode of aggregation function
- */
- private GenericUDAFEvaluator.Mode mode;
-
- /**
- * an array of evaluators
- */
- private ExprNodeEvaluator[] evaluators;
-
- /**
- * udaf evaluator partial
- */
- private GenericUDAFEvaluator udafPartial;
-
- /**
- * udaf evaluator complete
- */
- private GenericUDAFEvaluator udafComplete;
-
- /**
- * cached parameter objects
- */
- private Object[] cachedParameters;
-
- /**
- * cached row objects
- */
- private LazyObject<? extends ObjectInspector> cachedRowObject;
-
- /**
- * the output channel
- */
- private DataOutput out;
-
- /**
- * aggregation buffer
- */
- private AggregationBuffer aggBuffer;
-
- /**
- * we only use lazy serde to do serialization
- */
- private SerDe lazySer;
-
- /**
- * the output object inspector for this aggregation function
- */
- private ObjectInspector outputInspector;
-
- /**
- * the output object inspector for this aggregation function
- */
- private ObjectInspector outputInspectorPartial;
-
- /**
- * parameter inspectors
- */
- private ObjectInspector[] parameterInspectors;
-
- /**
- * output make sure the aggregation functio has least object creation
- *
- * @param desc
- * @param oi
- * @param output
- */
- public AggregationFunctionEvaluator(List<ExprNodeDesc> inputs,
- List<TypeInfo> inputTypes, String genericUDAFName,
- GenericUDAFEvaluator.Mode aggMode, boolean distinct,
- ObjectInspector oi, DataOutput output, ExprNodeEvaluator[] evals,
- ObjectInspector[] pInspectors, Object[] parameterCache,
- SerDe serde, LazyObject<? extends ObjectInspector> row,
- GenericUDAFEvaluator udafunctionPartial,
- GenericUDAFEvaluator udafunctionComplete, ObjectInspector outputOi,
- ObjectInspector outputOiPartial) {
- // shared object across threads
- this.out = output;
- this.mode = aggMode;
- this.parameterInspectors = pInspectors;
-
- // thread local objects
- this.evaluators = evals;
- this.cachedParameters = parameterCache;
- this.cachedRowObject = row;
- this.lazySer = serde;
- this.udafPartial = udafunctionPartial;
- this.udafComplete = udafunctionComplete;
- this.outputInspector = outputOi;
- this.outputInspectorPartial = outputOiPartial;
- }
-
- @Override
- public void init() throws AlgebricksException {
- try {
- aggBuffer = udafPartial.getNewAggregationBuffer();
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- }
-
- @Override
- public void step(IFrameTupleReference tuple) throws AlgebricksException {
- readIntoCache(tuple);
- processRow();
- }
-
- private void processRow() throws AlgebricksException {
- try {
- // get values by evaluating them
- for (int i = 0; i < cachedParameters.length; i++) {
- cachedParameters[i] = evaluators[i].evaluate(cachedRowObject);
- }
- processAggregate();
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- }
-
- private void processAggregate() throws HiveException {
- /**
- * accumulate the aggregation function
- */
- switch (mode) {
- case PARTIAL1:
- case COMPLETE:
- udafPartial.iterate(aggBuffer, cachedParameters);
- break;
- case PARTIAL2:
- case FINAL:
- if (udafPartial instanceof GenericUDAFCount.GenericUDAFCountEvaluator) {
- Object parameter = ((PrimitiveObjectInspector) parameterInspectors[0])
- .getPrimitiveWritableObject(cachedParameters[0]);
- udafPartial.merge(aggBuffer, parameter);
- } else
- udafPartial.merge(aggBuffer, cachedParameters[0]);
- break;
- default:
- break;
- }
- }
-
- /**
- * serialize the result
- *
- * @param result
- * the evaluation result
- * @throws IOException
- * @throws AlgebricksException
- */
- private void serializeResult(Object result, ObjectInspector oi)
- throws IOException, AlgebricksException {
- try {
- BytesWritable outputWritable = (BytesWritable) lazySer.serialize(
- result, oi);
- out.write(outputWritable.getBytes(), 0, outputWritable.getLength());
- } catch (SerDeException e) {
- throw new AlgebricksException(e);
- }
- }
-
- /**
- * bind the tuple reference to the cached row object
- *
- * @param r
- */
- private void readIntoCache(IFrameTupleReference r) {
- cachedRowObject.init(r);
- }
-
- @Override
- public void finish() throws AlgebricksException {
- // aggregator
- try {
- Object result = null;
- result = udafPartial.terminatePartial(aggBuffer);
- if (mode == GenericUDAFEvaluator.Mode.COMPLETE
- || mode == GenericUDAFEvaluator.Mode.FINAL) {
- result = udafComplete.terminate(aggBuffer);
- serializeResult(result, outputInspector);
- } else {
- serializeResult(result, outputInspectorPartial);
- }
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- } catch (IOException e) {
- throw new AlgebricksException(e);
- }
- }
-
- @Override
- public void finishPartial() throws AlgebricksException {
- // aggregator.
- try {
- Object result = null;
- // get aggregations
- result = udafPartial.terminatePartial(aggBuffer);
- serializeResult(result, outputInspectorPartial);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- } catch (IOException e) {
- throw new AlgebricksException(e);
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AggregatuibFunctionSerializableEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AggregatuibFunctionSerializableEvaluator.java
deleted file mode 100644
index 032437b..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/AggregatuibFunctionSerializableEvaluator.java
+++ /dev/null
@@ -1,259 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFCount;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.BytesWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyObject;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopySerializableAggregateFunction;
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-public class AggregatuibFunctionSerializableEvaluator implements
- ICopySerializableAggregateFunction {
-
- /**
- * the mode of aggregation function
- */
- private GenericUDAFEvaluator.Mode mode;
-
- /**
- * an array of evaluators
- */
- private ExprNodeEvaluator[] evaluators;
-
- /**
- * udaf evaluator partial
- */
- private GenericUDAFEvaluator udafPartial;
-
- /**
- * udaf evaluator complete
- */
- private GenericUDAFEvaluator udafComplete;
-
- /**
- * cached parameter objects
- */
- private Object[] cachedParameters;
-
- /**
- * cached row objects
- */
- private LazyObject<? extends ObjectInspector> cachedRowObject;
-
- /**
- * aggregation buffer
- */
- private SerializableBuffer aggBuffer;
-
- /**
- * we only use lazy serde to do serialization
- */
- private SerDe lazySer;
-
- /**
- * the output object inspector for this aggregation function
- */
- private ObjectInspector outputInspector;
-
- /**
- * the output object inspector for this aggregation function
- */
- private ObjectInspector outputInspectorPartial;
-
- /**
- * parameter inspectors
- */
- private ObjectInspector[] parameterInspectors;
-
- /**
- * output make sure the aggregation functio has least object creation
- *
- * @param desc
- * @param oi
- * @param output
- */
- public AggregatuibFunctionSerializableEvaluator(List<ExprNodeDesc> inputs,
- List<TypeInfo> inputTypes, String genericUDAFName,
- GenericUDAFEvaluator.Mode aggMode, boolean distinct,
- ObjectInspector oi, ExprNodeEvaluator[] evals,
- ObjectInspector[] pInspectors, Object[] parameterCache,
- SerDe serde, LazyObject<? extends ObjectInspector> row,
- GenericUDAFEvaluator udafunctionPartial,
- GenericUDAFEvaluator udafunctionComplete, ObjectInspector outputOi,
- ObjectInspector outputOiPartial) throws AlgebricksException {
- // shared object across threads
- this.mode = aggMode;
- this.parameterInspectors = pInspectors;
-
- // thread local objects
- this.evaluators = evals;
- this.cachedParameters = parameterCache;
- this.cachedRowObject = row;
- this.lazySer = serde;
- this.udafPartial = udafunctionPartial;
- this.udafComplete = udafunctionComplete;
- this.outputInspector = outputOi;
- this.outputInspectorPartial = outputOiPartial;
-
- try {
- aggBuffer = (SerializableBuffer) udafPartial
- .getNewAggregationBuffer();
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- }
-
- @Override
- public void init(DataOutput output) throws AlgebricksException {
- try {
- udafPartial.reset(aggBuffer);
- outputAggBuffer(aggBuffer, output);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- }
-
- @Override
- public void step(IFrameTupleReference tuple, byte[] data, int start, int len)
- throws AlgebricksException {
- deSerializeAggBuffer(aggBuffer, data, start, len);
- readIntoCache(tuple);
- processRow();
- serializeAggBuffer(aggBuffer, data, start, len);
- }
-
- private void processRow() throws AlgebricksException {
- try {
- // get values by evaluating them
- for (int i = 0; i < cachedParameters.length; i++) {
- cachedParameters[i] = evaluators[i].evaluate(cachedRowObject);
- }
- processAggregate();
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- }
-
- private void processAggregate() throws HiveException {
- /**
- * accumulate the aggregation function
- */
- switch (mode) {
- case PARTIAL1:
- case COMPLETE:
- udafPartial.iterate(aggBuffer, cachedParameters);
- break;
- case PARTIAL2:
- case FINAL:
- if (udafPartial instanceof GenericUDAFCount.GenericUDAFCountEvaluator) {
- Object parameter = ((PrimitiveObjectInspector) parameterInspectors[0])
- .getPrimitiveWritableObject(cachedParameters[0]);
- udafPartial.merge(aggBuffer, parameter);
- } else
- udafPartial.merge(aggBuffer, cachedParameters[0]);
- break;
- default:
- break;
- }
- }
-
- /**
- * serialize the result
- *
- * @param result
- * the evaluation result
- * @throws IOException
- * @throws AlgebricksException
- */
- private void serializeResult(Object result, ObjectInspector oi,
- DataOutput out) throws IOException, AlgebricksException {
- try {
- BytesWritable outputWritable = (BytesWritable) lazySer.serialize(
- result, oi);
- out.write(outputWritable.getBytes(), 0, outputWritable.getLength());
- } catch (SerDeException e) {
- throw new AlgebricksException(e);
- }
- }
-
- /**
- * bind the tuple reference to the cached row object
- *
- * @param r
- */
- private void readIntoCache(IFrameTupleReference r) {
- cachedRowObject.init(r);
- }
-
- @Override
- public void finish(byte[] data, int start, int len, DataOutput output)
- throws AlgebricksException {
- deSerializeAggBuffer(aggBuffer, data, start, len);
- // aggregator
- try {
- Object result = null;
- result = udafPartial.terminatePartial(aggBuffer);
- if (mode == GenericUDAFEvaluator.Mode.COMPLETE
- || mode == GenericUDAFEvaluator.Mode.FINAL) {
- result = udafComplete.terminate(aggBuffer);
- serializeResult(result, outputInspector, output);
- } else {
- serializeResult(result, outputInspectorPartial, output);
- }
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- } catch (IOException e) {
- throw new AlgebricksException(e);
- }
- }
-
- @Override
- public void finishPartial(byte[] data, int start, int len, DataOutput output)
- throws AlgebricksException {
- deSerializeAggBuffer(aggBuffer, data, start, len);
- // aggregator.
- try {
- Object result = null;
- // get aggregations
- result = udafPartial.terminatePartial(aggBuffer);
- serializeResult(result, outputInspectorPartial, output);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- } catch (IOException e) {
- throw new AlgebricksException(e);
- }
- }
-
- private void serializeAggBuffer(SerializableBuffer buffer, byte[] data,
- int start, int len) throws AlgebricksException {
- buffer.serializeAggBuffer(data, start, len);
- }
-
- private void deSerializeAggBuffer(SerializableBuffer buffer, byte[] data,
- int start, int len) throws AlgebricksException {
- buffer.deSerializeAggBuffer(data, start, len);
- }
-
- private void outputAggBuffer(SerializableBuffer buffer, DataOutput out)
- throws AlgebricksException {
- try {
- buffer.serializeAggBuffer(out);
- } catch (IOException e) {
- throw new AlgebricksException(e);
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/BufferSerDeUtil.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/BufferSerDeUtil.java
deleted file mode 100644
index d73be93..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/BufferSerDeUtil.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-public class BufferSerDeUtil {
-
- public static double getDouble(byte[] bytes, int offset) {
- return Double.longBitsToDouble(getLong(bytes, offset));
- }
-
- public static float getFloat(byte[] bytes, int offset) {
- return Float.intBitsToFloat(getInt(bytes, offset));
- }
-
- public static boolean getBoolean(byte[] bytes, int offset) {
- if (bytes[offset] == 0)
- return false;
- else
- return true;
- }
-
- public static int getInt(byte[] bytes, int offset) {
- return ((bytes[offset] & 0xff) << 24)
- + ((bytes[offset + 1] & 0xff) << 16)
- + ((bytes[offset + 2] & 0xff) << 8)
- + ((bytes[offset + 3] & 0xff) << 0);
- }
-
- public static long getLong(byte[] bytes, int offset) {
- return (((long) (bytes[offset] & 0xff)) << 56)
- + (((long) (bytes[offset + 1] & 0xff)) << 48)
- + (((long) (bytes[offset + 2] & 0xff)) << 40)
- + (((long) (bytes[offset + 3] & 0xff)) << 32)
- + (((long) (bytes[offset + 4] & 0xff)) << 24)
- + (((long) (bytes[offset + 5] & 0xff)) << 16)
- + (((long) (bytes[offset + 6] & 0xff)) << 8)
- + (((long) (bytes[offset + 7] & 0xff)) << 0);
- }
-
- public static void writeBoolean(boolean value, byte[] bytes, int offset) {
- if (value)
- bytes[offset] = (byte) 1;
- else
- bytes[offset] = (byte) 0;
- }
-
- public static void writeInt(int value, byte[] bytes, int offset) {
- bytes[offset++] = (byte) (value >> 24);
- bytes[offset++] = (byte) (value >> 16);
- bytes[offset++] = (byte) (value >> 8);
- bytes[offset++] = (byte) (value);
- }
-
- public static void writeLong(long value, byte[] bytes, int offset) {
- bytes[offset++] = (byte) (value >> 56);
- bytes[offset++] = (byte) (value >> 48);
- bytes[offset++] = (byte) (value >> 40);
- bytes[offset++] = (byte) (value >> 32);
- bytes[offset++] = (byte) (value >> 24);
- bytes[offset++] = (byte) (value >> 16);
- bytes[offset++] = (byte) (value >> 8);
- bytes[offset++] = (byte) (value);
- }
-
- public static void writeDouble(double value, byte[] bytes, int offset) {
- long lValue = Double.doubleToLongBits(value);
- writeLong(lValue, bytes, offset);
- }
-
- public static void writeFloat(float value, byte[] bytes, int offset) {
- int iValue = Float.floatToIntBits(value);
- writeInt(iValue, bytes, offset);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ColumnExpressionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ColumnExpressionEvaluator.java
deleted file mode 100644
index 3296e19..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ColumnExpressionEvaluator.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeColumnEvaluator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class ColumnExpressionEvaluator extends AbstractExpressionEvaluator {
-
- public ColumnExpressionEvaluator(ExprNodeColumnDesc expr,
- ObjectInspector oi, IDataOutputProvider output)
- throws AlgebricksException {
- super(new ExprNodeColumnEvaluator(expr), oi, output);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ConstantExpressionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ConstantExpressionEvaluator.java
deleted file mode 100644
index 62928e6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ConstantExpressionEvaluator.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeConstantEvaluator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class ConstantExpressionEvaluator extends AbstractExpressionEvaluator {
-
- public ConstantExpressionEvaluator(ExprNodeConstantDesc expr,
- ObjectInspector oi, IDataOutputProvider output)
- throws AlgebricksException {
- super(new ExprNodeConstantEvaluator(expr), oi, output);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ExpressionTranslator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ExpressionTranslator.java
deleted file mode 100644
index 2180910..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/ExpressionTranslator.java
+++ /dev/null
@@ -1,233 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hadoop.hive.ql.exec.FunctionInfo;
-import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeFieldDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeNullDesc;
-import org.apache.hadoop.hive.ql.plan.UDTFDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;
-import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.expression.ExpressionConstant;
-import edu.uci.ics.hivesterix.logical.expression.HiveAlgebricksBuiltInFunctionMap;
-import edu.uci.ics.hivesterix.logical.expression.HiveFunctionInfo;
-import edu.uci.ics.hivesterix.logical.expression.HivesterixConstantValue;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.UnnestingFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
-
-public class ExpressionTranslator {
-
- public static Object getHiveExpression(ILogicalExpression expr,
- IVariableTypeEnvironment env) throws Exception {
- if (expr.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL) {
- /**
- * function expression
- */
- AbstractFunctionCallExpression funcExpr = (AbstractFunctionCallExpression) expr;
- IFunctionInfo funcInfo = funcExpr.getFunctionInfo();
- FunctionIdentifier fid = funcInfo.getFunctionIdentifier();
-
- if (fid.getName().equals(ExpressionConstant.FIELDACCESS)) {
- Object info = ((HiveFunctionInfo) funcInfo).getInfo();
- ExprNodeFieldDesc desc = (ExprNodeFieldDesc) info;
- return new ExprNodeFieldDesc(desc.getTypeInfo(),
- desc.getDesc(), desc.getFieldName(), desc.getIsList());
- }
-
- if (fid.getName().equals(ExpressionConstant.NULL)) {
- return new ExprNodeNullDesc();
- }
-
- /**
- * argument expressions: translate argument expressions recursively
- * first, this logic is shared in scalar, aggregation and unnesting
- * function
- */
- List<Mutable<ILogicalExpression>> arguments = funcExpr
- .getArguments();
- List<ExprNodeDesc> parameters = new ArrayList<ExprNodeDesc>();
- for (Mutable<ILogicalExpression> argument : arguments) {
- /**
- * parameters could not be aggregate function desc
- */
- ExprNodeDesc parameter = (ExprNodeDesc) getHiveExpression(
- argument.getValue(), env);
- parameters.add(parameter);
- }
-
- /**
- * get expression
- */
- if (funcExpr instanceof ScalarFunctionCallExpression) {
- String udfName = HiveAlgebricksBuiltInFunctionMap.INSTANCE
- .getHiveFunctionName(fid);
- GenericUDF udf;
- if (udfName != null) {
- /**
- * get corresponding function info for built-in functions
- */
- FunctionInfo fInfo = FunctionRegistry
- .getFunctionInfo(udfName);
- udf = fInfo.getGenericUDF();
-
- int inputSize = parameters.size();
- List<ExprNodeDesc> currentDescs = new ArrayList<ExprNodeDesc>();
-
- // generate expression tree if necessary
- while (inputSize > 2) {
- int pairs = inputSize / 2;
- for (int i = 0; i < pairs; i++) {
- List<ExprNodeDesc> descs = new ArrayList<ExprNodeDesc>();
- descs.add(parameters.get(2 * i));
- descs.add(parameters.get(2 * i + 1));
- ExprNodeDesc desc = ExprNodeGenericFuncDesc
- .newInstance(udf, descs);
- currentDescs.add(desc);
- }
-
- if (inputSize % 2 != 0) {
- // List<ExprNodeDesc> descs = new
- // ArrayList<ExprNodeDesc>();
- // ExprNodeDesc lastExpr =
- // currentDescs.remove(currentDescs.size() - 1);
- // descs.add(lastExpr);
- currentDescs.add(parameters.get(inputSize - 1));
- // ExprNodeDesc desc =
- // ExprNodeGenericFuncDesc.newInstance(udf, descs);
- // currentDescs.add(desc);
- }
- inputSize = currentDescs.size();
- parameters.clear();
- parameters.addAll(currentDescs);
- currentDescs.clear();
- }
-
- } else {
- Object secondInfo = ((HiveFunctionInfo) funcInfo).getInfo();
- if (secondInfo != null) {
-
- /**
- * for GenericUDFBridge: we should not call get type of
- * this hive expression, because parameters may have
- * been changed!
- */
- ExprNodeGenericFuncDesc hiveExpr = (ExprNodeGenericFuncDesc) ((HiveFunctionInfo) funcInfo)
- .getInfo();
- udf = hiveExpr.getGenericUDF();
- } else {
- /**
- * for other generic UDF
- */
- Class<?> udfClass;
- try {
- udfClass = Class.forName(fid.getName());
- udf = (GenericUDF) udfClass.newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- }
- }
- }
- /**
- * get hive generic function expression
- */
- ExprNodeDesc desc = ExprNodeGenericFuncDesc.newInstance(udf,
- parameters);
- return desc;
- } else if (funcExpr instanceof AggregateFunctionCallExpression) {
- /**
- * hive aggregation info
- */
- AggregationDesc aggregateDesc = (AggregationDesc) ((HiveFunctionInfo) funcExpr
- .getFunctionInfo()).getInfo();
- /**
- * set parameters
- */
- aggregateDesc
- .setParameters((ArrayList<ExprNodeDesc>) parameters);
-
- List<TypeInfo> originalParameterTypeInfos = new ArrayList<TypeInfo>();
- for (ExprNodeDesc parameter : parameters) {
- if (parameter.getTypeInfo() instanceof StructTypeInfo) {
- originalParameterTypeInfos
- .add(TypeInfoFactory.doubleTypeInfo);
- } else
- originalParameterTypeInfos.add(parameter.getTypeInfo());
- }
-
- GenericUDAFEvaluator eval = FunctionRegistry
- .getGenericUDAFEvaluator(
- aggregateDesc.getGenericUDAFName(),
- originalParameterTypeInfos,
- aggregateDesc.getDistinct(), false);
-
- AggregationDesc newAggregateDesc = new AggregationDesc(
- aggregateDesc.getGenericUDAFName(), eval,
- aggregateDesc.getParameters(),
- aggregateDesc.getDistinct(), aggregateDesc.getMode());
- return newAggregateDesc;
- } else if (funcExpr instanceof UnnestingFunctionCallExpression) {
- /**
- * type inference for UDTF function
- */
- UDTFDesc hiveDesc = (UDTFDesc) ((HiveFunctionInfo) funcExpr
- .getFunctionInfo()).getInfo();
- String funcName = hiveDesc.getUDTFName();
- FunctionInfo fi = FunctionRegistry.getFunctionInfo(funcName);
- GenericUDTF udtf = fi.getGenericUDTF();
- UDTFDesc desc = new UDTFDesc(udtf);
- return desc;
- } else {
- throw new IllegalStateException(
- "unrecognized function expression "
- + expr.getClass().getName());
- }
- } else if ((expr.getExpressionTag() == LogicalExpressionTag.VARIABLE)) {
- /**
- * get type for variable in the environment
- */
- VariableReferenceExpression varExpr = (VariableReferenceExpression) expr;
- LogicalVariable var = varExpr.getVariableReference();
- TypeInfo typeInfo = (TypeInfo) env.getVarType(var);
- ExprNodeDesc desc = new ExprNodeColumnDesc(typeInfo,
- var.toString(), "", false);
- return desc;
- } else if ((expr.getExpressionTag() == LogicalExpressionTag.CONSTANT)) {
- /**
- * get expression for constant in the environment
- */
- ConstantExpression varExpr = (ConstantExpression) expr;
- Object value = ((HivesterixConstantValue) varExpr.getValue())
- .getObject();
- ExprNodeDesc desc = new ExprNodeConstantDesc(value);
- return desc;
- } else {
- throw new IllegalStateException("illegal expressions "
- + expr.getClass().getName());
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/FieldExpressionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/FieldExpressionEvaluator.java
deleted file mode 100644
index 5f6a5dc..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/FieldExpressionEvaluator.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeFieldEvaluator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeFieldDesc;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class FieldExpressionEvaluator extends AbstractExpressionEvaluator {
-
- public FieldExpressionEvaluator(ExprNodeFieldDesc expr, ObjectInspector oi,
- IDataOutputProvider output) throws AlgebricksException {
- super(new ExprNodeFieldEvaluator(expr), oi, output);
- }
-
-}
\ No newline at end of file
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/FunctionExpressionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/FunctionExpressionEvaluator.java
deleted file mode 100644
index c3f3c93..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/FunctionExpressionEvaluator.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class FunctionExpressionEvaluator extends AbstractExpressionEvaluator {
-
- public FunctionExpressionEvaluator(ExprNodeGenericFuncDesc expr,
- ObjectInspector oi, IDataOutputProvider output)
- throws AlgebricksException {
- super(new ExprNodeGenericFuncEvaluator(expr), oi, output);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/NullExpressionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/NullExpressionEvaluator.java
deleted file mode 100644
index cbe5561..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/NullExpressionEvaluator.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import org.apache.hadoop.hive.ql.exec.ExprNodeNullEvaluator;
-import org.apache.hadoop.hive.ql.plan.ExprNodeNullDesc;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class NullExpressionEvaluator extends AbstractExpressionEvaluator {
-
- public NullExpressionEvaluator(ExprNodeNullDesc expr, ObjectInspector oi,
- IDataOutputProvider output) throws AlgebricksException {
- super(new ExprNodeNullEvaluator(expr), oi, output);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/SerializableBuffer.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/SerializableBuffer.java
deleted file mode 100644
index 328b384..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/SerializableBuffer.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import java.io.DataOutput;
-import java.io.IOException;
-
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.AggregationBuffer;
-
-public interface SerializableBuffer extends AggregationBuffer {
-
- public void deSerializeAggBuffer(byte[] data, int start, int len);
-
- public void serializeAggBuffer(byte[] data, int start, int len);
-
- public void serializeAggBuffer(DataOutput output) throws IOException;
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/UDTFFunctionEvaluator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/UDTFFunctionEvaluator.java
deleted file mode 100644
index de0141b..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/evaluator/UDTFFunctionEvaluator.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.evaluator;
-
-import java.io.DataOutput;
-import java.io.IOException;
-
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.UDTFDesc;
-import org.apache.hadoop.hive.ql.udf.generic.Collector;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.io.BytesWritable;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.serde.lazy.LazyColumnar;
-import edu.uci.ics.hivesterix.serde.lazy.LazyFactory;
-import edu.uci.ics.hivesterix.serde.lazy.LazyObject;
-import edu.uci.ics.hivesterix.serde.lazy.LazySerDe;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyUnnestingFunction;
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-public class UDTFFunctionEvaluator implements ICopyUnnestingFunction, Collector {
-
- /**
- * udtf function
- */
- private UDTFDesc func;
-
- /**
- * input object inspector
- */
- private ObjectInspector inputInspector;
-
- /**
- * output object inspector
- */
- private ObjectInspector outputInspector;
-
- /**
- * object inspector for udtf
- */
- private ObjectInspector[] udtfInputOIs;
-
- /**
- * generic udtf
- */
- private GenericUDTF udtf;
-
- /**
- * data output
- */
- private DataOutput out;
-
- /**
- * the input row object
- */
- private LazyColumnar cachedRowObject;
-
- /**
- * cached row object (input)
- */
- private Object[] cachedInputObjects;
-
- /**
- * serialization/deserialization
- */
- private SerDe lazySerDe;
-
- /**
- * columns feed into UDTF
- */
- private int[] columns;
-
- public UDTFFunctionEvaluator(UDTFDesc desc, Schema schema, int[] cols,
- DataOutput output) {
- this.func = desc;
- this.inputInspector = schema.toObjectInspector();
- udtf = func.getGenericUDTF();
- out = output;
- columns = cols;
- }
-
- @Override
- public void init(IFrameTupleReference tuple) throws AlgebricksException {
- cachedInputObjects = new LazyObject[columns.length];
- try {
- cachedRowObject = (LazyColumnar) LazyFactory
- .createLazyObject(inputInspector);
- outputInspector = udtf.initialize(udtfInputOIs);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- udtf.setCollector(this);
- lazySerDe = new LazySerDe();
- readIntoCache(tuple);
- }
-
- @Override
- public boolean step() throws AlgebricksException {
- try {
- udtf.process(cachedInputObjects);
- return true;
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- }
-
- /**
- * bind the tuple reference to the cached row object
- *
- * @param r
- */
- private void readIntoCache(IFrameTupleReference r) {
- cachedRowObject.init(r);
- for (int i = 0; i < cachedInputObjects.length; i++) {
- cachedInputObjects[i] = cachedRowObject.getField(columns[i]);
- }
- }
-
- /**
- * serialize the result
- *
- * @param result
- * the evaluation result
- * @throws IOException
- * @throws AlgebricksException
- */
- private void serializeResult(Object result) throws SerDeException,
- IOException {
- BytesWritable outputWritable = (BytesWritable) lazySerDe.serialize(
- result, outputInspector);
- out.write(outputWritable.getBytes(), 0, outputWritable.getLength());
- }
-
- @Override
- public void collect(Object input) throws HiveException {
- try {
- serializeResult(input);
- } catch (IOException e) {
- throw new HiveException(e);
- } catch (SerDeException e) {
- throw new HiveException(e);
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/exec/HyracksExecutionEngine.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/exec/HyracksExecutionEngine.java
deleted file mode 100644
index ed5ab70..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/exec/HyracksExecutionEngine.java
+++ /dev/null
@@ -1,551 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.exec;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.exec.ConditionalTask;
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.MapRedTask;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.exec.TableScanOperator;
-import org.apache.hadoop.hive.ql.exec.Task;
-import org.apache.hadoop.hive.ql.plan.DynamicPartitionCtx;
-import org.apache.hadoop.hive.ql.plan.FetchWork;
-import org.apache.hadoop.hive.ql.plan.FileSinkDesc;
-import org.apache.hadoop.hive.ql.plan.MapredLocalWork;
-import org.apache.hadoop.hive.ql.plan.MapredWork;
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-import org.apache.hadoop.hive.ql.plan.TableScanDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.HiveExpressionTypeComputer;
-import edu.uci.ics.hivesterix.logical.expression.HiveMergeAggregationExpressionFactory;
-import edu.uci.ics.hivesterix.logical.expression.HiveNullableTypeComputer;
-import edu.uci.ics.hivesterix.logical.expression.HivePartialAggregationTypeComputer;
-import edu.uci.ics.hivesterix.logical.plan.HiveAlgebricksTranslator;
-import edu.uci.ics.hivesterix.logical.plan.HiveLogicalPlanAndMetaData;
-import edu.uci.ics.hivesterix.optimizer.rulecollections.HiveRuleCollections;
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.runtime.factory.evaluator.HiveExpressionRuntimeProvider;
-import edu.uci.ics.hivesterix.runtime.factory.nullwriter.HiveNullWriterFactory;
-import edu.uci.ics.hivesterix.runtime.inspector.HiveBinaryBooleanInspectorFactory;
-import edu.uci.ics.hivesterix.runtime.inspector.HiveBinaryIntegerInspectorFactory;
-import edu.uci.ics.hivesterix.runtime.jobgen.HiveConnectorPolicyAssignmentPolicy;
-import edu.uci.ics.hivesterix.runtime.jobgen.HiveConnectorPolicyAssignmentPolicy.Policy;
-import edu.uci.ics.hivesterix.runtime.provider.HiveBinaryComparatorFactoryProvider;
-import edu.uci.ics.hivesterix.runtime.provider.HiveBinaryHashFunctionFactoryProvider;
-import edu.uci.ics.hivesterix.runtime.provider.HiveBinaryHashFunctionFamilyProvider;
-import edu.uci.ics.hivesterix.runtime.provider.HiveNormalizedKeyComputerFactoryProvider;
-import edu.uci.ics.hivesterix.runtime.provider.HivePrinterFactoryProvider;
-import edu.uci.ics.hivesterix.runtime.provider.HiveSerializerDeserializerProvider;
-import edu.uci.ics.hivesterix.runtime.provider.HiveTypeTraitProvider;
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksAbsolutePartitionConstraint;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
-import edu.uci.ics.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder;
-import edu.uci.ics.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder.DefaultOptimizationContextFactory;
-import edu.uci.ics.hyracks.algebricks.compiler.api.ICompiler;
-import edu.uci.ics.hyracks.algebricks.compiler.api.ICompilerFactory;
-import edu.uci.ics.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController;
-import edu.uci.ics.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialOnceRuleController;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalPlan;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalPlanAndMetadata;
-import edu.uci.ics.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
-import edu.uci.ics.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-import edu.uci.ics.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig;
-import edu.uci.ics.hyracks.api.client.HyracksConnection;
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.api.job.JobId;
-import edu.uci.ics.hyracks.api.job.JobSpecification;
-
-@SuppressWarnings({ "rawtypes", "unchecked" })
-public class HyracksExecutionEngine implements IExecutionEngine {
-
- private static final Log LOG = LogFactory.getLog(HyracksExecutionEngine.class.getName());
-
- private static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> DEFAULT_LOGICAL_REWRITES = new ArrayList<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>>();
- private static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> DEFAULT_PHYSICAL_REWRITES = new ArrayList<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>>();
- static {
- SequentialFixpointRuleController seqCtrlNoDfs = new SequentialFixpointRuleController(false);
- SequentialFixpointRuleController seqCtrlFullDfs = new SequentialFixpointRuleController(true);
- SequentialOnceRuleController seqOnceCtrl = new SequentialOnceRuleController(true);
- DEFAULT_LOGICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqCtrlFullDfs,
- HiveRuleCollections.NORMALIZATION));
- DEFAULT_LOGICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqCtrlNoDfs,
- HiveRuleCollections.COND_PUSHDOWN_AND_JOIN_INFERENCE));
- DEFAULT_LOGICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqCtrlFullDfs,
- HiveRuleCollections.LOAD_FIELDS));
- DEFAULT_LOGICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqCtrlNoDfs,
- HiveRuleCollections.OP_PUSHDOWN));
- DEFAULT_LOGICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqOnceCtrl,
- HiveRuleCollections.DATA_EXCHANGE));
- DEFAULT_LOGICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqCtrlNoDfs,
- HiveRuleCollections.CONSOLIDATION));
-
- DEFAULT_PHYSICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqOnceCtrl,
- HiveRuleCollections.PHYSICAL_PLAN_REWRITES));
- DEFAULT_PHYSICAL_REWRITES.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqOnceCtrl,
- HiveRuleCollections.prepareJobGenRules));
- }
-
- /**
- * static configurations for compiler
- */
- private HeuristicCompilerFactoryBuilder builder;
-
- /**
- * compiler
- */
- private ICompiler compiler;
-
- /**
- * physical optimization config
- */
- private PhysicalOptimizationConfig physicalOptimizationConfig;
-
- /**
- * final ending operators
- */
- private List<Operator> leaveOps = new ArrayList<Operator>();
-
- /**
- * tasks that are already visited
- */
- private Map<Task<? extends Serializable>, Boolean> tasksVisited = new HashMap<Task<? extends Serializable>, Boolean>();
-
- /**
- * hyracks job spec
- */
- private JobSpecification jobSpec;
-
- /**
- * hive configuration
- */
- private HiveConf conf;
-
- /**
- * plan printer
- */
- private PrintWriter planPrinter;
-
- public HyracksExecutionEngine(HiveConf conf) {
- this.conf = conf;
- init(conf);
- }
-
- public HyracksExecutionEngine(HiveConf conf, PrintWriter planPrinter) {
- this.conf = conf;
- this.planPrinter = planPrinter;
- init(conf);
- }
-
- private void init(HiveConf conf) {
- builder = new HeuristicCompilerFactoryBuilder(DefaultOptimizationContextFactory.INSTANCE);
- builder.setLogicalRewrites(DEFAULT_LOGICAL_REWRITES);
- builder.setPhysicalRewrites(DEFAULT_PHYSICAL_REWRITES);
- builder.setIMergeAggregationExpressionFactory(HiveMergeAggregationExpressionFactory.INSTANCE);
- builder.setExpressionTypeComputer(HiveExpressionTypeComputer.INSTANCE);
- builder.setNullableTypeComputer(HiveNullableTypeComputer.INSTANCE);
-
- long memSizeExternalGby = conf.getLong("hive.algebricks.groupby.external.memory", 268435456);
- long memSizeExternalSort = conf.getLong("hive.algebricks.sort.memory", 536870912);
- int frameSize = conf.getInt("hive.algebricks.framesize", 32768);
-
- physicalOptimizationConfig = new PhysicalOptimizationConfig();
- int frameLimitExtGby = (int) (memSizeExternalGby / frameSize);
- physicalOptimizationConfig.setMaxFramesExternalGroupBy(frameLimitExtGby);
- int frameLimitExtSort = (int) (memSizeExternalSort / frameSize);
- physicalOptimizationConfig.setMaxFramesExternalSort(frameLimitExtSort);
- builder.setPhysicalOptimizationConfig(physicalOptimizationConfig);
- }
-
- @Override
- public int compileJob(List<Task<? extends Serializable>> rootTasks) {
- // clean up
- leaveOps.clear();
- tasksVisited.clear();
- jobSpec = null;
-
- HashMap<String, PartitionDesc> aliasToPath = new HashMap<String, PartitionDesc>();
- List<Operator> rootOps = generateRootOperatorDAG(rootTasks, aliasToPath);
-
- // get all leave Ops
- getLeaves(rootOps, leaveOps);
-
- HiveAlgebricksTranslator translator = new HiveAlgebricksTranslator();
- try {
- translator.translate(rootOps, null, aliasToPath);
-
- ILogicalPlan plan = translator.genLogicalPlan();
-
- if (plan.getRoots() != null && plan.getRoots().size() > 0 && plan.getRoots().get(0).getValue() != null) {
- translator.printOperators();
- ILogicalPlanAndMetadata planAndMetadata = new HiveLogicalPlanAndMetaData(plan,
- translator.getMetadataProvider());
-
- ICompilerFactory compilerFactory = builder.create();
- compiler = compilerFactory.createCompiler(planAndMetadata.getPlan(),
- planAndMetadata.getMetadataProvider(), translator.getVariableCounter());
-
- // run optimization and re-writing rules for Hive plan
- compiler.optimize();
-
- // print optimized plan
- LogicalOperatorPrettyPrintVisitor pvisitor = new LogicalOperatorPrettyPrintVisitor();
- StringBuilder buffer = new StringBuilder();
- PlanPrettyPrinter.printPlan(plan, buffer, pvisitor, 0);
- String planStr = buffer.toString();
- System.out.println(planStr);
-
- if (planPrinter != null)
- planPrinter.print(planStr);
- }
- } catch (Exception e) {
- e.printStackTrace();
- return 1;
- }
-
- return 0;
- }
-
- private void codeGen() throws AlgebricksException {
- // number of cpu cores in the cluster
- builder.setClusterLocations(new AlgebricksAbsolutePartitionConstraint(ConfUtil.getNCs()));
- // builder.setClusterTopology(ConfUtil.getClusterTopology());
- builder.setBinaryBooleanInspectorFactory(HiveBinaryBooleanInspectorFactory.INSTANCE);
- builder.setBinaryIntegerInspectorFactory(HiveBinaryIntegerInspectorFactory.INSTANCE);
- builder.setComparatorFactoryProvider(HiveBinaryComparatorFactoryProvider.INSTANCE);
- builder.setExpressionRuntimeProvider(HiveExpressionRuntimeProvider.INSTANCE);
- builder.setHashFunctionFactoryProvider(HiveBinaryHashFunctionFactoryProvider.INSTANCE);
- builder.setPrinterProvider(HivePrinterFactoryProvider.INSTANCE);
- builder.setSerializerDeserializerProvider(HiveSerializerDeserializerProvider.INSTANCE);
- builder.setNullWriterFactory(HiveNullWriterFactory.INSTANCE);
- builder.setNormalizedKeyComputerFactoryProvider(HiveNormalizedKeyComputerFactoryProvider.INSTANCE);
- builder.setPartialAggregationTypeComputer(HivePartialAggregationTypeComputer.INSTANCE);
- builder.setTypeTraitProvider(HiveTypeTraitProvider.INSTANCE);
- builder.setHashFunctionFamilyProvider(HiveBinaryHashFunctionFamilyProvider.INSTANCE);
-
- jobSpec = compiler.createJob(null);
-
- // set the policy
- String policyStr = conf.get("hive.hyracks.connectorpolicy");
- if (policyStr == null)
- policyStr = "PIPELINING";
- Policy policyValue = Policy.valueOf(policyStr);
- jobSpec.setConnectorPolicyAssignmentPolicy(new HiveConnectorPolicyAssignmentPolicy(policyValue));
- jobSpec.setUseConnectorPolicyForScheduling(false);
- }
-
- @Override
- public int executeJob() {
- try {
- codeGen();
- executeHyraxJob(jobSpec);
- } catch (Exception e) {
- e.printStackTrace();
- return 1;
- }
- return 0;
- }
-
- private List<Operator> generateRootOperatorDAG(List<Task<? extends Serializable>> rootTasks,
- HashMap<String, PartitionDesc> aliasToPath) {
-
- List<Operator> rootOps = new ArrayList<Operator>();
- List<Task<? extends Serializable>> toDelete = new ArrayList<Task<? extends Serializable>>();
- tasksVisited.clear();
-
- for (int i = rootTasks.size() - 1; i >= 0; i--) {
- /**
- * list of map-reduce tasks
- */
- Task<? extends Serializable> task = rootTasks.get(i);
-
- if (task instanceof MapRedTask) {
- List<Operator> mapRootOps = articulateMapReduceOperators(task, rootOps, aliasToPath, rootTasks);
- if (i == 0)
- rootOps.addAll(mapRootOps);
- else {
- List<Operator> leaves = new ArrayList<Operator>();
- getLeaves(rootOps, leaves);
-
- List<Operator> mapChildren = new ArrayList<Operator>();
- for (Operator childMap : mapRootOps) {
- if (childMap instanceof TableScanOperator) {
- TableScanDesc topDesc = (TableScanDesc) childMap.getConf();
- if (topDesc == null)
- mapChildren.add(childMap);
- else {
- rootOps.add(childMap);
- }
- } else
- mapChildren.add(childMap);
- }
-
- if (mapChildren.size() > 0) {
- for (Operator leaf : leaves)
- leaf.setChildOperators(mapChildren);
- for (Operator child : mapChildren)
- child.setParentOperators(leaves);
- }
- }
-
- MapredWork mr = (MapredWork) task.getWork();
- HashMap<String, PartitionDesc> map = mr.getAliasToPartnInfo();
-
- addAliasToPartition(aliasToPath, map);
- toDelete.add(task);
- }
- }
-
- for (Task<? extends Serializable> task : toDelete)
- rootTasks.remove(task);
-
- return rootOps;
- }
-
- private void addAliasToPartition(HashMap<String, PartitionDesc> aliasToPath, HashMap<String, PartitionDesc> map) {
- Iterator<String> keys = map.keySet().iterator();
- while (keys.hasNext()) {
- String key = keys.next();
- PartitionDesc part = map.get(key);
- String[] names = key.split(":");
- for (String name : names) {
- aliasToPath.put(name, part);
- }
- }
- }
-
- private List<Operator> articulateMapReduceOperators(Task task, List<Operator> rootOps,
- HashMap<String, PartitionDesc> aliasToPath, List<Task<? extends Serializable>> rootTasks) {
- // System.out.println("!"+task.getName());
- if (!(task instanceof MapRedTask)) {
- if (!(task instanceof ConditionalTask)) {
- rootTasks.add(task);
- return null;
- } else {
- // remove map-reduce branches in condition task
- ConditionalTask condition = (ConditionalTask) task;
- List<Task<? extends Serializable>> branches = condition.getListTasks();
- for (int i = branches.size() - 1; i >= 0; i--) {
- Task branch = branches.get(i);
- if (branch instanceof MapRedTask) {
- return articulateMapReduceOperators(branch, rootOps, aliasToPath, rootTasks);
- }
- }
- rootTasks.add(task);
- return null;
- }
- }
-
- MapredWork mr = (MapredWork) task.getWork();
- HashMap<String, PartitionDesc> map = mr.getAliasToPartnInfo();
-
- // put all aliasToParitionDesc mapping into the map
- addAliasToPartition(aliasToPath, map);
-
- MapRedTask mrtask = (MapRedTask) task;
- MapredWork work = (MapredWork) mrtask.getWork();
- HashMap<String, Operator<? extends Serializable>> operators = work.getAliasToWork();
-
- Set entries = operators.entrySet();
- Iterator<Entry<String, Operator>> iterator = entries.iterator();
- List<Operator> mapRootOps = new ArrayList<Operator>();
-
- // get map root operators
- while (iterator.hasNext()) {
- Operator next = iterator.next().getValue();
- if (!mapRootOps.contains(next)) {
- // clear that only for the case of union
- mapRootOps.add(next);
- }
- }
-
- // get map local work
- MapredLocalWork localWork = work.getMapLocalWork();
- if (localWork != null) {
- HashMap<String, Operator<? extends Serializable>> localOperators = localWork.getAliasToWork();
-
- Set localEntries = localOperators.entrySet();
- Iterator<Entry<String, Operator>> localIterator = localEntries.iterator();
- while (localIterator.hasNext()) {
- mapRootOps.add(localIterator.next().getValue());
- }
-
- HashMap<String, FetchWork> localFetch = localWork.getAliasToFetchWork();
- Set localFetchEntries = localFetch.entrySet();
- Iterator<Entry<String, FetchWork>> localFetchIterator = localFetchEntries.iterator();
- while (localFetchIterator.hasNext()) {
- Entry<String, FetchWork> fetchMap = localFetchIterator.next();
- FetchWork fetch = fetchMap.getValue();
- String alias = fetchMap.getKey();
- List<PartitionDesc> dirPart = fetch.getPartDesc();
-
- // temporary hack: put the first partitionDesc into the map
- aliasToPath.put(alias, dirPart.get(0));
- }
- }
-
- Boolean visited = tasksVisited.get(task);
- if (visited != null && visited.booleanValue() == true) {
- return mapRootOps;
- }
-
- // do that only for union operator
- for (Operator op : mapRootOps)
- if (op.getParentOperators() != null)
- op.getParentOperators().clear();
-
- List<Operator> mapLeaves = new ArrayList<Operator>();
- downToLeaves(mapRootOps, mapLeaves);
- List<Operator> reduceOps = new ArrayList<Operator>();
-
- if (work.getReducer() != null)
- reduceOps.add(work.getReducer());
-
- for (Operator mapLeaf : mapLeaves) {
- mapLeaf.setChildOperators(reduceOps);
- }
-
- for (Operator reduceOp : reduceOps) {
- if (reduceOp != null)
- reduceOp.setParentOperators(mapLeaves);
- }
-
- List<Operator> leafs = new ArrayList<Operator>();
- if (reduceOps.size() > 0) {
- downToLeaves(reduceOps, leafs);
- } else {
- leafs = mapLeaves;
- }
-
- List<Operator> mapChildren = new ArrayList<Operator>();
- if (task.getChildTasks() != null && task.getChildTasks().size() > 0) {
- for (Object child : task.getChildTasks()) {
- List<Operator> childMapOps = articulateMapReduceOperators((Task) child, rootOps, aliasToPath, rootTasks);
- if (childMapOps == null)
- continue;
-
- for (Operator childMap : childMapOps) {
- if (childMap instanceof TableScanOperator) {
- TableScanDesc topDesc = (TableScanDesc) childMap.getConf();
- if (topDesc == null)
- mapChildren.add(childMap);
- else {
- rootOps.add(childMap);
- }
- } else {
- // if not table scan, add the child
- mapChildren.add(childMap);
- }
- }
- }
-
- if (mapChildren.size() > 0) {
- int i = 0;
- for (Operator leaf : leafs) {
- if (leaf.getChildOperators() == null || leaf.getChildOperators().size() == 0)
- leaf.setChildOperators(new ArrayList<Operator>());
- leaf.getChildOperators().add(mapChildren.get(i));
- i++;
- }
- i = 0;
- for (Operator child : mapChildren) {
- if (child.getParentOperators() == null || child.getParentOperators().size() == 0)
- child.setParentOperators(new ArrayList<Operator>());
- child.getParentOperators().add(leafs.get(i));
- i++;
- }
- }
- }
-
- // mark this task as visited
- this.tasksVisited.put(task, true);
- return mapRootOps;
- }
-
- /**
- * down to leaf nodes
- *
- * @param ops
- * @param leaves
- */
- private void downToLeaves(List<Operator> ops, List<Operator> leaves) {
-
- // Operator currentOp;
- for (Operator op : ops) {
- if (op != null && op.getChildOperators() != null && op.getChildOperators().size() > 0) {
- downToLeaves(op.getChildOperators(), leaves);
- } else {
- if (op != null && leaves.indexOf(op) < 0)
- leaves.add(op);
- }
- }
- }
-
- private void getLeaves(List<Operator> roots, List<Operator> currentLeaves) {
- for (Operator op : roots) {
- List<Operator> children = op.getChildOperators();
- if (children == null || children.size() <= 0) {
- currentLeaves.add(op);
- } else {
- getLeaves(children, currentLeaves);
- }
- }
- }
-
- private void executeHyraxJob(JobSpecification job) throws Exception {
- String ipAddress = conf.get("hive.hyracks.host");
- int port = Integer.parseInt(conf.get("hive.hyracks.port"));
- String applicationName = conf.get("hive.hyracks.app");
- //System.out.println("connect to " + ipAddress + " " + port);
-
- IHyracksClientConnection hcc = new HyracksConnection(ipAddress, port);
-
- //System.out.println("get connected");
- long start = System.currentTimeMillis();
- JobId jobId = hcc.startJob(applicationName, job);
- hcc.waitForCompletion(jobId);
-
- //System.out.println("job finished: " + jobId.toString());
- // call all leave nodes to end
- for (Operator leaf : leaveOps) {
- jobClose(leaf);
- }
-
- long end = System.currentTimeMillis();
- System.err.println(start + " " + end + " " + (end - start));
- }
-
- /**
- * mv to final directory on hdfs (not real final)
- *
- * @param leaf
- * @throws Exception
- */
- private void jobClose(Operator leaf) throws Exception {
- FileSinkOperator fsOp = (FileSinkOperator) leaf;
- FileSinkDesc desc = fsOp.getConf();
- boolean isNativeTable = !desc.getTableInfo().isNonNative();
- if ((conf != null) && isNativeTable) {
- String specPath = desc.getDirName();
- DynamicPartitionCtx dpCtx = desc.getDynPartCtx();
- // for 0.7.0
- fsOp.mvFileToFinalPath(specPath, conf, true, LOG, dpCtx);
- // for 0.8.0
- // Utilities.mvFileToFinalPath(specPath, conf, true, LOG, dpCtx,
- // desc);
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/exec/IExecutionEngine.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/exec/IExecutionEngine.java
deleted file mode 100644
index 8f4c471..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/exec/IExecutionEngine.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.exec;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.apache.hadoop.hive.ql.exec.Task;
-
-public interface IExecutionEngine {
-
- /**
- * compile the job
- *
- * @param rootTasks
- * : Hive MapReduce plan
- * @return 0 pass, 1 fail
- */
- public int compileJob(List<Task<? extends Serializable>> rootTasks);
-
- /**
- * execute the job with latest compiled plan
- *
- * @return
- */
- public int executeJob();
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveByteBinaryAscComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveByteBinaryAscComparatorFactory.java
deleted file mode 100644
index 9c2d463..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveByteBinaryAscComparatorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveByteBinaryAscComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveByteBinaryAscComparatorFactory INSTANCE = new HiveByteBinaryAscComparatorFactory();
-
- private HiveByteBinaryAscComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private byte left;
- private byte right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = b1[s1];
- right = b2[s2];
- if (left > right)
- return 1;
- else if (left == right)
- return 0;
- else
- return -1;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveByteBinaryDescComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveByteBinaryDescComparatorFactory.java
deleted file mode 100644
index ee71655..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveByteBinaryDescComparatorFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveByteBinaryDescComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveByteBinaryDescComparatorFactory INSTANCE = new HiveByteBinaryDescComparatorFactory();
-
- private HiveByteBinaryDescComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private byte left;
- private byte right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = b1[s1];
- right = b2[s2];
- if (left > right)
- return -1;
- else if (left == right)
- return 0;
- else
- return 1;
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveDoubleBinaryAscComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveDoubleBinaryAscComparatorFactory.java
deleted file mode 100644
index 739e417..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveDoubleBinaryAscComparatorFactory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveDoubleBinaryAscComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveDoubleBinaryAscComparatorFactory INSTANCE = new HiveDoubleBinaryAscComparatorFactory();
-
- private HiveDoubleBinaryAscComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private double left;
- private double right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = Double.longBitsToDouble(LazyUtils
- .byteArrayToLong(b1, s1));
- right = Double.longBitsToDouble(LazyUtils.byteArrayToLong(b2,
- s2));
- if (left > right)
- return 1;
- else if (left == right)
- return 0;
- else
- return -1;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveDoubleBinaryDescComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveDoubleBinaryDescComparatorFactory.java
deleted file mode 100644
index 0424c9f..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveDoubleBinaryDescComparatorFactory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveDoubleBinaryDescComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveDoubleBinaryDescComparatorFactory INSTANCE = new HiveDoubleBinaryDescComparatorFactory();
-
- private HiveDoubleBinaryDescComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private double left;
- private double right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = Double.longBitsToDouble(LazyUtils
- .byteArrayToLong(b1, s1));
- right = Double.longBitsToDouble(LazyUtils.byteArrayToLong(b2,
- s2));
- if (left > right)
- return -1;
- else if (left == right)
- return 0;
- else
- return 1;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveFloatBinaryAscComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveFloatBinaryAscComparatorFactory.java
deleted file mode 100644
index 08542a7..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveFloatBinaryAscComparatorFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveFloatBinaryAscComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveFloatBinaryAscComparatorFactory INSTANCE = new HiveFloatBinaryAscComparatorFactory();
-
- private HiveFloatBinaryAscComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private float left;
- private float right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = Float.intBitsToFloat(LazyUtils.byteArrayToInt(b1, s1));
- right = Float.intBitsToFloat(LazyUtils.byteArrayToInt(b2, s2));
- if (left > right)
- return 1;
- else if (left == right)
- return 0;
- else
- return -1;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveFloatBinaryDescComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveFloatBinaryDescComparatorFactory.java
deleted file mode 100644
index 513512e..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveFloatBinaryDescComparatorFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveFloatBinaryDescComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveFloatBinaryDescComparatorFactory INSTANCE = new HiveFloatBinaryDescComparatorFactory();
-
- private HiveFloatBinaryDescComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private float left;
- private float right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = Float.intBitsToFloat(LazyUtils.byteArrayToInt(b1, s1));
- right = Float.intBitsToFloat(LazyUtils.byteArrayToInt(b2, s2));
- if (left > right)
- return -1;
- else if (left == right)
- return 0;
- else
- return 1;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveIntegerBinaryAscComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveIntegerBinaryAscComparatorFactory.java
deleted file mode 100644
index 947f30f..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveIntegerBinaryAscComparatorFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveIntegerBinaryAscComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static final HiveIntegerBinaryAscComparatorFactory INSTANCE = new HiveIntegerBinaryAscComparatorFactory();
-
- private HiveIntegerBinaryAscComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private VInt left = new VInt();
- private VInt right = new VInt();
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- LazyUtils.readVInt(b1, s1, left);
- LazyUtils.readVInt(b2, s2, right);
-
- if (left.length != l1 || right.length != l2)
- throw new IllegalArgumentException(
- "length mismatch in int comparator function actual: "
- + left.length + "," + right.length
- + " expected " + l1 + "," + l2);
-
- if (left.value > right.value)
- return 1;
- else if (left.value == right.value)
- return 0;
- else
- return -1;
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveIntegerBinaryDescComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveIntegerBinaryDescComparatorFactory.java
deleted file mode 100644
index 7614aa1..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveIntegerBinaryDescComparatorFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveIntegerBinaryDescComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static final HiveIntegerBinaryDescComparatorFactory INSTANCE = new HiveIntegerBinaryDescComparatorFactory();
-
- private HiveIntegerBinaryDescComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private VInt left = new VInt();
- private VInt right = new VInt();
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- LazyUtils.readVInt(b1, s1, left);
- LazyUtils.readVInt(b2, s2, right);
- if (left.length != l1 || right.length != l2)
- throw new IllegalArgumentException(
- "length mismatch in int comparator function actual: "
- + left.length + " expected " + l1);
- if (left.value > right.value)
- return -1;
- else if (left.value == right.value)
- return 0;
- else
- return 1;
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveLongBinaryAscComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveLongBinaryAscComparatorFactory.java
deleted file mode 100644
index f5f3473..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveLongBinaryAscComparatorFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VLong;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveLongBinaryAscComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static final HiveLongBinaryAscComparatorFactory INSTANCE = new HiveLongBinaryAscComparatorFactory();
-
- private HiveLongBinaryAscComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private VLong left = new VLong();
- private VLong right = new VLong();
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- LazyUtils.readVLong(b1, s1, left);
- LazyUtils.readVLong(b2, s2, right);
- if (left.length != l1 || right.length != l2)
- throw new IllegalArgumentException(
- "length mismatch in int comparator function actual: "
- + left.length + " expected " + l1);
- if (left.value > right.value)
- return 1;
- else if (left.value == right.value)
- return 0;
- else
- return -1;
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveLongBinaryDescComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveLongBinaryDescComparatorFactory.java
deleted file mode 100644
index b878b22..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveLongBinaryDescComparatorFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VLong;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveLongBinaryDescComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static final HiveLongBinaryDescComparatorFactory INSTANCE = new HiveLongBinaryDescComparatorFactory();
-
- private HiveLongBinaryDescComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private VLong left = new VLong();
- private VLong right = new VLong();
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- LazyUtils.readVLong(b1, s1, left);
- LazyUtils.readVLong(b2, s2, right);
- if (left.length != l1 || right.length != l2)
- throw new IllegalArgumentException(
- "length mismatch in int comparator function actual: "
- + left.length + " expected " + l1);
- if (left.value > right.value)
- return -1;
- else if (left.value == right.value)
- return 0;
- else
- return 1;
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveShortBinaryAscComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveShortBinaryAscComparatorFactory.java
deleted file mode 100644
index 8d55cdb..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveShortBinaryAscComparatorFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveShortBinaryAscComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveShortBinaryAscComparatorFactory INSTANCE = new HiveShortBinaryAscComparatorFactory();
-
- private HiveShortBinaryAscComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private short left;
- private short right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = LazyUtils.byteArrayToShort(b1, s1);
- right = LazyUtils.byteArrayToShort(b2, s2);
- if (left > right)
- return 1;
- else if (left == right)
- return 0;
- else
- return -1;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveShortBinaryDescComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveShortBinaryDescComparatorFactory.java
deleted file mode 100644
index 4e8dde6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveShortBinaryDescComparatorFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveShortBinaryDescComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveShortBinaryDescComparatorFactory INSTANCE = new HiveShortBinaryDescComparatorFactory();
-
- private HiveShortBinaryDescComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private short left;
- private short right;
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- left = LazyUtils.byteArrayToShort(b1, s1);
- right = LazyUtils.byteArrayToShort(b2, s2);
- if (left > right)
- return -1;
- else if (left == right)
- return 0;
- else
- return 1;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveStringBinaryAscComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveStringBinaryAscComparatorFactory.java
deleted file mode 100644
index a334ecf..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveStringBinaryAscComparatorFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import org.apache.hadoop.io.Text;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveStringBinaryAscComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveStringBinaryAscComparatorFactory INSTANCE = new HiveStringBinaryAscComparatorFactory();
-
- private HiveStringBinaryAscComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private VInt leftLen = new VInt();
- private VInt rightLen = new VInt();
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- LazyUtils.readVInt(b1, s1, leftLen);
- LazyUtils.readVInt(b2, s2, rightLen);
-
- if (leftLen.value + leftLen.length != l1
- || rightLen.value + rightLen.length != l2)
- throw new IllegalStateException(
- "parse string: length mismatch, expected "
- + (leftLen.value + leftLen.length) + ", "
- + (rightLen.value + rightLen.length)
- + " but get " + l1 + ", " + l2);
-
- return Text.Comparator.compareBytes(b1, s1 + leftLen.length, l1
- - leftLen.length, b2, s2 + rightLen.length, l2
- - rightLen.length);
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveStringBinaryDescComparatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveStringBinaryDescComparatorFactory.java
deleted file mode 100644
index e00b58e..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/comparator/HiveStringBinaryDescComparatorFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.comparator;
-
-import org.apache.hadoop.io.WritableComparator;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveStringBinaryDescComparatorFactory implements
- IBinaryComparatorFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveStringBinaryDescComparatorFactory INSTANCE = new HiveStringBinaryDescComparatorFactory();
-
- private HiveStringBinaryDescComparatorFactory() {
- }
-
- @Override
- public IBinaryComparator createBinaryComparator() {
- return new IBinaryComparator() {
- private VInt leftLen = new VInt();
- private VInt rightLen = new VInt();
-
- @Override
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2,
- int l2) {
- LazyUtils.readVInt(b1, s1, leftLen);
- LazyUtils.readVInt(b2, s2, rightLen);
-
- if (leftLen.value + leftLen.length != l1
- || rightLen.value + rightLen.length != l2)
- throw new IllegalStateException(
- "parse string: length mismatch, expected "
- + (leftLen.value + leftLen.length) + ", "
- + (rightLen.value + rightLen.length)
- + " but get " + l1 + ", " + l2);
-
- return -WritableComparator.compareBytes(b1,
- s1 + leftLen.length, l1 - leftLen.length, b2, s2
- + rightLen.length, l2 - rightLen.length);
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/AggregationFunctionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/AggregationFunctionFactory.java
deleted file mode 100644
index c6078ca..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/AggregationFunctionFactory.java
+++ /dev/null
@@ -1,381 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluatorFactory;
-import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
-import org.apache.hadoop.hive.ql.exec.Utilities;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.AggregationFunctionEvaluator;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hivesterix.serde.lazy.LazyFactory;
-import edu.uci.ics.hivesterix.serde.lazy.LazyObject;
-import edu.uci.ics.hivesterix.serde.lazy.LazySerDe;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyAggregateFunction;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyAggregateFunctionFactory;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class AggregationFunctionFactory implements
- ICopyAggregateFunctionFactory {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * list of parameters' serialization
- */
- private List<String> parametersSerialization = new ArrayList<String>();
-
- /**
- * the name of the udf
- */
- private String genericUDAFName;
-
- /**
- * aggregation mode
- */
- private GenericUDAFEvaluator.Mode mode;
-
- /**
- * list of type info
- */
- private List<TypeInfo> types = new ArrayList<TypeInfo>();
-
- /**
- * distinct or not
- */
- private boolean distinct;
-
- /**
- * the schema of incoming rows
- */
- private Schema rowSchema;
-
- /**
- * list of parameters
- */
- private transient List<ExprNodeDesc> parametersOrigin;
-
- /**
- * row inspector
- */
- private transient ObjectInspector rowInspector = null;
-
- /**
- * output object inspector
- */
- private transient ObjectInspector outputInspector = null;
-
- /**
- * output object inspector
- */
- private transient ObjectInspector outputInspectorPartial = null;
-
- /**
- * parameter inspectors
- */
- private transient ObjectInspector[] parameterInspectors = null;
-
- /**
- * expression desc
- */
- private transient HashMap<Long, List<ExprNodeDesc>> parameterExprs = new HashMap<Long, List<ExprNodeDesc>>();
-
- /**
- * evaluators
- */
- private transient HashMap<Long, ExprNodeEvaluator[]> evaluators = new HashMap<Long, ExprNodeEvaluator[]>();
-
- /**
- * cached parameter objects
- */
- private transient HashMap<Long, Object[]> cachedParameters = new HashMap<Long, Object[]>();
-
- /**
- * cached row object: one per thread
- */
- private transient HashMap<Long, LazyObject<? extends ObjectInspector>> cachedRowObjects = new HashMap<Long, LazyObject<? extends ObjectInspector>>();
-
- /**
- * we only use lazy serde to do serialization
- */
- private transient HashMap<Long, SerDe> serDe = new HashMap<Long, SerDe>();
-
- /**
- * udaf evaluators
- */
- private transient HashMap<Long, GenericUDAFEvaluator> udafsPartial = new HashMap<Long, GenericUDAFEvaluator>();
-
- /**
- * udaf evaluators
- */
- private transient HashMap<Long, GenericUDAFEvaluator> udafsComplete = new HashMap<Long, GenericUDAFEvaluator>();
-
- /**
- * aggregation function desc
- */
- private transient AggregationDesc aggregator;
-
- /**
- *
- * @param aggregator
- * Algebricks function call expression
- * @param oi
- * schema
- */
- public AggregationFunctionFactory(
- AggregateFunctionCallExpression expression, Schema oi,
- IVariableTypeEnvironment env) throws AlgebricksException {
-
- try {
- aggregator = (AggregationDesc) ExpressionTranslator
- .getHiveExpression(expression, env);
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- }
- init(aggregator.getParameters(), aggregator.getGenericUDAFName(),
- aggregator.getMode(), aggregator.getDistinct(), oi);
- }
-
- /**
- * constructor of aggregation function factory
- *
- * @param inputs
- * @param name
- * @param udafMode
- * @param distinct
- * @param oi
- */
- private void init(List<ExprNodeDesc> inputs, String name,
- GenericUDAFEvaluator.Mode udafMode, boolean distinct, Schema oi) {
- parametersOrigin = inputs;
- genericUDAFName = name;
- mode = udafMode;
- this.distinct = distinct;
- rowSchema = oi;
-
- for (ExprNodeDesc input : inputs) {
- TypeInfo type = input.getTypeInfo();
- if (type instanceof StructTypeInfo) {
- types.add(TypeInfoFactory.doubleTypeInfo);
- } else
- types.add(type);
-
- String s = Utilities.serializeExpression(input);
- parametersSerialization.add(s);
- }
- }
-
- @Override
- public synchronized ICopyAggregateFunction createAggregateFunction(
- IDataOutputProvider provider) throws AlgebricksException {
- if (parametersOrigin == null) {
- Configuration config = new Configuration();
- config.setClassLoader(this.getClass().getClassLoader());
- /**
- * in case of class.forname(...) call in hive code
- */
- Thread.currentThread().setContextClassLoader(
- this.getClass().getClassLoader());
-
- parametersOrigin = new ArrayList<ExprNodeDesc>();
- for (String serialization : parametersSerialization) {
- parametersOrigin.add(Utilities.deserializeExpression(
- serialization, config));
- }
- }
-
- /**
- * exprs
- */
- if (parameterExprs == null)
- parameterExprs = new HashMap<Long, List<ExprNodeDesc>>();
-
- /**
- * evaluators
- */
- if (evaluators == null)
- evaluators = new HashMap<Long, ExprNodeEvaluator[]>();
-
- /**
- * cached parameter objects
- */
- if (cachedParameters == null)
- cachedParameters = new HashMap<Long, Object[]>();
-
- /**
- * cached row object: one per thread
- */
- if (cachedRowObjects == null)
- cachedRowObjects = new HashMap<Long, LazyObject<? extends ObjectInspector>>();
-
- /**
- * we only use lazy serde to do serialization
- */
- if (serDe == null)
- serDe = new HashMap<Long, SerDe>();
-
- /**
- * UDAF functions
- */
- if (udafsComplete == null)
- udafsComplete = new HashMap<Long, GenericUDAFEvaluator>();
-
- /**
- * UDAF functions
- */
- if (udafsPartial == null)
- udafsPartial = new HashMap<Long, GenericUDAFEvaluator>();
-
- if (parameterInspectors == null)
- parameterInspectors = new ObjectInspector[parametersOrigin.size()];
-
- if (rowInspector == null)
- rowInspector = rowSchema.toObjectInspector();
-
- // get current thread id
- long threadId = Thread.currentThread().getId();
-
- /**
- * expressions, expressions are thread local
- */
- List<ExprNodeDesc> parameters = parameterExprs.get(threadId);
- if (parameters == null) {
- parameters = new ArrayList<ExprNodeDesc>();
- for (ExprNodeDesc parameter : parametersOrigin)
- parameters.add(parameter.clone());
- parameterExprs.put(threadId, parameters);
- }
-
- /**
- * cached parameter objects
- */
- Object[] cachedParas = cachedParameters.get(threadId);
- if (cachedParas == null) {
- cachedParas = new Object[parameters.size()];
- cachedParameters.put(threadId, cachedParas);
- }
-
- /**
- * cached row object: one per thread
- */
- LazyObject<? extends ObjectInspector> cachedRowObject = cachedRowObjects
- .get(threadId);
- if (cachedRowObject == null) {
- cachedRowObject = LazyFactory.createLazyObject(rowInspector);
- cachedRowObjects.put(threadId, cachedRowObject);
- }
-
- /**
- * we only use lazy serde to do serialization
- */
- SerDe lazySer = serDe.get(threadId);
- if (lazySer == null) {
- lazySer = new LazySerDe();
- serDe.put(threadId, lazySer);
- }
-
- /**
- * evaluators
- */
- ExprNodeEvaluator[] evals = evaluators.get(threadId);
- if (evals == null) {
- evals = new ExprNodeEvaluator[parameters.size()];
- evaluators.put(threadId, evals);
- }
-
- GenericUDAFEvaluator udafPartial;
- GenericUDAFEvaluator udafComplete;
-
- // initialize object inspectors
- try {
- /**
- * evaluators, udf, object inpsectors are shared in one thread
- */
- for (int i = 0; i < evals.length; i++) {
- if (evals[i] == null) {
- evals[i] = ExprNodeEvaluatorFactory.get(parameters.get(i));
- if (parameterInspectors[i] == null) {
- parameterInspectors[i] = evals[i]
- .initialize(rowInspector);
- } else {
- evals[i].initialize(rowInspector);
- }
- }
- }
-
- udafComplete = udafsComplete.get(threadId);
- if (udafComplete == null) {
- try {
- udafComplete = FunctionRegistry.getGenericUDAFEvaluator(
- genericUDAFName, types, distinct, false);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- udafsComplete.put(threadId, udafComplete);
- udafComplete.init(mode, parameterInspectors);
- }
-
- // multiple stage group by, determined by the mode parameter
- if (outputInspector == null)
- outputInspector = udafComplete.init(mode, parameterInspectors);
-
- // initial partial gby udaf
- GenericUDAFEvaluator.Mode partialMode;
- // adjust mode for external groupby
- if (mode == GenericUDAFEvaluator.Mode.COMPLETE)
- partialMode = GenericUDAFEvaluator.Mode.PARTIAL1;
- else if (mode == GenericUDAFEvaluator.Mode.FINAL)
- partialMode = GenericUDAFEvaluator.Mode.PARTIAL2;
- else
- partialMode = mode;
- udafPartial = udafsPartial.get(threadId);
- if (udafPartial == null) {
- try {
- udafPartial = FunctionRegistry.getGenericUDAFEvaluator(
- genericUDAFName, types, distinct, false);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- udafPartial.init(partialMode, parameterInspectors);
- udafsPartial.put(threadId, udafPartial);
- }
-
- // multiple stage group by, determined by the mode parameter
- if (outputInspectorPartial == null)
- outputInspectorPartial = udafPartial.init(partialMode,
- parameterInspectors);
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e);
- }
-
- return new AggregationFunctionEvaluator(parameters, types,
- genericUDAFName, mode, distinct, rowInspector,
- provider.getDataOutput(), evals, parameterInspectors,
- cachedParas, lazySer, cachedRowObject, udafPartial,
- udafComplete, outputInspector, outputInspectorPartial);
- }
-
- public String toString() {
- return "aggregation function expression evaluator factory: "
- + this.genericUDAFName;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/AggregationFunctionSerializableFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/AggregationFunctionSerializableFactory.java
deleted file mode 100644
index 73717a3..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/AggregationFunctionSerializableFactory.java
+++ /dev/null
@@ -1,381 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluatorFactory;
-import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
-import org.apache.hadoop.hive.ql.exec.Utilities;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.AggregationDesc;
-import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.AggregatuibFunctionSerializableEvaluator;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hivesterix.serde.lazy.LazyFactory;
-import edu.uci.ics.hivesterix.serde.lazy.LazyObject;
-import edu.uci.ics.hivesterix.serde.lazy.LazySerDe;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopySerializableAggregateFunction;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopySerializableAggregateFunctionFactory;
-
-public class AggregationFunctionSerializableFactory implements
- ICopySerializableAggregateFunctionFactory {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * list of parameters' serialization
- */
- private List<String> parametersSerialization = new ArrayList<String>();
-
- /**
- * the name of the udf
- */
- private String genericUDAFName;
-
- /**
- * aggregation mode
- */
- private GenericUDAFEvaluator.Mode mode;
-
- /**
- * list of type info
- */
- private List<TypeInfo> types = new ArrayList<TypeInfo>();
-
- /**
- * distinct or not
- */
- private boolean distinct;
-
- /**
- * the schema of incoming rows
- */
- private Schema rowSchema;
-
- /**
- * list of parameters
- */
- private transient List<ExprNodeDesc> parametersOrigin;
-
- /**
- * row inspector
- */
- private transient ObjectInspector rowInspector = null;
-
- /**
- * output object inspector
- */
- private transient ObjectInspector outputInspector = null;
-
- /**
- * output object inspector
- */
- private transient ObjectInspector outputInspectorPartial = null;
-
- /**
- * parameter inspectors
- */
- private transient ObjectInspector[] parameterInspectors = null;
-
- /**
- * expression desc
- */
- private transient HashMap<Long, List<ExprNodeDesc>> parameterExprs = new HashMap<Long, List<ExprNodeDesc>>();
-
- /**
- * evaluators
- */
- private transient HashMap<Long, ExprNodeEvaluator[]> evaluators = new HashMap<Long, ExprNodeEvaluator[]>();
-
- /**
- * cached parameter objects
- */
- private transient HashMap<Long, Object[]> cachedParameters = new HashMap<Long, Object[]>();
-
- /**
- * cached row object: one per thread
- */
- private transient HashMap<Long, LazyObject<? extends ObjectInspector>> cachedRowObjects = new HashMap<Long, LazyObject<? extends ObjectInspector>>();
-
- /**
- * we only use lazy serde to do serialization
- */
- private transient HashMap<Long, SerDe> serDe = new HashMap<Long, SerDe>();
-
- /**
- * udaf evaluators
- */
- private transient HashMap<Long, GenericUDAFEvaluator> udafsPartial = new HashMap<Long, GenericUDAFEvaluator>();
-
- /**
- * udaf evaluators
- */
- private transient HashMap<Long, GenericUDAFEvaluator> udafsComplete = new HashMap<Long, GenericUDAFEvaluator>();
-
- /**
- * aggregation function desc
- */
- private transient AggregationDesc aggregator;
-
- /**
- *
- * @param aggregator
- * Algebricks function call expression
- * @param oi
- * schema
- */
- public AggregationFunctionSerializableFactory(
- AggregateFunctionCallExpression expression, Schema oi,
- IVariableTypeEnvironment env) throws AlgebricksException {
-
- try {
- aggregator = (AggregationDesc) ExpressionTranslator
- .getHiveExpression(expression, env);
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- }
- init(aggregator.getParameters(), aggregator.getGenericUDAFName(),
- aggregator.getMode(), aggregator.getDistinct(), oi);
- }
-
- /**
- * constructor of aggregation function factory
- *
- * @param inputs
- * @param name
- * @param udafMode
- * @param distinct
- * @param oi
- */
- private void init(List<ExprNodeDesc> inputs, String name,
- GenericUDAFEvaluator.Mode udafMode, boolean distinct, Schema oi) {
- parametersOrigin = inputs;
- genericUDAFName = name;
- mode = udafMode;
- this.distinct = distinct;
- rowSchema = oi;
-
- for (ExprNodeDesc input : inputs) {
- TypeInfo type = input.getTypeInfo();
- if (type instanceof StructTypeInfo) {
- types.add(TypeInfoFactory.doubleTypeInfo);
- } else
- types.add(type);
-
- String s = Utilities.serializeExpression(input);
- parametersSerialization.add(s);
- }
- }
-
- @Override
- public synchronized ICopySerializableAggregateFunction createAggregateFunction()
- throws AlgebricksException {
- if (parametersOrigin == null) {
- Configuration config = new Configuration();
- config.setClassLoader(this.getClass().getClassLoader());
- /**
- * in case of class.forname(...) call in hive code
- */
- Thread.currentThread().setContextClassLoader(
- this.getClass().getClassLoader());
-
- parametersOrigin = new ArrayList<ExprNodeDesc>();
- for (String serialization : parametersSerialization) {
- parametersOrigin.add(Utilities.deserializeExpression(
- serialization, config));
- }
- }
-
- /**
- * exprs
- */
- if (parameterExprs == null)
- parameterExprs = new HashMap<Long, List<ExprNodeDesc>>();
-
- /**
- * evaluators
- */
- if (evaluators == null)
- evaluators = new HashMap<Long, ExprNodeEvaluator[]>();
-
- /**
- * cached parameter objects
- */
- if (cachedParameters == null)
- cachedParameters = new HashMap<Long, Object[]>();
-
- /**
- * cached row object: one per thread
- */
- if (cachedRowObjects == null)
- cachedRowObjects = new HashMap<Long, LazyObject<? extends ObjectInspector>>();
-
- /**
- * we only use lazy serde to do serialization
- */
- if (serDe == null)
- serDe = new HashMap<Long, SerDe>();
-
- /**
- * UDAF functions
- */
- if (udafsComplete == null)
- udafsComplete = new HashMap<Long, GenericUDAFEvaluator>();
-
- /**
- * UDAF functions
- */
- if (udafsPartial == null)
- udafsPartial = new HashMap<Long, GenericUDAFEvaluator>();
-
- if (parameterInspectors == null)
- parameterInspectors = new ObjectInspector[parametersOrigin.size()];
-
- if (rowInspector == null)
- rowInspector = rowSchema.toObjectInspector();
-
- // get current thread id
- long threadId = Thread.currentThread().getId();
-
- /**
- * expressions, expressions are thread local
- */
- List<ExprNodeDesc> parameters = parameterExprs.get(threadId);
- if (parameters == null) {
- parameters = new ArrayList<ExprNodeDesc>();
- for (ExprNodeDesc parameter : parametersOrigin)
- parameters.add(parameter.clone());
- parameterExprs.put(threadId, parameters);
- }
-
- /**
- * cached parameter objects
- */
- Object[] cachedParas = cachedParameters.get(threadId);
- if (cachedParas == null) {
- cachedParas = new Object[parameters.size()];
- cachedParameters.put(threadId, cachedParas);
- }
-
- /**
- * cached row object: one per thread
- */
- LazyObject<? extends ObjectInspector> cachedRowObject = cachedRowObjects
- .get(threadId);
- if (cachedRowObject == null) {
- cachedRowObject = LazyFactory.createLazyObject(rowInspector);
- cachedRowObjects.put(threadId, cachedRowObject);
- }
-
- /**
- * we only use lazy serde to do serialization
- */
- SerDe lazySer = serDe.get(threadId);
- if (lazySer == null) {
- lazySer = new LazySerDe();
- serDe.put(threadId, lazySer);
- }
-
- /**
- * evaluators
- */
- ExprNodeEvaluator[] evals = evaluators.get(threadId);
- if (evals == null) {
- evals = new ExprNodeEvaluator[parameters.size()];
- evaluators.put(threadId, evals);
- }
-
- GenericUDAFEvaluator udafPartial;
- GenericUDAFEvaluator udafComplete;
-
- // initialize object inspectors
- try {
- /**
- * evaluators, udf, object inpsectors are shared in one thread
- */
- for (int i = 0; i < evals.length; i++) {
- if (evals[i] == null) {
- evals[i] = ExprNodeEvaluatorFactory.get(parameters.get(i));
- if (parameterInspectors[i] == null) {
- parameterInspectors[i] = evals[i]
- .initialize(rowInspector);
- } else {
- evals[i].initialize(rowInspector);
- }
- }
- }
-
- udafComplete = udafsComplete.get(threadId);
- if (udafComplete == null) {
- try {
- udafComplete = FunctionRegistry.getGenericUDAFEvaluator(
- genericUDAFName, types, distinct, false);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- udafsComplete.put(threadId, udafComplete);
- udafComplete.init(mode, parameterInspectors);
- }
-
- // multiple stage group by, determined by the mode parameter
- if (outputInspector == null)
- outputInspector = udafComplete.init(mode, parameterInspectors);
-
- // initial partial gby udaf
- GenericUDAFEvaluator.Mode partialMode;
- // adjust mode for external groupby
- if (mode == GenericUDAFEvaluator.Mode.COMPLETE)
- partialMode = GenericUDAFEvaluator.Mode.PARTIAL1;
- else if (mode == GenericUDAFEvaluator.Mode.FINAL)
- partialMode = GenericUDAFEvaluator.Mode.PARTIAL2;
- else
- partialMode = mode;
- udafPartial = udafsPartial.get(threadId);
- if (udafPartial == null) {
- try {
- udafPartial = FunctionRegistry.getGenericUDAFEvaluator(
- genericUDAFName, types, distinct, false);
- } catch (HiveException e) {
- throw new AlgebricksException(e);
- }
- udafPartial.init(partialMode, parameterInspectors);
- udafsPartial.put(threadId, udafPartial);
- }
-
- // multiple stage group by, determined by the mode parameter
- if (outputInspectorPartial == null)
- outputInspectorPartial = udafPartial.init(partialMode,
- parameterInspectors);
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e);
- }
-
- return new AggregatuibFunctionSerializableEvaluator(parameters, types,
- genericUDAFName, mode, distinct, rowInspector, evals,
- parameterInspectors, cachedParas, lazySer, cachedRowObject,
- udafPartial, udafComplete, outputInspector,
- outputInspectorPartial);
- }
-
- public String toString() {
- return "aggregation function expression evaluator factory: "
- + this.genericUDAFName;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ColumnExpressionEvaluatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ColumnExpressionEvaluatorFactory.java
deleted file mode 100644
index 68bf408..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ColumnExpressionEvaluatorFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.ColumnExpressionEvaluator;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class ColumnExpressionEvaluatorFactory implements ICopyEvaluatorFactory {
-
- private static final long serialVersionUID = 1L;
-
- private ExprNodeColumnDesc expr;
-
- private Schema inputSchema;
-
- public ColumnExpressionEvaluatorFactory(ILogicalExpression expression,
- Schema schema, IVariableTypeEnvironment env)
- throws AlgebricksException {
- try {
- expr = (ExprNodeColumnDesc) ExpressionTranslator.getHiveExpression(
- expression, env);
- } catch (Exception e) {
- throw new AlgebricksException(e.getMessage());
- }
- inputSchema = schema;
- }
-
- public ICopyEvaluator createEvaluator(IDataOutputProvider output)
- throws AlgebricksException {
- return new ColumnExpressionEvaluator(expr,
- inputSchema.toObjectInspector(), output);
- }
-
- public String toString() {
- return "column expression evaluator factory: " + expr.toString();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ConstantExpressionEvaluatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ConstantExpressionEvaluatorFactory.java
deleted file mode 100644
index e0241a1..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ConstantExpressionEvaluatorFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.ConstantExpressionEvaluator;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class ConstantExpressionEvaluatorFactory implements
- ICopyEvaluatorFactory {
-
- private static final long serialVersionUID = 1L;
-
- private ExprNodeConstantDesc expr;
-
- private Schema schema;
-
- public ConstantExpressionEvaluatorFactory(ILogicalExpression expression,
- Schema inputSchema, IVariableTypeEnvironment env)
- throws AlgebricksException {
- try {
- expr = (ExprNodeConstantDesc) ExpressionTranslator
- .getHiveExpression(expression, env);
- } catch (Exception e) {
- throw new AlgebricksException(e.getMessage());
- }
- schema = inputSchema;
- }
-
- public ICopyEvaluator createEvaluator(IDataOutputProvider output)
- throws AlgebricksException {
- return new ConstantExpressionEvaluator(expr,
- schema.toObjectInspector(), output);
- }
-
- public String toString() {
- return "constant expression evaluator factory: " + expr.toString();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/FieldExpressionEvaluatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/FieldExpressionEvaluatorFactory.java
deleted file mode 100644
index 4b5f906..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/FieldExpressionEvaluatorFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import org.apache.hadoop.hive.ql.plan.ExprNodeFieldDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hivesterix.runtime.evaluator.FieldExpressionEvaluator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class FieldExpressionEvaluatorFactory implements ICopyEvaluatorFactory {
- private static final long serialVersionUID = 1L;
-
- private ExprNodeFieldDesc expr;
-
- private Schema inputSchema;
-
- public FieldExpressionEvaluatorFactory(ILogicalExpression expression,
- Schema schema, IVariableTypeEnvironment env)
- throws AlgebricksException {
- try {
- expr = (ExprNodeFieldDesc) ExpressionTranslator.getHiveExpression(
- expression, env);
- } catch (Exception e) {
- throw new AlgebricksException(e.getMessage());
- }
- inputSchema = schema;
- }
-
- public ICopyEvaluator createEvaluator(IDataOutputProvider output)
- throws AlgebricksException {
- return new FieldExpressionEvaluator(expr,
- inputSchema.toObjectInspector(), output);
- }
-
- public String toString() {
- return "field access expression evaluator factory: " + expr.toString();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/HiveExpressionRuntimeProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/HiveExpressionRuntimeProvider.java
deleted file mode 100644
index 387ca72..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/HiveExpressionRuntimeProvider.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-
-import edu.uci.ics.hivesterix.logical.expression.ExpressionConstant;
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.FunctionKind;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IExpressionRuntimeProvider;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.LogicalExpressionJobGenToExpressionRuntimeProviderAdapter.AggregateFunctionFactoryAdapter;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.LogicalExpressionJobGenToExpressionRuntimeProviderAdapter.ScalarEvaluatorFactoryAdapter;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.LogicalExpressionJobGenToExpressionRuntimeProviderAdapter.UnnestingFunctionFactoryAdapter;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.StatefulFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.UnnestingFunctionCallExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-import edu.uci.ics.hyracks.algebricks.core.jobgen.impl.JobGenContext;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopySerializableAggregateFunctionFactory;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IRunningAggregateEvaluatorFactory;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IUnnestingEvaluatorFactory;
-
-public class HiveExpressionRuntimeProvider implements
- IExpressionRuntimeProvider {
-
- public static final IExpressionRuntimeProvider INSTANCE = new HiveExpressionRuntimeProvider();
-
- @Override
- public IAggregateEvaluatorFactory createAggregateFunctionFactory(
- AggregateFunctionCallExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- Schema schema = this.getSchema(inputSchemas[0], env);
- return new AggregateFunctionFactoryAdapter(
- new AggregationFunctionFactory(expr, schema, env));
- }
-
- @Override
- public ICopySerializableAggregateFunctionFactory createSerializableAggregateFunctionFactory(
- AggregateFunctionCallExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- Schema schema = this.getSchema(inputSchemas[0], env);
- return new AggregationFunctionSerializableFactory(expr, schema, env);
- }
-
- @Override
- public IRunningAggregateEvaluatorFactory createRunningAggregateFunctionFactory(
- StatefulFunctionCallExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- return null;
- }
-
- @Override
- public IUnnestingEvaluatorFactory createUnnestingFunctionFactory(
- UnnestingFunctionCallExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- Schema schema = this.getSchema(inputSchemas[0], env);
- return new UnnestingFunctionFactoryAdapter(
- new UnnestingFunctionFactory(expr, schema, env));
- }
-
- public IScalarEvaluatorFactory createEvaluatorFactory(
- ILogicalExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- switch (expr.getExpressionTag()) {
- case VARIABLE: {
- VariableReferenceExpression v = (VariableReferenceExpression) expr;
- return new ScalarEvaluatorFactoryAdapter(
- createVariableEvaluatorFactory(v, env, inputSchemas,
- context));
- }
- case CONSTANT: {
- ConstantExpression c = (ConstantExpression) expr;
- return new ScalarEvaluatorFactoryAdapter(
- createConstantEvaluatorFactory(c, env, inputSchemas,
- context));
- }
- case FUNCTION_CALL: {
- AbstractFunctionCallExpression fun = (AbstractFunctionCallExpression) expr;
- FunctionIdentifier fid = fun.getFunctionIdentifier();
-
- if (fid.getName().equals(ExpressionConstant.FIELDACCESS)) {
- return new ScalarEvaluatorFactoryAdapter(
- createFieldExpressionEvaluatorFactory(fun, env,
- inputSchemas, context));
- }
-
- if (fid.getName().equals(ExpressionConstant.FIELDACCESS)) {
- return new ScalarEvaluatorFactoryAdapter(
- createNullExpressionEvaluatorFactory(fun, env,
- inputSchemas, context));
- }
-
- if (fun.getKind() == FunctionKind.SCALAR) {
- ScalarFunctionCallExpression scalar = (ScalarFunctionCallExpression) fun;
- return new ScalarEvaluatorFactoryAdapter(
- createScalarFunctionEvaluatorFactory(scalar, env,
- inputSchemas, context));
- } else {
- throw new AlgebricksException(
- "Cannot create evaluator for function " + fun
- + " of kind " + fun.getKind());
- }
- }
- default: {
- throw new IllegalStateException();
- }
- }
- }
-
- private ICopyEvaluatorFactory createVariableEvaluatorFactory(
- VariableReferenceExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- Schema schema = this.getSchema(inputSchemas[0], env);
- return new ColumnExpressionEvaluatorFactory(expr, schema, env);
- }
-
- private ICopyEvaluatorFactory createScalarFunctionEvaluatorFactory(
- AbstractFunctionCallExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- List<String> names = new ArrayList<String>();
- List<TypeInfo> types = new ArrayList<TypeInfo>();
- for (IOperatorSchema inputSchema : inputSchemas) {
- Schema schema = this.getSchema(inputSchema, env);
- names.addAll(schema.getNames());
- types.addAll(schema.getTypes());
- }
- Schema inputSchema = new Schema(names, types);
- return new ScalarFunctionExpressionEvaluatorFactory(expr, inputSchema,
- env);
- }
-
- private ICopyEvaluatorFactory createFieldExpressionEvaluatorFactory(
- AbstractFunctionCallExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- Schema schema = this.getSchema(inputSchemas[0], env);
- return new FieldExpressionEvaluatorFactory(expr, schema, env);
- }
-
- private ICopyEvaluatorFactory createNullExpressionEvaluatorFactory(
- AbstractFunctionCallExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- Schema schema = this.getSchema(inputSchemas[0], env);
- return new NullExpressionEvaluatorFactory(expr, schema, env);
- }
-
- private ICopyEvaluatorFactory createConstantEvaluatorFactory(
- ConstantExpression expr, IVariableTypeEnvironment env,
- IOperatorSchema[] inputSchemas, JobGenContext context)
- throws AlgebricksException {
- Schema schema = this.getSchema(inputSchemas[0], env);
- return new ConstantExpressionEvaluatorFactory(expr, schema, env);
- }
-
- private Schema getSchema(IOperatorSchema inputSchema,
- IVariableTypeEnvironment env) throws AlgebricksException {
- List<String> names = new ArrayList<String>();
- List<TypeInfo> types = new ArrayList<TypeInfo>();
- Iterator<LogicalVariable> variables = inputSchema.iterator();
- while (variables.hasNext()) {
- LogicalVariable var = variables.next();
- names.add(var.toString());
- types.add((TypeInfo) env.getVarType(var));
- }
-
- Schema schema = new Schema(names, types);
- return schema;
- }
-
-}
\ No newline at end of file
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/NullExpressionEvaluatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/NullExpressionEvaluatorFactory.java
deleted file mode 100644
index 8f516e8..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/NullExpressionEvaluatorFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import org.apache.hadoop.hive.ql.plan.ExprNodeNullDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hivesterix.runtime.evaluator.NullExpressionEvaluator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class NullExpressionEvaluatorFactory implements ICopyEvaluatorFactory {
-
- private static final long serialVersionUID = 1L;
-
- private ExprNodeNullDesc expr;
-
- private Schema schema;
-
- public NullExpressionEvaluatorFactory(ILogicalExpression expression,
- Schema intputSchema, IVariableTypeEnvironment env)
- throws AlgebricksException {
- try {
- expr = (ExprNodeNullDesc) ExpressionTranslator.getHiveExpression(
- expression, env);
- } catch (Exception e) {
- throw new AlgebricksException(e.getMessage());
- }
- schema = intputSchema;
- }
-
- public ICopyEvaluator createEvaluator(IDataOutputProvider output)
- throws AlgebricksException {
- return new NullExpressionEvaluator(expr, schema.toObjectInspector(),
- output);
- }
-
- public String toString() {
- return "null expression evaluator factory: " + expr.toString();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ScalarFunctionExpressionEvaluatorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ScalarFunctionExpressionEvaluatorFactory.java
deleted file mode 100644
index 262758e..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/ScalarFunctionExpressionEvaluatorFactory.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.ql.exec.Utilities;
-import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hivesterix.runtime.evaluator.FunctionExpressionEvaluator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluator;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class ScalarFunctionExpressionEvaluatorFactory implements
- ICopyEvaluatorFactory {
-
- private static final long serialVersionUID = 1L;
-
- private transient ExprNodeGenericFuncDesc expr;
-
- private String exprSerialization;
-
- private Schema inputSchema;
-
- private transient Configuration config;
-
- public ScalarFunctionExpressionEvaluatorFactory(
- ILogicalExpression expression, Schema schema,
- IVariableTypeEnvironment env) throws AlgebricksException {
- try {
- expr = (ExprNodeGenericFuncDesc) ExpressionTranslator
- .getHiveExpression(expression, env);
-
- exprSerialization = Utilities.serializeExpression(expr);
-
- } catch (Exception e) {
- e.printStackTrace();
- throw new AlgebricksException(e.getMessage());
- }
- inputSchema = schema;
- }
-
- public synchronized ICopyEvaluator createEvaluator(
- IDataOutputProvider output) throws AlgebricksException {
- if (expr == null) {
- configClassLoader();
- expr = (ExprNodeGenericFuncDesc) Utilities.deserializeExpression(
- exprSerialization, config);
- }
-
- ExprNodeGenericFuncDesc funcDesc = (ExprNodeGenericFuncDesc) expr
- .clone();
- return new FunctionExpressionEvaluator(funcDesc,
- inputSchema.toObjectInspector(), output);
- }
-
- private void configClassLoader() {
- config = new Configuration();
- ClassLoader loader = this.getClass().getClassLoader();
- config.setClassLoader(loader);
- Thread.currentThread().setContextClassLoader(loader);
- }
-
- public String toString() {
- if (expr == null) {
- configClassLoader();
- expr = (ExprNodeGenericFuncDesc) Utilities.deserializeExpression(
- exprSerialization, new Configuration());
- }
-
- return "function expression evaluator factory: " + expr.getExprString();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/UnnestingFunctionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/UnnestingFunctionFactory.java
deleted file mode 100644
index 1d77737..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/evaluator/UnnestingFunctionFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.evaluator;
-
-import org.apache.hadoop.hive.ql.plan.UDTFDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.evaluator.ExpressionTranslator;
-import edu.uci.ics.hivesterix.runtime.evaluator.UDTFFunctionEvaluator;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyUnnestingFunction;
-import edu.uci.ics.hyracks.algebricks.runtime.base.ICopyUnnestingFunctionFactory;
-import edu.uci.ics.hyracks.data.std.api.IDataOutputProvider;
-
-public class UnnestingFunctionFactory implements ICopyUnnestingFunctionFactory {
-
- private static final long serialVersionUID = 1L;
-
- private UDTFDesc expr;
-
- private Schema inputSchema;
-
- private int[] columns;
-
- public UnnestingFunctionFactory(ILogicalExpression expression,
- Schema schema, IVariableTypeEnvironment env)
- throws AlgebricksException {
- try {
- expr = (UDTFDesc) ExpressionTranslator.getHiveExpression(
- expression, env);
- } catch (Exception e) {
- throw new AlgebricksException(e.getMessage());
- }
- inputSchema = schema;
- }
-
- @Override
- public ICopyUnnestingFunction createUnnestingFunction(
- IDataOutputProvider provider) throws AlgebricksException {
- return new UDTFFunctionEvaluator(expr, inputSchema, columns,
- provider.getDataOutput());
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveDoubleBinaryHashFunctionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveDoubleBinaryHashFunctionFactory.java
deleted file mode 100644
index fc302e1..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveDoubleBinaryHashFunctionFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.hashfunction;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunction;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
-
-public class HiveDoubleBinaryHashFunctionFactory implements
- IBinaryHashFunctionFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveDoubleBinaryHashFunctionFactory INSTANCE = new HiveDoubleBinaryHashFunctionFactory();
-
- private HiveDoubleBinaryHashFunctionFactory() {
- }
-
- @Override
- public IBinaryHashFunction createBinaryHashFunction() {
- // TODO Auto-generated method stub
- return new IBinaryHashFunction() {
- private Double value;
-
- @Override
- public int hash(byte[] bytes, int offset, int length) {
- value = Double.longBitsToDouble(LazyUtils.byteArrayToLong(
- bytes, offset));
- return value.hashCode();
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveIntegerBinaryHashFunctionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveIntegerBinaryHashFunctionFactory.java
deleted file mode 100644
index e1a9994..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveIntegerBinaryHashFunctionFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.hashfunction;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunction;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
-
-public class HiveIntegerBinaryHashFunctionFactory implements
- IBinaryHashFunctionFactory {
- private static final long serialVersionUID = 1L;
-
- public static IBinaryHashFunctionFactory INSTANCE = new HiveIntegerBinaryHashFunctionFactory();
-
- private HiveIntegerBinaryHashFunctionFactory() {
- }
-
- @Override
- public IBinaryHashFunction createBinaryHashFunction() {
-
- return new IBinaryHashFunction() {
- private VInt value = new VInt();
-
- @Override
- public int hash(byte[] bytes, int offset, int length) {
- LazyUtils.readVInt(bytes, offset, value);
- if (value.length != length)
- throw new IllegalArgumentException(
- "length mismatch in int hash function actual: "
- + length + " expected " + value.length);
- return value.value;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveLongBinaryHashFunctionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveLongBinaryHashFunctionFactory.java
deleted file mode 100644
index 6f7c6f2..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveLongBinaryHashFunctionFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.hashfunction;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VLong;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunction;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
-
-public class HiveLongBinaryHashFunctionFactory implements
- IBinaryHashFunctionFactory {
- private static final long serialVersionUID = 1L;
-
- public static IBinaryHashFunctionFactory INSTANCE = new HiveLongBinaryHashFunctionFactory();
-
- private HiveLongBinaryHashFunctionFactory() {
- }
-
- @Override
- public IBinaryHashFunction createBinaryHashFunction() {
-
- return new IBinaryHashFunction() {
- private VLong value = new VLong();
-
- @Override
- public int hash(byte[] bytes, int offset, int length) {
- LazyUtils.readVLong(bytes, offset, value);
- return (int) value.value;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveRawBinaryHashFunctionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveRawBinaryHashFunctionFactory.java
deleted file mode 100644
index e03dde0..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveRawBinaryHashFunctionFactory.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.hashfunction;
-
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunction;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
-
-public class HiveRawBinaryHashFunctionFactory implements
- IBinaryHashFunctionFactory {
- private static final long serialVersionUID = 1L;
-
- public static IBinaryHashFunctionFactory INSTANCE = new HiveRawBinaryHashFunctionFactory();
-
- private HiveRawBinaryHashFunctionFactory() {
-
- }
-
- @Override
- public IBinaryHashFunction createBinaryHashFunction() {
-
- return new IBinaryHashFunction() {
-
- @Override
- public int hash(byte[] bytes, int offset, int length) {
- int value = 1;
- int end = offset + length;
- for (int i = offset; i < end; i++)
- value = value * 31 + (int) bytes[i];
- return value;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveStingBinaryHashFunctionFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveStingBinaryHashFunctionFactory.java
deleted file mode 100644
index 055c077..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/HiveStingBinaryHashFunctionFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.hashfunction;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunction;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
-
-public class HiveStingBinaryHashFunctionFactory implements
- IBinaryHashFunctionFactory {
- private static final long serialVersionUID = 1L;
-
- public static HiveStingBinaryHashFunctionFactory INSTANCE = new HiveStingBinaryHashFunctionFactory();
-
- private HiveStingBinaryHashFunctionFactory() {
- }
-
- @Override
- public IBinaryHashFunction createBinaryHashFunction() {
- // TODO Auto-generated method stub
- return new IBinaryHashFunction() {
- private VInt len = new VInt();
-
- @Override
- public int hash(byte[] bytes, int offset, int length) {
- LazyUtils.readVInt(bytes, offset, len);
- if (len.value + len.length != length)
- throw new IllegalStateException(
- "parse string: length mismatch, expected "
- + (len.value + len.length) + " but get "
- + length);
- return hashBytes(bytes, offset + len.length, length
- - len.length);
- }
-
- public int hashBytes(byte[] bytes, int offset, int length) {
- int value = 1;
- int end = offset + length;
- for (int i = offset; i < end; i++)
- value = value * 31 + (int) bytes[i];
- return value;
- }
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/MurmurHash3BinaryHashFunctionFamily.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/MurmurHash3BinaryHashFunctionFamily.java
deleted file mode 100644
index 760a614..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/hashfunction/MurmurHash3BinaryHashFunctionFamily.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.hashfunction;
-
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunction;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFamily;
-
-public class MurmurHash3BinaryHashFunctionFamily implements IBinaryHashFunctionFamily {
-
- public static final IBinaryHashFunctionFamily INSTANCE = new MurmurHash3BinaryHashFunctionFamily();
-
- private static final long serialVersionUID = 1L;
-
- private MurmurHash3BinaryHashFunctionFamily() {
- }
-
- private static final int C1 = 0xcc9e2d51;
- private static final int C2 = 0x1b873593;
- private static final int C3 = 5;
- private static final int C4 = 0xe6546b64;
- private static final int C5 = 0x85ebca6b;
- private static final int C6 = 0xc2b2ae35;
-
- @Override
- public IBinaryHashFunction createBinaryHashFunction(final int seed) {
- return new IBinaryHashFunction() {
- @Override
- public int hash(byte[] bytes, int offset, int length) {
- int h = seed;
- int p = offset;
- int remain = length;
- while (remain >= 4) {
- int k = (bytes[p] & 0xff) | ((bytes[p + 1] & 0xff) << 8) | ((bytes[p + 2] & 0xff) << 16)
- | ((bytes[p + 3] & 0xff) << 24);
- k *= C1;
- k = Integer.rotateLeft(k, 15);
- k *= C2;
- h ^= k;
- h = Integer.rotateLeft(h, 13);
- h = h * C3 + C4;
- p += 4;
- remain -= 4;
- }
- if (remain > 0) {
- int k = 0;
- for (int i = 0; remain > 0; i += 8) {
- k ^= (bytes[p++] & 0xff) << i;
- remain--;
- }
- k *= C1;
- k = Integer.rotateLeft(k, 15);
- k *= C2;
- h ^= k;
- }
- h ^= length;
- h ^= (h >>> 16);
- h *= C5;
- h ^= (h >>> 13);
- h *= C6;
- h ^= (h >>> 16);
- return h;
- }
- };
- }
-}
\ No newline at end of file
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveDoubleAscNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveDoubleAscNormalizedKeyComputerFactory.java
deleted file mode 100644
index 5f03962..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveDoubleAscNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-
-public class HiveDoubleAscNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
-
- return new INormalizedKeyComputer() {
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- int header = LazyUtils.byteArrayToInt(bytes, start);
- long unsignedValue = (long) header;
- return (int) ((unsignedValue - ((long) Integer.MIN_VALUE)) & 0xffffffffL);
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveDoubleDescNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveDoubleDescNormalizedKeyComputerFactory.java
deleted file mode 100644
index e4587a2..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveDoubleDescNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-
-public class HiveDoubleDescNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
- private final INormalizedKeyComputerFactory ascNormalizedKeyComputerFactory = new HiveDoubleAscNormalizedKeyComputerFactory();
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
- return new INormalizedKeyComputer() {
- private INormalizedKeyComputer nmkComputer = ascNormalizedKeyComputerFactory
- .createNormalizedKeyComputer();
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- int nk = nmkComputer.normalize(bytes, start, length);
- return (int) ((long) Integer.MAX_VALUE - (long) (nk - Integer.MIN_VALUE));
- }
-
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveIntegerAscNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveIntegerAscNormalizedKeyComputerFactory.java
deleted file mode 100644
index 2ff390a..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveIntegerAscNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-
-public class HiveIntegerAscNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
-
- return new INormalizedKeyComputer() {
- private VInt vint = new VInt();
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- LazyUtils.readVInt(bytes, start, vint);
- if (vint.length != length)
- throw new IllegalArgumentException(
- "length mismatch in int comparator function actual: "
- + vint.length + " expected " + length);
- long unsignedValue = (long) vint.value;
- return (int) ((unsignedValue - ((long) Integer.MIN_VALUE)) & 0xffffffffL);
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveIntegerDescNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveIntegerDescNormalizedKeyComputerFactory.java
deleted file mode 100644
index 8eff1f8..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveIntegerDescNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-
-public class HiveIntegerDescNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
-
- return new INormalizedKeyComputer() {
- private VInt vint = new VInt();
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- LazyUtils.readVInt(bytes, start, vint);
- if (vint.length != length)
- throw new IllegalArgumentException(
- "length mismatch in int comparator function actual: "
- + vint.length + " expected " + length);
- long unsignedValue = (long) vint.value;
- return (int) ((long) 0xffffffff - unsignedValue);
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveLongAscNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveLongAscNormalizedKeyComputerFactory.java
deleted file mode 100644
index 768eec2..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveLongAscNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VLong;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-
-public class HiveLongAscNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
-
- return new INormalizedKeyComputer() {
- private static final int POSTIVE_LONG_MASK = (3 << 30);
- private static final int NON_NEGATIVE_INT_MASK = (2 << 30);
- private static final int NEGATIVE_LONG_MASK = (0 << 30);
- private VLong vlong = new VLong();
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- LazyUtils.readVLong(bytes, start, vlong);
- if (vlong.length != length)
- throw new IllegalArgumentException(
- "length mismatch in int comparator function actual: "
- + vlong.length + " expected " + length);
- long value = (long) vlong.value;
- int highValue = (int) (value >> 32);
- if (highValue > 0) {
- /**
- * larger than Integer.MAX
- */
- int highNmk = getKey(highValue);
- highNmk >>= 2;
- highNmk |= POSTIVE_LONG_MASK;
- return highNmk;
- } else if (highValue == 0) {
- /**
- * smaller than Integer.MAX but >=0
- */
- int lowNmk = (int) value;
- lowNmk >>= 2;
- lowNmk |= NON_NEGATIVE_INT_MASK;
- return lowNmk;
- } else {
- /**
- * less than 0; TODO: have not optimized for that
- */
- int highNmk = getKey(highValue);
- highNmk >>= 2;
- highNmk |= NEGATIVE_LONG_MASK;
- return highNmk;
- }
- }
-
- private int getKey(int value) {
- long unsignedFirstValue = (long) value;
- int nmk = (int) ((unsignedFirstValue - ((long) Integer.MIN_VALUE)) & 0xffffffffL);
- return nmk;
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveLongDescNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveLongDescNormalizedKeyComputerFactory.java
deleted file mode 100644
index 20ae56a..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveLongDescNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-
-public class HiveLongDescNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
- private final INormalizedKeyComputerFactory ascNormalizedKeyComputerFactory = new HiveIntegerAscNormalizedKeyComputerFactory();
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
- return new INormalizedKeyComputer() {
- private INormalizedKeyComputer nmkComputer = ascNormalizedKeyComputerFactory
- .createNormalizedKeyComputer();
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- int nk = nmkComputer.normalize(bytes, start, length);
- return (int) ((long) Integer.MAX_VALUE - (long) (nk - Integer.MIN_VALUE));
- }
-
- };
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveStringAscNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveStringAscNormalizedKeyComputerFactory.java
deleted file mode 100644
index b16ccba..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveStringAscNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
-
-public class HiveStringAscNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
-
- return new INormalizedKeyComputer() {
- private VInt len = new VInt();
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- LazyUtils.readVInt(bytes, start, len);
-
- if (len.value + len.length != length)
- throw new IllegalStateException(
- "parse string: length mismatch, expected "
- + (len.value + len.length) + " but get "
- + length);
- int nk = 0;
- int offset = start + len.length;
- for (int i = 0; i < 2; ++i) {
- nk <<= 16;
- if (i < len.value) {
- char character = UTF8StringPointable.charAt(bytes,
- offset);
- nk += ((int) character) & 0xffff;
- offset += UTF8StringPointable.charSize(bytes, offset);
- }
- }
- return nk;
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveStringDescNormalizedKeyComputerFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveStringDescNormalizedKeyComputerFactory.java
deleted file mode 100644
index e8978c6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/normalize/HiveStringDescNormalizedKeyComputerFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.normalize;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
-
-public class HiveStringDescNormalizedKeyComputerFactory implements
- INormalizedKeyComputerFactory {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public INormalizedKeyComputer createNormalizedKeyComputer() {
- return new INormalizedKeyComputer() {
- private VInt len = new VInt();
-
- @Override
- public int normalize(byte[] bytes, int start, int length) {
- LazyUtils.readVInt(bytes, start, len);
- if (len.value + len.length != length)
- throw new IllegalStateException(
- "parse string: length mismatch, expected "
- + (len.value + len.length) + " but get "
- + length);
- int nk = 0;
- int offset = start + len.length;
- for (int i = 0; i < 2; ++i) {
- nk <<= 16;
- if (i < len.value) {
- nk += ((int) UTF8StringPointable.charAt(bytes, offset)) & 0xffff;
- offset += UTF8StringPointable.charSize(bytes, offset);
- }
- }
- return (int) ((long) 0xffffffff - (long) nk);
- }
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/nullwriter/HiveNullWriterFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/nullwriter/HiveNullWriterFactory.java
deleted file mode 100644
index 91d08c6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/factory/nullwriter/HiveNullWriterFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.factory.nullwriter;
-
-import java.io.DataOutput;
-
-import edu.uci.ics.hyracks.api.dataflow.value.INullWriter;
-import edu.uci.ics.hyracks.api.dataflow.value.INullWriterFactory;
-import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-
-public class HiveNullWriterFactory implements INullWriterFactory {
-
- private static final long serialVersionUID = 1L;
-
- public static HiveNullWriterFactory INSTANCE = new HiveNullWriterFactory();
-
- @Override
- public INullWriter createNullWriter() {
- return new HiveNullWriter();
- }
-}
-
-class HiveNullWriter implements INullWriter {
-
- @Override
- public void writeNull(DataOutput out) throws HyracksDataException {
- // do nothing
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryBooleanInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryBooleanInspector.java
deleted file mode 100644
index 3d2b141..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryBooleanInspector.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.inspector;
-
-import edu.uci.ics.hyracks.algebricks.data.IBinaryBooleanInspector;
-
-public class HiveBinaryBooleanInspector implements IBinaryBooleanInspector {
-
- HiveBinaryBooleanInspector() {
- }
-
- @Override
- public boolean getBooleanValue(byte[] bytes, int offset, int length) {
- if (length == 0)
- return false;
- if (length != 1)
- throw new IllegalStateException("boolean field error: with length "
- + length);
- return bytes[0] == 1;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryBooleanInspectorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryBooleanInspectorFactory.java
deleted file mode 100644
index 86afbee..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryBooleanInspectorFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.inspector;
-
-import edu.uci.ics.hyracks.algebricks.data.IBinaryBooleanInspector;
-import edu.uci.ics.hyracks.algebricks.data.IBinaryBooleanInspectorFactory;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-
-public class HiveBinaryBooleanInspectorFactory implements
- IBinaryBooleanInspectorFactory {
- private static final long serialVersionUID = 1L;
- public static HiveBinaryBooleanInspectorFactory INSTANCE = new HiveBinaryBooleanInspectorFactory();
-
- private HiveBinaryBooleanInspectorFactory() {
-
- }
-
- @Override
- public IBinaryBooleanInspector createBinaryBooleanInspector(
- IHyracksTaskContext arg0) {
- return new HiveBinaryBooleanInspector();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryIntegerInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryIntegerInspector.java
deleted file mode 100644
index e82e501..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryIntegerInspector.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.inspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hyracks.algebricks.data.IBinaryIntegerInspector;
-
-public class HiveBinaryIntegerInspector implements IBinaryIntegerInspector {
- private VInt value = new VInt();
-
- HiveBinaryIntegerInspector() {
- }
-
- @Override
- public int getIntegerValue(byte[] bytes, int offset, int length) {
- LazyUtils.readVInt(bytes, offset, value);
- if (value.length != length)
- throw new IllegalArgumentException(
- "length mismatch in int hash function actual: " + length
- + " expected " + value.length);
- return value.value;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryIntegerInspectorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryIntegerInspectorFactory.java
deleted file mode 100644
index b44e610..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/inspector/HiveBinaryIntegerInspectorFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.inspector;
-
-import edu.uci.ics.hyracks.algebricks.data.IBinaryIntegerInspector;
-import edu.uci.ics.hyracks.algebricks.data.IBinaryIntegerInspectorFactory;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-
-public class HiveBinaryIntegerInspectorFactory implements
- IBinaryIntegerInspectorFactory {
- private static final long serialVersionUID = 1L;
- public static HiveBinaryIntegerInspectorFactory INSTANCE = new HiveBinaryIntegerInspectorFactory();
-
- private HiveBinaryIntegerInspectorFactory() {
-
- }
-
- @Override
- public IBinaryIntegerInspector createBinaryIntegerInspector(
- IHyracksTaskContext arg0) {
- return new HiveBinaryIntegerInspector();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveConnectorPolicyAssignmentPolicy.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveConnectorPolicyAssignmentPolicy.java
deleted file mode 100644
index 8f559e2..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveConnectorPolicyAssignmentPolicy.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import edu.uci.ics.hyracks.api.dataflow.IConnectorDescriptor;
-import edu.uci.ics.hyracks.api.dataflow.connectors.IConnectorPolicy;
-import edu.uci.ics.hyracks.api.dataflow.connectors.IConnectorPolicyAssignmentPolicy;
-import edu.uci.ics.hyracks.api.dataflow.connectors.PipeliningConnectorPolicy;
-import edu.uci.ics.hyracks.api.dataflow.connectors.SendSideMaterializedBlockingConnectorPolicy;
-import edu.uci.ics.hyracks.api.dataflow.connectors.SendSideMaterializedPipeliningConnectorPolicy;
-import edu.uci.ics.hyracks.api.dataflow.connectors.SendSideMaterializedReceiveSideMaterializedBlockingConnectorPolicy;
-import edu.uci.ics.hyracks.dataflow.std.connectors.MToNPartitioningConnectorDescriptor;
-import edu.uci.ics.hyracks.dataflow.std.connectors.MToNPartitioningMergingConnectorDescriptor;
-
-public class HiveConnectorPolicyAssignmentPolicy implements
- IConnectorPolicyAssignmentPolicy {
- public enum Policy {
- PIPELINING, SEND_SIDE_MAT_PIPELINING, SEND_SIDE_MAT_BLOCKING, SEND_SIDE_MAT_RECEIVE_SIDE_MAT_BLOCKING;
- };
-
- private static final long serialVersionUID = 1L;
-
- private final IConnectorPolicy pipeliningPolicy = new PipeliningConnectorPolicy();
- private final IConnectorPolicy sendSideMatPipeliningPolicy = new SendSideMaterializedPipeliningConnectorPolicy();
- private final IConnectorPolicy sendSideMatBlockingPolicy = new SendSideMaterializedBlockingConnectorPolicy();
- private final IConnectorPolicy sendSideMatReceiveSideMatBlockingPolicy = new SendSideMaterializedReceiveSideMaterializedBlockingConnectorPolicy();
- private final Policy policy;
-
- public HiveConnectorPolicyAssignmentPolicy(Policy policy) {
- this.policy = policy;
- }
-
- @Override
- public IConnectorPolicy getConnectorPolicyAssignment(
- IConnectorDescriptor c, int nProducers, int nConsumers,
- int[] fanouts) {
- if (c instanceof MToNPartitioningMergingConnectorDescriptor) {
- // avoid deadlocks
- switch (policy) {
- case PIPELINING:
- case SEND_SIDE_MAT_PIPELINING:
- return sendSideMatPipeliningPolicy;
- case SEND_SIDE_MAT_BLOCKING:
- return sendSideMatBlockingPolicy;
- case SEND_SIDE_MAT_RECEIVE_SIDE_MAT_BLOCKING:
- return sendSideMatReceiveSideMatBlockingPolicy;
- default:
- return sendSideMatPipeliningPolicy;
- }
- } else if (c instanceof MToNPartitioningConnectorDescriptor) {
- // support different repartitioning policies
- switch (policy) {
- case PIPELINING:
- return pipeliningPolicy;
- case SEND_SIDE_MAT_PIPELINING:
- return sendSideMatPipeliningPolicy;
- case SEND_SIDE_MAT_BLOCKING:
- return sendSideMatBlockingPolicy;
- case SEND_SIDE_MAT_RECEIVE_SIDE_MAT_BLOCKING:
- return sendSideMatReceiveSideMatBlockingPolicy;
- default:
- return pipeliningPolicy;
- }
- } else {
- // pipelining for other connectors
- return pipeliningPolicy;
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSink.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSink.java
deleted file mode 100644
index e4fbca5..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSink.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSink;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.RandomPartitioningProperty;
-
-public class HiveDataSink implements IDataSink {
-
- private Object[] schema;
-
- private Object fsOperator;
-
- public HiveDataSink(Object sink, Object[] sourceSchema) {
- schema = sourceSchema;
- fsOperator = sink;
- }
-
- @Override
- public Object getId() {
- return fsOperator;
- }
-
- @Override
- public Object[] getSchemaTypes() {
- return schema;
- }
-
- public IPartitioningProperty getPartitioningProperty() {
- return new RandomPartitioningProperty(new HiveDomain());
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSource.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSource.java
deleted file mode 100644
index edff056..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSource.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import java.util.List;
-
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSource;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
-
-public class HiveDataSource<P> implements IDataSource<P> {
-
- private P source;
-
- private Object[] schema;
-
- public HiveDataSource(P dataSource, Object[] sourceSchema) {
- source = dataSource;
- schema = sourceSchema;
- }
-
- @Override
- public P getId() {
- return source;
- }
-
- @Override
- public Object[] getSchemaTypes() {
- return schema;
- }
-
- @Override
- public void computeFDs(List<LogicalVariable> scanVariables,
- List<FunctionalDependency> fdList) {
- }
-
- @Override
- public IDataSourcePropertiesProvider getPropertiesProvider() {
- return new HiveDataSourcePartitioningProvider();
- }
-
- @Override
- public String toString() {
- PartitionDesc desc = (PartitionDesc) source;
- return desc.getTableName();
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSourcePartitioningProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSourcePartitioningProvider.java
deleted file mode 100644
index 08dd684..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDataSourcePartitioningProvider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.RandomPartitioningProperty;
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-
-public class HiveDataSourcePartitioningProvider implements
- IDataSourcePropertiesProvider {
-
- @Override
- public IPhysicalPropertiesVector computePropertiesVector(
- List<LogicalVariable> scanVariables) {
- IPartitioningProperty property = new RandomPartitioningProperty(
- new HiveDomain());
- IPhysicalPropertiesVector vector = new StructuralPropertiesVector(
- property, new LinkedList<ILocalStructuralProperty>());
- return vector;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDomain.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDomain.java
deleted file mode 100644
index 0af253a..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveDomain.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.properties.INodeDomain;
-
-public class HiveDomain implements INodeDomain {
-
- @Override
- public boolean sameAs(INodeDomain domain) {
- return true;
- }
-
- @Override
- public Integer cardinality() {
- return 0;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveMetaDataProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveMetaDataProvider.java
deleted file mode 100644
index 6948769..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveMetaDataProvider.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-
-import edu.uci.ics.hivesterix.logical.expression.HiveFunctionInfo;
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
-import edu.uci.ics.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSink;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSource;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSourceIndex;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-import edu.uci.ics.hyracks.algebricks.core.jobgen.impl.JobGenContext;
-import edu.uci.ics.hyracks.algebricks.data.IPrinterFactory;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IPushRuntimeFactory;
-import edu.uci.ics.hyracks.api.dataflow.IOperatorDescriptor;
-import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
-import edu.uci.ics.hyracks.api.job.JobSpecification;
-
-@SuppressWarnings("rawtypes")
-public class HiveMetaDataProvider<S, T> implements IMetadataProvider<S, T> {
-
- private Operator fileSink;
- private Schema outputSchema;
- private HashMap<S, IDataSource<S>> dataSourceMap;
-
- public HiveMetaDataProvider(Operator fsOp, Schema oi, HashMap<S, IDataSource<S>> map) {
- fileSink = fsOp;
- outputSchema = oi;
- dataSourceMap = map;
- }
-
- @Override
- public IDataSourceIndex<T, S> findDataSourceIndex(T indexId, S dataSourceId) throws AlgebricksException {
- return null;
- }
-
- @Override
- public IDataSource<S> findDataSource(S id) throws AlgebricksException {
- return dataSourceMap.get(id);
- }
-
- @Override
- public boolean scannerOperatorIsLeaf(IDataSource<S> dataSource) {
- return true;
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getScannerRuntime(IDataSource<S> dataSource,
- List<LogicalVariable> scanVariables, List<LogicalVariable> projectVariables, boolean projectPushed,
- IOperatorSchema opSchema, IVariableTypeEnvironment typeEnv, JobGenContext context, JobSpecification jobSpec)
- throws AlgebricksException {
-
- S desc = dataSource.getId();
- HiveScanRuntimeGenerator generator = new HiveScanRuntimeGenerator((PartitionDesc) desc);
- return generator.getRuntimeOperatorAndConstraint(dataSource, scanVariables, projectVariables, projectPushed,
- context, jobSpec);
- }
-
- @Override
- public Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint> getWriteFileRuntime(IDataSink sink,
- int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc) {
-
- HiveWriteRuntimeGenerator generator = new HiveWriteRuntimeGenerator((FileSinkOperator) fileSink, outputSchema);
- return generator.getWriterRuntime(inputDesc);
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getDeleteRuntime(IDataSource<S> arg0,
- IOperatorSchema arg1, List<LogicalVariable> arg2, LogicalVariable arg3, RecordDescriptor arg4,
- JobGenContext arg5, JobSpecification arg6) throws AlgebricksException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getInsertRuntime(IDataSource<S> arg0,
- IOperatorSchema arg1, List<LogicalVariable> arg2, LogicalVariable arg3, RecordDescriptor arg4,
- JobGenContext arg5, JobSpecification arg6) throws AlgebricksException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getWriteResultRuntime(IDataSource<S> arg0,
- IOperatorSchema arg1, List<LogicalVariable> arg2, LogicalVariable arg3, JobGenContext arg4,
- JobSpecification arg5) throws AlgebricksException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getResultHandleRuntime(IDataSink sink,
- int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc, boolean ordered,
- JobSpecification spec) throws AlgebricksException {
- return null;
- }
-
- @Override
- public IFunctionInfo lookupFunction(FunctionIdentifier arg0) {
- return new HiveFunctionInfo(arg0, null);
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getIndexInsertRuntime(
- IDataSourceIndex<T, S> dataSource, IOperatorSchema propagatedSchema, IOperatorSchema[] inputSchemas,
- IVariableTypeEnvironment typeEnv, List<LogicalVariable> primaryKeys, List<LogicalVariable> secondaryKeys,
- ILogicalExpression filterExpr, RecordDescriptor recordDesc, JobGenContext context, JobSpecification spec)
- throws AlgebricksException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getIndexDeleteRuntime(
- IDataSourceIndex<T, S> dataSource, IOperatorSchema propagatedSchema, IOperatorSchema[] inputSchemas,
- IVariableTypeEnvironment typeEnv, List<LogicalVariable> primaryKeys, List<LogicalVariable> secondaryKeys,
- ILogicalExpression filterExpr, RecordDescriptor recordDesc, JobGenContext context, JobSpecification spec)
- throws AlgebricksException {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveOperatorSchema.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveOperatorSchema.java
deleted file mode 100644
index 83382f0..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveOperatorSchema.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-
-public class HiveOperatorSchema implements IOperatorSchema {
-
- private final Map<LogicalVariable, Integer> varMap;
-
- private final List<LogicalVariable> varList;
-
- public HiveOperatorSchema() {
- varMap = new HashMap<LogicalVariable, Integer>();
- varList = new ArrayList<LogicalVariable>();
- }
-
- @Override
- public void addAllVariables(IOperatorSchema source) {
- for (LogicalVariable v : source) {
- varMap.put(v, varList.size());
- varList.add(v);
- }
- }
-
- @Override
- public void addAllNewVariables(IOperatorSchema source) {
- for (LogicalVariable v : source) {
- if (varMap.get(v) == null) {
- varMap.put(v, varList.size());
- varList.add(v);
- }
- }
- }
-
- @Override
- public int addVariable(LogicalVariable var) {
- int idx = varList.size();
- varMap.put(var, idx);
- varList.add(var);
- return idx;
- }
-
- @Override
- public void clear() {
- varMap.clear();
- varList.clear();
- }
-
- @Override
- public int findVariable(LogicalVariable var) {
- Integer i = varMap.get(var);
- if (i == null) {
- return -1;
- }
- return i;
- }
-
- @Override
- public int getSize() {
- return varList.size();
- }
-
- @Override
- public LogicalVariable getVariable(int index) {
- return varList.get(index);
- }
-
- @Override
- public Iterator<LogicalVariable> iterator() {
- return varList.iterator();
- }
-
- @Override
- public String toString() {
- return varMap.toString();
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveScanRuntimeGenerator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveScanRuntimeGenerator.java
deleted file mode 100644
index 9c8aee4..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveScanRuntimeGenerator.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-import org.apache.hadoop.mapred.JobConf;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.runtime.operator.filescan.HiveFileScanOperatorDescriptor;
-import edu.uci.ics.hivesterix.runtime.operator.filescan.HiveFileSplitProvider;
-import edu.uci.ics.hivesterix.runtime.operator.filescan.HiveTupleParserFactory;
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
-import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.metadata.IDataSource;
-import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-import edu.uci.ics.hyracks.algebricks.core.jobgen.impl.JobGenContext;
-import edu.uci.ics.hyracks.algebricks.data.ISerializerDeserializerProvider;
-import edu.uci.ics.hyracks.api.dataflow.IOperatorDescriptor;
-import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
-import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
-import edu.uci.ics.hyracks.api.job.JobSpecification;
-import edu.uci.ics.hyracks.dataflow.std.file.IFileSplitProvider;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParserFactory;
-
-@SuppressWarnings({ "rawtypes", "deprecation" })
-public class HiveScanRuntimeGenerator {
-
- private PartitionDesc fileDesc;
-
- private transient Path filePath;
-
- private String filePathName;
-
- private Properties properties;
-
- public HiveScanRuntimeGenerator(PartitionDesc path) {
- fileDesc = path;
- properties = fileDesc.getProperties();
-
- String inputPath = (String) properties.getProperty("location");
-
- if (inputPath.startsWith("file:")) {
- // Windows
- String[] strs = inputPath.split(":");
- filePathName = strs[strs.length - 1];
- } else {
- // Linux
- filePathName = inputPath;
- }
-
- filePath = new Path(filePathName);
- }
-
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getRuntimeOperatorAndConstraint(
- IDataSource dataSource, List<LogicalVariable> scanVariables,
- List<LogicalVariable> projectVariables, boolean projectPushed,
- JobGenContext context, JobSpecification jobSpec)
- throws AlgebricksException {
- // get the correct delimiter from Hive metastore or other data
- // structures
- IOperatorSchema propagatedSchema = new HiveOperatorSchema();
-
- List<LogicalVariable> outputVariables = projectPushed ? projectVariables
- : scanVariables;
- for (LogicalVariable var : outputVariables)
- propagatedSchema.addVariable(var);
-
- int[] outputColumnsOffset = new int[scanVariables.size()];
- int i = 0;
- for (LogicalVariable var : scanVariables)
- if (outputVariables.contains(var)) {
- int offset = outputVariables.indexOf(var);
- outputColumnsOffset[i++] = offset;
- } else
- outputColumnsOffset[i++] = -1;
-
- Object[] schemaTypes = dataSource.getSchemaTypes();
- // get record descriptor
- RecordDescriptor recDescriptor = mkRecordDescriptor(propagatedSchema,
- schemaTypes, context);
-
- // setup the run time operator
- JobConf conf = ConfUtil.getJobConf(fileDesc.getInputFileFormatClass(),
- filePath);
- int clusterSize = ConfUtil.getNCs().length;
- IFileSplitProvider fsprovider = new HiveFileSplitProvider(conf,
- filePathName, clusterSize);
- ITupleParserFactory tupleParserFactory = new HiveTupleParserFactory(
- fileDesc, conf, outputColumnsOffset);
- HiveFileScanOperatorDescriptor opDesc = new HiveFileScanOperatorDescriptor(
- jobSpec, fsprovider, tupleParserFactory, recDescriptor);
-
- return new Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>(
- opDesc, opDesc.getPartitionConstraint());
- }
-
- private static RecordDescriptor mkRecordDescriptor(
- IOperatorSchema opSchema, Object[] types, JobGenContext context)
- throws AlgebricksException {
- ISerializerDeserializer[] fields = new ISerializerDeserializer[opSchema
- .getSize()];
- ISerializerDeserializerProvider sdp = context
- .getSerializerDeserializerProvider();
- int size = opSchema.getSize();
- for (int i = 0; i < size; i++) {
- Object t = types[i];
- fields[i] = sdp.getSerializerDeserializer(t);
- i++;
- }
- return new RecordDescriptor(fields);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveWriteRuntimeGenerator.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveWriteRuntimeGenerator.java
deleted file mode 100644
index d372868..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/jobgen/HiveWriteRuntimeGenerator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.jobgen;
-
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.mapred.JobConf;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.runtime.operator.filewrite.HivePushRuntimeFactory;
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
-import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IPushRuntimeFactory;
-import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
-
-@SuppressWarnings("deprecation")
-public class HiveWriteRuntimeGenerator {
- private FileSinkOperator fileSink;
-
- private Schema inputSchema;
-
- public HiveWriteRuntimeGenerator(FileSinkOperator fsOp, Schema oi) {
- fileSink = fsOp;
- inputSchema = oi;
- }
-
- /**
- * get the write runtime
- *
- * @param inputDesc
- * @return
- */
- public Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint> getWriterRuntime(
- RecordDescriptor inputDesc) {
- JobConf conf = ConfUtil.getJobConf();
- IPushRuntimeFactory factory = new HivePushRuntimeFactory(inputDesc,
- conf, fileSink, inputSchema);
- Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint> pair = new Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint>(
- factory, null);
- return pair;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/AbstractHiveFileSplitProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/AbstractHiveFileSplitProvider.java
deleted file mode 100644
index 2f988f8..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/AbstractHiveFileSplitProvider.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filescan;
-
-import edu.uci.ics.hyracks.dataflow.std.file.FileSplit;
-import edu.uci.ics.hyracks.dataflow.std.file.IFileSplitProvider;
-
-public abstract class AbstractHiveFileSplitProvider implements
- IFileSplitProvider {
- private static final long serialVersionUID = 1L;
-
- @Override
- public FileSplit[] getFileSplits() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @SuppressWarnings("deprecation")
- public abstract org.apache.hadoop.mapred.FileSplit[] getFileSplitArray();
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/AbstractHiveTupleParser.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/AbstractHiveTupleParser.java
deleted file mode 100644
index a8addeb..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/AbstractHiveTupleParser.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filescan;
-
-import java.io.InputStream;
-
-import org.apache.hadoop.mapred.FileSplit;
-
-import edu.uci.ics.hyracks.api.comm.IFrameWriter;
-import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParser;
-
-@SuppressWarnings("deprecation")
-public abstract class AbstractHiveTupleParser implements ITupleParser {
-
- @Override
- public void parse(InputStream in, IFrameWriter writer)
- throws HyracksDataException {
- // empty implementation
- }
-
- /**
- * method for parsing HDFS file split
- *
- * @param split
- * @param writer
- */
- abstract public void parse(FileSplit split, IFrameWriter writer)
- throws HyracksDataException;
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveFileScanOperatorDescriptor.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveFileScanOperatorDescriptor.java
deleted file mode 100644
index 9e62c73..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveFileScanOperatorDescriptor.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.runtime.operator.filescan;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-
-import org.apache.hadoop.mapred.FileSplit;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksAbsolutePartitionConstraint;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-import edu.uci.ics.hyracks.api.dataflow.IOperatorNodePushable;
-import edu.uci.ics.hyracks.api.dataflow.value.IRecordDescriptorProvider;
-import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
-import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.api.job.JobSpecification;
-import edu.uci.ics.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor;
-import edu.uci.ics.hyracks.dataflow.std.base.AbstractUnaryOutputSourceOperatorNodePushable;
-import edu.uci.ics.hyracks.dataflow.std.file.IFileSplitProvider;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParser;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParserFactory;
-
-@SuppressWarnings("deprecation")
-public class HiveFileScanOperatorDescriptor extends
- AbstractSingleActivityOperatorDescriptor {
- private static final long serialVersionUID = 1L;
-
- /**
- * tuple parser factory
- */
- private final ITupleParserFactory tupleParserFactory;
-
- /**
- * Hive file split
- */
- private Partition[] parts;
-
- /**
- * IFileSplitProvider
- */
- private IFileSplitProvider fileSplitProvider;
-
- /**
- * constrains in the form of host DNS names
- */
- private String[] constraintsByHostNames;
-
- /**
- * ip-to-node controller mapping
- */
- private Map<String, List<String>> ncMapping;
-
- /**
- * an array of NCs
- */
- private String[] NCs;
-
- /**
- *
- * @param spec
- * @param fsProvider
- */
- public HiveFileScanOperatorDescriptor(JobSpecification spec,
- IFileSplitProvider fsProvider,
- ITupleParserFactory tupleParserFactory, RecordDescriptor rDesc) {
- super(spec, 0, 1);
- this.tupleParserFactory = tupleParserFactory;
- recordDescriptors[0] = rDesc;
- fileSplitProvider = fsProvider;
- }
-
- /**
- * set partition constraint at the first time it is called the number of
- * partitions is obtained from HDFS name node
- */
- public AlgebricksAbsolutePartitionConstraint getPartitionConstraint()
- throws AlgebricksException {
- FileSplit[] returnedSplits = ((AbstractHiveFileSplitProvider) fileSplitProvider)
- .getFileSplitArray();
- Random random = new Random(System.currentTimeMillis());
- ncMapping = ConfUtil.getNCMapping();
- NCs = ConfUtil.getNCs();
-
- int size = 0;
- for (FileSplit split : returnedSplits)
- if (split != null)
- size++;
-
- FileSplit[] splits = new FileSplit[size];
- for (int i = 0; i < returnedSplits.length; i++)
- if (returnedSplits[i] != null)
- splits[i] = returnedSplits[i];
-
- System.out.println("number of splits: " + splits.length);
- constraintsByHostNames = new String[splits.length];
- for (int i = 0; i < splits.length; i++) {
- try {
- String[] loc = splits[i].getLocations();
- Collections.shuffle(Arrays.asList(loc), random);
- if (loc.length > 0) {
- InetAddress[] allIps = InetAddress.getAllByName(loc[0]);
- for (InetAddress ip : allIps) {
- if (ncMapping.get(ip.getHostAddress()) != null) {
- List<String> ncs = ncMapping.get(ip
- .getHostAddress());
- int pos = random.nextInt(ncs.size());
- constraintsByHostNames[i] = ncs.get(pos);
- } else {
- int pos = random.nextInt(NCs.length);
- constraintsByHostNames[i] = NCs[pos];
- }
- }
- } else {
- int pos = random.nextInt(NCs.length);
- constraintsByHostNames[i] = NCs[pos];
- if (splits[i].getLength() > 0)
- throw new IllegalStateException(
- "non local scanner non locations!!");
- }
- } catch (IOException e) {
- throw new AlgebricksException(e);
- }
- }
-
- parts = new Partition[splits.length];
- for (int i = 0; i < splits.length; i++) {
- parts[i] = new Partition(splits[i]);
- }
- return new AlgebricksAbsolutePartitionConstraint(constraintsByHostNames);
- }
-
- @Override
- public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx,
- IRecordDescriptorProvider recordDescProvider, int partition,
- int nPartitions) {
-
- final ITupleParser tp = tupleParserFactory.createTupleParser(ctx);
- final int partitionId = partition;
-
- return new AbstractUnaryOutputSourceOperatorNodePushable() {
-
- @Override
- public void initialize() throws HyracksDataException {
- writer.open();
- FileSplit split = parts[partitionId].toFileSplit();
- if (split == null)
- throw new HyracksDataException("partition " + partitionId
- + " is null!");
- ((AbstractHiveTupleParser) tp).parse(split, writer);
- writer.close();
- }
- };
- }
-}
\ No newline at end of file
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveFileSplitProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveFileSplitProvider.java
deleted file mode 100644
index d92d353..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveFileSplitProvider.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filescan;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.UUID;
-
-import org.apache.hadoop.mapred.FileSplit;
-import org.apache.hadoop.mapred.InputFormat;
-import org.apache.hadoop.mapred.JobConf;
-import org.eclipse.jetty.util.log.Log;
-
-@SuppressWarnings({ "deprecation", "rawtypes" })
-public class HiveFileSplitProvider extends AbstractHiveFileSplitProvider {
- private static final long serialVersionUID = 1L;
-
- private transient InputFormat format;
- private transient JobConf conf;
- private String confContent;
- final private int nPartition;
- private transient FileSplit[] splits;
-
- public HiveFileSplitProvider(JobConf conf, String filePath, int nPartition) {
- format = conf.getInputFormat();
- this.conf = conf;
- this.nPartition = nPartition;
- writeConfContent();
- }
-
- private void writeConfContent() {
- File dir = new File("hadoop-conf-tmp");
- if (!dir.exists()) {
- dir.mkdir();
- }
-
- String fileName = "hadoop-conf-tmp/" + UUID.randomUUID()
- + System.currentTimeMillis() + ".xml";
- try {
- DataOutputStream out = new DataOutputStream(new FileOutputStream(
- new File(fileName)));
- conf.writeXml(out);
- out.close();
-
- DataInputStream in = new DataInputStream(new FileInputStream(
- fileName));
- StringBuffer buffer = new StringBuffer();
- String line;
- while ((line = in.readLine()) != null) {
- buffer.append(line + "\n");
- }
- in.close();
- confContent = buffer.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void readConfContent() {
- File dir = new File("hadoop-conf-tmp");
- if (!dir.exists()) {
- dir.mkdir();
- }
-
- String fileName = "hadoop-conf-tmp/" + UUID.randomUUID()
- + System.currentTimeMillis() + ".xml";
- try {
- PrintWriter out = new PrintWriter((new OutputStreamWriter(
- new FileOutputStream(new File(fileName)))));
- out.write(confContent);
- out.close();
- conf = new JobConf(fileName);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @Override
- /**
- * get the HDFS file split
- */
- public FileSplit[] getFileSplitArray() {
- readConfContent();
- conf.setClassLoader(this.getClass().getClassLoader());
- format = conf.getInputFormat();
- // int splitSize = conf.getInt("mapred.min.split.size", 0);
-
- if (splits == null) {
- try {
- splits = (org.apache.hadoop.mapred.FileSplit[]) format
- .getSplits(conf, nPartition);
- System.out.println("hdfs split number: " + splits.length);
- } catch (IOException e) {
- String inputPath = conf.get("mapred.input.dir");
- String hdfsURL = conf.get("fs.default.name");
- String alternatePath = inputPath.replaceAll(hdfsURL, "file:");
- conf.set("mapred.input.dir", alternatePath);
- try {
- splits = (org.apache.hadoop.mapred.FileSplit[]) format
- .getSplits(conf, nPartition);
- System.out.println("hdfs split number: " + splits.length);
- } catch (IOException e1) {
- e1.printStackTrace();
- Log.debug(e1.getMessage());
- return null;
- }
- }
- }
- return splits;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveTupleParser.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveTupleParser.java
deleted file mode 100644
index 7681bd1..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveTupleParser.java
+++ /dev/null
@@ -1,233 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filescan;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.lazy.objectinspector.LazySimpleStructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.io.BytesWritable;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.mapred.FileSplit;
-import org.apache.hadoop.mapred.InputFormat;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.RecordReader;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.util.ReflectionUtils;
-
-import edu.uci.ics.hivesterix.serde.parser.IHiveParser;
-import edu.uci.ics.hivesterix.serde.parser.TextToBinaryTupleParser;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.api.comm.IFrameWriter;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
-import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
-import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
-
-@SuppressWarnings({ "rawtypes", "deprecation", "unchecked" })
-public class HiveTupleParser extends AbstractHiveTupleParser {
-
- private int[] outputColumnsOffset;
- /**
- * class of input format
- */
- private InputFormat inputFormat;
-
- /**
- * serialization/deserialization object
- */
- private SerDe serDe;
-
- /**
- * the input row object inspector
- */
- private ObjectInspector objectInspector;
-
- /**
- * the hadoop job conf
- */
- private JobConf job;
-
- /**
- * Hyrax context to control resource allocation
- */
- private final IHyracksTaskContext ctx;
-
- /**
- * lazy serde: format flow in between operators
- */
- private final SerDe outputSerDe;
-
- /**
- * the parser from hive data to binary data
- */
- private IHiveParser parser = null;
-
- /**
- * parser for any hive input format
- *
- * @param inputFormatClass
- * @param serDeClass
- * @param tbl
- * @param conf
- * @throws AlgebricksException
- */
- public HiveTupleParser(String inputFormatClass, String serDeClass,
- String outputSerDeClass, Properties tbl, JobConf conf,
- final IHyracksTaskContext ctx, int[] outputColumnsOffset)
- throws AlgebricksException {
- try {
- conf.setClassLoader(this.getClass().getClassLoader());
-
- inputFormat = (InputFormat) ReflectionUtils.newInstance(
- Class.forName(inputFormatClass), conf);
- job = conf;
-
- // initialize the input serde
- serDe = (SerDe) ReflectionUtils.newInstance(
- Class.forName(serDeClass), job);
- serDe.initialize(job, tbl);
-
- // initialize the output serde
- outputSerDe = (SerDe) ReflectionUtils.newInstance(
- Class.forName(outputSerDeClass), job);
- outputSerDe.initialize(job, tbl);
-
- // object inspector of the row
- objectInspector = serDe.getObjectInspector();
-
- // hyracks context
- this.ctx = ctx;
- this.outputColumnsOffset = outputColumnsOffset;
-
- if (objectInspector instanceof LazySimpleStructObjectInspector) {
- LazySimpleStructObjectInspector rowInspector = (LazySimpleStructObjectInspector) objectInspector;
- List<? extends StructField> fieldRefs = rowInspector
- .getAllStructFieldRefs();
- boolean lightWeightParsable = true;
- for (StructField fieldRef : fieldRefs) {
- Category category = fieldRef.getFieldObjectInspector()
- .getCategory();
- if (!(category == Category.PRIMITIVE)) {
- lightWeightParsable = false;
- break;
- }
- }
- if (lightWeightParsable)
- parser = new TextToBinaryTupleParser(
- this.outputColumnsOffset, this.objectInspector);
- }
- } catch (Exception e) {
- throw new AlgebricksException(e);
- }
- }
-
- /**
- * parse a input HDFS file split, the result is send to the writer
- * one-frame-a-time
- *
- * @param split
- * the HDFS file split
- * @param writer
- * the writer
- * @throws HyracksDataException
- * if there is sth. wrong in the ser/de
- */
- @Override
- public void parse(FileSplit split, IFrameWriter writer)
- throws HyracksDataException {
- try {
- StructObjectInspector structInspector = (StructObjectInspector) objectInspector;
-
- // create the reader, key, and value
- RecordReader reader = inputFormat.getRecordReader(split, job,
- Reporter.NULL);
- Object key = reader.createKey();
- Object value = reader.createValue();
-
- // allocate a new frame
- ByteBuffer frame = ctx.allocateFrame();
- FrameTupleAppender appender = new FrameTupleAppender(
- ctx.getFrameSize());
- appender.reset(frame, true);
-
- List<? extends StructField> fieldRefs = structInspector
- .getAllStructFieldRefs();
- int size = 0;
- for (int i = 0; i < outputColumnsOffset.length; i++)
- if (outputColumnsOffset[i] >= 0)
- size++;
-
- ArrayTupleBuilder tb = new ArrayTupleBuilder(size);
- DataOutput dos = tb.getDataOutput();
- StructField[] outputFieldRefs = new StructField[size];
- Object[] outputFields = new Object[size];
- for (int i = 0; i < outputColumnsOffset.length; i++)
- if (outputColumnsOffset[i] >= 0)
- outputFieldRefs[outputColumnsOffset[i]] = fieldRefs.get(i);
-
- while (reader.next(key, value)) {
- // reuse the tuple builder
- tb.reset();
- if (parser != null) {
- Text text = (Text) value;
- parser.parse(text.getBytes(), 0, text.getLength(), tb);
- } else {
- Object row = serDe.deserialize((Writable) value);
- // write fields to the tuple builder one by one
- int i = 0;
- for (StructField fieldRef : fieldRefs) {
- if (outputColumnsOffset[i] >= 0)
- outputFields[outputColumnsOffset[i]] = structInspector
- .getStructFieldData(row, fieldRef);
- i++;
- }
-
- i = 0;
- for (Object field : outputFields) {
- BytesWritable fieldWritable = (BytesWritable) outputSerDe
- .serialize(field, outputFieldRefs[i]
- .getFieldObjectInspector());
- dos.write(fieldWritable.getBytes(), 0,
- fieldWritable.getSize());
- tb.addFieldEndOffset();
- i++;
- }
- }
-
- if (!appender.append(tb.getFieldEndOffsets(),
- tb.getByteArray(), 0, tb.getSize())) {
- if (appender.getTupleCount() <= 0)
- throw new IllegalStateException(
- "zero tuples in a frame!");
- FrameUtils.flushFrame(frame, writer);
- appender.reset(frame, true);
- if (!appender.append(tb.getFieldEndOffsets(),
- tb.getByteArray(), 0, tb.getSize())) {
- throw new IllegalStateException();
- }
- }
- }
- reader.close();
- System.gc();
-
- // flush the last frame
- if (appender.getTupleCount() > 0) {
- FrameUtils.flushFrame(frame, writer);
- }
- } catch (IOException e) {
- throw new HyracksDataException(e);
- } catch (SerDeException e) {
- throw new HyracksDataException(e);
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveTupleParserFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveTupleParserFactory.java
deleted file mode 100644
index 69aa881..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/HiveTupleParserFactory.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filescan;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.Properties;
-import java.util.UUID;
-
-import org.apache.hadoop.hive.ql.plan.PartitionDesc;
-import org.apache.hadoop.mapred.JobConf;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazySerDe;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParser;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParserFactory;
-
-@SuppressWarnings("deprecation")
-public class HiveTupleParserFactory implements ITupleParserFactory {
-
- private static final long serialVersionUID = 1L;
-
- private int[] outputColumns;
-
- private String outputSerDeClass = LazySerDe.class.getName();
-
- private String inputSerDeClass;
-
- private transient JobConf conf;
-
- private Properties tbl;
-
- private String confContent;
-
- private String inputFormatClass;
-
- public HiveTupleParserFactory(PartitionDesc desc, JobConf conf,
- int[] outputColumns) {
- this.conf = conf;
- tbl = desc.getProperties();
- inputFormatClass = (String) tbl.getProperty("file.inputformat");
- inputSerDeClass = (String) tbl.getProperty("serialization.lib");
- this.outputColumns = outputColumns;
-
- writeConfContent();
- }
-
- @Override
- public ITupleParser createTupleParser(IHyracksTaskContext ctx) {
- readConfContent();
- try {
- return new HiveTupleParser(inputFormatClass, inputSerDeClass,
- outputSerDeClass, tbl, conf, ctx, outputColumns);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- private void writeConfContent() {
- File dir = new File("hadoop-conf-tmp");
- if (!dir.exists()) {
- dir.mkdir();
- }
-
- String fileName = "hadoop-conf-tmp/" + UUID.randomUUID()
- + System.currentTimeMillis() + ".xml";
- try {
- DataOutputStream out = new DataOutputStream(new FileOutputStream(
- new File(fileName)));
- conf.writeXml(out);
- out.close();
-
- DataInputStream in = new DataInputStream(new FileInputStream(
- fileName));
- StringBuffer buffer = new StringBuffer();
- String line;
- while ((line = in.readLine()) != null) {
- buffer.append(line + "\n");
- }
- in.close();
- confContent = buffer.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void readConfContent() {
- File dir = new File("hadoop-conf-tmp");
- if (!dir.exists()) {
- dir.mkdir();
- }
-
- String fileName = "hadoop-conf-tmp/" + UUID.randomUUID()
- + System.currentTimeMillis() + ".xml";
- try {
- PrintWriter out = new PrintWriter((new OutputStreamWriter(
- new FileOutputStream(new File(fileName)))));
- out.write(confContent);
- out.close();
-
- conf = new JobConf(fileName);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/Partition.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/Partition.java
deleted file mode 100644
index 1b3dcf2..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filescan/Partition.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filescan;
-
-import java.io.IOException;
-import java.io.Serializable;
-
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapred.FileSplit;
-
-@SuppressWarnings("deprecation")
-public class Partition implements Serializable {
- private static final long serialVersionUID = 1L;
-
- private String uri;
- private long offset;
- private long length;
- private String[] locations;
-
- public Partition() {
- }
-
- public Partition(FileSplit file) {
- uri = file.getPath().toUri().toString();
- offset = file.getStart();
- length = file.getLength();
- try {
- locations = file.getLocations();
- } catch (IOException e) {
- throw new IllegalStateException(e);
- }
- }
-
- public FileSplit toFileSplit() {
- return new FileSplit(new Path(uri), offset, length, locations);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filewrite/HiveFileWritePushRuntime.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filewrite/HiveFileWritePushRuntime.java
deleted file mode 100644
index 05e79ea..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filewrite/HiveFileWritePushRuntime.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filewrite;
-
-import java.nio.ByteBuffer;
-
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.OperatorFactory;
-import org.apache.hadoop.hive.ql.exec.RowSchema;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.plan.FileSinkDesc;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.mapred.JobConf;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hivesterix.serde.lazy.LazyColumnar;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyColumnarObjectInspector;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IPushRuntime;
-import edu.uci.ics.hyracks.api.comm.IFrameWriter;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
-import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.FrameTupleReference;
-
-@SuppressWarnings("deprecation")
-public class HiveFileWritePushRuntime implements IPushRuntime {
-
- /**
- * frame tuple accessor to access byte buffer
- */
- private final FrameTupleAccessor accessor;
-
- /**
- * input object inspector
- */
- private final ObjectInspector inputInspector;
-
- /**
- * cachedInput
- */
- private final LazyColumnar cachedInput;
-
- /**
- * File sink operator of Hive
- */
- private final FileSinkDesc fileSink;
-
- /**
- * job configuration, which contain name node and other configuration
- * information
- */
- private JobConf conf;
-
- /**
- * input object inspector
- */
- private final Schema inputSchema;
-
- /**
- * a copy of hive schema representation
- */
- private RowSchema rowSchema;
-
- /**
- * the Hive file sink operator
- */
- private FileSinkOperator fsOp;
-
- /**
- * cached tuple object reference
- */
- private FrameTupleReference tuple = new FrameTupleReference();
-
- /**
- * @param spec
- * @param fsProvider
- */
- public HiveFileWritePushRuntime(IHyracksTaskContext context,
- RecordDescriptor inputRecordDesc, JobConf job, FileSinkDesc fs,
- RowSchema schema, Schema oi) {
- fileSink = fs;
- fileSink.setGatherStats(false);
-
- rowSchema = schema;
- conf = job;
- inputSchema = oi;
-
- accessor = new FrameTupleAccessor(context.getFrameSize(),
- inputRecordDesc);
- inputInspector = inputSchema.toObjectInspector();
- cachedInput = new LazyColumnar(
- (LazyColumnarObjectInspector) inputInspector);
- }
-
- @Override
- public void open() throws HyracksDataException {
- fsOp = (FileSinkOperator) OperatorFactory.get(fileSink, rowSchema);
- fsOp.setChildOperators(null);
- fsOp.setParentOperators(null);
- conf.setClassLoader(this.getClass().getClassLoader());
-
- ObjectInspector[] inspectors = new ObjectInspector[1];
- inspectors[0] = inputInspector;
- try {
- fsOp.initialize(conf, inspectors);
- fsOp.setExecContext(null);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
- accessor.reset(buffer);
- int n = accessor.getTupleCount();
- try {
- for (int i = 0; i < n; ++i) {
- tuple.reset(accessor, i);
- cachedInput.init(tuple);
- fsOp.process(cachedInput, 0);
- }
- } catch (HiveException e) {
- throw new HyracksDataException(e);
- }
- }
-
- @Override
- public void close() throws HyracksDataException {
- try {
- Thread.currentThread().setContextClassLoader(
- this.getClass().getClassLoader());
- fsOp.closeOp(false);
- } catch (HiveException e) {
- throw new HyracksDataException(e);
- }
- }
-
- @Override
- public void setFrameWriter(int index, IFrameWriter writer,
- RecordDescriptor recordDesc) {
- throw new IllegalStateException();
- }
-
- @Override
- public void setInputRecordDescriptor(int index,
- RecordDescriptor recordDescriptor) {
- }
-
- @Override
- public void fail() throws HyracksDataException {
-
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filewrite/HivePushRuntimeFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filewrite/HivePushRuntimeFactory.java
deleted file mode 100644
index 43e90fa..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/operator/filewrite/HivePushRuntimeFactory.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.operator.filewrite;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.UUID;
-
-import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
-import org.apache.hadoop.hive.ql.exec.RowSchema;
-import org.apache.hadoop.hive.ql.plan.FileSinkDesc;
-import org.apache.hadoop.mapred.JobConf;
-
-import edu.uci.ics.hivesterix.logical.expression.Schema;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IPushRuntime;
-import edu.uci.ics.hyracks.algebricks.runtime.base.IPushRuntimeFactory;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
-
-@SuppressWarnings("deprecation")
-public class HivePushRuntimeFactory implements IPushRuntimeFactory {
-
- private static final long serialVersionUID = 1L;
-
- private final RecordDescriptor inputRecordDesc;
- private transient JobConf conf;
- private final FileSinkDesc fileSink;
- private final RowSchema outSchema;
- private final Schema schema;
-
- /**
- * the content of the configuration
- */
- private String confContent;
-
- public HivePushRuntimeFactory(RecordDescriptor inputRecordDesc,
- JobConf conf, FileSinkOperator fsp, Schema sch) {
- this.inputRecordDesc = inputRecordDesc;
- this.conf = conf;
- this.fileSink = fsp.getConf();
- outSchema = fsp.getSchema();
- this.schema = sch;
-
- writeConfContent();
- }
-
- @Override
- public String toString() {
- return "file write";
- }
-
- @Override
- public IPushRuntime createPushRuntime(IHyracksTaskContext context)
- throws AlgebricksException {
- if (conf == null)
- readConfContent();
-
- return new HiveFileWritePushRuntime(context, inputRecordDesc, conf,
- fileSink, outSchema, schema);
- }
-
- private void readConfContent() {
- File dir = new File("hadoop-conf-tmp");
- if (!dir.exists()) {
- dir.mkdir();
- }
-
- String fileName = "hadoop-conf-tmp/" + UUID.randomUUID()
- + System.currentTimeMillis() + ".xml";
- try {
- PrintWriter out = new PrintWriter((new OutputStreamWriter(
- new FileOutputStream(new File(fileName)))));
- out.write(confContent);
- out.close();
- conf = new JobConf(fileName);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void writeConfContent() {
- File dir = new File("hadoop-conf-tmp");
- if (!dir.exists()) {
- dir.mkdir();
- }
-
- String fileName = "hadoop-conf-tmp/" + UUID.randomUUID()
- + System.currentTimeMillis() + ".xml";
- try {
- DataOutputStream out = new DataOutputStream(new FileOutputStream(
- new File(fileName)));
- conf.writeXml(out);
- out.close();
-
- DataInputStream in = new DataInputStream(new FileInputStream(
- fileName));
- StringBuffer buffer = new StringBuffer();
- String line;
- while ((line = in.readLine()) != null) {
- buffer.append(line + "\n");
- }
- in.close();
- confContent = buffer.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryComparatorFactoryProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryComparatorFactoryProvider.java
deleted file mode 100644
index 5a2e98c..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryComparatorFactoryProvider.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.provider;
-
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveByteBinaryAscComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveByteBinaryDescComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveDoubleBinaryAscComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveDoubleBinaryDescComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveFloatBinaryAscComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveFloatBinaryDescComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveIntegerBinaryAscComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveIntegerBinaryDescComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveLongBinaryAscComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveLongBinaryDescComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveShortBinaryAscComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveShortBinaryDescComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveStringBinaryAscComparatorFactory;
-import edu.uci.ics.hivesterix.runtime.factory.comparator.HiveStringBinaryDescComparatorFactory;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.NotImplementedException;
-import edu.uci.ics.hyracks.algebricks.data.IBinaryComparatorFactoryProvider;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
-
-public class HiveBinaryComparatorFactoryProvider implements
- IBinaryComparatorFactoryProvider {
-
- public static final HiveBinaryComparatorFactoryProvider INSTANCE = new HiveBinaryComparatorFactoryProvider();
-
- private HiveBinaryComparatorFactoryProvider() {
- }
-
- @Override
- public IBinaryComparatorFactory getBinaryComparatorFactory(Object type,
- boolean ascending) throws AlgebricksException {
- if (type.equals(TypeInfoFactory.intTypeInfo)) {
- if (ascending)
- return HiveIntegerBinaryAscComparatorFactory.INSTANCE;
- else
- return HiveIntegerBinaryDescComparatorFactory.INSTANCE;
-
- } else if (type.equals(TypeInfoFactory.longTypeInfo)) {
- if (ascending)
- return HiveLongBinaryAscComparatorFactory.INSTANCE;
- else
- return HiveLongBinaryDescComparatorFactory.INSTANCE;
-
- } else if (type.equals(TypeInfoFactory.floatTypeInfo)) {
- if (ascending)
- return HiveFloatBinaryAscComparatorFactory.INSTANCE;
- else
- return HiveFloatBinaryDescComparatorFactory.INSTANCE;
-
- } else if (type.equals(TypeInfoFactory.doubleTypeInfo)) {
- if (ascending)
- return HiveDoubleBinaryAscComparatorFactory.INSTANCE;
- else
- return HiveDoubleBinaryDescComparatorFactory.INSTANCE;
- } else if (type.equals(TypeInfoFactory.shortTypeInfo)) {
- if (ascending)
- return HiveShortBinaryAscComparatorFactory.INSTANCE;
- else
- return HiveShortBinaryDescComparatorFactory.INSTANCE;
- } else if (type.equals(TypeInfoFactory.stringTypeInfo)) {
- if (ascending)
- return HiveStringBinaryAscComparatorFactory.INSTANCE;
- else
- return HiveStringBinaryDescComparatorFactory.INSTANCE;
- } else if (type.equals(TypeInfoFactory.byteTypeInfo)
- || type.equals(TypeInfoFactory.booleanTypeInfo)) {
- if (ascending)
- return HiveByteBinaryAscComparatorFactory.INSTANCE;
- else
- return HiveByteBinaryDescComparatorFactory.INSTANCE;
- } else
- throw new NotImplementedException();
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryHashFunctionFactoryProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryHashFunctionFactoryProvider.java
deleted file mode 100644
index 371d45b..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryHashFunctionFactoryProvider.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.provider;
-
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.runtime.factory.hashfunction.HiveDoubleBinaryHashFunctionFactory;
-import edu.uci.ics.hivesterix.runtime.factory.hashfunction.HiveIntegerBinaryHashFunctionFactory;
-import edu.uci.ics.hivesterix.runtime.factory.hashfunction.HiveLongBinaryHashFunctionFactory;
-import edu.uci.ics.hivesterix.runtime.factory.hashfunction.HiveRawBinaryHashFunctionFactory;
-import edu.uci.ics.hivesterix.runtime.factory.hashfunction.HiveStingBinaryHashFunctionFactory;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.data.IBinaryHashFunctionFactoryProvider;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
-
-public class HiveBinaryHashFunctionFactoryProvider implements
- IBinaryHashFunctionFactoryProvider {
-
- public static final HiveBinaryHashFunctionFactoryProvider INSTANCE = new HiveBinaryHashFunctionFactoryProvider();
-
- private HiveBinaryHashFunctionFactoryProvider() {
- }
-
- @Override
- public IBinaryHashFunctionFactory getBinaryHashFunctionFactory(Object type)
- throws AlgebricksException {
- if (type.equals(TypeInfoFactory.intTypeInfo)) {
- return HiveIntegerBinaryHashFunctionFactory.INSTANCE;
- } else if (type.equals(TypeInfoFactory.longTypeInfo)) {
- return HiveLongBinaryHashFunctionFactory.INSTANCE;
- } else if (type.equals(TypeInfoFactory.stringTypeInfo)) {
- return HiveStingBinaryHashFunctionFactory.INSTANCE;
- } else if (type.equals(TypeInfoFactory.doubleTypeInfo)) {
- return HiveDoubleBinaryHashFunctionFactory.INSTANCE;
- } else {
- return HiveRawBinaryHashFunctionFactory.INSTANCE;
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryHashFunctionFamilyProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryHashFunctionFamilyProvider.java
deleted file mode 100644
index e7a2e79..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveBinaryHashFunctionFamilyProvider.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.provider;
-
-import edu.uci.ics.hivesterix.runtime.factory.hashfunction.MurmurHash3BinaryHashFunctionFamily;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.data.IBinaryHashFunctionFamilyProvider;
-import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFamily;
-
-public class HiveBinaryHashFunctionFamilyProvider implements IBinaryHashFunctionFamilyProvider {
-
- public static HiveBinaryHashFunctionFamilyProvider INSTANCE = new HiveBinaryHashFunctionFamilyProvider();
-
- private HiveBinaryHashFunctionFamilyProvider() {
-
- }
-
- @Override
- public IBinaryHashFunctionFamily getBinaryHashFunctionFamily(Object type) throws AlgebricksException {
- return MurmurHash3BinaryHashFunctionFamily.INSTANCE;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveNormalizedKeyComputerFactoryProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveNormalizedKeyComputerFactoryProvider.java
deleted file mode 100644
index 9e3a8ae..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveNormalizedKeyComputerFactoryProvider.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.provider;
-
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveDoubleAscNormalizedKeyComputerFactory;
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveDoubleDescNormalizedKeyComputerFactory;
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveIntegerAscNormalizedKeyComputerFactory;
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveIntegerDescNormalizedKeyComputerFactory;
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveLongAscNormalizedKeyComputerFactory;
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveLongDescNormalizedKeyComputerFactory;
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveStringAscNormalizedKeyComputerFactory;
-import edu.uci.ics.hivesterix.runtime.factory.normalize.HiveStringDescNormalizedKeyComputerFactory;
-import edu.uci.ics.hyracks.algebricks.data.INormalizedKeyComputerFactoryProvider;
-import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
-
-public class HiveNormalizedKeyComputerFactoryProvider implements
- INormalizedKeyComputerFactoryProvider {
-
- public static final HiveNormalizedKeyComputerFactoryProvider INSTANCE = new HiveNormalizedKeyComputerFactoryProvider();
-
- private HiveNormalizedKeyComputerFactoryProvider() {
- }
-
- @Override
- public INormalizedKeyComputerFactory getNormalizedKeyComputerFactory(
- Object type, boolean ascending) {
- if (ascending) {
- if (type.equals(TypeInfoFactory.stringTypeInfo)) {
- return new HiveStringAscNormalizedKeyComputerFactory();
- } else if (type.equals(TypeInfoFactory.intTypeInfo)) {
- return new HiveIntegerAscNormalizedKeyComputerFactory();
- } else if (type.equals(TypeInfoFactory.longTypeInfo)) {
- return new HiveLongAscNormalizedKeyComputerFactory();
- } else if (type.equals(TypeInfoFactory.doubleTypeInfo)) {
- return new HiveDoubleAscNormalizedKeyComputerFactory();
- } else {
- return null;
- }
- } else {
- if (type.equals(TypeInfoFactory.stringTypeInfo)) {
- return new HiveStringDescNormalizedKeyComputerFactory();
- } else if (type.equals(TypeInfoFactory.intTypeInfo)) {
- return new HiveIntegerDescNormalizedKeyComputerFactory();
- } else if (type.equals(TypeInfoFactory.longTypeInfo)) {
- return new HiveLongDescNormalizedKeyComputerFactory();
- } else if (type.equals(TypeInfoFactory.doubleTypeInfo)) {
- return new HiveDoubleDescNormalizedKeyComputerFactory();
- } else {
- return null;
- }
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HivePrinterFactoryProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HivePrinterFactoryProvider.java
deleted file mode 100644
index bebb457..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HivePrinterFactoryProvider.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.provider;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.data.IPrinterFactory;
-import edu.uci.ics.hyracks.algebricks.data.IPrinterFactoryProvider;
-
-public class HivePrinterFactoryProvider implements IPrinterFactoryProvider {
-
- public static IPrinterFactoryProvider INSTANCE = new HivePrinterFactoryProvider();
-
- @Override
- public IPrinterFactory getPrinterFactory(Object type)
- throws AlgebricksException {
- return null;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveSerializerDeserializerProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveSerializerDeserializerProvider.java
deleted file mode 100644
index 7938de8..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveSerializerDeserializerProvider.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.provider;
-
-import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import edu.uci.ics.hyracks.algebricks.data.ISerializerDeserializerProvider;
-import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
-
-public class HiveSerializerDeserializerProvider implements
- ISerializerDeserializerProvider {
-
- public static final HiveSerializerDeserializerProvider INSTANCE = new HiveSerializerDeserializerProvider();
-
- private HiveSerializerDeserializerProvider() {
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public ISerializerDeserializer getSerializerDeserializer(Object type)
- throws AlgebricksException {
- // return ARecordSerializerDeserializer.SCHEMALESS_INSTANCE;
- return null;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveTypeTraitProvider.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveTypeTraitProvider.java
deleted file mode 100644
index 2059128..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/runtime/provider/HiveTypeTraitProvider.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package edu.uci.ics.hivesterix.runtime.provider;
-
-import java.io.Serializable;
-
-import edu.uci.ics.hyracks.algebricks.data.ITypeTraitProvider;
-import edu.uci.ics.hyracks.api.dataflow.value.ITypeTraits;
-
-public class HiveTypeTraitProvider implements ITypeTraitProvider, Serializable {
- private static final long serialVersionUID = 1L;
- public static HiveTypeTraitProvider INSTANCE = new HiveTypeTraitProvider();
-
- private HiveTypeTraitProvider() {
-
- }
-
- @Override
- public ITypeTraits getTypeTrait(Object arg0) {
- return new ITypeTraits() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public int getFixedLength() {
- return -1;
- }
-
- @Override
- public boolean isFixedLength() {
- return false;
- }
-
- };
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/ByteArrayRef.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/ByteArrayRef.java
deleted file mode 100644
index 673416d..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/ByteArrayRef.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-/**
- * ByteArrayRef stores a reference to a byte array.
- *
- * The LazyObject hierarchy uses a reference to a single ByteArrayRef, so that
- * it's much faster to switch to the next row and release the reference to the
- * old row (so that the system can do garbage collection if needed).
- */
-public class ByteArrayRef {
-
- /**
- * Stores the actual data.
- */
- byte[] data;
-
- public byte[] getData() {
- return data;
- }
-
- public void setData(byte[] data) {
- this.data = data;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyArray.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyArray.java
deleted file mode 100644
index 821c03d..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyArray.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.RecordInfo;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyListObjectInspector;
-
-/**
- * LazyArray is serialized as follows: start A b b b b b b end bytes[] ->
- * |--------|---|---|---|---| ... |---|---|
- *
- * Section A is the null-bytes. Suppose the list has N elements, then there are
- * (N+7)/8 bytes used as null-bytes. Each bit corresponds to an element and it
- * indicates whether that element is null (0) or not null (1).
- *
- * After A, all b(s) represent the elements of the list. Each of them is again a
- * LazyObject.
- *
- */
-
-public class LazyArray extends LazyNonPrimitive<LazyListObjectInspector> {
-
- /**
- * Whether the data is already parsed or not.
- */
- boolean parsed = false;
- /**
- * The length of the array. Only valid when the data is parsed.
- */
- int arraySize = 0;
-
- /**
- * The start positions and lengths of array elements. Only valid when the
- * data is parsed.
- */
- int[] elementStart;
- int[] elementLength;
-
- /**
- * Whether an element is initialized or not.
- */
- boolean[] elementInited;
-
- /**
- * Whether an element is null or not. Because length is 0 does not means the
- * field is null. In particular, a 0-length string is not null.
- */
- boolean[] elementIsNull;
-
- /**
- * The elements of the array. Note that we call arrayElements[i].init(bytes,
- * begin, length) only when that element is accessed.
- */
- @SuppressWarnings("rawtypes")
- LazyObject[] arrayElements;
-
- /**
- * Construct a LazyArray object with the ObjectInspector.
- *
- * @param oi
- * the oi representing the type of this LazyArray
- */
- protected LazyArray(LazyListObjectInspector oi) {
- super(oi);
- }
-
- /**
- * Set the row data for this LazyArray.
- *
- * @see LazyObject#init(ByteArrayRef, int, int)
- */
- @Override
- public void init(byte[] bytes, int start, int length) {
- super.init(bytes, start, length);
- parsed = false;
- }
-
- /**
- * Enlarge the size of arrays storing information for the elements inside
- * the array.
- */
- private void adjustArraySize(int newSize) {
- if (elementStart == null || elementStart.length < newSize) {
- elementStart = new int[newSize];
- elementLength = new int[newSize];
- elementInited = new boolean[newSize];
- elementIsNull = new boolean[newSize];
- arrayElements = new LazyObject[newSize];
- }
- }
-
- VInt vInt = new LazyUtils.VInt();
- RecordInfo recordInfo = new LazyUtils.RecordInfo();
-
- /**
- * Parse the bytes and fill elementStart, elementLength, elementInited and
- * elementIsNull.
- */
- private void parse() {
-
- // get the vlong that represents the map size
- LazyUtils.readVInt(bytes, start, vInt);
- arraySize = vInt.value;
- if (0 == arraySize) {
- parsed = true;
- return;
- }
-
- // adjust arrays
- adjustArraySize(arraySize);
- // find out the null-bytes
- int arryByteStart = start + vInt.length;
- int nullByteCur = arryByteStart;
- int nullByteEnd = arryByteStart + (arraySize + 7) / 8;
- // the begin the real elements
- int lastElementByteEnd = nullByteEnd;
- // the list element object inspector
- ObjectInspector listEleObjectInspector = ((ListObjectInspector) oi)
- .getListElementObjectInspector();
- // parsing elements one by one
- for (int i = 0; i < arraySize; i++) {
- elementIsNull[i] = true;
- if ((bytes[nullByteCur] & (1 << (i % 8))) != 0) {
- elementIsNull[i] = false;
- LazyUtils.checkObjectByteInfo(listEleObjectInspector, bytes,
- lastElementByteEnd, recordInfo);
- elementStart[i] = lastElementByteEnd + recordInfo.elementOffset;
- elementLength[i] = recordInfo.elementSize;
- lastElementByteEnd = elementStart[i] + elementLength[i];
- }
- // move onto the next null byte
- if (7 == (i % 8)) {
- nullByteCur++;
- }
- }
-
- Arrays.fill(elementInited, 0, arraySize, false);
- parsed = true;
- }
-
- /**
- * Returns the actual primitive object at the index position inside the
- * array represented by this LazyObject.
- */
- public Object getListElementObject(int index) {
- if (!parsed) {
- parse();
- }
- if (index < 0 || index >= arraySize) {
- return null;
- }
- return uncheckedGetElement(index);
- }
-
- /**
- * Get the element without checking out-of-bound index.
- *
- * @param index
- * index to the array element
- */
- private Object uncheckedGetElement(int index) {
-
- if (elementIsNull[index]) {
- return null;
- } else {
- if (!elementInited[index]) {
- elementInited[index] = true;
- if (arrayElements[index] == null) {
- arrayElements[index] = LazyFactory.createLazyObject((oi)
- .getListElementObjectInspector());
- }
- arrayElements[index].init(bytes, elementStart[index],
- elementLength[index]);
- }
- }
- return arrayElements[index].getObject();
- }
-
- /**
- * Returns the array size.
- */
- public int getListLength() {
- if (!parsed) {
- parse();
- }
- return arraySize;
- }
-
- /**
- * cachedList is reused every time getList is called. Different
- * LazyBianryArray instances cannot share the same cachedList.
- */
- ArrayList<Object> cachedList;
-
- /**
- * Returns the List of actual primitive objects. Returns null for null
- * array.
- */
- public List<Object> getList() {
- if (!parsed) {
- parse();
- }
- if (cachedList == null) {
- cachedList = new ArrayList<Object>(arraySize);
- } else {
- cachedList.clear();
- }
- for (int index = 0; index < arraySize; index++) {
- cachedList.add(uncheckedGetElement(index));
- }
- return cachedList;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyBoolean.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyBoolean.java
deleted file mode 100644
index 83b6254..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyBoolean.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.io.BooleanWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyBooleanObjectInspector;
-
-/**
- * LazyObject for storing a value of boolean.
- *
- * <p>
- * Part of the code is adapted from Apache Harmony Project.
- *
- * As with the specification, this implementation relied on code laid out in <a
- * href="http://www.hackersdelight.org/">Henry S. Warren, Jr.'s Hacker's
- * Delight, (Addison Wesley, 2002)</a> as well as <a
- * href="http://aggregate.org/MAGIC/">The Aggregate's Magic Algorithms</a>.
- * </p>
- *
- */
-public class LazyBoolean extends
- LazyPrimitive<LazyBooleanObjectInspector, BooleanWritable> {
-
- public LazyBoolean(LazyBooleanObjectInspector oi) {
- super(oi);
- data = new BooleanWritable();
- }
-
- public LazyBoolean(LazyBoolean copy) {
- super(copy);
- data = new BooleanWritable(copy.data.get());
- }
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
-
- // a temporal hack
- assert (1 == length);
- byte val = bytes[start];
- if (val == 0) {
- data.set(false);
- } else if (val == 1) {
- data.set(true);
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyByte.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyByte.java
deleted file mode 100644
index 264015b..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyByte.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.io.ByteWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyByteObjectInspector;
-
-/**
- * LazyObject for storing a value of Byte.
- *
- * <p>
- * Part of the code is adapted from Apache Harmony Project.
- *
- * As with the specification, this implementation relied on code laid out in <a
- * href="http://www.hackersdelight.org/">Henry S. Warren, Jr.'s Hacker's
- * Delight, (Addison Wesley, 2002)</a> as well as <a
- * href="http://aggregate.org/MAGIC/">The Aggregate's Magic Algorithms</a>.
- * </p>
- *
- */
-public class LazyByte extends
- LazyPrimitive<LazyByteObjectInspector, ByteWritable> {
-
- public LazyByte(LazyByteObjectInspector oi) {
- super(oi);
- data = new ByteWritable();
- }
-
- public LazyByte(LazyByte copy) {
- super(copy);
- data = new ByteWritable(copy.data.get());
- }
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
-
- assert (1 == length);
- data.set(bytes[start]);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyColumnar.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyColumnar.java
deleted file mode 100644
index a25ae49..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyColumnar.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyColumnarObjectInspector;
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-/**
- * LazyObject for storing a struct. The field of a struct can be primitive or
- * non-primitive.
- *
- * LazyStruct does not deal with the case of a NULL struct. That is handled by
- * the parent LazyObject.
- */
-@SuppressWarnings("rawtypes")
-public class LazyColumnar extends LazyNonPrimitive<LazyColumnarObjectInspector> {
-
- /**
- * IFrameTupleReference: the backend of the struct
- */
- IFrameTupleReference tuple;
-
- /**
- * Whether the data is already parsed or not.
- */
- boolean reset;
-
- /**
- * The fields of the struct.
- */
- LazyObject[] fields;
-
- /**
- * Whether init() has been called on the field or not.
- */
- boolean[] fieldVisited;
-
- /**
- * whether it is the first time initialization
- */
- boolean start = true;
-
- /**
- * Construct a LazyStruct object with the ObjectInspector.
- */
- public LazyColumnar(LazyColumnarObjectInspector oi) {
- super(oi);
- }
-
- /**
- * Set the row data for this LazyStruct.
- *
- * @see LazyObject#init(ByteArrayRef, int, int)
- */
- @Override
- public void init(byte[] bytes, int start, int length) {
- super.init(bytes, start, length);
- reset = false;
- }
-
- /**
- * Parse the byte[] and fill each field.
- */
- private void parse() {
-
- if (start) {
- // initialize field array and reusable objects
- List<? extends StructField> fieldRefs = ((StructObjectInspector) oi)
- .getAllStructFieldRefs();
-
- fields = new LazyObject[fieldRefs.size()];
- for (int i = 0; i < fields.length; i++) {
- fields[i] = LazyFactory.createLazyObject(fieldRefs.get(i)
- .getFieldObjectInspector());
- }
- fieldVisited = new boolean[fields.length];
- start = false;
- }
-
- Arrays.fill(fieldVisited, false);
- reset = true;
- }
-
- /**
- * Get one field out of the struct.
- *
- * If the field is a primitive field, return the actual object. Otherwise
- * return the LazyObject. This is because PrimitiveObjectInspector does not
- * have control over the object used by the user - the user simply directly
- * use the Object instead of going through Object
- * PrimitiveObjectInspector.get(Object).
- *
- * @param fieldID
- * The field ID
- * @return The field as a LazyObject
- */
- public Object getField(int fieldID) {
- if (!reset) {
- parse();
- }
- return uncheckedGetField(fieldID);
- }
-
- /**
- * Get the field out of the row without checking parsed. This is called by
- * both getField and getFieldsAsList.
- *
- * @param fieldID
- * The id of the field starting from 0.
- * @param nullSequence
- * The sequence representing NULL value.
- * @return The value of the field
- */
- private Object uncheckedGetField(int fieldID) {
- // get the buffer
- byte[] buffer = tuple.getFieldData(fieldID);
- // get the offset of the field
- int s1 = tuple.getFieldStart(fieldID);
- int l1 = tuple.getFieldLength(fieldID);
-
- if (!fieldVisited[fieldID]) {
- fieldVisited[fieldID] = true;
- fields[fieldID].init(buffer, s1, l1);
- }
- // if (fields[fieldID].getObject() == null) {
- // throw new IllegalStateException("illegal field " + fieldID);
- // }
- return fields[fieldID].getObject();
- }
-
- ArrayList<Object> cachedList;
-
- /**
- * Get the values of the fields as an ArrayList.
- *
- * @return The values of the fields as an ArrayList.
- */
- public ArrayList<Object> getFieldsAsList() {
- if (!reset) {
- parse();
- }
- if (cachedList == null) {
- cachedList = new ArrayList<Object>();
- } else {
- cachedList.clear();
- }
- for (int i = 0; i < fields.length; i++) {
- cachedList.add(uncheckedGetField(i));
- }
- return cachedList;
- }
-
- @Override
- public Object getObject() {
- return this;
- }
-
- protected boolean getParsed() {
- return reset;
- }
-
- protected void setParsed(boolean parsed) {
- this.reset = parsed;
- }
-
- protected LazyObject[] getFields() {
- return fields;
- }
-
- protected void setFields(LazyObject[] fields) {
- this.fields = fields;
- }
-
- protected boolean[] getFieldInited() {
- return fieldVisited;
- }
-
- protected void setFieldInited(boolean[] fieldInited) {
- this.fieldVisited = fieldInited;
- }
-
- /**
- * rebind a frametuplereference to the struct
- */
- public void init(IFrameTupleReference r) {
- this.tuple = r;
- reset = false;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyDouble.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyDouble.java
deleted file mode 100644
index d687aa1..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyDouble.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.io.DoubleWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyDoubleObjectInspector;
-
-/**
- * LazyObject for storing a value of Double.
- *
- */
-public class LazyDouble extends
- LazyPrimitive<LazyDoubleObjectInspector, DoubleWritable> {
-
- public LazyDouble(LazyDoubleObjectInspector oi) {
- super(oi);
- data = new DoubleWritable();
- }
-
- public LazyDouble(LazyDouble copy) {
- super(copy);
- data = new DoubleWritable(copy.data.get());
- }
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
- assert (8 == length);
- data.set(Double.longBitsToDouble(LazyUtils
- .byteArrayToLong(bytes, start)));
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyFactory.java
deleted file mode 100644
index e7593e4..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyFactory.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyColumnarObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyListObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyMapObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyStructObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyBooleanObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyByteObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyDoubleObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyFloatObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyIntObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyLongObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyShortObjectInspector;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyStringObjectInspector;
-
-/**
- * LazyFactory.
- *
- */
-public final class LazyFactory {
-
- /**
- * Create a lazy binary primitive class given the type name.
- */
- public static LazyPrimitive<?, ?> createLazyPrimitiveClass(
- PrimitiveObjectInspector oi) {
- PrimitiveCategory p = oi.getPrimitiveCategory();
- switch (p) {
- case BOOLEAN:
- return new LazyBoolean((LazyBooleanObjectInspector) oi);
- case BYTE:
- return new LazyByte((LazyByteObjectInspector) oi);
- case SHORT:
- return new LazyShort((LazyShortObjectInspector) oi);
- case INT:
- return new LazyInteger((LazyIntObjectInspector) oi);
- case LONG:
- return new LazyLong((LazyLongObjectInspector) oi);
- case FLOAT:
- return new LazyFloat((LazyFloatObjectInspector) oi);
- case DOUBLE:
- return new LazyDouble((LazyDoubleObjectInspector) oi);
- case STRING:
- return new LazyString((LazyStringObjectInspector) oi);
- default:
- throw new RuntimeException("Internal error: no LazyObject for " + p);
- }
- }
-
- /**
- * Create a hierarchical LazyObject based on the given typeInfo.
- */
- public static LazyObject<? extends ObjectInspector> createLazyObject(
- ObjectInspector oi) {
- ObjectInspector.Category c = oi.getCategory();
- switch (c) {
- case PRIMITIVE:
- return createLazyPrimitiveClass((PrimitiveObjectInspector) oi);
- case MAP:
- return new LazyMap((LazyMapObjectInspector) oi);
- case LIST:
- return new LazyArray((LazyListObjectInspector) oi);
- case STRUCT: // check whether it is a top-level struct
- if (oi instanceof LazyStructObjectInspector)
- return new LazyStruct((LazyStructObjectInspector) oi);
- else
- return new LazyColumnar((LazyColumnarObjectInspector) oi);
- default:
- throw new RuntimeException("Hive LazySerDe Internal error.");
- }
- }
-
- private LazyFactory() {
- // prevent instantiation
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyFloat.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyFloat.java
deleted file mode 100644
index 303cc67..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyFloat.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.io.FloatWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyFloatObjectInspector;
-
-/**
- * LazyObject for storing a value of Double.
- *
- */
-public class LazyFloat extends
- LazyPrimitive<LazyFloatObjectInspector, FloatWritable> {
-
- public LazyFloat(LazyFloatObjectInspector oi) {
- super(oi);
- data = new FloatWritable();
- }
-
- public LazyFloat(LazyFloat copy) {
- super(copy);
- data = new FloatWritable(copy.data.get());
- }
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
-
- assert (4 == length);
- data.set(Float.intBitsToFloat(LazyUtils.byteArrayToInt(bytes, start)));
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyInteger.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyInteger.java
deleted file mode 100644
index c908c40..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyInteger.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.io.IntWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyIntObjectInspector;
-
-/**
- * LazyObject for storing a value of Integer.
- *
- * <p>
- * Part of the code is adapted from Apache Harmony Project.
- *
- * As with the specification, this implementation relied on code laid out in <a
- * href="http://www.hackersdelight.org/">Henry S. Warren, Jr.'s Hacker's
- * Delight, (Addison Wesley, 2002)</a> as well as <a
- * href="http://aggregate.org/MAGIC/">The Aggregate's Magic Algorithms</a>.
- * </p>
- *
- */
-public class LazyInteger extends
- LazyPrimitive<LazyIntObjectInspector, IntWritable> {
-
- public LazyInteger(LazyIntObjectInspector oi) {
- super(oi);
- data = new IntWritable();
- }
-
- public LazyInteger(LazyInteger copy) {
- super(copy);
- data = new IntWritable(copy.data.get());
- }
-
- /**
- * The reusable vInt for decoding the integer.
- */
- VInt vInt = new LazyUtils.VInt();
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
-
- LazyUtils.readVInt(bytes, start, vInt);
- assert (length == vInt.length);
- if (length != vInt.length)
- throw new IllegalStateException(
- "parse int: length mismatch, expected " + vInt.length
- + " but get " + length);
- data.set(vInt.value);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyLong.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyLong.java
deleted file mode 100644
index 38097e6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyLong.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.io.LongWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VLong;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyLongObjectInspector;
-
-/**
- * LazyObject for storing a value of Long.
- *
- * <p>
- * Part of the code is adapted from Apache Harmony Project.
- *
- * As with the specification, this implementation relied on code laid out in <a
- * href="http://www.hackersdelight.org/">Henry S. Warren, Jr.'s Hacker's
- * Delight, (Addison Wesley, 2002)</a> as well as <a
- * href="http://aggregate.org/MAGIC/">The Aggregate's Magic Algorithms</a>.
- * </p>
- *
- */
-public class LazyLong extends
- LazyPrimitive<LazyLongObjectInspector, LongWritable> {
-
- public LazyLong(LazyLongObjectInspector oi) {
- super(oi);
- data = new LongWritable();
- }
-
- public LazyLong(LazyLong copy) {
- super(copy);
- data = new LongWritable(copy.data.get());
- }
-
- /**
- * The reusable vLong for decoding the long.
- */
- VLong vLong = new LazyUtils.VLong();
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
-
- LazyUtils.readVLong(bytes, start, vLong);
- assert (length == vLong.length);
- if (length != vLong.length)
- throw new IllegalStateException("parse long: length mismatch");
- data.set(vLong.value);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyMap.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyMap.java
deleted file mode 100644
index 56bc41b..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyMap.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.serde2.lazy.ByteArrayRef;
-import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.RecordInfo;
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyMapObjectInspector;
-
-/**
- * LazyMap is serialized as follows: start A b c b c b c end bytes[] ->
- * |--------|---|---|---|---| ... |---|---|
- *
- * Section A is the null-bytes. Suppose the map has N key-value pairs, then
- * there are (N*2+7)/8 bytes used as null-bytes. Each bit corresponds to a key
- * or a value and it indicates whether that key or value is null (0) or not null
- * (1).
- *
- * After A, all the bytes are actual serialized data of the map, which are
- * key-value pairs. b represent the keys and c represent the values. Each of
- * them is again a LazyObject.
- *
- */
-
-@SuppressWarnings("rawtypes")
-public class LazyMap extends LazyNonPrimitive<LazyMapObjectInspector> {
-
- private static Log LOG = LogFactory.getLog(LazyMap.class.getName());
-
- /**
- * Whether the data is already parsed or not.
- */
- boolean parsed;
-
- /**
- * The size of the map. Only valid when the data is parsed. -1 when the map
- * is NULL.
- */
- int mapSize = 0;
-
- /**
- * The beginning position and length of key[i] and value[i]. Only valid when
- * the data is parsed.
- */
- int[] keyStart;
- int[] keyLength;
- int[] valueStart;
- int[] valueLength;
- /**
- * Whether valueObjects[i]/keyObjects[i] is initialized or not.
- */
- boolean[] keyInited;
- boolean[] valueInited;
-
- /**
- * Whether valueObjects[i]/keyObjects[i] is null or not This could not be
- * inferred from the length of the object. In particular, a 0-length string
- * is not null.
- */
- boolean[] keyIsNull;
- boolean[] valueIsNull;
-
- /**
- * The keys are stored in an array of LazyPrimitives.
- */
- LazyPrimitive<?, ?>[] keyObjects;
- /**
- * The values are stored in an array of LazyObjects. value[index] will start
- * from KeyEnd[index] + 1, and ends before KeyStart[index+1] - 1.
- */
- LazyObject[] valueObjects;
-
- protected LazyMap(LazyMapObjectInspector oi) {
- super(oi);
- }
-
- /**
- * Set the row data for this LazyMap.
- *
- * @see LazyObject#init(ByteArrayRef, int, int)
- */
- @Override
- public void init(byte[] bytes, int start, int length) {
- super.init(bytes, start, length);
- parsed = false;
- }
-
- /**
- * Adjust the size of arrays: keyStart, keyLength valueStart, valueLength
- * keyInited, keyIsNull valueInited, valueIsNull.
- */
- protected void adjustArraySize(int newSize) {
- if (keyStart == null || keyStart.length < newSize) {
- keyStart = new int[newSize];
- keyLength = new int[newSize];
- valueStart = new int[newSize];
- valueLength = new int[newSize];
- keyInited = new boolean[newSize];
- keyIsNull = new boolean[newSize];
- valueInited = new boolean[newSize];
- valueIsNull = new boolean[newSize];
- keyObjects = new LazyPrimitive<?, ?>[newSize];
- valueObjects = new LazyObject[newSize];
- }
- }
-
- boolean nullMapKey = false;
- VInt vInt = new LazyUtils.VInt();
- RecordInfo recordInfo = new LazyUtils.RecordInfo();
-
- /**
- * Parse the byte[] and fill keyStart, keyLength, keyIsNull valueStart,
- * valueLength and valueIsNull.
- */
- private void parse() {
-
- // get the VInt that represents the map size
- LazyUtils.readVInt(bytes, start, vInt);
- mapSize = vInt.value;
- if (0 == mapSize) {
- parsed = true;
- return;
- }
-
- // adjust arrays
- adjustArraySize(mapSize);
-
- // find out the null-bytes
- int mapByteStart = start + vInt.length;
- int nullByteCur = mapByteStart;
- int nullByteEnd = mapByteStart + (mapSize * 2 + 7) / 8;
- int lastElementByteEnd = nullByteEnd;
-
- // parsing the keys and values one by one
- for (int i = 0; i < mapSize; i++) {
- // parse a key
- keyIsNull[i] = true;
- if ((bytes[nullByteCur] & (1 << ((i * 2) % 8))) != 0) {
- keyIsNull[i] = false;
- LazyUtils.checkObjectByteInfo(
- ((MapObjectInspector) oi).getMapKeyObjectInspector(),
- bytes, lastElementByteEnd, recordInfo);
- keyStart[i] = lastElementByteEnd + recordInfo.elementOffset;
- keyLength[i] = recordInfo.elementSize;
- lastElementByteEnd = keyStart[i] + keyLength[i];
- } else if (!nullMapKey) {
- nullMapKey = true;
- LOG.warn("Null map key encountered! Ignoring similar problems.");
- }
-
- // parse a value
- valueIsNull[i] = true;
- if ((bytes[nullByteCur] & (1 << ((i * 2 + 1) % 8))) != 0) {
- valueIsNull[i] = false;
- LazyUtils.checkObjectByteInfo(
- ((MapObjectInspector) oi).getMapValueObjectInspector(),
- bytes, lastElementByteEnd, recordInfo);
- valueStart[i] = lastElementByteEnd + recordInfo.elementOffset;
- valueLength[i] = recordInfo.elementSize;
- lastElementByteEnd = valueStart[i] + valueLength[i];
- }
-
- // move onto the next null byte
- if (3 == (i % 4)) {
- nullByteCur++;
- }
- }
-
- Arrays.fill(keyInited, 0, mapSize, false);
- Arrays.fill(valueInited, 0, mapSize, false);
- parsed = true;
- }
-
- /**
- * Get the value object with the index without checking parsed.
- *
- * @param index
- * The index into the array starting from 0
- */
- private LazyObject uncheckedGetValue(int index) {
- if (valueIsNull[index]) {
- return null;
- }
- if (!valueInited[index]) {
- valueInited[index] = true;
- if (valueObjects[index] == null) {
- valueObjects[index] = LazyFactory
- .createLazyObject(((MapObjectInspector) oi)
- .getMapValueObjectInspector());
- }
- valueObjects[index].init(bytes, valueStart[index],
- valueLength[index]);
- }
- return valueObjects[index];
- }
-
- /**
- * Get the value in the map for the key.
- *
- * If there are multiple matches (which is possible in the serialized
- * format), only the first one is returned.
- *
- * The most efficient way to get the value for the key is to serialize the
- * key and then try to find it in the array. We do linear search because in
- * most cases, user only wants to get one or two values out of the map, and
- * the cost of building up a HashMap is substantially higher.
- *
- * @param key
- * The key object that we are looking for.
- * @return The corresponding value object, or NULL if not found
- */
- public Object getMapValueElement(Object key) {
- if (!parsed) {
- parse();
- }
- // search for the key
- for (int i = 0; i < mapSize; i++) {
- LazyPrimitive<?, ?> lazyKeyI = uncheckedGetKey(i);
- if (lazyKeyI == null) {
- continue;
- }
- // getWritableObject() will convert LazyPrimitive to actual
- // primitive
- // writable objects.
- Object keyI = lazyKeyI.getWritableObject();
- if (keyI == null) {
- continue;
- }
- if (keyI.equals(key)) {
- // Got a match, return the value
- LazyObject v = uncheckedGetValue(i);
- return v == null ? v : v.getObject();
- }
- }
- return null;
- }
-
- /**
- * Get the key object with the index without checking parsed.
- *
- * @param index
- * The index into the array starting from 0
- */
- private LazyPrimitive<?, ?> uncheckedGetKey(int index) {
- if (keyIsNull[index]) {
- return null;
- }
- if (!keyInited[index]) {
- keyInited[index] = true;
- if (keyObjects[index] == null) {
- // Keys are always primitive
- keyObjects[index] = LazyFactory
- .createLazyPrimitiveClass((PrimitiveObjectInspector) ((MapObjectInspector) oi)
- .getMapKeyObjectInspector());
- }
- keyObjects[index].init(bytes, keyStart[index], keyLength[index]);
- }
- return keyObjects[index];
- }
-
- /**
- * cachedMap is reused for different calls to getMap(). But each LazyMap has
- * a separate cachedMap so we won't overwrite the data by accident.
- */
- LinkedHashMap<Object, Object> cachedMap;
-
- /**
- * Return the map object representing this LazyMap. Note that the keyObjects
- * will be Writable primitive objects.
- *
- * @return the map object
- */
- public Map<Object, Object> getMap() {
- if (!parsed) {
- parse();
- }
- if (cachedMap == null) {
- // Use LinkedHashMap to provide deterministic order
- cachedMap = new LinkedHashMap<Object, Object>();
- } else {
- cachedMap.clear();
- }
-
- // go through each element of the map
- for (int i = 0; i < mapSize; i++) {
- LazyPrimitive<?, ?> lazyKey = uncheckedGetKey(i);
- if (lazyKey == null) {
- continue;
- }
- Object key = lazyKey.getObject();
- // do not overwrite if there are duplicate keys
- if (key != null && !cachedMap.containsKey(key)) {
- LazyObject lazyValue = uncheckedGetValue(i);
- Object value = (lazyValue == null ? null : lazyValue
- .getObject());
- cachedMap.put(key, value);
- }
- }
- return cachedMap;
- }
-
- /**
- * Get the size of the map represented by this LazyMap.
- *
- * @return The size of the map
- */
- public int getMapSize() {
- if (!parsed) {
- parse();
- }
- return mapSize;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyNonPrimitive.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyNonPrimitive.java
deleted file mode 100644
index b151f2d..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyNonPrimitive.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-/**
- * LazyPrimitive stores a primitive Object in a LazyObject.
- */
-public abstract class LazyNonPrimitive<OI extends ObjectInspector> extends
- LazyObject<OI> {
-
- protected byte[] bytes;
- protected int start;
- protected int length;
-
- /**
- * Create a LazyNonPrimitive object with the specified ObjectInspector.
- *
- * @param oi
- * The ObjectInspector would have to have a hierarchy of
- * LazyObjectInspectors with the leaf nodes being
- * WritableObjectInspectors. It's used both for accessing the
- * type hierarchy of the complex object, as well as getting meta
- * information (separator, nullSequence, etc) when parsing the
- * lazy object.
- */
- protected LazyNonPrimitive(OI oi) {
- super(oi);
- bytes = null;
- start = 0;
- length = 0;
- }
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (bytes == null) {
- throw new RuntimeException("bytes cannot be null!");
- }
- this.bytes = bytes;
- this.start = start;
- this.length = length;
- assert start >= 0;
- assert start + length <= bytes.length;
- }
-
- @Override
- public Object getObject() {
- return this;
- }
-
- @Override
- public int hashCode() {
- return LazyUtils.hashBytes(bytes, start, length);
- }
-
- @Override
- public void init(IFrameTupleReference tuple) {
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyObject.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyObject.java
deleted file mode 100644
index 9aaaa88..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyObject.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-/**
- * LazyObject stores an object in a range of bytes in a byte[].
- *
- * A LazyObject can represent any primitive object or hierarchical object like
- * array, map or struct.
- */
-public abstract class LazyObject<OI extends ObjectInspector> {
-
- OI oi;
-
- /**
- * Create a LazyObject.
- *
- * @param oi
- * Derived classes can access meta information about this Lazy
- * Object (e.g, separator, nullSequence, escaper) from it.
- */
- protected LazyObject(OI oi) {
- this.oi = oi;
- }
-
- /**
- * Set the data for this LazyObject. We take ByteArrayRef instead of byte[]
- * so that we will be able to drop the reference to byte[] by a single
- * assignment. The ByteArrayRef object can be reused across multiple rows.
- *
- * @param bytes
- * The wrapper of the byte[].
- * @param start
- * The start position inside the bytes.
- * @param length
- * The length of the data, starting from "start"
- * @see ByteArrayRef
- */
- public abstract void init(byte[] bytes, int start, int length);
-
- public abstract void init(IFrameTupleReference tuple);
-
- /**
- * If the LazyObject is a primitive Object, then deserialize it and return
- * the actual primitive Object. Otherwise (array, map, struct), return this.
- */
- public abstract Object getObject();
-
- @Override
- public abstract int hashCode();
-
- protected OI getInspector() {
- return oi;
- }
-
- protected void setInspector(OI oi) {
- this.oi = oi;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyPrimitive.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyPrimitive.java
deleted file mode 100644
index 888e5b2..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyPrimitive.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.io.Writable;
-
-import edu.uci.ics.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-/**
- * LazyPrimitive stores a primitive Object in a LazyObject.
- */
-public abstract class LazyPrimitive<OI extends ObjectInspector, T extends Writable>
- extends LazyObject<OI> {
-
- LazyPrimitive(OI oi) {
- super(oi);
- }
-
- LazyPrimitive(LazyPrimitive<OI, T> copy) {
- super(copy.oi);
- isNull = copy.isNull;
- }
-
- T data;
- boolean isNull = false;
-
- /**
- * Returns the primitive object represented by this LazyObject. This is
- * useful because it can make sure we have "null" for null objects.
- */
- @Override
- public Object getObject() {
- return isNull ? null : this;
- }
-
- public T getWritableObject() {
- return isNull ? null : data;
- }
-
- @Override
- public String toString() {
- return isNull ? "null" : data.toString();
- }
-
- @Override
- public int hashCode() {
- return isNull ? 0 : data.hashCode();
- }
-
- @Override
- public void init(IFrameTupleReference tuple) {
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazySerDe.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazySerDe.java
deleted file mode 100644
index 4d0dff6..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazySerDe.java
+++ /dev/null
@@ -1,477 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.serde.Constants;
-import org.apache.hadoop.hive.serde2.ByteStream;
-import org.apache.hadoop.hive.serde2.ByteStream.Output;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.ByteObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.FloatObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.ShortObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
-import org.apache.hadoop.io.BytesWritable;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.io.Writable;
-
-/**
- * The LazySerDe class combines the lazy property of LazySimpleSerDe class and
- * the binary property of BinarySortable class. Lazy means a field is not
- * deserialized until required. Binary means a field is serialized in binary
- * compact format.
- */
-public class LazySerDe implements SerDe {
-
- public static final Log LOG = LogFactory.getLog(LazySerDe.class.getName());
-
- public LazySerDe() {
- }
-
- List<String> columnNames;
- List<TypeInfo> columnTypes;
-
- TypeInfo rowTypeInfo;
- ObjectInspector cachedObjectInspector;
-
- // The object for storing row data
- LazyColumnar cachedLazyStruct;
-
- /**
- * Initialize the SerDe with configuration and table information.
- */
- @Override
- public void initialize(Configuration conf, Properties tbl)
- throws SerDeException {
- // Get column names and types
- String columnNameProperty = tbl.getProperty(Constants.LIST_COLUMNS);
- String columnTypeProperty = tbl
- .getProperty(Constants.LIST_COLUMN_TYPES);
- if (columnNameProperty.length() == 0) {
- columnNames = new ArrayList<String>();
- } else {
- columnNames = Arrays.asList(columnNameProperty.split(","));
- }
- if (columnTypeProperty.length() == 0) {
- columnTypes = new ArrayList<TypeInfo>();
- } else {
- columnTypes = TypeInfoUtils
- .getTypeInfosFromTypeString(columnTypeProperty);
- }
- assert (columnNames.size() == columnTypes.size());
- // Create row related objects
- rowTypeInfo = TypeInfoFactory.getStructTypeInfo(columnNames,
- columnTypes);
- // Create the object inspector and the lazy binary struct object
- cachedObjectInspector = LazyUtils.getLazyObjectInspectorFromTypeInfo(
- rowTypeInfo, true);
- cachedLazyStruct = (LazyColumnar) LazyFactory
- .createLazyObject(cachedObjectInspector);
- // output debug info
- LOG.debug("LazySerDe initialized with: columnNames=" + columnNames
- + " columnTypes=" + columnTypes);
- }
-
- /**
- * Returns the ObjectInspector for the row.
- */
- @Override
- public ObjectInspector getObjectInspector() throws SerDeException {
- return cachedObjectInspector;
- }
-
- /**
- * Returns the Writable Class after serialization.
- */
- @Override
- public Class<? extends Writable> getSerializedClass() {
- return BytesWritable.class;
- }
-
- // The wrapper for byte array
- ByteArrayRef byteArrayRef;
-
- /**
- * Deserialize a table record to a Lazy struct.
- */
- @SuppressWarnings("deprecation")
- @Override
- public Object deserialize(Writable field) throws SerDeException {
- if (byteArrayRef == null) {
- byteArrayRef = new ByteArrayRef();
- }
- if (field instanceof BytesWritable) {
- BytesWritable b = (BytesWritable) field;
- if (b.getSize() == 0) {
- return null;
- }
- // For backward-compatibility with hadoop 0.17
- byteArrayRef.setData(b.get());
- cachedLazyStruct.init(byteArrayRef.getData(), 0, b.getSize());
- } else if (field instanceof Text) {
- Text t = (Text) field;
- if (t.getLength() == 0) {
- return null;
- }
- byteArrayRef.setData(t.getBytes());
- cachedLazyStruct.init(byteArrayRef.getData(), 0, t.getLength());
- } else {
- throw new SerDeException(getClass().toString()
- + ": expects either BytesWritable or Text object!");
- }
- return cachedLazyStruct;
- }
-
- /**
- * The reusable output buffer and serialize byte buffer.
- */
- BytesWritable serializeBytesWritable = new BytesWritable();
- ByteStream.Output serializeByteStream = new ByteStream.Output();
-
- /**
- * Serialize an object to a byte buffer in a binary compact way.
- */
- @Override
- public Writable serialize(Object obj, ObjectInspector objInspector)
- throws SerDeException {
- // make sure it is a struct record or not
- serializeByteStream.reset();
-
- if (objInspector.getCategory() != Category.STRUCT) {
- // serialize the primitive object
- serialize(serializeByteStream, obj, objInspector);
- } else {
- // serialize the row as a struct
- serializeStruct(serializeByteStream, obj,
- (StructObjectInspector) objInspector);
- }
- // return the serialized bytes
- serializeBytesWritable.set(serializeByteStream.getData(), 0,
- serializeByteStream.getCount());
- return serializeBytesWritable;
- }
-
- boolean nullMapKey = false;
-
- /**
- * Serialize a struct object without writing the byte size. This function is
- * shared by both row serialization and struct serialization.
- *
- * @param byteStream
- * the byte stream storing the serialization data
- * @param obj
- * the struct object to serialize
- * @param objInspector
- * the struct object inspector
- */
- private void serializeStruct(Output byteStream, Object obj,
- StructObjectInspector soi) {
- // do nothing for null struct
- if (null == obj) {
- return;
- }
- /*
- * Interleave serializing one null byte and 8 struct fields in each
- * round, in order to support data deserialization with different table
- * schemas
- */
- List<? extends StructField> fields = soi.getAllStructFieldRefs();
- int size = fields.size();
- int lasti = 0;
- byte nullByte = 0;
- for (int i = 0; i < size; i++) {
- // set bit to 1 if a field is not null
- if (null != soi.getStructFieldData(obj, fields.get(i))) {
- nullByte |= 1 << (i % 8);
- }
- // write the null byte every eight elements or
- // if this is the last element and serialize the
- // corresponding 8 struct fields at the same time
- if (7 == i % 8 || i == size - 1) {
- serializeByteStream.write(nullByte);
- for (int j = lasti; j <= i; j++) {
- serialize(serializeByteStream, soi.getStructFieldData(obj,
- fields.get(j)), fields.get(j)
- .getFieldObjectInspector());
- }
- lasti = i + 1;
- nullByte = 0;
- }
- }
- }
-
- /**
- * A recursive function that serialize an object to a byte buffer based on
- * its object inspector.
- *
- * @param byteStream
- * the byte stream storing the serialization data
- * @param obj
- * the object to serialize
- * @param objInspector
- * the object inspector
- */
- private void serialize(Output byteStream, Object obj,
- ObjectInspector objInspector) {
-
- // do nothing for null object
- if (null == obj) {
- return;
- }
-
- switch (objInspector.getCategory()) {
- case PRIMITIVE: {
- PrimitiveObjectInspector poi = (PrimitiveObjectInspector) objInspector;
- switch (poi.getPrimitiveCategory()) {
- case VOID: {
- return;
- }
- case BOOLEAN: {
- boolean v = ((BooleanObjectInspector) poi).get(obj);
- byteStream.write((byte) (v ? 1 : 0));
- return;
- }
- case BYTE: {
- ByteObjectInspector boi = (ByteObjectInspector) poi;
- byte v = boi.get(obj);
- byteStream.write(v);
- return;
- }
- case SHORT: {
- ShortObjectInspector spoi = (ShortObjectInspector) poi;
- short v = spoi.get(obj);
- byteStream.write((byte) (v >> 8));
- byteStream.write((byte) (v));
- return;
- }
- case INT: {
- IntObjectInspector ioi = (IntObjectInspector) poi;
- int v = ioi.get(obj);
- LazyUtils.writeVInt(byteStream, v);
- return;
- }
- case LONG: {
- LongObjectInspector loi = (LongObjectInspector) poi;
- long v = loi.get(obj);
- LazyUtils.writeVLong(byteStream, v);
- return;
- }
- case FLOAT: {
- FloatObjectInspector foi = (FloatObjectInspector) poi;
- int v = Float.floatToIntBits(foi.get(obj));
- byteStream.write((byte) (v >> 24));
- byteStream.write((byte) (v >> 16));
- byteStream.write((byte) (v >> 8));
- byteStream.write((byte) (v));
- return;
- }
- case DOUBLE: {
- DoubleObjectInspector doi = (DoubleObjectInspector) poi;
- long v = Double.doubleToLongBits(doi.get(obj));
- byteStream.write((byte) (v >> 56));
- byteStream.write((byte) (v >> 48));
- byteStream.write((byte) (v >> 40));
- byteStream.write((byte) (v >> 32));
- byteStream.write((byte) (v >> 24));
- byteStream.write((byte) (v >> 16));
- byteStream.write((byte) (v >> 8));
- byteStream.write((byte) (v));
- return;
- }
- case STRING: {
- StringObjectInspector soi = (StringObjectInspector) poi;
- Text t = soi.getPrimitiveWritableObject(obj);
- /* write byte size of the string which is a vint */
- int length = t.getLength();
- LazyUtils.writeVInt(byteStream, length);
- /* write string itself */
- byte[] data = t.getBytes();
- byteStream.write(data, 0, length);
- return;
- }
- default: {
- throw new RuntimeException("Unrecognized type: "
- + poi.getPrimitiveCategory());
- }
- }
- }
- case LIST: {
- ListObjectInspector loi = (ListObjectInspector) objInspector;
- ObjectInspector eoi = loi.getListElementObjectInspector();
-
- // 1/ reserve spaces for the byte size of the list
- // which is a integer and takes four bytes
- int byteSizeStart = byteStream.getCount();
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- int listStart = byteStream.getCount();
-
- // 2/ write the size of the list as a VInt
- int size = loi.getListLength(obj);
- LazyUtils.writeVInt(byteStream, size);
-
- // 3/ write the null bytes
- byte nullByte = 0;
- for (int eid = 0; eid < size; eid++) {
- // set the bit to 1 if an element is not null
- if (null != loi.getListElement(obj, eid)) {
- nullByte |= 1 << (eid % 8);
- }
- // store the byte every eight elements or
- // if this is the last element
- if (7 == eid % 8 || eid == size - 1) {
- byteStream.write(nullByte);
- nullByte = 0;
- }
- }
-
- // 4/ write element by element from the list
- for (int eid = 0; eid < size; eid++) {
- serialize(byteStream, loi.getListElement(obj, eid), eoi);
- }
-
- // 5/ update the list byte size
- int listEnd = byteStream.getCount();
- int listSize = listEnd - listStart;
- byte[] bytes = byteStream.getData();
- bytes[byteSizeStart] = (byte) (listSize >> 24);
- bytes[byteSizeStart + 1] = (byte) (listSize >> 16);
- bytes[byteSizeStart + 2] = (byte) (listSize >> 8);
- bytes[byteSizeStart + 3] = (byte) (listSize);
-
- return;
- }
- case MAP: {
- MapObjectInspector moi = (MapObjectInspector) objInspector;
- ObjectInspector koi = moi.getMapKeyObjectInspector();
- ObjectInspector voi = moi.getMapValueObjectInspector();
- Map<?, ?> map = moi.getMap(obj);
-
- // 1/ reserve spaces for the byte size of the map
- // which is a integer and takes four bytes
- int byteSizeStart = byteStream.getCount();
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- int mapStart = byteStream.getCount();
-
- // 2/ write the size of the map which is a VInt
- int size = map.size();
- LazyUtils.writeVInt(byteStream, size);
-
- // 3/ write the null bytes
- int b = 0;
- byte nullByte = 0;
- for (Map.Entry<?, ?> entry : map.entrySet()) {
- // set the bit to 1 if a key is not null
- if (null != entry.getKey()) {
- nullByte |= 1 << (b % 8);
- } else if (!nullMapKey) {
- nullMapKey = true;
- LOG.warn("Null map key encountered! Ignoring similar problems.");
- }
- b++;
- // set the bit to 1 if a value is not null
- if (null != entry.getValue()) {
- nullByte |= 1 << (b % 8);
- }
- b++;
- // write the byte to stream every 4 key-value pairs
- // or if this is the last key-value pair
- if (0 == b % 8 || b == size * 2) {
- byteStream.write(nullByte);
- nullByte = 0;
- }
- }
-
- // 4/ write key-value pairs one by one
- for (Map.Entry<?, ?> entry : map.entrySet()) {
- serialize(byteStream, entry.getKey(), koi);
- serialize(byteStream, entry.getValue(), voi);
- }
-
- // 5/ update the byte size of the map
- int mapEnd = byteStream.getCount();
- int mapSize = mapEnd - mapStart;
- byte[] bytes = byteStream.getData();
- bytes[byteSizeStart] = (byte) (mapSize >> 24);
- bytes[byteSizeStart + 1] = (byte) (mapSize >> 16);
- bytes[byteSizeStart + 2] = (byte) (mapSize >> 8);
- bytes[byteSizeStart + 3] = (byte) (mapSize);
-
- return;
- }
- case STRUCT: {
- // 1/ reserve spaces for the byte size of the struct
- // which is a integer and takes four bytes
- int byteSizeStart = byteStream.getCount();
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- byteStream.write((byte) 0);
- int structStart = byteStream.getCount();
-
- // 2/ serialize the struct
- serializeStruct(byteStream, obj,
- (StructObjectInspector) objInspector);
-
- // 3/ update the byte size of the struct
- int structEnd = byteStream.getCount();
- int structSize = structEnd - structStart;
- byte[] bytes = byteStream.getData();
- bytes[byteSizeStart] = (byte) (structSize >> 24);
- bytes[byteSizeStart + 1] = (byte) (structSize >> 16);
- bytes[byteSizeStart + 2] = (byte) (structSize >> 8);
- bytes[byteSizeStart + 3] = (byte) (structSize);
-
- return;
- }
- default: {
- throw new RuntimeException("Unrecognized type: "
- + objInspector.getCategory());
- }
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyShort.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyShort.java
deleted file mode 100644
index 7484b72..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyShort.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.hive.serde2.io.ShortWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyShortObjectInspector;
-
-/**
- * LazyObject for storing a value of Short.
- *
- * <p>
- * Part of the code is adapted from Apache Harmony Project.
- *
- * As with the specification, this implementation relied on code laid out in <a
- * href="http://www.hackersdelight.org/">Henry S. Warren, Jr.'s Hacker's
- * Delight, (Addison Wesley, 2002)</a> as well as <a
- * href="http://aggregate.org/MAGIC/">The Aggregate's Magic Algorithms</a>.
- * </p>
- *
- */
-public class LazyShort extends
- LazyPrimitive<LazyShortObjectInspector, ShortWritable> {
-
- public LazyShort(LazyShortObjectInspector oi) {
- super(oi);
- data = new ShortWritable();
- }
-
- public LazyShort(LazyShort copy) {
- super(copy);
- data = new ShortWritable(copy.data.get());
- }
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
-
- assert (2 == length);
- data.set(LazyUtils.byteArrayToShort(bytes, start));
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyString.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyString.java
deleted file mode 100644
index c13533b..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyString.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import org.apache.hadoop.io.Text;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.VInt;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.LazyStringObjectInspector;
-
-/**
- * LazyObject for storing a value of String.
- */
-public class LazyString extends LazyPrimitive<LazyStringObjectInspector, Text> {
-
- public LazyString(LazyStringObjectInspector oi) {
- super(oi);
- data = new Text();
- }
-
- public LazyString(LazyString copy) {
- super(copy);
- data = new Text(copy.data);
- }
-
- VInt vInt = new LazyUtils.VInt();
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- if (length == 0) {
- isNull = true;
- return;
- } else
- isNull = false;
-
- // get the byte length of the string
- LazyUtils.readVInt(bytes, start, vInt);
- if (vInt.value + vInt.length != length)
- throw new IllegalStateException(
- "parse string: length mismatch, expected "
- + (vInt.value + vInt.length) + " but get " + length);
- assert (length - vInt.length > -1);
- data.set(bytes, start + vInt.length, length - vInt.length);
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyStruct.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyStruct.java
deleted file mode 100644
index 61cc335..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyStruct.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils.RecordInfo;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyStructObjectInspector;
-
-/**
- * LazyStruct is serialized as follows: start A B A B A B end bytes[] ->
- * |-----|---------|--- ... ---|-----|---------|
- *
- * Section A is one null-byte, corresponding to eight struct fields in Section
- * B. Each bit indicates whether the corresponding field is null (0) or not null
- * (1). Each field is a LazyObject.
- *
- * Following B, there is another section A and B. This pattern repeats until the
- * all struct fields are serialized.
- */
-public class LazyStruct extends LazyNonPrimitive<LazyStructObjectInspector> {
-
- private static Log LOG = LogFactory.getLog(LazyStruct.class.getName());
-
- /**
- * Whether the data is already parsed or not.
- */
- boolean parsed;
-
- /**
- * The fields of the struct.
- */
- @SuppressWarnings("rawtypes")
- LazyObject[] fields;
-
- /**
- * Whether a field is initialized or not.
- */
- boolean[] fieldInited;
-
- /**
- * Whether a field is null or not. Because length is 0 does not means the
- * field is null. In particular, a 0-length string is not null.
- */
- boolean[] fieldIsNull;
-
- /**
- * The start positions and lengths of struct fields. Only valid when the
- * data is parsed.
- */
- int[] fieldStart;
- int[] fieldLength;
-
- /**
- * Construct a LazyStruct object with an ObjectInspector.
- */
- protected LazyStruct(LazyStructObjectInspector oi) {
- super(oi);
- }
-
- @Override
- public void init(byte[] bytes, int start, int length) {
- super.init(bytes, start, length);
- parsed = false;
- }
-
- RecordInfo recordInfo = new LazyUtils.RecordInfo();
- boolean missingFieldWarned = false;
- boolean extraFieldWarned = false;
-
- /**
- * Parse the byte[] and fill fieldStart, fieldLength, fieldInited and
- * fieldIsNull.
- */
- private void parse() {
-
- List<? extends StructField> fieldRefs = ((StructObjectInspector) oi)
- .getAllStructFieldRefs();
-
- if (fields == null) {
- fields = new LazyObject[fieldRefs.size()];
- for (int i = 0; i < fields.length; i++) {
- ObjectInspector insp = fieldRefs.get(i)
- .getFieldObjectInspector();
- fields[i] = insp == null ? null : LazyFactory
- .createLazyObject(insp);
- }
- fieldInited = new boolean[fields.length];
- fieldIsNull = new boolean[fields.length];
- fieldStart = new int[fields.length];
- fieldLength = new int[fields.length];
- }
-
- /**
- * Please note that one null byte is followed by eight fields, then more
- * null byte and fields.
- */
-
- int fieldId = 0;
- int structByteEnd = start + length;
-
- byte nullByte = bytes[start];
- int lastFieldByteEnd = start + 1;
- // Go through all bytes in the byte[]
- for (int i = 0; i < fields.length; i++) {
- fieldIsNull[i] = true;
- if ((nullByte & (1 << (i % 8))) != 0) {
- fieldIsNull[i] = false;
- LazyUtils.checkObjectByteInfo(fieldRefs.get(i)
- .getFieldObjectInspector(), bytes, lastFieldByteEnd,
- recordInfo);
- fieldStart[i] = lastFieldByteEnd + recordInfo.elementOffset;
- fieldLength[i] = recordInfo.elementSize;
- lastFieldByteEnd = fieldStart[i] + fieldLength[i];
- }
-
- // count how many fields are there
- if (lastFieldByteEnd <= structByteEnd) {
- fieldId++;
- }
- // next byte is a null byte if there are more bytes to go
- if (7 == (i % 8)) {
- if (lastFieldByteEnd < structByteEnd) {
- nullByte = bytes[lastFieldByteEnd];
- lastFieldByteEnd++;
- } else {
- // otherwise all null afterwards
- nullByte = 0;
- lastFieldByteEnd++;
- }
- }
- }
-
- // Extra bytes at the end?
- if (!extraFieldWarned && lastFieldByteEnd < structByteEnd) {
- extraFieldWarned = true;
- LOG.warn("Extra bytes detected at the end of the row! Ignoring similar "
- + "problems.");
- }
-
- // Missing fields?
- if (!missingFieldWarned && lastFieldByteEnd > structByteEnd) {
- missingFieldWarned = true;
- LOG.warn("Missing fields! Expected " + fields.length
- + " fields but " + "only got " + fieldId
- + "! Ignoring similar problems.");
- }
-
- Arrays.fill(fieldInited, false);
- parsed = true;
- }
-
- /**
- * Get one field out of the struct.
- *
- * If the field is a primitive field, return the actual object. Otherwise
- * return the LazyObject. This is because PrimitiveObjectInspector does not
- * have control over the object used by the user - the user simply directly
- * use the Object instead of going through Object
- * PrimitiveObjectInspector.get(Object).
- *
- * @param fieldID
- * The field ID
- * @return The field as a LazyObject
- */
- public Object getField(int fieldID) {
- if (!parsed) {
- parse();
- }
- return uncheckedGetField(fieldID);
- }
-
- /**
- * Get the field out of the row without checking parsed. This is called by
- * both getField and getFieldsAsList.
- *
- * @param fieldID
- * The id of the field starting from 0.
- * @return The value of the field
- */
- private Object uncheckedGetField(int fieldID) {
- // Test the length first so in most cases we avoid doing a byte[]
- // comparison.
- if (fieldIsNull[fieldID]) {
- return null;
- }
- if (!fieldInited[fieldID]) {
- fieldInited[fieldID] = true;
- fields[fieldID].init(bytes, fieldStart[fieldID],
- fieldLength[fieldID]);
- }
- return fields[fieldID].getObject();
- }
-
- ArrayList<Object> cachedList;
-
- /**
- * Get the values of the fields as an ArrayList.
- *
- * @return The values of the fields as an ArrayList.
- */
- public ArrayList<Object> getFieldsAsList() {
- if (!parsed) {
- parse();
- }
- if (cachedList == null) {
- cachedList = new ArrayList<Object>();
- } else {
- cachedList.clear();
- }
- for (int i = 0; i < fields.length; i++) {
- cachedList.add(uncheckedGetField(i));
- }
- return cachedList;
- }
-
- @Override
- public Object getObject() {
- return this;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyUtils.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyUtils.java
deleted file mode 100644
index 2d0406c..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/LazyUtils.java
+++ /dev/null
@@ -1,529 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.hadoop.hive.serde2.ByteStream.Output;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.WritableUtils;
-
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.LazyObjectInspectorFactory;
-import edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-
-/**
- * LazyUtils.
- *
- */
-public final class LazyUtils {
-
- /**
- * Convert the byte array to an int starting from the given offset. Refer to
- * code by aeden on DZone Snippets:
- *
- * @param b
- * the byte array
- * @param offset
- * the array offset
- * @return the integer
- */
- public static int byteArrayToInt(byte[] b, int offset) {
- int value = 0;
- for (int i = 0; i < 4; i++) {
- int shift = (4 - 1 - i) * 8;
- value += (b[i + offset] & 0x000000FF) << shift;
- }
- return value;
- }
-
- /**
- * Convert the byte array to a long starting from the given offset.
- *
- * @param b
- * the byte array
- * @param offset
- * the array offset
- * @return the long
- */
- public static long byteArrayToLong(byte[] b, int offset) {
- long value = 0;
- for (int i = 0; i < 8; i++) {
- int shift = (8 - 1 - i) * 8;
- value += ((long) (b[i + offset] & 0x00000000000000FF)) << shift;
- }
- return value;
- }
-
- /**
- * Convert the byte array to a short starting from the given offset.
- *
- * @param b
- * the byte array
- * @param offset
- * the array offset
- * @return the short
- */
- public static short byteArrayToShort(byte[] b, int offset) {
- short value = 0;
- value += (b[offset] & 0x000000FF) << 8;
- value += (b[offset + 1] & 0x000000FF);
- return value;
- }
-
- /**
- * Record is the unit that data is serialized in. A record includes two
- * parts. The first part stores the size of the element and the second part
- * stores the real element. size element record ->
- * |----|-------------------------|
- *
- * A RecordInfo stores two information of a record, the size of the "size"
- * part which is the element offset and the size of the element part which
- * is element size.
- */
- public static class RecordInfo {
- public RecordInfo() {
- elementOffset = 0;
- elementSize = 0;
- }
-
- public byte elementOffset;
- public int elementSize;
-
- @Override
- public String toString() {
- return "(" + elementOffset + ", " + elementSize + ")";
- }
- }
-
- static VInt vInt = new LazyUtils.VInt();
-
- /**
- * Check a particular field and set its size and offset in bytes based on
- * the field type and the bytes arrays.
- *
- * For void, boolean, byte, short, int, long, float and double, there is no
- * offset and the size is fixed. For string, map, list, struct, the first
- * four bytes are used to store the size. So the offset is 4 and the size is
- * computed by concating the first four bytes together. The first four bytes
- * are defined with respect to the offset in the bytes arrays.
- *
- * @param objectInspector
- * object inspector of the field
- * @param bytes
- * bytes arrays store the table row
- * @param offset
- * offset of this field
- * @param recordInfo
- * modify this byteinfo object and return it
- */
- public static void checkObjectByteInfo(ObjectInspector objectInspector,
- byte[] bytes, int offset, RecordInfo recordInfo) {
- Category category = objectInspector.getCategory();
- switch (category) {
- case PRIMITIVE:
- PrimitiveCategory primitiveCategory = ((PrimitiveObjectInspector) objectInspector)
- .getPrimitiveCategory();
- switch (primitiveCategory) {
- case VOID:
- recordInfo.elementOffset = 0;
- recordInfo.elementSize = 0;
- break;
- case BOOLEAN:
- case BYTE:
- recordInfo.elementOffset = 0;
- recordInfo.elementSize = 1;
- break;
- case SHORT:
- recordInfo.elementOffset = 0;
- recordInfo.elementSize = 2;
- break;
- case FLOAT:
- recordInfo.elementOffset = 0;
- recordInfo.elementSize = 4;
- break;
- case DOUBLE:
- recordInfo.elementOffset = 0;
- recordInfo.elementSize = 8;
- break;
- case INT:
- recordInfo.elementOffset = 0;
- recordInfo.elementSize = WritableUtils
- .decodeVIntSize(bytes[offset]);
- break;
- case LONG:
- recordInfo.elementOffset = 0;
- recordInfo.elementSize = WritableUtils
- .decodeVIntSize(bytes[offset]);
- break;
- case STRING:
- // using vint instead of 4 bytes
- LazyUtils.readVInt(bytes, offset, vInt);
- recordInfo.elementOffset = vInt.length;
- recordInfo.elementSize = vInt.value;
- break;
- default: {
- throw new RuntimeException("Unrecognized primitive type: "
- + primitiveCategory);
- }
- }
- break;
- case LIST:
- case MAP:
- case STRUCT:
- recordInfo.elementOffset = 4;
- recordInfo.elementSize = LazyUtils.byteArrayToInt(bytes, offset);
- break;
- default: {
- throw new RuntimeException("Unrecognized non-primitive type: "
- + category);
- }
- }
- }
-
- /**
- * A zero-compressed encoded long.
- */
- public static class VLong {
- public VLong() {
- value = 0;
- length = 0;
- }
-
- public long value;
- public byte length;
- };
-
- /**
- * Reads a zero-compressed encoded long from a byte array and returns it.
- *
- * @param bytes
- * the byte array
- * @param offset
- * offset of the array to read from
- * @param vlong
- * storing the deserialized long and its size in byte
- */
- public static void readVLong(byte[] bytes, int offset, VLong vlong) {
- byte firstByte = bytes[offset];
- vlong.length = (byte) WritableUtils.decodeVIntSize(firstByte);
- if (vlong.length == 1) {
- vlong.value = firstByte;
- return;
- }
- long i = 0;
- for (int idx = 0; idx < vlong.length - 1; idx++) {
- byte b = bytes[offset + 1 + idx];
- i = i << 8;
- i = i | (b & 0xFF);
- }
- vlong.value = (WritableUtils.isNegativeVInt(firstByte) ? (i ^ -1L) : i);
- }
-
- /**
- * A zero-compressed encoded integer.
- */
- public static class VInt implements Serializable {
- private static final long serialVersionUID = 1L;
-
- public VInt() {
- value = 0;
- length = 0;
- }
-
- public int value;
- public byte length;
- };
-
- /**
- * Reads a zero-compressed encoded int from a byte array and returns it.
- *
- * @param bytes
- * the byte array
- * @param offset
- * offset of the array to read from
- * @param vInt
- * storing the deserialized int and its size in byte
- */
- public static void readVInt(byte[] bytes, int offset, VInt vInt) {
- byte firstByte = bytes[offset];
- vInt.length = (byte) WritableUtils.decodeVIntSize(firstByte);
- if (vInt.length == 1) {
- vInt.value = firstByte;
- return;
- }
- int i = 0;
- for (int idx = 0; idx < vInt.length - 1; idx++) {
- byte b = bytes[offset + 1 + idx];
- i = i << 8;
- i = i | (b & 0xFF);
- }
- vInt.value = (WritableUtils.isNegativeVInt(firstByte) ? (i ^ -1) : i);
- }
-
- /**
- * Writes a zero-compressed encoded int to a byte array.
- *
- * @param byteStream
- * the byte array/stream
- * @param i
- * the int
- */
- public static void writeVInt(Output byteStream, int i) {
- writeVLong(byteStream, i);
- }
-
- /**
- * Write a zero-compressed encoded long to a byte array.
- *
- * @param byteStream
- * the byte array/stream
- * @param l
- * the long
- */
- public static void writeVLong(Output byteStream, long l) {
- if (l >= -112 && l <= 127) {
- byteStream.write((byte) l);
- return;
- }
-
- int len = -112;
- if (l < 0) {
- l ^= -1L; // take one's complement'
- len = -120;
- }
-
- long tmp = l;
- while (tmp != 0) {
- tmp = tmp >> 8;
- len--;
- }
-
- byteStream.write((byte) len);
-
- len = (len < -120) ? -(len + 120) : -(len + 112);
-
- for (int idx = len; idx != 0; idx--) {
- int shiftbits = (idx - 1) * 8;
- long mask = 0xFFL << shiftbits;
- byteStream.write((byte) ((l & mask) >> shiftbits));
- }
- }
-
- static Map<TypeInfo, ObjectInspector> cachedLazyObjectInspector = new ConcurrentHashMap<TypeInfo, ObjectInspector>();
-
- /**
- * Returns the lazy binary object inspector that can be used to inspect an
- * lazy binary object of that typeInfo
- *
- * For primitive types, we use the standard writable object inspector.
- */
- public static ObjectInspector getLazyObjectInspectorFromTypeInfo(
- TypeInfo typeInfo, boolean topLevel) {
- if (typeInfo == null)
- throw new IllegalStateException("illegal type null ");
- ObjectInspector result = cachedLazyObjectInspector.get(typeInfo);
- if (result == null) {
- switch (typeInfo.getCategory()) {
- case PRIMITIVE: {
- result = PrimitiveObjectInspectorFactory
- .getPrimitiveLazyObjectInspector(((PrimitiveTypeInfo) typeInfo)
- .getPrimitiveCategory());
- break;
- }
- case LIST: {
- ObjectInspector elementObjectInspector = getLazyObjectInspectorFromTypeInfo(
- ((ListTypeInfo) typeInfo).getListElementTypeInfo(),
- false);
- result = LazyObjectInspectorFactory
- .getLazyListObjectInspector(elementObjectInspector);
- break;
- }
- case MAP: {
- MapTypeInfo mapTypeInfo = (MapTypeInfo) typeInfo;
- ObjectInspector keyObjectInspector = getLazyObjectInspectorFromTypeInfo(
- mapTypeInfo.getMapKeyTypeInfo(), false);
- ObjectInspector valueObjectInspector = getLazyObjectInspectorFromTypeInfo(
- mapTypeInfo.getMapValueTypeInfo(), false);
- result = LazyObjectInspectorFactory.getLazyMapObjectInspector(
- keyObjectInspector, valueObjectInspector);
- break;
- }
- case STRUCT: {
- StructTypeInfo structTypeInfo = (StructTypeInfo) typeInfo;
- List<String> fieldNames = structTypeInfo
- .getAllStructFieldNames();
- List<TypeInfo> fieldTypeInfos = structTypeInfo
- .getAllStructFieldTypeInfos();
- List<ObjectInspector> fieldObjectInspectors = new ArrayList<ObjectInspector>(
- fieldTypeInfos.size());
-
- for (int i = 0; i < fieldTypeInfos.size(); i++) {
- fieldObjectInspectors
- .add(getLazyObjectInspectorFromTypeInfo(
- fieldTypeInfos.get(i), false));
- }
-
- // if it is top level then create columnar
- if (topLevel)
- result = LazyObjectInspectorFactory
- .getLazyColumnarObjectInspector(fieldNames,
- fieldObjectInspectors);
- // if it is not top level then create struct
- else
- result = LazyObjectInspectorFactory
- .getLazyStructObjectInspector(fieldNames,
- fieldObjectInspectors);
-
- break;
- }
- default: {
- result = null;
- }
- }
- cachedLazyObjectInspector.put(typeInfo, result);
- }
- return result;
- }
-
- /**
- * get top-level lazy object inspector
- *
- * @param fieldNames
- * @param fieldTypeInfos
- * @return
- */
- public static ObjectInspector getLazyObjectInspector(
- List<String> fieldNames, List<TypeInfo> fieldTypeInfos) {
- List<ObjectInspector> fieldObjectInspectors = new ArrayList<ObjectInspector>(
- fieldTypeInfos.size());
- for (int i = 0; i < fieldTypeInfos.size(); i++) {
- fieldObjectInspectors.add(getLazyObjectInspectorFromTypeInfo(
- fieldTypeInfos.get(i), false));
- }
-
- return LazyObjectInspectorFactory.getLazyColumnarObjectInspector(
- fieldNames, fieldObjectInspectors);
- }
-
- private LazyUtils() {
- // prevent instantiation
- }
-
- /**
- * Returns -1 if the first byte sequence is lexicographically less than the
- * second; returns +1 if the second byte sequence is lexicographically less
- * than the first; otherwise return 0.
- */
- public static int compare(byte[] b1, int start1, int length1, byte[] b2,
- int start2, int length2) {
-
- int min = Math.min(length1, length2);
-
- for (int i = 0; i < min; i++) {
- if (b1[start1 + i] == b2[start2 + i]) {
- continue;
- }
- if (b1[start1 + i] < b2[start2 + i]) {
- return -1;
- } else {
- return 1;
- }
- }
-
- if (length1 < length2) {
- return -1;
- }
- if (length1 > length2) {
- return 1;
- }
- return 0;
- }
-
- public static int hashBytes(byte[] data, int start, int len) {
- int hash = 1;
- for (int i = start; i < len; i++) {
- hash = (31 * hash) + data[i];
- }
- return hash;
- }
-
- /**
- * Writes a zero-compressed encoded int to a byte array.
- *
- * @param byteStream
- * the byte array/stream
- * @param i
- * the int
- */
- public static void writeVInt(DataOutput byteStream, int i)
- throws IOException {
- writeVLong(byteStream, i);
- }
-
- /**
- * Write a zero-compressed encoded long to a byte array.
- *
- * @param byteStream
- * the byte array/stream
- * @param l
- * the long
- */
- public static void writeVLong(DataOutput byteStream, long l)
- throws IOException {
- if (l >= -112 && l <= 127) {
- byteStream.write((byte) l);
- return;
- }
-
- int len = -112;
- if (l < 0) {
- l ^= -1L; // take one's complement'
- len = -120;
- }
-
- long tmp = l;
- while (tmp != 0) {
- tmp = tmp >> 8;
- len--;
- }
-
- byteStream.write((byte) len);
-
- len = (len < -120) ? -(len + 120) : -(len + 112);
-
- for (int idx = len; idx != 0; idx--) {
- int shiftbits = (idx - 1) * 8;
- long mask = 0xFFL << shiftbits;
- byteStream.write((byte) ((l & mask) >> shiftbits));
- }
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyColumnarObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyColumnarObjectInspector.java
deleted file mode 100644
index b20f185..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyColumnarObjectInspector.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyColumnar;
-
-/**
- * ObjectInspector for LazyColumnar.
- *
- * @see LazyColumnar
- */
-public class LazyColumnarObjectInspector extends StandardStructObjectInspector
- implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- public LazyColumnarObjectInspector(List<String> structFieldNames,
- List<ObjectInspector> structFieldObjectInspectors) {
- super(structFieldNames, structFieldObjectInspectors);
- }
-
- public LazyColumnarObjectInspector(List<StructField> fields) {
- super(fields);
- }
-
- @Override
- public Object getStructFieldData(Object data, StructField fieldRef) {
- if (data == null) {
- return null;
- }
- LazyColumnar struct = (LazyColumnar) data;
- MyField f = (MyField) fieldRef;
-
- int fieldID = f.getFieldID();
- assert (fieldID >= 0 && fieldID < fields.size());
-
- Object column = struct.getField(fieldID);
- return column;
- }
-
- @Override
- public List<Object> getStructFieldsDataAsList(Object data) {
- if (data == null) {
- return null;
- }
- LazyColumnar struct = (LazyColumnar) data;
- return struct.getFieldsAsList();
- }
-
- public String toString() {
- String str = "";
- for (MyField f : fields) {
- str += f.getFieldName() + ":"
- + f.getFieldObjectInspector().getTypeName() + " ";
- }
- return str;
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyListObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyListObjectInspector.java
deleted file mode 100644
index dc4e85b..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyListObjectInspector.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector;
-
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StandardListObjectInspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyArray;
-
-/**
- * ObjectInspector for LazyList.
- */
-public class LazyListObjectInspector extends StandardListObjectInspector {
-
- protected LazyListObjectInspector(ObjectInspector listElementObjectInspector) {
- super(listElementObjectInspector);
- }
-
- @Override
- public List<?> getList(Object data) {
- if (data == null) {
- return null;
- }
- LazyArray array = (LazyArray) data;
- return array.getList();
- }
-
- @Override
- public Object getListElement(Object data, int index) {
- if (data == null) {
- return null;
- }
- LazyArray array = (LazyArray) data;
- return array.getListElementObject(index);
- }
-
- @Override
- public int getListLength(Object data) {
- if (data == null) {
- return -1;
- }
- LazyArray array = (LazyArray) data;
- return array.getListLength();
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyMapObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyMapObjectInspector.java
deleted file mode 100644
index a3be142..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyMapObjectInspector.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector;
-
-import java.util.Map;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StandardMapObjectInspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyMap;
-
-/**
- * ObjectInspector for LazyMap.
- *
- * @see LazyMap
- */
-public class LazyMapObjectInspector extends StandardMapObjectInspector {
-
- protected LazyMapObjectInspector(ObjectInspector mapKeyObjectInspector,
- ObjectInspector mapValueObjectInspector) {
- super(mapKeyObjectInspector, mapValueObjectInspector);
- }
-
- @Override
- public Map<?, ?> getMap(Object data) {
- if (data == null) {
- return null;
- }
- return ((LazyMap) data).getMap();
- }
-
- @Override
- public int getMapSize(Object data) {
- if (data == null) {
- return -1;
- }
- return ((LazyMap) data).getMapSize();
- }
-
- @Override
- public Object getMapValueElement(Object data, Object key) {
- if (data == null) {
- return -1;
- }
- return ((LazyMap) data).getMapValueElement(key);
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyObjectInspectorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyObjectInspectorFactory.java
deleted file mode 100644
index 439b130..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyObjectInspectorFactory.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-
-/**
- * ObjectInspectorFactory is the primary way to create new ObjectInspector
- * instances.
- *
- * SerDe classes should call the static functions in this library to create an
- * ObjectInspector to return to the caller of SerDe2.getObjectInspector().
- *
- * The reason of having caches here is that ObjectInspectors do not have an
- * internal state - so ObjectInspectors with the same construction parameters
- * should result in exactly the same ObjectInspector.
- */
-
-public final class LazyObjectInspectorFactory {
-
- static ConcurrentHashMap<ArrayList<Object>, LazyColumnarObjectInspector> cachedLazyColumnarObjectInspector = new ConcurrentHashMap<ArrayList<Object>, LazyColumnarObjectInspector>();
-
- static ConcurrentHashMap<ArrayList<Object>, LazyStructObjectInspector> cachedLazyStructObjectInspector = new ConcurrentHashMap<ArrayList<Object>, LazyStructObjectInspector>();
-
- static ConcurrentHashMap<ArrayList<Object>, LazyListObjectInspector> cachedLazyListObjectInspector = new ConcurrentHashMap<ArrayList<Object>, LazyListObjectInspector>();
-
- static ConcurrentHashMap<ArrayList<Object>, LazyMapObjectInspector> cachedLazyMapObjectInspector = new ConcurrentHashMap<ArrayList<Object>, LazyMapObjectInspector>();
-
- public static LazyColumnarObjectInspector getLazyColumnarObjectInspector(
- List<String> structFieldNames,
- List<ObjectInspector> structFieldObjectInspectors) {
- ArrayList<Object> signature = new ArrayList<Object>();
- signature.add(structFieldNames);
- signature.add(structFieldObjectInspectors);
- LazyColumnarObjectInspector result = cachedLazyColumnarObjectInspector
- .get(signature);
- if (result == null) {
- result = new LazyColumnarObjectInspector(structFieldNames,
- structFieldObjectInspectors);
- cachedLazyColumnarObjectInspector.put(signature, result);
- }
- return result;
- }
-
- public static LazyStructObjectInspector getLazyStructObjectInspector(
- List<String> structFieldNames,
- List<ObjectInspector> structFieldObjectInspectors) {
- ArrayList<Object> signature = new ArrayList<Object>();
- signature.add(structFieldNames);
- signature.add(structFieldObjectInspectors);
- LazyStructObjectInspector result = cachedLazyStructObjectInspector
- .get(signature);
- if (result == null) {
- result = new LazyStructObjectInspector(structFieldNames,
- structFieldObjectInspectors);
- cachedLazyStructObjectInspector.put(signature, result);
- }
- return result;
- }
-
- public static LazyListObjectInspector getLazyListObjectInspector(
- ObjectInspector listElementInspector) {
- ArrayList<Object> signature = new ArrayList<Object>();
- signature.add(listElementInspector);
- LazyListObjectInspector result = cachedLazyListObjectInspector
- .get(signature);
- if (result == null) {
- result = new LazyListObjectInspector(listElementInspector);
- cachedLazyListObjectInspector.put(signature, result);
- }
- return result;
- }
-
- public static LazyMapObjectInspector getLazyMapObjectInspector(
- ObjectInspector keyInspector, ObjectInspector valueInspector) {
- ArrayList<Object> signature = new ArrayList<Object>();
- signature.add(keyInspector);
- signature.add(valueInspector);
- LazyMapObjectInspector result = cachedLazyMapObjectInspector
- .get(signature);
- if (result == null) {
- result = new LazyMapObjectInspector(keyInspector, valueInspector);
- cachedLazyMapObjectInspector.put(signature, result);
- }
- return result;
- }
-
- private LazyObjectInspectorFactory() {
- // prevent instantiation
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyStructObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyStructObjectInspector.java
deleted file mode 100644
index 1a50233..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/LazyStructObjectInspector.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector;
-
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyStruct;
-
-/**
- * ObjectInspector for LazyStruct.
- *
- * @see LazyStruct
- */
-public class LazyStructObjectInspector extends StandardStructObjectInspector {
-
- protected LazyStructObjectInspector(List<String> structFieldNames,
- List<ObjectInspector> structFieldObjectInspectors) {
- super(structFieldNames, structFieldObjectInspectors);
- }
-
- protected LazyStructObjectInspector(List<StructField> fields) {
- super(fields);
- }
-
- @Override
- public Object getStructFieldData(Object data, StructField fieldRef) {
- if (data == null) {
- return null;
- }
- LazyStruct struct = (LazyStruct) data;
- MyField f = (MyField) fieldRef;
-
- int fieldID = f.getFieldID();
- assert (fieldID >= 0 && fieldID < fields.size());
-
- return struct.getField(fieldID);
- }
-
- @Override
- public List<Object> getStructFieldsDataAsList(Object data) {
- if (data == null) {
- return null;
- }
- LazyStruct struct = (LazyStruct) data;
- return struct.getFieldsAsList();
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/AbstractPrimitiveLazyObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/AbstractPrimitiveLazyObjectInspector.java
deleted file mode 100644
index 7ef8bdd..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/AbstractPrimitiveLazyObjectInspector.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.AbstractPrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.PrimitiveTypeEntry;
-import org.apache.hadoop.io.Writable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyPrimitive;
-
-/**
- * An AbstractPrimitiveLazyObjectInspector for a LazyPrimitive object.
- */
-public abstract class AbstractPrimitiveLazyObjectInspector<T extends Writable>
- extends AbstractPrimitiveObjectInspector {
-
- protected AbstractPrimitiveLazyObjectInspector(PrimitiveTypeEntry typeEntry) {
- super(typeEntry);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public T getPrimitiveWritableObject(Object o) {
- if (o == null)
- System.out.println("sth. wrong");
- return o == null ? null : ((LazyPrimitive<?, T>) o).getWritableObject();
- }
-
- @Override
- public boolean preferWritable() {
- return true;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyBooleanObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyBooleanObjectInspector.java
deleted file mode 100644
index 472dce0..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyBooleanObjectInspector.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.io.BooleanWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyBoolean;
-
-/**
- * A WritableBooleanObjectInspector inspects a BooleanWritable Object.
- */
-public class LazyBooleanObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<BooleanWritable> implements
- BooleanObjectInspector {
-
- LazyBooleanObjectInspector() {
- super(PrimitiveObjectInspectorUtils.booleanTypeEntry);
- }
-
- @Override
- public boolean get(Object o) {
- return getPrimitiveWritableObject(o).get();
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyBoolean((LazyBoolean) o);
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- return o == null ? null : Boolean.valueOf(get(o));
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyByteObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyByteObjectInspector.java
deleted file mode 100644
index e631fc7..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyByteObjectInspector.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.ByteObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.io.ByteWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyByte;
-
-/**
- * A WritableByteObjectInspector inspects a ByteWritable Object.
- */
-public class LazyByteObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<ByteWritable> implements
- ByteObjectInspector {
-
- LazyByteObjectInspector() {
- super(PrimitiveObjectInspectorUtils.byteTypeEntry);
- }
-
- @Override
- public byte get(Object o) {
- return getPrimitiveWritableObject(o).get();
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyByte((LazyByte) o);
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- return o == null ? null : Byte.valueOf(get(o));
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyDoubleObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyDoubleObjectInspector.java
deleted file mode 100644
index 1257f11..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyDoubleObjectInspector.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.io.DoubleWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyDouble;
-
-/**
- * A WritableDoubleObjectInspector inspects a DoubleWritable Object.
- */
-public class LazyDoubleObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<DoubleWritable> implements
- DoubleObjectInspector {
-
- LazyDoubleObjectInspector() {
- super(PrimitiveObjectInspectorUtils.doubleTypeEntry);
- }
-
- @Override
- public double get(Object o) {
- return getPrimitiveWritableObject(o).get();
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyDouble((LazyDouble) o);
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- return o == null ? null : Double.valueOf(get(o));
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyFloatObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyFloatObjectInspector.java
deleted file mode 100644
index c66a06f..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyFloatObjectInspector.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.FloatObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.io.FloatWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyFloat;
-
-/**
- * A FloatObjectInspector inspects a FloatWritable Object.
- */
-public class LazyFloatObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<FloatWritable> implements
- FloatObjectInspector {
-
- LazyFloatObjectInspector() {
- super(PrimitiveObjectInspectorUtils.floatTypeEntry);
- }
-
- @Override
- public float get(Object o) {
- return getPrimitiveWritableObject(o).get();
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyFloat((LazyFloat) o);
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- return o == null ? null : Float.valueOf(get(o));
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyIntObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyIntObjectInspector.java
deleted file mode 100644
index b2159e0..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyIntObjectInspector.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.io.IntWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyInteger;
-
-/**
- * A WritableIntObjectInspector inspects a IntWritable Object.
- */
-public class LazyIntObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<IntWritable> implements
- IntObjectInspector {
-
- LazyIntObjectInspector() {
- super(PrimitiveObjectInspectorUtils.intTypeEntry);
- }
-
- @Override
- public int get(Object o) {
- return getPrimitiveWritableObject(o).get();
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyInteger((LazyInteger) o);
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- return o == null ? null : Integer.valueOf(get(o));
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyLongObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyLongObjectInspector.java
deleted file mode 100644
index 1fc2d53..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyLongObjectInspector.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.io.LongWritable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyLong;
-
-/**
- * A WritableLongObjectInspector inspects a LongWritable Object.
- */
-public class LazyLongObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<LongWritable> implements
- LongObjectInspector {
-
- LazyLongObjectInspector() {
- super(PrimitiveObjectInspectorUtils.longTypeEntry);
- }
-
- @Override
- public long get(Object o) {
- return getPrimitiveWritableObject(o).get();
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyLong((LazyLong) o);
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- return o == null ? null : Long.valueOf(get(o));
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java
deleted file mode 100644
index 134dc5a..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import java.util.ArrayList;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-
-/**
- * LazyPrimitiveObjectInspectorFactory is the primary way to create new
- * ObjectInspector instances.
- *
- * SerDe classes should call the static functions in this library to create an
- * ObjectInspector to return to the caller of SerDe2.getObjectInspector().
- *
- * The reason of having caches here is that ObjectInspector is because
- * ObjectInspectors do not have an internal state - so ObjectInspectors with the
- * same construction parameters should result in exactly the same
- * ObjectInspector.
- */
-public final class LazyPrimitiveObjectInspectorFactory {
-
- public static final LazyBooleanObjectInspector LAZY_BOOLEAN_OBJECT_INSPECTOR = new LazyBooleanObjectInspector();
- public static final LazyByteObjectInspector LAZY_BYTE_OBJECT_INSPECTOR = new LazyByteObjectInspector();
- public static final LazyShortObjectInspector LAZY_SHORT_OBJECT_INSPECTOR = new LazyShortObjectInspector();
- public static final LazyIntObjectInspector LAZY_INT_OBJECT_INSPECTOR = new LazyIntObjectInspector();
- public static final LazyLongObjectInspector LAZY_LONG_OBJECT_INSPECTOR = new LazyLongObjectInspector();
- public static final LazyFloatObjectInspector LAZY_FLOAT_OBJECT_INSPECTOR = new LazyFloatObjectInspector();
- public static final LazyDoubleObjectInspector LAZY_DOUBLE_OBJECT_INSPECTOR = new LazyDoubleObjectInspector();
- public static final LazyVoidObjectInspector LAZY_VOID_OBJECT_INSPECTOR = new LazyVoidObjectInspector();
-
- static ConcurrentHashMap<ArrayList<Object>, LazyStringObjectInspector> cachedLazyStringObjectInspector = new ConcurrentHashMap<ArrayList<Object>, LazyStringObjectInspector>();
-
- public static LazyStringObjectInspector getLazyStringObjectInspector(
- boolean escaped, byte escapeChar) {
- ArrayList<Object> signature = new ArrayList<Object>();
- signature.add(Boolean.valueOf(escaped));
- signature.add(Byte.valueOf(escapeChar));
- LazyStringObjectInspector result = cachedLazyStringObjectInspector
- .get(signature);
- if (result == null) {
- result = new LazyStringObjectInspector(escaped, escapeChar);
- cachedLazyStringObjectInspector.put(signature, result);
- }
- return result;
- }
-
- public static AbstractPrimitiveLazyObjectInspector<?> getLazyObjectInspector(
- PrimitiveCategory primitiveCategory, boolean escaped,
- byte escapeChar) {
-
- switch (primitiveCategory) {
- case BOOLEAN:
- return LAZY_BOOLEAN_OBJECT_INSPECTOR;
- case BYTE:
- return LAZY_BYTE_OBJECT_INSPECTOR;
- case SHORT:
- return LAZY_SHORT_OBJECT_INSPECTOR;
- case INT:
- return LAZY_INT_OBJECT_INSPECTOR;
- case LONG:
- return LAZY_LONG_OBJECT_INSPECTOR;
- case FLOAT:
- return LAZY_FLOAT_OBJECT_INSPECTOR;
- case DOUBLE:
- return LAZY_DOUBLE_OBJECT_INSPECTOR;
- case STRING:
- return getLazyStringObjectInspector(escaped, escapeChar);
- case VOID:
- return LAZY_VOID_OBJECT_INSPECTOR;
- default:
- throw new RuntimeException(
- "Internal error: Cannot find ObjectInspector " + " for "
- + primitiveCategory);
- }
- }
-
- private LazyPrimitiveObjectInspectorFactory() {
- // prevent instantiation
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyShortObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyShortObjectInspector.java
deleted file mode 100644
index cb06dfd..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyShortObjectInspector.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.io.ShortWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.ShortObjectInspector;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyShort;
-
-/**
- * A WritableShortObjectInspector inspects a ShortWritable Object.
- */
-public class LazyShortObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<ShortWritable> implements
- ShortObjectInspector {
-
- LazyShortObjectInspector() {
- super(PrimitiveObjectInspectorUtils.shortTypeEntry);
- }
-
- @Override
- public short get(Object o) {
- return getPrimitiveWritableObject(o).get();
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyShort((LazyShort) o);
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- return o == null ? null : Short.valueOf(get(o));
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyStringObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyStringObjectInspector.java
deleted file mode 100644
index 5832f34..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyStringObjectInspector.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
-import org.apache.hadoop.io.Text;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyString;
-
-/**
- * A WritableStringObjectInspector inspects a Text Object.
- */
-public class LazyStringObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<Text> implements
- StringObjectInspector {
-
- boolean escaped;
- byte escapeChar;
-
- LazyStringObjectInspector(boolean escaped, byte escapeChar) {
- super(PrimitiveObjectInspectorUtils.stringTypeEntry);
- this.escaped = escaped;
- this.escapeChar = escapeChar;
- }
-
- @Override
- public Object copyObject(Object o) {
- return o == null ? null : new LazyString((LazyString) o);
- }
-
- @Override
- public Text getPrimitiveWritableObject(Object o) {
- return o == null ? null : ((LazyString) o).getWritableObject();
- }
-
- @Override
- public String getPrimitiveJavaObject(Object o) {
- return o == null ? null : ((LazyString) o).getWritableObject()
- .toString();
- }
-
- public boolean isEscaped() {
- return escaped;
- }
-
- public byte getEscapeChar() {
- return escapeChar;
- }
-
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyVoidObjectInspector.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyVoidObjectInspector.java
deleted file mode 100644
index a30f1af..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/LazyVoidObjectInspector.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.VoidObjectInspector;
-import org.apache.hadoop.io.NullWritable;
-
-/**
- * A WritableVoidObjectInspector inspects a NullWritable Object.
- */
-public class LazyVoidObjectInspector extends
- AbstractPrimitiveLazyObjectInspector<NullWritable> implements
- VoidObjectInspector {
-
- LazyVoidObjectInspector() {
- super(PrimitiveObjectInspectorUtils.voidTypeEntry);
- }
-
- @Override
- public Object copyObject(Object o) {
- return o;
- }
-
- @Override
- public Object getPrimitiveJavaObject(Object o) {
- throw new RuntimeException("Internal error: cannot create Void object.");
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/PrimitiveObjectInspectorFactory.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/PrimitiveObjectInspectorFactory.java
deleted file mode 100644
index e70bdb9..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/lazy/objectinspector/primitive/PrimitiveObjectInspectorFactory.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.serde.lazy.objectinspector.primitive;
-
-import java.util.HashMap;
-
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-
-/**
- * PrimitiveObjectInspectorFactory is the primary way to create new
- * PrimitiveObjectInspector instances.
- *
- * The reason of having caches here is that ObjectInspector is because
- * ObjectInspectors do not have an internal state - so ObjectInspectors with the
- * same construction parameters should result in exactly the same
- * ObjectInspector.
- */
-public final class PrimitiveObjectInspectorFactory {
-
- public static final LazyBooleanObjectInspector LazyBooleanObjectInspector = new LazyBooleanObjectInspector();
- public static final LazyByteObjectInspector LazyByteObjectInspector = new LazyByteObjectInspector();
- public static final LazyShortObjectInspector LazyShortObjectInspector = new LazyShortObjectInspector();
- public static final LazyIntObjectInspector LazyIntObjectInspector = new LazyIntObjectInspector();
- public static final LazyLongObjectInspector LazyLongObjectInspector = new LazyLongObjectInspector();
- public static final LazyFloatObjectInspector LazyFloatObjectInspector = new LazyFloatObjectInspector();
- public static final LazyDoubleObjectInspector LazyDoubleObjectInspector = new LazyDoubleObjectInspector();
- public static final LazyStringObjectInspector LazyStringObjectInspector = new LazyStringObjectInspector(
- false, (byte) '\\');
- public static final LazyVoidObjectInspector LazyVoidObjectInspector = new LazyVoidObjectInspector();
-
- private static HashMap<PrimitiveCategory, AbstractPrimitiveLazyObjectInspector<?>> cachedPrimitiveLazyInspectorCache = new HashMap<PrimitiveCategory, AbstractPrimitiveLazyObjectInspector<?>>();
-
- static {
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.BOOLEAN,
- LazyBooleanObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.BYTE,
- LazyByteObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.SHORT,
- LazyShortObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.INT,
- LazyIntObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.LONG,
- LazyLongObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.FLOAT,
- LazyFloatObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.DOUBLE,
- LazyDoubleObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.STRING,
- LazyStringObjectInspector);
- cachedPrimitiveLazyInspectorCache.put(PrimitiveCategory.VOID,
- LazyVoidObjectInspector);
- }
-
- /**
- * Returns the PrimitiveWritableObjectInspector for the PrimitiveCategory.
- *
- * @param primitiveCategory
- */
- public static AbstractPrimitiveLazyObjectInspector<?> getPrimitiveLazyObjectInspector(
- PrimitiveCategory primitiveCategory) {
- AbstractPrimitiveLazyObjectInspector<?> result = cachedPrimitiveLazyInspectorCache
- .get(primitiveCategory);
- if (result == null) {
- throw new RuntimeException(
- "Internal error: Cannot find ObjectInspector " + " for "
- + primitiveCategory);
- }
- return result;
- }
-
- private PrimitiveObjectInspectorFactory() {
- // prevent instantiation
- }
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/parser/IHiveParser.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/parser/IHiveParser.java
deleted file mode 100644
index aeea68f..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/parser/IHiveParser.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package edu.uci.ics.hivesterix.serde.parser;
-
-import java.io.IOException;
-
-import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
-
-public interface IHiveParser {
- /**
- * parse one hive rwo into
- *
- * @param row
- * @param objectInspector
- * @param tb
- */
- public void parse(byte[] data, int start, int length, ArrayTupleBuilder tb)
- throws IOException;
-}
diff --git a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/parser/TextToBinaryTupleParser.java b/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/parser/TextToBinaryTupleParser.java
deleted file mode 100644
index 3aeb058..0000000
--- a/hivesterix/src/main/java/edu/uci/ics/hivesterix/serde/parser/TextToBinaryTupleParser.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package edu.uci.ics.hivesterix.serde.parser;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.hadoop.hive.serde2.lazy.LazyInteger;
-import org.apache.hadoop.hive.serde2.lazy.LazyLong;
-import org.apache.hadoop.hive.serde2.lazy.LazyShort;
-import org.apache.hadoop.hive.serde2.lazy.objectinspector.LazySimpleStructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.io.Text;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazyUtils;
-import edu.uci.ics.hyracks.algebricks.common.exceptions.NotImplementedException;
-import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
-
-public class TextToBinaryTupleParser implements IHiveParser {
- private int[] invertedIndex;
- private int[] fieldEnds;
- private int lastNecessaryFieldIndex;
- private LazySimpleStructObjectInspector inputObjectInspector;
- private List<? extends StructField> fieldRefs;
-
- public TextToBinaryTupleParser(int[] outputColumnsOffset,
- ObjectInspector structInspector) {
- int size = 0;
- for (int i = 0; i < outputColumnsOffset.length; i++)
- if (outputColumnsOffset[i] >= 0)
- size++;
- invertedIndex = new int[size];
- for (int i = 0; i < outputColumnsOffset.length; i++)
- if (outputColumnsOffset[i] >= 0) {
- invertedIndex[outputColumnsOffset[i]] = i;
- lastNecessaryFieldIndex = i;
- }
- fieldEnds = new int[outputColumnsOffset.length];
- for (int i = 0; i < fieldEnds.length; i++)
- fieldEnds[i] = 0;
- inputObjectInspector = (LazySimpleStructObjectInspector) structInspector;
- fieldRefs = inputObjectInspector.getAllStructFieldRefs();
- }
-
- @Override
- public void parse(byte[] bytes, int start, int length, ArrayTupleBuilder tb)
- throws IOException {
- byte separator = inputObjectInspector.getSeparator();
- boolean lastColumnTakesRest = inputObjectInspector
- .getLastColumnTakesRest();
- boolean isEscaped = inputObjectInspector.isEscaped();
- byte escapeChar = inputObjectInspector.getEscapeChar();
- DataOutput output = tb.getDataOutput();
-
- int structByteEnd = start + length - 1;
- int fieldId = 0;
- int fieldByteEnd = start;
-
- // Go through all bytes in the byte[]
- while (fieldByteEnd <= structByteEnd
- && fieldId <= lastNecessaryFieldIndex) {
- if (fieldByteEnd == structByteEnd
- || bytes[fieldByteEnd] == separator) {
- // Reached the end of a field?
- if (lastColumnTakesRest && fieldId == fieldEnds.length - 1) {
- fieldByteEnd = structByteEnd;
- }
- fieldEnds[fieldId] = fieldByteEnd;
- if (fieldId == fieldEnds.length - 1
- || fieldByteEnd == structByteEnd) {
- // for the case of null fields
- for (int i = fieldId; i < fieldEnds.length; i++) {
- fieldEnds[i] = fieldByteEnd;
- }
- break;
- }
- fieldByteEnd++;
- fieldId++;
- } else {
- if (isEscaped && bytes[fieldByteEnd] == escapeChar
- && fieldByteEnd + 1 < structByteEnd) {
- // ignore the char after escape_char
- fieldByteEnd += 2;
- } else {
- fieldByteEnd++;
- }
- }
- }
-
- for (int i = 0; i < invertedIndex.length; i++) {
- int index = invertedIndex[i];
- StructField fieldRef = fieldRefs.get(index);
- ObjectInspector inspector = fieldRef.getFieldObjectInspector();
- Category category = inspector.getCategory();
- int fieldStart = index == 0 ? 0 : fieldEnds[index - 1] + 1;
- int fieldEnd = fieldEnds[index];
- if (bytes[fieldEnd] == separator)
- fieldEnd--;
- int fieldLen = fieldEnd - fieldStart + 1;
- switch (category) {
- case PRIMITIVE:
- PrimitiveObjectInspector poi = (PrimitiveObjectInspector) inspector;
- switch (poi.getPrimitiveCategory()) {
- case VOID: {
- break;
- }
- case BOOLEAN: {
- output.write(bytes[fieldStart]);
- break;
- }
- case BYTE: {
- output.write(bytes[fieldStart]);
- break;
- }
- case SHORT: {
- short v = LazyShort.parseShort(bytes, fieldStart, fieldLen);
- output.write((byte) (v >> 8));
- output.write((byte) (v));
- break;
- }
- case INT: {
- int v = LazyInteger.parseInt(bytes, fieldStart, fieldLen);
- LazyUtils.writeVInt(output, v);
- break;
- }
- case LONG: {
- long v = LazyLong.parseLong(bytes, fieldStart, fieldLen);
- LazyUtils.writeVLong(output, v);
- break;
- }
- case FLOAT: {
- float value = Float.parseFloat(Text.decode(bytes,
- fieldStart, fieldLen));
- int v = Float.floatToIntBits(value);
- output.write((byte) (v >> 24));
- output.write((byte) (v >> 16));
- output.write((byte) (v >> 8));
- output.write((byte) (v));
- break;
- }
- case DOUBLE: {
- try {
- double value = Double.parseDouble(Text.decode(bytes,
- fieldStart, fieldLen));
- long v = Double.doubleToLongBits(value);
- output.write((byte) (v >> 56));
- output.write((byte) (v >> 48));
- output.write((byte) (v >> 40));
- output.write((byte) (v >> 32));
- output.write((byte) (v >> 24));
- output.write((byte) (v >> 16));
- output.write((byte) (v >> 8));
- output.write((byte) (v));
- } catch (NumberFormatException e) {
- throw e;
- }
- break;
- }
- case STRING: {
- LazyUtils.writeVInt(output, fieldLen);
- output.write(bytes, fieldStart, fieldLen);
- break;
- }
- default: {
- throw new RuntimeException("Unrecognized type: "
- + poi.getPrimitiveCategory());
- }
- }
- break;
- case STRUCT:
- throw new NotImplementedException("Unrecognized type: struct ");
- case LIST:
- throw new NotImplementedException("Unrecognized type: struct ");
- case MAP:
- throw new NotImplementedException("Unrecognized type: struct ");
- case UNION:
- throw new NotImplementedException("Unrecognized type: struct ");
- }
- tb.addFieldEndOffset();
- }
- }
-}
diff --git a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/Driver.java b/hivesterix/src/main/java/org/apache/hadoop/hive/ql/Driver.java
deleted file mode 100644
index 57e2cc0..0000000
--- a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/Driver.java
+++ /dev/null
@@ -1,1441 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.ql;
-
-import java.io.DataInput;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Queue;
-import java.util.Set;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.fs.FSDataInputStream;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.common.JavaUtils;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.metastore.MetaStoreUtils;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.metastore.api.Schema;
-import org.apache.hadoop.hive.ql.exec.ConditionalTask;
-import org.apache.hadoop.hive.ql.exec.ExecDriver;
-import org.apache.hadoop.hive.ql.exec.FetchTask;
-import org.apache.hadoop.hive.ql.exec.MapRedTask;
-import org.apache.hadoop.hive.ql.exec.Operator;
-import org.apache.hadoop.hive.ql.exec.StatsTask;
-import org.apache.hadoop.hive.ql.exec.TableScanOperator;
-import org.apache.hadoop.hive.ql.exec.Task;
-import org.apache.hadoop.hive.ql.exec.TaskFactory;
-import org.apache.hadoop.hive.ql.exec.TaskResult;
-import org.apache.hadoop.hive.ql.exec.TaskRunner;
-import org.apache.hadoop.hive.ql.exec.Utilities;
-import org.apache.hadoop.hive.ql.history.HiveHistory.Keys;
-import org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext;
-import org.apache.hadoop.hive.ql.hooks.Hook;
-import org.apache.hadoop.hive.ql.hooks.HookContext;
-import org.apache.hadoop.hive.ql.hooks.PostExecute;
-import org.apache.hadoop.hive.ql.hooks.PreExecute;
-import org.apache.hadoop.hive.ql.hooks.ReadEntity;
-import org.apache.hadoop.hive.ql.hooks.WriteEntity;
-import org.apache.hadoop.hive.ql.lockmgr.HiveLock;
-import org.apache.hadoop.hive.ql.lockmgr.HiveLockManager;
-import org.apache.hadoop.hive.ql.lockmgr.HiveLockManagerCtx;
-import org.apache.hadoop.hive.ql.lockmgr.HiveLockMode;
-import org.apache.hadoop.hive.ql.lockmgr.HiveLockObj;
-import org.apache.hadoop.hive.ql.lockmgr.HiveLockObject;
-import org.apache.hadoop.hive.ql.lockmgr.HiveLockObject.HiveLockObjectData;
-import org.apache.hadoop.hive.ql.lockmgr.LockException;
-import org.apache.hadoop.hive.ql.metadata.AuthorizationException;
-import org.apache.hadoop.hive.ql.metadata.DummyPartition;
-import org.apache.hadoop.hive.ql.metadata.Hive;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.metadata.HiveUtils;
-import org.apache.hadoop.hive.ql.metadata.Partition;
-import org.apache.hadoop.hive.ql.metadata.Table;
-import org.apache.hadoop.hive.ql.optimizer.ppr.PartitionPruner;
-import org.apache.hadoop.hive.ql.parse.ASTNode;
-import org.apache.hadoop.hive.ql.parse.AbstractSemanticAnalyzerHook;
-import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
-import org.apache.hadoop.hive.ql.parse.ErrorMsg;
-import org.apache.hadoop.hive.ql.parse.HiveSemanticAnalyzerHookContext;
-import org.apache.hadoop.hive.ql.parse.HiveSemanticAnalyzerHookContextImpl;
-import org.apache.hadoop.hive.ql.parse.ParseContext;
-import org.apache.hadoop.hive.ql.parse.ParseDriver;
-import org.apache.hadoop.hive.ql.parse.ParseException;
-import org.apache.hadoop.hive.ql.parse.ParseUtils;
-import org.apache.hadoop.hive.ql.parse.PrunedPartitionList;
-import org.apache.hadoop.hive.ql.parse.SemanticAnalyzer;
-import org.apache.hadoop.hive.ql.parse.SemanticAnalyzerFactory;
-import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
-import org.apache.hadoop.hive.ql.plan.ConditionalResolver;
-import org.apache.hadoop.hive.ql.plan.ConditionalResolverMergeFiles;
-import org.apache.hadoop.hive.ql.plan.HiveOperation;
-import org.apache.hadoop.hive.ql.plan.TableDesc;
-import org.apache.hadoop.hive.ql.processors.CommandProcessor;
-import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
-import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
-import org.apache.hadoop.hive.serde2.ByteStream;
-import org.apache.hadoop.hive.shims.ShimLoader;
-import org.apache.hadoop.mapred.ClusterStatus;
-import org.apache.hadoop.mapred.JobClient;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.util.ReflectionUtils;
-
-import edu.uci.ics.hivesterix.runtime.exec.HyracksExecutionEngine;
-import edu.uci.ics.hivesterix.runtime.exec.IExecutionEngine;
-
-@SuppressWarnings({ "deprecation", "unused" })
-public class Driver implements CommandProcessor {
-
- static final private Log LOG = LogFactory.getLog(Driver.class.getName());
- static final private LogHelper console = new LogHelper(LOG);
-
- // hive-sterix
- private IExecutionEngine engine;
- private boolean hivesterix = false;
-
- private int maxRows = 100;
- ByteStream.Output bos = new ByteStream.Output();
-
- private HiveConf conf;
- private DataInput resStream;
- private Context ctx;
- private QueryPlan plan;
- private Schema schema;
- private HiveLockManager hiveLockMgr;
-
- private String errorMessage;
- private String SQLState;
-
- // A limit on the number of threads that can be launched
- private int maxthreads;
- private final int sleeptime = 2000;
-
- protected int tryCount = Integer.MAX_VALUE;
-
- private int checkLockManager() {
- boolean supportConcurrency = conf
- .getBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY);
- if (supportConcurrency && (hiveLockMgr == null)) {
- try {
- setLockManager();
- } catch (SemanticException e) {
- errorMessage = "FAILED: Error in semantic analysis: "
- + e.getMessage();
- SQLState = ErrorMsg.findSQLState(e.getMessage());
- console.printError(
- errorMessage,
- "\n"
- + org.apache.hadoop.util.StringUtils
- .stringifyException(e));
- return (12);
- }
- }
- return (0);
- }
-
- private void setLockManager() throws SemanticException {
- boolean supportConcurrency = conf
- .getBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY);
- if (supportConcurrency) {
- String lockMgr = conf.getVar(HiveConf.ConfVars.HIVE_LOCK_MANAGER);
- if ((lockMgr == null) || (lockMgr.isEmpty())) {
- throw new SemanticException(
- ErrorMsg.LOCKMGR_NOT_SPECIFIED.getMsg());
- }
-
- try {
- hiveLockMgr = (HiveLockManager) ReflectionUtils.newInstance(
- conf.getClassByName(lockMgr), conf);
- hiveLockMgr.setContext(new HiveLockManagerCtx(conf));
- } catch (Exception e) {
- throw new SemanticException(
- ErrorMsg.LOCKMGR_NOT_INITIALIZED.getMsg()
- + e.getMessage());
- }
- }
- }
-
- public void init() {
- Operator.resetId();
- }
-
- /**
- * Return the status information about the Map-Reduce cluster
- */
- public ClusterStatus getClusterStatus() throws Exception {
- ClusterStatus cs;
- try {
- JobConf job = new JobConf(conf, ExecDriver.class);
- JobClient jc = new JobClient(job);
- cs = jc.getClusterStatus();
- } catch (Exception e) {
- e.printStackTrace();
- throw e;
- }
- LOG.info("Returning cluster status: " + cs.toString());
- return cs;
- }
-
- public Schema getSchema() {
- return schema;
- }
-
- /**
- * Get a Schema with fields represented with native Hive types
- */
- public static Schema getSchema(BaseSemanticAnalyzer sem, HiveConf conf) {
- Schema schema = null;
-
- // If we have a plan, prefer its logical result schema if it's
- // available; otherwise, try digging out a fetch task; failing that,
- // give up.
- if (sem == null) {
- // can't get any info without a plan
- } else if (sem.getResultSchema() != null) {
- List<FieldSchema> lst = sem.getResultSchema();
- schema = new Schema(lst, null);
- } else if (sem.getFetchTask() != null) {
- FetchTask ft = sem.getFetchTask();
- TableDesc td = ft.getTblDesc();
- // partitioned tables don't have tableDesc set on the FetchTask.
- // Instead
- // they have a list of PartitionDesc objects, each with a table
- // desc.
- // Let's
- // try to fetch the desc for the first partition and use it's
- // deserializer.
- if (td == null && ft.getWork() != null
- && ft.getWork().getPartDesc() != null) {
- if (ft.getWork().getPartDesc().size() > 0) {
- td = ft.getWork().getPartDesc().get(0).getTableDesc();
- }
- }
-
- if (td == null) {
- LOG.info("No returning schema.");
- } else {
- String tableName = "result";
- List<FieldSchema> lst = null;
- try {
- lst = MetaStoreUtils.getFieldsFromDeserializer(tableName,
- td.getDeserializer());
- } catch (Exception e) {
- LOG.warn("Error getting schema: "
- + org.apache.hadoop.util.StringUtils
- .stringifyException(e));
- }
- if (lst != null) {
- schema = new Schema(lst, null);
- }
- }
- }
- if (schema == null) {
- schema = new Schema();
- }
- LOG.info("Returning Hive schema: " + schema);
- return schema;
- }
-
- /**
- * Get a Schema with fields represented with Thrift DDL types
- */
- public Schema getThriftSchema() throws Exception {
- Schema schema;
- try {
- schema = getSchema();
- if (schema != null) {
- List<FieldSchema> lst = schema.getFieldSchemas();
- // Go over the schema and convert type to thrift type
- if (lst != null) {
- for (FieldSchema f : lst) {
- f.setType(MetaStoreUtils.typeToThriftType(f.getType()));
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw e;
- }
- LOG.info("Returning Thrift schema: " + schema);
- return schema;
- }
-
- /**
- * Return the maximum number of rows returned by getResults
- */
- public int getMaxRows() {
- return maxRows;
- }
-
- /**
- * Set the maximum number of rows returned by getResults
- */
- public void setMaxRows(int maxRows) {
- this.maxRows = maxRows;
- }
-
- public boolean hasReduceTasks(List<Task<? extends Serializable>> tasks) {
- if (tasks == null) {
- return false;
- }
-
- boolean hasReduce = false;
- for (Task<? extends Serializable> task : tasks) {
- if (task.hasReduce()) {
- return true;
- }
-
- hasReduce = (hasReduce || hasReduceTasks(task.getChildTasks()));
- }
- return hasReduce;
- }
-
- /**
- * for backwards compatibility with current tests
- */
- public Driver(HiveConf conf) {
- this.conf = conf;
-
- // hivesterix
- engine = new HyracksExecutionEngine(conf);
- }
-
- public Driver() {
- if (SessionState.get() != null) {
- conf = SessionState.get().getConf();
- }
-
- // hivesterix
- engine = new HyracksExecutionEngine(conf);
- }
-
- // hivesterix: plan printer
- public Driver(HiveConf conf, PrintWriter planPrinter) {
- this.conf = conf;
- engine = new HyracksExecutionEngine(conf, planPrinter);
- }
-
- public void clear() {
- this.hivesterix = false;
- }
-
- /**
- * Compile a new query. Any currently-planned query associated with this
- * Driver is discarded.
- *
- * @param command
- * The SQL query to compile.
- */
- public int compile(String command) {
- if (plan != null) {
- close();
- plan = null;
- }
-
- TaskFactory.resetId();
-
- try {
- command = new VariableSubstitution().substitute(conf, command);
- ctx = new Context(conf);
-
- ParseDriver pd = new ParseDriver();
- ASTNode tree = pd.parse(command, ctx);
- tree = ParseUtils.findRootNonNullToken(tree);
-
- BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(conf, tree);
- List<AbstractSemanticAnalyzerHook> saHooks = getSemanticAnalyzerHooks();
-
- // Do semantic analysis and plan generation
- if (saHooks != null) {
- HiveSemanticAnalyzerHookContext hookCtx = new HiveSemanticAnalyzerHookContextImpl();
- hookCtx.setConf(conf);
- for (AbstractSemanticAnalyzerHook hook : saHooks) {
- tree = hook.preAnalyze(hookCtx, tree);
- }
- sem.analyze(tree, ctx);
- for (AbstractSemanticAnalyzerHook hook : saHooks) {
- hook.postAnalyze(hookCtx, sem.getRootTasks());
- }
- } else {
- sem.analyze(tree, ctx);
- }
-
- LOG.info("Semantic Analysis Completed");
-
- // validate the plan
- sem.validate();
-
- plan = new QueryPlan(command, sem);
- // initialize FetchTask right here
- if (plan.getFetchTask() != null) {
- plan.getFetchTask().initialize(conf, plan, null);
- }
-
- // get the output schema
- schema = getSchema(sem, conf);
-
- // test Only - serialize the query plan and deserialize it
- if (sem instanceof SemanticAnalyzer
- && command.toLowerCase().indexOf("create") < 0) {
-
- Thread.currentThread().setContextClassLoader(
- this.getClass().getClassLoader());
-
- String queryPlanFileName = ctx.getLocalScratchDir(true)
- + Path.SEPARATOR_CHAR + "queryplan.xml";
- LOG.info("query plan = " + queryPlanFileName);
- queryPlanFileName = new Path(queryPlanFileName).toUri()
- .getPath();
-
- // serialize the queryPlan
- FileOutputStream fos = new FileOutputStream(queryPlanFileName);
- Utilities.serializeQueryPlan(plan, fos);
- fos.close();
-
- // deserialize the queryPlan
- FileInputStream fis = new FileInputStream(queryPlanFileName);
- QueryPlan newPlan = Utilities.deserializeQueryPlan(fis, conf);
- fis.close();
-
- // Use the deserialized plan
- plan = newPlan;
- }
-
- // initialize FetchTask right here
- if (plan.getFetchTask() != null) {
- plan.getFetchTask().initialize(conf, plan, null);
- }
-
- // do the authorization check
- if (HiveConf.getBoolVar(conf,
- HiveConf.ConfVars.HIVE_AUTHORIZATION_ENABLED)) {
- try {
- // doAuthorization(sem);
- } catch (AuthorizationException authExp) {
- console.printError("Authorization failed:"
- + authExp.getMessage()
- + ". Use show grant to get more details.");
- return 403;
- }
- }
-
- // hyracks run
- if (sem instanceof SemanticAnalyzer
- && command.toLowerCase().indexOf("create") < 0) {
- hivesterix = true;
- return engine.compileJob(sem.getRootTasks());
- }
-
- return 0;
- } catch (SemanticException e) {
- errorMessage = "FAILED: Error in semantic analysis: "
- + e.getMessage();
- SQLState = ErrorMsg.findSQLState(e.getMessage());
- console.printError(errorMessage, "\n"
- + org.apache.hadoop.util.StringUtils.stringifyException(e));
- return (10);
- } catch (ParseException e) {
- errorMessage = "FAILED: Parse Error: " + e.getMessage();
- SQLState = ErrorMsg.findSQLState(e.getMessage());
- console.printError(errorMessage, "\n"
- + org.apache.hadoop.util.StringUtils.stringifyException(e));
- return (11);
- } catch (Exception e) {
- errorMessage = "FAILED: Hive Internal Error: "
- + Utilities.getNameMessage(e);
- SQLState = ErrorMsg.findSQLState(e.getMessage());
- console.printError(errorMessage + "\n"
- + org.apache.hadoop.util.StringUtils.stringifyException(e));
- return (12);
- }
- }
-
- private void doAuthorization(BaseSemanticAnalyzer sem)
- throws HiveException, AuthorizationException {
- HashSet<ReadEntity> inputs = sem.getInputs();
- HashSet<WriteEntity> outputs = sem.getOutputs();
- SessionState ss = SessionState.get();
- HiveOperation op = ss.getHiveOperation();
- Hive db = sem.getDb();
- if (op != null) {
- if (op.equals(HiveOperation.CREATETABLE_AS_SELECT)
- || op.equals(HiveOperation.CREATETABLE)) {
- ss.getAuthorizer().authorize(
- db.getDatabase(db.getCurrentDatabase()),
- null,
- HiveOperation.CREATETABLE_AS_SELECT
- .getOutputRequiredPrivileges());
- } else {
- // if (op.equals(HiveOperation.IMPORT)) {
- // ImportSemanticAnalyzer isa = (ImportSemanticAnalyzer) sem;
- // if (!isa.existsTable()) {
- ss.getAuthorizer().authorize(
- db.getDatabase(db.getCurrentDatabase()),
- null,
- HiveOperation.CREATETABLE_AS_SELECT
- .getOutputRequiredPrivileges());
- // }
- // }
- }
- if (outputs != null && outputs.size() > 0) {
- for (WriteEntity write : outputs) {
-
- if (write.getType() == WriteEntity.Type.PARTITION) {
- Partition part = db.getPartition(write.getTable(),
- write.getPartition().getSpec(), false);
- if (part != null) {
- ss.getAuthorizer().authorize(write.getPartition(),
- null, op.getOutputRequiredPrivileges());
- continue;
- }
- }
-
- if (write.getTable() != null) {
- ss.getAuthorizer().authorize(write.getTable(), null,
- op.getOutputRequiredPrivileges());
- }
- }
-
- }
- }
-
- if (inputs != null && inputs.size() > 0) {
-
- Map<Table, List<String>> tab2Cols = new HashMap<Table, List<String>>();
- Map<Partition, List<String>> part2Cols = new HashMap<Partition, List<String>>();
-
- Map<String, Boolean> tableUsePartLevelAuth = new HashMap<String, Boolean>();
- for (ReadEntity read : inputs) {
- if (read.getPartition() != null) {
- Table tbl = read.getTable();
- String tblName = tbl.getTableName();
- if (tableUsePartLevelAuth.get(tblName) == null) {
- boolean usePartLevelPriv = (tbl.getParameters().get(
- "PARTITION_LEVEL_PRIVILEGE") != null && ("TRUE"
- .equalsIgnoreCase(tbl.getParameters().get(
- "PARTITION_LEVEL_PRIVILEGE"))));
- if (usePartLevelPriv) {
- tableUsePartLevelAuth.put(tblName, Boolean.TRUE);
- } else {
- tableUsePartLevelAuth.put(tblName, Boolean.FALSE);
- }
- }
- }
- }
-
- if (op.equals(HiveOperation.CREATETABLE_AS_SELECT)
- || op.equals(HiveOperation.QUERY)) {
- SemanticAnalyzer querySem = (SemanticAnalyzer) sem;
- ParseContext parseCtx = querySem.getParseContext();
- Map<TableScanOperator, Table> tsoTopMap = parseCtx
- .getTopToTable();
-
- for (Map.Entry<String, Operator<? extends Serializable>> topOpMap : querySem
- .getParseContext().getTopOps().entrySet()) {
- Operator<? extends Serializable> topOp = topOpMap
- .getValue();
- if (topOp instanceof TableScanOperator
- && tsoTopMap.containsKey(topOp)) {
- TableScanOperator tableScanOp = (TableScanOperator) topOp;
- Table tbl = tsoTopMap.get(tableScanOp);
- List<Integer> neededColumnIds = tableScanOp
- .getNeededColumnIDs();
- List<FieldSchema> columns = tbl.getCols();
- List<String> cols = new ArrayList<String>();
- if (neededColumnIds != null
- && neededColumnIds.size() > 0) {
- for (int i = 0; i < neededColumnIds.size(); i++) {
- cols.add(columns.get(neededColumnIds.get(i))
- .getName());
- }
- } else {
- for (int i = 0; i < columns.size(); i++) {
- cols.add(columns.get(i).getName());
- }
- }
- if (tbl.isPartitioned()
- && tableUsePartLevelAuth
- .get(tbl.getTableName())) {
- String alias_id = topOpMap.getKey();
- PrunedPartitionList partsList = PartitionPruner
- .prune(parseCtx.getTopToTable().get(topOp),
- parseCtx.getOpToPartPruner().get(
- topOp), parseCtx.getConf(),
- alias_id,
- parseCtx.getPrunedPartitions());
- Set<Partition> parts = new HashSet<Partition>();
- parts.addAll(partsList.getConfirmedPartns());
- parts.addAll(partsList.getUnknownPartns());
- for (Partition part : parts) {
- List<String> existingCols = part2Cols.get(part);
- if (existingCols == null) {
- existingCols = new ArrayList<String>();
- }
- existingCols.addAll(cols);
- part2Cols.put(part, existingCols);
- }
- } else {
- List<String> existingCols = tab2Cols.get(tbl);
- if (existingCols == null) {
- existingCols = new ArrayList<String>();
- }
- existingCols.addAll(cols);
- tab2Cols.put(tbl, existingCols);
- }
- }
- }
- }
-
- // cache the results for table authorization
- Set<String> tableAuthChecked = new HashSet<String>();
- for (ReadEntity read : inputs) {
- Table tbl = null;
- if (read.getPartition() != null) {
- tbl = read.getPartition().getTable();
- // use partition level authorization
- if (tableUsePartLevelAuth.get(tbl.getTableName())) {
- List<String> cols = part2Cols.get(read.getPartition());
- if (cols != null && cols.size() > 0) {
- ss.getAuthorizer().authorize(
- read.getPartition().getTable(),
- read.getPartition(), cols,
- op.getInputRequiredPrivileges(), null);
- } else {
- ss.getAuthorizer().authorize(read.getPartition(),
- op.getInputRequiredPrivileges(), null);
- }
- continue;
- }
- } else if (read.getTable() != null) {
- tbl = read.getTable();
- }
-
- // if we reach here, it means it needs to do a table
- // authorization
- // check, and the table authorization may already happened
- // because of other
- // partitions
- if (tbl != null
- && !tableAuthChecked.contains(tbl.getTableName())) {
- List<String> cols = tab2Cols.get(tbl);
- if (cols != null && cols.size() > 0) {
- ss.getAuthorizer().authorize(tbl, null, cols,
- op.getInputRequiredPrivileges(), null);
- } else {
- ss.getAuthorizer().authorize(tbl,
- op.getInputRequiredPrivileges(), null);
- }
- tableAuthChecked.add(tbl.getTableName());
- }
- }
-
- }
- }
-
- /**
- * @return The current query plan associated with this Driver, if any.
- */
- public QueryPlan getPlan() {
- return plan;
- }
-
- /**
- * @param t
- * The table to be locked
- * @param p
- * The partition to be locked
- * @param mode
- * The mode of the lock (SHARED/EXCLUSIVE) Get the list of
- * objects to be locked. If a partition needs to be locked (in
- * any mode), all its parents should also be locked in SHARED
- * mode.
- **/
- private List<HiveLockObj> getLockObjects(Table t, Partition p,
- HiveLockMode mode) throws SemanticException {
- List<HiveLockObj> locks = new LinkedList<HiveLockObj>();
-
- HiveLockObjectData lockData = new HiveLockObjectData(plan.getQueryId(),
- String.valueOf(System.currentTimeMillis()), "IMPLICIT");
-
- if (t != null) {
- locks.add(new HiveLockObj(new HiveLockObject(t, lockData), mode));
- mode = HiveLockMode.SHARED;
- locks.add(new HiveLockObj(new HiveLockObject(t.getDbName(),
- lockData), mode));
- return locks;
- }
-
- if (p != null) {
- if (!(p instanceof DummyPartition)) {
- locks.add(new HiveLockObj(new HiveLockObject(p, lockData), mode));
- }
-
- // All the parents are locked in shared mode
- mode = HiveLockMode.SHARED;
-
- // For dummy partitions, only partition name is needed
- String name = p.getName();
-
- if (p instanceof DummyPartition) {
- name = p.getName().split("@")[2];
- }
-
- String partName = name;
- String partialName = "";
- String[] partns = name.split("/");
- int len = p instanceof DummyPartition ? partns.length
- : partns.length - 1;
- for (int idx = 0; idx < len; idx++) {
- String partn = partns[idx];
- partialName += partn;
- try {
- locks.add(new HiveLockObj(new HiveLockObject(
- new DummyPartition(p.getTable(), p.getTable()
- .getDbName()
- + "/"
- + p.getTable().getTableName()
- + "/"
- + partialName), lockData), mode));
- partialName += "/";
- } catch (HiveException e) {
- throw new SemanticException(e.getMessage());
- }
- }
-
- locks.add(new HiveLockObj(
- new HiveLockObject(p.getTable(), lockData), mode));
- locks.add(new HiveLockObj(new HiveLockObject(p.getTable()
- .getDbName(), lockData), mode));
- }
- return locks;
- }
-
- /**
- * Acquire read and write locks needed by the statement. The list of objects
- * to be locked are obtained from he inputs and outputs populated by the
- * compiler. The lock acuisition scheme is pretty simple. If all the locks
- * cannot be obtained, error out. Deadlock is avoided by making sure that
- * the locks are lexicographically sorted.
- **/
- public int acquireReadWriteLocks() {
- try {
- int sleepTime = conf
- .getIntVar(HiveConf.ConfVars.HIVE_LOCK_SLEEP_BETWEEN_RETRIES) * 1000;
- int numRetries = conf
- .getIntVar(HiveConf.ConfVars.HIVE_LOCK_NUMRETRIES);
-
- boolean supportConcurrency = conf
- .getBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY);
- if (!supportConcurrency) {
- return 0;
- }
-
- List<HiveLockObj> lockObjects = new ArrayList<HiveLockObj>();
-
- // Sort all the inputs, outputs.
- // If a lock needs to be acquired on any partition, a read lock
- // needs to be acquired on all
- // its parents also
- for (ReadEntity input : plan.getInputs()) {
- if (input.getType() == ReadEntity.Type.TABLE) {
- lockObjects.addAll(getLockObjects(input.getTable(), null,
- HiveLockMode.SHARED));
- } else {
- lockObjects.addAll(getLockObjects(null,
- input.getPartition(), HiveLockMode.SHARED));
- }
- }
-
- for (WriteEntity output : plan.getOutputs()) {
- if (output.getTyp() == WriteEntity.Type.TABLE) {
- lockObjects.addAll(getLockObjects(output.getTable(), null,
- output.isComplete() ? HiveLockMode.EXCLUSIVE
- : HiveLockMode.SHARED));
- } else if (output.getTyp() == WriteEntity.Type.PARTITION) {
- lockObjects.addAll(getLockObjects(null,
- output.getPartition(), HiveLockMode.EXCLUSIVE));
- }
- // In case of dynamic queries, it is possible to have incomplete
- // dummy partitions
- else if (output.getTyp() == WriteEntity.Type.DUMMYPARTITION) {
- lockObjects.addAll(getLockObjects(null,
- output.getPartition(), HiveLockMode.SHARED));
- }
- }
-
- if (lockObjects.isEmpty() && !ctx.isNeedLockMgr()) {
- return 0;
- }
-
- int ret = checkLockManager();
- if (ret != 0) {
- return ret;
- }
-
- HiveLockObjectData lockData = new HiveLockObjectData(
- plan.getQueryId(), String.valueOf(System
- .currentTimeMillis()), "IMPLICIT");
-
- // Lock the database also
- try {
- Hive db = Hive.get(conf);
- lockObjects.add(new HiveLockObj(new HiveLockObject(db
- .getCurrentDatabase(), lockData), HiveLockMode.SHARED));
- } catch (HiveException e) {
- throw new SemanticException(e.getMessage());
- }
-
- ctx.setHiveLockMgr(hiveLockMgr);
- List<HiveLock> hiveLocks = null;
-
- int tryNum = 1;
- do {
-
- // ctx.getHiveLockMgr();
- // hiveLocks = ctx.getHiveLockMgr().lock(lockObjects, false);
-
- if (hiveLocks != null) {
- break;
- }
-
- tryNum++;
- try {
- Thread.sleep(sleepTime);
- } catch (InterruptedException e) {
- }
- } while (tryNum < numRetries);
-
- if (hiveLocks == null) {
- throw new SemanticException(
- ErrorMsg.LOCK_CANNOT_BE_ACQUIRED.getMsg());
- } else {
- ctx.setHiveLocks(hiveLocks);
- }
-
- return (0);
- } catch (SemanticException e) {
- errorMessage = "FAILED: Error in acquiring locks: "
- + e.getMessage();
- SQLState = ErrorMsg.findSQLState(e.getMessage());
- console.printError(errorMessage, "\n"
- + org.apache.hadoop.util.StringUtils.stringifyException(e));
- return (10);
- } catch (Exception e) {
- errorMessage = "FAILED: Error in acquiring locks: "
- + e.getMessage();
- SQLState = ErrorMsg.findSQLState(e.getMessage());
- console.printError(errorMessage, "\n"
- + org.apache.hadoop.util.StringUtils.stringifyException(e));
- return (10);
- }
- }
-
- /**
- * Release all the locks acquired implicitly by the statement. Note that the
- * locks acquired with 'keepAlive' set to True are not released.
- **/
- private void releaseLocks() {
- if (ctx != null && ctx.getHiveLockMgr() != null) {
- try {
- ctx.getHiveLockMgr().close();
- ctx.setHiveLocks(null);
- } catch (LockException e) {
- }
- }
- }
-
- /**
- * @param hiveLocks
- * list of hive locks to be released Release all the locks
- * specified. If some of the locks have already been released,
- * ignore them
- **/
- private void releaseLocks(List<HiveLock> hiveLocks) {
- if (hiveLocks != null) {
- ctx.getHiveLockMgr().releaseLocks(hiveLocks);
- }
- ctx.setHiveLocks(null);
- }
-
- public CommandProcessorResponse run(String command) {
- errorMessage = null;
- SQLState = null;
-
- int ret = compile(command);
- if (ret != 0) {
- // releaseLocks(ctx.getHiveLocks());
- return new CommandProcessorResponse(ret, errorMessage, SQLState);
- }
-
- // ret = acquireReadWriteLocks();
- if (ret != 0) {
- // releaseLocks(ctx.getHiveLocks());
- return new CommandProcessorResponse(ret, errorMessage, SQLState);
- }
-
- ret = execute();
- if (ret != 0) {
- // releaseLocks(ctx.getHiveLocks());
- return new CommandProcessorResponse(ret, errorMessage, SQLState);
- }
-
- // releaseLocks(ctx.getHiveLocks());
- return new CommandProcessorResponse(ret);
- }
-
- private List<AbstractSemanticAnalyzerHook> getSemanticAnalyzerHooks()
- throws Exception {
- ArrayList<AbstractSemanticAnalyzerHook> saHooks = new ArrayList<AbstractSemanticAnalyzerHook>();
- String pestr = conf.getVar(HiveConf.ConfVars.SEMANTIC_ANALYZER_HOOK);
- if (pestr == null) {
- return saHooks;
- }
- pestr = pestr.trim();
- if (pestr.equals("")) {
- return saHooks;
- }
-
- String[] peClasses = pestr.split(",");
-
- for (String peClass : peClasses) {
- try {
- AbstractSemanticAnalyzerHook hook = HiveUtils
- .getSemanticAnalyzerHook(conf, peClass);
- saHooks.add(hook);
- } catch (HiveException e) {
- console.printError("Pre Exec Hook Class not found:"
- + e.getMessage());
- throw e;
- }
- }
-
- return saHooks;
- }
-
- private List<Hook> getPreExecHooks() throws Exception {
- ArrayList<Hook> pehooks = new ArrayList<Hook>();
- String pestr = conf.getVar(HiveConf.ConfVars.PREEXECHOOKS);
- pestr = pestr.trim();
- if (pestr.equals("")) {
- return pehooks;
- }
-
- String[] peClasses = pestr.split(",");
-
- for (String peClass : peClasses) {
- try {
- pehooks.add((Hook) Class.forName(peClass.trim(), true,
- JavaUtils.getClassLoader()).newInstance());
- } catch (ClassNotFoundException e) {
- console.printError("Pre Exec Hook Class not found:"
- + e.getMessage());
- throw e;
- }
- }
-
- return pehooks;
- }
-
- private List<Hook> getPostExecHooks() throws Exception {
- ArrayList<Hook> pehooks = new ArrayList<Hook>();
- String pestr = conf.getVar(HiveConf.ConfVars.POSTEXECHOOKS);
- pestr = pestr.trim();
- if (pestr.equals("")) {
- return pehooks;
- }
-
- String[] peClasses = pestr.split(",");
-
- for (String peClass : peClasses) {
- try {
- pehooks.add((Hook) Class.forName(peClass.trim(), true,
- JavaUtils.getClassLoader()).newInstance());
- } catch (ClassNotFoundException e) {
- console.printError("Post Exec Hook Class not found:"
- + e.getMessage());
- throw e;
- }
- }
-
- return pehooks;
- }
-
- public int execute() {
- // execute hivesterix plan
- if (hivesterix) {
- hivesterix = false;
- int ret = engine.executeJob();
- if (ret != 0)
- return ret;
- }
-
- boolean noName = StringUtils.isEmpty(conf
- .getVar(HiveConf.ConfVars.HADOOPJOBNAME));
- int maxlen = conf.getIntVar(HiveConf.ConfVars.HIVEJOBNAMELENGTH);
-
- String queryId = plan.getQueryId();
- String queryStr = plan.getQueryStr();
-
- conf.setVar(HiveConf.ConfVars.HIVEQUERYID, queryId);
- conf.setVar(HiveConf.ConfVars.HIVEQUERYSTRING, queryStr);
- maxthreads = HiveConf.getIntVar(conf,
- HiveConf.ConfVars.EXECPARALLETHREADNUMBER);
-
- try {
- LOG.info("Starting command: " + queryStr);
-
- plan.setStarted();
-
- if (SessionState.get() != null) {
- SessionState
- .get()
- .getHiveHistory()
- .startQuery(queryStr,
- conf.getVar(HiveConf.ConfVars.HIVEQUERYID));
- SessionState.get().getHiveHistory().logPlanProgress(plan);
- }
- resStream = null;
-
- HookContext hookContext = new HookContext(plan, conf);
-
- for (Hook peh : getPreExecHooks()) {
- if (peh instanceof ExecuteWithHookContext) {
- ((ExecuteWithHookContext) peh).run(hookContext);
- } else if (peh instanceof PreExecute) {
- ((PreExecute) peh).run(SessionState.get(),
- plan.getInputs(), plan.getOutputs(), ShimLoader
- .getHadoopShims().getUGIForConf(conf));
- }
- }
-
- int jobs = Utilities.getMRTasks(plan.getRootTasks()).size();
- if (jobs > 0) {
- console.printInfo("Total MapReduce jobs = " + jobs);
- }
- if (SessionState.get() != null) {
- SessionState
- .get()
- .getHiveHistory()
- .setQueryProperty(queryId, Keys.QUERY_NUM_TASKS,
- String.valueOf(jobs));
- SessionState.get().getHiveHistory()
- .setIdToTableMap(plan.getIdToTableNameMap());
- }
- String jobname = Utilities.abbreviate(queryStr, maxlen - 6);
-
- // A runtime that launches runnable tasks as separate Threads
- // through
- // TaskRunners
- // As soon as a task isRunnable, it is put in a queue
- // At any time, at most maxthreads tasks can be running
- // The main thread polls the TaskRunners to check if they have
- // finished.
-
- Queue<Task<? extends Serializable>> runnable = new LinkedList<Task<? extends Serializable>>();
- Map<TaskResult, TaskRunner> running = new HashMap<TaskResult, TaskRunner>();
-
- DriverContext driverCxt = new DriverContext(runnable, ctx);
-
- // Add root Tasks to runnable
-
- for (Task<? extends Serializable> tsk : plan.getRootTasks()) {
- driverCxt.addToRunnable(tsk);
- }
-
- // Loop while you either have tasks running, or tasks queued up
-
- while (running.size() != 0 || runnable.peek() != null) {
- // Launch upto maxthreads tasks
- while (runnable.peek() != null && running.size() < maxthreads) {
- Task<? extends Serializable> tsk = runnable.remove();
- console.printInfo("executing task " + tsk.getName());
- launchTask(tsk, queryId, noName, running, jobname, jobs,
- driverCxt);
- }
-
- // poll the Tasks to see which one completed
- TaskResult tskRes = pollTasks(running.keySet());
- TaskRunner tskRun = running.remove(tskRes);
- Task<? extends Serializable> tsk = tskRun.getTask();
- hookContext.addCompleteTask(tskRun);
-
- int exitVal = tskRes.getExitVal();
- if (exitVal != 0) {
- Task<? extends Serializable> backupTask = tsk
- .getAndInitBackupTask();
- if (backupTask != null) {
- errorMessage = "FAILED: Execution Error, return code "
- + exitVal + " from " + tsk.getClass().getName();
- console.printError(errorMessage);
-
- errorMessage = "ATTEMPT: Execute BackupTask: "
- + backupTask.getClass().getName();
- console.printError(errorMessage);
-
- // add backup task to runnable
- if (DriverContext.isLaunchable(backupTask)) {
- driverCxt.addToRunnable(backupTask);
- }
- continue;
-
- } else {
- // TODO: This error messaging is not very informative.
- // Fix that.
- errorMessage = "FAILED: Execution Error, return code "
- + exitVal + " from " + tsk.getClass().getName();
- SQLState = "08S01";
- console.printError(errorMessage);
- if (running.size() != 0) {
- taskCleanup();
- }
- // in case we decided to run everything in local mode,
- // restore the
- // the jobtracker setting to its initial value
- ctx.restoreOriginalTracker();
- return 9;
- }
- }
-
- if (SessionState.get() != null) {
- SessionState
- .get()
- .getHiveHistory()
- .setTaskProperty(queryId, tsk.getId(),
- Keys.TASK_RET_CODE, String.valueOf(exitVal));
- SessionState.get().getHiveHistory().endTask(queryId, tsk);
- }
-
- if (tsk.getChildTasks() != null) {
- for (Task<? extends Serializable> child : tsk
- .getChildTasks()) {
- // hivesterix: don't check launchable condition
- // if (DriverContext.isLaunchable(child)) {
- driverCxt.addToRunnable(child);
- // }
- }
- }
- }
-
- // in case we decided to run everything in local mode, restore the
- // the jobtracker setting to its initial value
- ctx.restoreOriginalTracker();
-
- // remove incomplete outputs.
- // Some incomplete outputs may be added at the beginning, for eg:
- // for dynamic partitions.
- // remove them
- HashSet<WriteEntity> remOutputs = new HashSet<WriteEntity>();
- for (WriteEntity output : plan.getOutputs()) {
- if (!output.isComplete()) {
- remOutputs.add(output);
- }
- }
-
- for (WriteEntity output : remOutputs) {
- plan.getOutputs().remove(output);
- }
-
- // Get all the post execution hooks and execute them.
- for (Hook peh : getPostExecHooks()) {
- if (peh instanceof ExecuteWithHookContext) {
- ((ExecuteWithHookContext) peh).run(hookContext);
- } else if (peh instanceof PostExecute) {
- ((PostExecute) peh)
- .run(SessionState.get(),
- plan.getInputs(),
- plan.getOutputs(),
- (SessionState.get() != null ? SessionState
- .get().getLineageState()
- .getLineageInfo() : null),
- ShimLoader.getHadoopShims().getUGIForConf(
- conf));
- }
- }
-
- if (SessionState.get() != null) {
- SessionState
- .get()
- .getHiveHistory()
- .setQueryProperty(queryId, Keys.QUERY_RET_CODE,
- String.valueOf(0));
- SessionState.get().getHiveHistory().printRowCount(queryId);
- }
- } catch (Exception e) {
- if (SessionState.get() != null) {
- SessionState
- .get()
- .getHiveHistory()
- .setQueryProperty(queryId, Keys.QUERY_RET_CODE,
- String.valueOf(12));
- }
- // TODO: do better with handling types of Exception here
- errorMessage = "FAILED: Hive Internal Error: "
- + Utilities.getNameMessage(e);
- SQLState = "08S01";
- console.printError(errorMessage + "\n"
- + org.apache.hadoop.util.StringUtils.stringifyException(e));
- return (12);
- } finally {
- if (SessionState.get() != null) {
- SessionState.get().getHiveHistory().endQuery(queryId);
- }
- if (noName) {
- conf.setVar(HiveConf.ConfVars.HADOOPJOBNAME, "");
- }
- }
- plan.setDone();
-
- if (SessionState.get() != null) {
- try {
- SessionState.get().getHiveHistory().logPlanProgress(plan);
- } catch (Exception e) {
- }
- }
- console.printInfo("OK");
-
- return (0);
- }
-
- /**
- * Launches a new task
- *
- * @param tsk
- * task being launched
- * @param queryId
- * Id of the query containing the task
- * @param noName
- * whether the task has a name set
- * @param running
- * map from taskresults to taskrunners
- * @param jobname
- * name of the task, if it is a map-reduce job
- * @param jobs
- * number of map-reduce jobs
- * @param curJobNo
- * the sequential number of the next map-reduce job
- * @return the updated number of last the map-reduce job launched
- */
-
- public void launchTask(Task<? extends Serializable> tsk, String queryId,
- boolean noName, Map<TaskResult, TaskRunner> running,
- String jobname, int jobs, DriverContext cxt) {
-
- if (SessionState.get() != null) {
- SessionState.get().getHiveHistory()
- .startTask(queryId, tsk, tsk.getClass().getName());
- }
- if (tsk.isMapRedTask() && !(tsk instanceof ConditionalTask)) {
- if (noName) {
- conf.setVar(HiveConf.ConfVars.HADOOPJOBNAME, jobname + "("
- + tsk.getId() + ")");
- }
- cxt.incCurJobNo(1);
- console.printInfo("Launching Job " + cxt.getCurJobNo() + " out of "
- + jobs);
- }
- tsk.initialize(conf, plan, cxt);
- TaskResult tskRes = new TaskResult();
- TaskRunner tskRun = new TaskRunner(tsk, tskRes);
-
- // HiveConf.getBoolVar(conf, HiveConf.ConfVars.EXECPARALLEL) &&
- // Launch Task: hivesterix tweak
- if (tsk instanceof MapRedTask || tsk instanceof StatsTask) {
- // Launch it in the parallel mode, as a separate thread only for MR
- // tasks
- tskRes.setRunning(false);
- tskRes.setExitVal(0);
- } else if (tsk instanceof ConditionalTask) {
- ConditionalTask condTask = (ConditionalTask) tsk;
- ConditionalResolver crs = condTask.getResolver();
- if (crs instanceof ConditionalResolverMergeFiles) {
- tskRes.setRunning(false);
- tskRes.setExitVal(0);
-
- List<Task<? extends Serializable>> children = condTask
- .getListTasks();
- for (Task<? extends Serializable> child : children)
- if (child instanceof MapRedTask)
- cxt.addToRunnable(child);
- }
- } else {
- tskRun.runSequential();
- }
- running.put(tskRes, tskRun);
- return;
- }
-
- /**
- * Cleans up remaining tasks in case of failure
- */
-
- public void taskCleanup() {
- // The currently existing Shutdown hooks will be automatically called,
- // killing the map-reduce processes.
- // The non MR processes will be killed as well.
- System.exit(9);
- }
-
- /**
- * Polls running tasks to see if a task has ended.
- *
- * @param results
- * Set of result objects for running tasks
- * @return The result object for any completed/failed task
- */
-
- public TaskResult pollTasks(Set<TaskResult> results) {
- Iterator<TaskResult> resultIterator = results.iterator();
- while (true) {
- while (resultIterator.hasNext()) {
- TaskResult tskRes = resultIterator.next();
- if (tskRes.isRunning() == false) {
- return tskRes;
- }
- }
-
- // In this loop, nothing was found
- // Sleep 10 seconds and restart
- try {
- Thread.sleep(sleeptime);
- } catch (InterruptedException ie) {
- // Do Nothing
- ;
- }
- resultIterator = results.iterator();
- }
- }
-
- public boolean getResults(ArrayList<String> res) throws IOException {
- if (plan != null && plan.getFetchTask() != null) {
- FetchTask ft = plan.getFetchTask();
- ft.setMaxRows(maxRows);
- return ft.fetch(res);
- }
-
- if (resStream == null) {
- resStream = ctx.getStream();
- }
- if (resStream == null) {
- return false;
- }
-
- int numRows = 0;
- String row = null;
-
- while (numRows < maxRows) {
- if (resStream == null) {
- if (numRows > 0) {
- return true;
- } else {
- return false;
- }
- }
-
- bos.reset();
- Utilities.StreamStatus ss;
- try {
- ss = Utilities.readColumn(resStream, bos);
- if (bos.getCount() > 0) {
- row = new String(bos.getData(), 0, bos.getCount(), "UTF-8");
- } else if (ss == Utilities.StreamStatus.TERMINATED) {
- row = new String();
- }
-
- if (row != null) {
- numRows++;
- res.add(row);
- }
- } catch (IOException e) {
- console.printError("FAILED: Unexpected IO exception : "
- + e.getMessage());
- res = null;
- return false;
- }
-
- if (ss == Utilities.StreamStatus.EOF) {
- resStream = ctx.getStream();
- }
- }
- return true;
- }
-
- public int close() {
- try {
- if (plan != null) {
- FetchTask fetchTask = plan.getFetchTask();
- if (null != fetchTask) {
- try {
- fetchTask.clearFetch();
- } catch (Exception e) {
- LOG.debug(" Exception while clearing the Fetch task ",
- e);
- }
- }
- }
- if (ctx != null) {
- ctx.clear();
- }
- if (null != resStream) {
- try {
- ((FSDataInputStream) resStream).close();
- } catch (Exception e) {
- LOG.debug(" Exception while closing the resStream ", e);
- }
- }
- } catch (Exception e) {
- console.printError("FAILED: Hive Internal Error: "
- + Utilities.getNameMessage(e) + "\n"
- + org.apache.hadoop.util.StringUtils.stringifyException(e));
- return 13;
- }
-
- return 0;
- }
-
- public void destroy() {
- releaseLocks();
- }
-
- public org.apache.hadoop.hive.ql.plan.api.Query getQueryPlan()
- throws IOException {
- return plan.getQueryPlan();
- }
-
- public int getTryCount() {
- return tryCount;
- }
-
- public void setTryCount(int tryCount) {
- this.tryCount = tryCount;
- }
-}
diff --git a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java b/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java
deleted file mode 100644
index b174432..0000000
--- a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.ql.udf.generic;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.Description;
-import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.LongWritable;
-import org.apache.hadoop.util.StringUtils;
-
-import edu.uci.ics.hivesterix.runtime.evaluator.BufferSerDeUtil;
-import edu.uci.ics.hivesterix.runtime.evaluator.SerializableBuffer;
-
-/**
- * GenericUDAFAverage.
- *
- */
-@Description(name = "avg", value = "_FUNC_(x) - Returns the mean of a set of numbers")
-public class GenericUDAFAverage extends AbstractGenericUDAFResolver {
-
- static final Log LOG = LogFactory
- .getLog(GenericUDAFAverage.class.getName());
-
- @Override
- public GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters)
- throws SemanticException {
- if (parameters.length != 1) {
- throw new UDFArgumentTypeException(parameters.length - 1,
- "Exactly one argument is expected.");
- }
-
- if (parameters[0].getCategory() != ObjectInspector.Category.PRIMITIVE) {
- throw new UDFArgumentTypeException(0,
- "Only primitive type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- switch (((PrimitiveTypeInfo) parameters[0]).getPrimitiveCategory()) {
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
- case STRING:
- return new GenericUDAFAverageEvaluator();
- case BOOLEAN:
- default:
- throw new UDFArgumentTypeException(0,
- "Only numeric or string type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- }
-
- /**
- * GenericUDAFAverageEvaluator.
- *
- */
- public static class GenericUDAFAverageEvaluator extends
- GenericUDAFEvaluator {
-
- // For PARTIAL1 and COMPLETE
- PrimitiveObjectInspector inputOI;
-
- // For PARTIAL2 and FINAL
- StructObjectInspector soi;
- StructField countField;
- StructField sumField;
- LongObjectInspector countFieldOI;
- DoubleObjectInspector sumFieldOI;
-
- // For PARTIAL1 and PARTIAL2
- Object[] partialResult;
-
- // For FINAL and COMPLETE
- DoubleWritable result;
-
- @Override
- public ObjectInspector init(Mode m, ObjectInspector[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- super.init(m, parameters);
-
- // init input
- if (mode == Mode.PARTIAL1 || mode == Mode.COMPLETE) {
- inputOI = (PrimitiveObjectInspector) parameters[0];
- } else {
- soi = (StructObjectInspector) parameters[0];
- countField = soi.getStructFieldRef("count");
- sumField = soi.getStructFieldRef("sum");
- countFieldOI = (LongObjectInspector) countField
- .getFieldObjectInspector();
- sumFieldOI = (DoubleObjectInspector) sumField
- .getFieldObjectInspector();
- }
-
- // init output
- if (mode == Mode.PARTIAL1 || mode == Mode.PARTIAL2) {
- // The output of a partial aggregation is a struct containing
- // a "long" count and a "double" sum.
-
- ArrayList<ObjectInspector> foi = new ArrayList<ObjectInspector>();
- foi.add(PrimitiveObjectInspectorFactory.writableLongObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- ArrayList<String> fname = new ArrayList<String>();
- fname.add("count");
- fname.add("sum");
- partialResult = new Object[2];
- partialResult[0] = new LongWritable(0);
- partialResult[1] = new DoubleWritable(0);
- return ObjectInspectorFactory.getStandardStructObjectInspector(
- fname, foi);
-
- } else {
- result = new DoubleWritable(0);
- return PrimitiveObjectInspectorFactory.writableDoubleObjectInspector;
- }
- }
-
- static class AverageAgg implements SerializableBuffer {
- long count;
- double sum;
-
- @Override
- public void deSerializeAggBuffer(byte[] data, int start, int len) {
- count = BufferSerDeUtil.getLong(data, start);
- start += 8;
- sum = BufferSerDeUtil.getDouble(data, start);
- }
-
- @Override
- public void serializeAggBuffer(byte[] data, int start, int len) {
- BufferSerDeUtil.writeLong(count, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(sum, data, start);
- }
-
- @Override
- public void serializeAggBuffer(DataOutput output)
- throws IOException {
- output.writeLong(count);
- output.writeDouble(sum);
- }
- };
-
- @Override
- public AggregationBuffer getNewAggregationBuffer() throws HiveException {
- AverageAgg result = new AverageAgg();
- reset(result);
- return result;
- }
-
- @Override
- public void reset(AggregationBuffer agg) throws HiveException {
- AverageAgg myagg = (AverageAgg) agg;
- myagg.count = 0;
- myagg.sum = 0;
- }
-
- boolean warned = false;
-
- @Override
- public void iterate(AggregationBuffer agg, Object[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- Object p = parameters[0];
- if (p != null) {
- AverageAgg myagg = (AverageAgg) agg;
- try {
- double v = PrimitiveObjectInspectorUtils.getDouble(p,
- inputOI);
- myagg.count++;
- myagg.sum += v;
- } catch (NumberFormatException e) {
- if (!warned) {
- warned = true;
- LOG.warn(getClass().getSimpleName() + " "
- + StringUtils.stringifyException(e));
- LOG.warn(getClass().getSimpleName()
- + " ignoring similar exceptions.");
- }
- }
- }
- }
-
- @Override
- public Object terminatePartial(AggregationBuffer agg)
- throws HiveException {
- AverageAgg myagg = (AverageAgg) agg;
- ((LongWritable) partialResult[0]).set(myagg.count);
- ((DoubleWritable) partialResult[1]).set(myagg.sum);
- return partialResult;
- }
-
- @Override
- public void merge(AggregationBuffer agg, Object partial)
- throws HiveException {
- if (partial != null) {
- AverageAgg myagg = (AverageAgg) agg;
- Object partialCount = soi.getStructFieldData(partial,
- countField);
- Object partialSum = soi.getStructFieldData(partial, sumField);
- myagg.count += countFieldOI.get(partialCount);
- myagg.sum += sumFieldOI.get(partialSum);
- }
- }
-
- @Override
- public Object terminate(AggregationBuffer agg) throws HiveException {
- AverageAgg myagg = (AverageAgg) agg;
- if (myagg.count == 0) {
- return null;
- } else {
- result.set(myagg.sum / myagg.count);
- return result;
- }
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCorrelation.java b/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCorrelation.java
deleted file mode 100644
index 716faac..0000000
--- a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCorrelation.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.ql.udf.generic;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.Description;
-import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.LongWritable;
-
-import edu.uci.ics.hivesterix.runtime.evaluator.BufferSerDeUtil;
-import edu.uci.ics.hivesterix.runtime.evaluator.SerializableBuffer;
-
-/**
- * Compute the Pearson correlation coefficient corr(x, y), using the following
- * stable one-pass method, based on: "Formulas for Robust, One-Pass Parallel
- * Computation of Covariances and Arbitrary-Order Statistical Moments", Philippe
- * Pebay, Sandia Labs and
- * "The Art of Computer Programming, volume 2: Seminumerical Algorithms", Donald
- * Knuth.
- *
- * Incremental: n : <count> mx_n = mx_(n-1) + [x_n - mx_(n-1)]/n : <xavg> my_n =
- * my_(n-1) + [y_n - my_(n-1)]/n : <yavg> c_n = c_(n-1) + (x_n - mx_(n-1))*(y_n
- * - my_n) : <covariance * n> vx_n = vx_(n-1) + (x_n - mx_n)(x_n - mx_(n-1)):
- * <variance * n> vy_n = vy_(n-1) + (y_n - my_n)(y_n - my_(n-1)): <variance * n>
- *
- * Merge: c_(A,B) = c_A + c_B + (mx_A - mx_B)*(my_A - my_B)*n_A*n_B/(n_A+n_B)
- * vx_(A,B) = vx_A + vx_B + (mx_A - mx_B)*(mx_A - mx_B)*n_A*n_B/(n_A+n_B)
- * vy_(A,B) = vy_A + vy_B + (my_A - my_B)*(my_A - my_B)*n_A*n_B/(n_A+n_B)
- *
- */
-@Description(name = "corr", value = "_FUNC_(x,y) - Returns the Pearson coefficient of correlation\n"
- + "between a set of number pairs", extended = "The function takes as arguments any pair of numeric types and returns a double.\n"
- + "Any pair with a NULL is ignored. If the function is applied to an empty set or\n"
- + "a singleton set, NULL will be returned. Otherwise, it computes the following:\n"
- + " COVAR_POP(x,y)/(STDDEV_POP(x)*STDDEV_POP(y))\n"
- + "where neither x nor y is null,\n"
- + "COVAR_POP is the population covariance,\n"
- + "and STDDEV_POP is the population standard deviation.")
-public class GenericUDAFCorrelation extends AbstractGenericUDAFResolver {
-
- static final Log LOG = LogFactory.getLog(GenericUDAFCorrelation.class
- .getName());
-
- @Override
- public GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters)
- throws SemanticException {
- if (parameters.length != 2) {
- throw new UDFArgumentTypeException(parameters.length - 1,
- "Exactly two arguments are expected.");
- }
-
- if (parameters[0].getCategory() != ObjectInspector.Category.PRIMITIVE) {
- throw new UDFArgumentTypeException(0,
- "Only primitive type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
-
- if (parameters[1].getCategory() != ObjectInspector.Category.PRIMITIVE) {
- throw new UDFArgumentTypeException(1,
- "Only primitive type arguments are accepted but "
- + parameters[1].getTypeName() + " is passed.");
- }
-
- switch (((PrimitiveTypeInfo) parameters[0]).getPrimitiveCategory()) {
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
- switch (((PrimitiveTypeInfo) parameters[1]).getPrimitiveCategory()) {
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
- return new GenericUDAFCorrelationEvaluator();
- case STRING:
- case BOOLEAN:
- default:
- throw new UDFArgumentTypeException(1,
- "Only numeric type arguments are accepted but "
- + parameters[1].getTypeName() + " is passed.");
- }
- case STRING:
- case BOOLEAN:
- default:
- throw new UDFArgumentTypeException(0,
- "Only numeric type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- }
-
- /**
- * Evaluate the Pearson correlation coefficient using a stable one-pass
- * algorithm, based on work by Philippe Pébay and Donald Knuth.
- *
- * Incremental: n : <count> mx_n = mx_(n-1) + [x_n - mx_(n-1)]/n : <xavg>
- * my_n = my_(n-1) + [y_n - my_(n-1)]/n : <yavg> c_n = c_(n-1) + (x_n -
- * mx_(n-1))*(y_n - my_n) : <covariance * n> vx_n = vx_(n-1) + (x_n -
- * mx_n)(x_n - mx_(n-1)): <variance * n> vy_n = vy_(n-1) + (y_n - my_n)(y_n
- * - my_(n-1)): <variance * n>
- *
- * Merge: c_X = c_A + c_B + (mx_A - mx_B)*(my_A - my_B)*n_A*n_B/n_X vx_(A,B)
- * = vx_A + vx_B + (mx_A - mx_B)*(mx_A - mx_B)*n_A*n_B/(n_A+n_B) vy_(A,B) =
- * vy_A + vy_B + (my_A - my_B)*(my_A - my_B)*n_A*n_B/(n_A+n_B)
- *
- */
- public static class GenericUDAFCorrelationEvaluator extends
- GenericUDAFEvaluator {
-
- // For PARTIAL1 and COMPLETE
- private PrimitiveObjectInspector xInputOI;
- private PrimitiveObjectInspector yInputOI;
-
- // For PARTIAL2 and FINAL
- private StructObjectInspector soi;
- private StructField countField;
- private StructField xavgField;
- private StructField yavgField;
- private StructField xvarField;
- private StructField yvarField;
- private StructField covarField;
- private LongObjectInspector countFieldOI;
- private DoubleObjectInspector xavgFieldOI;
- private DoubleObjectInspector yavgFieldOI;
- private DoubleObjectInspector xvarFieldOI;
- private DoubleObjectInspector yvarFieldOI;
- private DoubleObjectInspector covarFieldOI;
-
- // For PARTIAL1 and PARTIAL2
- private Object[] partialResult;
-
- // For FINAL and COMPLETE
- private DoubleWritable result;
-
- @Override
- public ObjectInspector init(Mode m, ObjectInspector[] parameters)
- throws HiveException {
- super.init(m, parameters);
-
- // init input
- if (mode == Mode.PARTIAL1 || mode == Mode.COMPLETE) {
- assert (parameters.length == 2);
- xInputOI = (PrimitiveObjectInspector) parameters[0];
- yInputOI = (PrimitiveObjectInspector) parameters[1];
- } else {
- assert (parameters.length == 1);
- soi = (StructObjectInspector) parameters[0];
-
- countField = soi.getStructFieldRef("count");
- xavgField = soi.getStructFieldRef("xavg");
- yavgField = soi.getStructFieldRef("yavg");
- xvarField = soi.getStructFieldRef("xvar");
- yvarField = soi.getStructFieldRef("yvar");
- covarField = soi.getStructFieldRef("covar");
-
- countFieldOI = (LongObjectInspector) countField
- .getFieldObjectInspector();
- xavgFieldOI = (DoubleObjectInspector) xavgField
- .getFieldObjectInspector();
- yavgFieldOI = (DoubleObjectInspector) yavgField
- .getFieldObjectInspector();
- xvarFieldOI = (DoubleObjectInspector) xvarField
- .getFieldObjectInspector();
- yvarFieldOI = (DoubleObjectInspector) yvarField
- .getFieldObjectInspector();
- covarFieldOI = (DoubleObjectInspector) covarField
- .getFieldObjectInspector();
- }
-
- // init output
- if (mode == Mode.PARTIAL1 || mode == Mode.PARTIAL2) {
- // The output of a partial aggregation is a struct containing
- // a long count, two double averages, two double variances,
- // and a double covariance.
-
- ArrayList<ObjectInspector> foi = new ArrayList<ObjectInspector>();
-
- foi.add(PrimitiveObjectInspectorFactory.writableLongObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
-
- ArrayList<String> fname = new ArrayList<String>();
- fname.add("count");
- fname.add("xavg");
- fname.add("yavg");
- fname.add("xvar");
- fname.add("yvar");
- fname.add("covar");
-
- partialResult = new Object[6];
- partialResult[0] = new LongWritable(0);
- partialResult[1] = new DoubleWritable(0);
- partialResult[2] = new DoubleWritable(0);
- partialResult[3] = new DoubleWritable(0);
- partialResult[4] = new DoubleWritable(0);
- partialResult[5] = new DoubleWritable(0);
-
- return ObjectInspectorFactory.getStandardStructObjectInspector(
- fname, foi);
-
- } else {
- setResult(new DoubleWritable(0));
- return PrimitiveObjectInspectorFactory.writableDoubleObjectInspector;
- }
- }
-
- static class StdAgg implements SerializableBuffer {
- long count; // number n of elements
- double xavg; // average of x elements
- double yavg; // average of y elements
- double xvar; // n times the variance of x elements
- double yvar; // n times the variance of y elements
- double covar; // n times the covariance
-
- @Override
- public void deSerializeAggBuffer(byte[] data, int start, int len) {
- count = BufferSerDeUtil.getLong(data, start);
- start += 8;
- xavg = BufferSerDeUtil.getDouble(data, start);
- start += 8;
- yavg = BufferSerDeUtil.getDouble(data, start);
- start += 8;
- xvar = BufferSerDeUtil.getDouble(data, start);
- start += 8;
- yvar = BufferSerDeUtil.getDouble(data, start);
- start += 8;
- covar = BufferSerDeUtil.getDouble(data, start);
- }
-
- @Override
- public void serializeAggBuffer(byte[] data, int start, int len) {
- BufferSerDeUtil.writeLong(count, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(xavg, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(yavg, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(xvar, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(yvar, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(covar, data, start);
- }
-
- @Override
- public void serializeAggBuffer(DataOutput output)
- throws IOException {
- output.writeLong(count);
- output.writeDouble(xavg);
- output.writeDouble(yavg);
- output.writeDouble(xvar);
- output.writeDouble(yvar);
- output.writeDouble(covar);
- }
- };
-
- @Override
- public AggregationBuffer getNewAggregationBuffer() throws HiveException {
- StdAgg result = new StdAgg();
- reset(result);
- return result;
- }
-
- @Override
- public void reset(AggregationBuffer agg) throws HiveException {
- StdAgg myagg = (StdAgg) agg;
- myagg.count = 0;
- myagg.xavg = 0;
- myagg.yavg = 0;
- myagg.xvar = 0;
- myagg.yvar = 0;
- myagg.covar = 0;
- }
-
- @Override
- public void iterate(AggregationBuffer agg, Object[] parameters)
- throws HiveException {
- assert (parameters.length == 2);
- Object px = parameters[0];
- Object py = parameters[1];
- if (px != null && py != null) {
- StdAgg myagg = (StdAgg) agg;
- double vx = PrimitiveObjectInspectorUtils.getDouble(px,
- xInputOI);
- double vy = PrimitiveObjectInspectorUtils.getDouble(py,
- yInputOI);
- double xavgOld = myagg.xavg;
- double yavgOld = myagg.yavg;
- myagg.count++;
- myagg.xavg += (vx - xavgOld) / myagg.count;
- myagg.yavg += (vy - yavgOld) / myagg.count;
- if (myagg.count > 1) {
- myagg.covar += (vx - xavgOld) * (vy - myagg.yavg);
- myagg.xvar += (vx - xavgOld) * (vx - myagg.xavg);
- myagg.yvar += (vy - yavgOld) * (vy - myagg.yavg);
- }
- }
- }
-
- @Override
- public Object terminatePartial(AggregationBuffer agg)
- throws HiveException {
- StdAgg myagg = (StdAgg) agg;
- ((LongWritable) partialResult[0]).set(myagg.count);
- ((DoubleWritable) partialResult[1]).set(myagg.xavg);
- ((DoubleWritable) partialResult[2]).set(myagg.yavg);
- ((DoubleWritable) partialResult[3]).set(myagg.xvar);
- ((DoubleWritable) partialResult[4]).set(myagg.yvar);
- ((DoubleWritable) partialResult[5]).set(myagg.covar);
- return partialResult;
- }
-
- @Override
- public void merge(AggregationBuffer agg, Object partial)
- throws HiveException {
- if (partial != null) {
- StdAgg myagg = (StdAgg) agg;
-
- Object partialCount = soi.getStructFieldData(partial,
- countField);
- Object partialXAvg = soi.getStructFieldData(partial, xavgField);
- Object partialYAvg = soi.getStructFieldData(partial, yavgField);
- Object partialXVar = soi.getStructFieldData(partial, xvarField);
- Object partialYVar = soi.getStructFieldData(partial, yvarField);
- Object partialCovar = soi.getStructFieldData(partial,
- covarField);
-
- long nA = myagg.count;
- long nB = countFieldOI.get(partialCount);
-
- if (nA == 0) {
- // Just copy the information since there is nothing so far
- myagg.count = countFieldOI.get(partialCount);
- myagg.xavg = xavgFieldOI.get(partialXAvg);
- myagg.yavg = yavgFieldOI.get(partialYAvg);
- myagg.xvar = xvarFieldOI.get(partialXVar);
- myagg.yvar = yvarFieldOI.get(partialYVar);
- myagg.covar = covarFieldOI.get(partialCovar);
- }
-
- if (nA != 0 && nB != 0) {
- // Merge the two partials
- double xavgA = myagg.xavg;
- double yavgA = myagg.yavg;
- double xavgB = xavgFieldOI.get(partialXAvg);
- double yavgB = yavgFieldOI.get(partialYAvg);
- double xvarB = xvarFieldOI.get(partialXVar);
- double yvarB = yvarFieldOI.get(partialYVar);
- double covarB = covarFieldOI.get(partialCovar);
-
- myagg.count += nB;
- myagg.xavg = (xavgA * nA + xavgB * nB) / myagg.count;
- myagg.yavg = (yavgA * nA + yavgB * nB) / myagg.count;
- myagg.xvar += xvarB + (xavgA - xavgB) * (xavgA - xavgB)
- * myagg.count;
- myagg.yvar += yvarB + (yavgA - yavgB) * (yavgA - yavgB)
- * myagg.count;
- myagg.covar += covarB + (xavgA - xavgB) * (yavgA - yavgB)
- * ((double) (nA * nB) / myagg.count);
- }
- }
- }
-
- @Override
- public Object terminate(AggregationBuffer agg) throws HiveException {
- StdAgg myagg = (StdAgg) agg;
-
- if (myagg.count < 2) { // SQL standard - return null for zero or one
- // pair
- return null;
- } else {
- getResult().set(
- myagg.covar / java.lang.Math.sqrt(myagg.xvar)
- / java.lang.Math.sqrt(myagg.yvar));
- return getResult();
- }
- }
-
- public void setResult(DoubleWritable result) {
- this.result = result;
- }
-
- public DoubleWritable getResult() {
- return result;
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCount.java b/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCount.java
deleted file mode 100644
index 4160d5b..0000000
--- a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCount.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.ql.udf.generic;
-
-import java.io.DataOutput;
-import java.io.IOException;
-
-import org.apache.hadoop.hive.ql.exec.Description;
-import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.LongWritable;
-
-import edu.uci.ics.hivesterix.runtime.evaluator.BufferSerDeUtil;
-import edu.uci.ics.hivesterix.runtime.evaluator.SerializableBuffer;
-
-/**
- * This class implements the COUNT aggregation function as in SQL.
- */
-@Description(name = "count", value = "_FUNC_(*) - Returns the total number of retrieved rows, including "
- + "rows containing NULL values.\n"
-
- + "_FUNC_(expr) - Returns the number of rows for which the supplied "
- + "expression is non-NULL.\n"
-
- + "_FUNC_(DISTINCT expr[, expr...]) - Returns the number of rows for "
- + "which the supplied expression(s) are unique and non-NULL.")
-public class GenericUDAFCount implements GenericUDAFResolver2 {
-
- @Override
- public GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters)
- throws SemanticException {
- // This method implementation is preserved for backward compatibility.
- return new GenericUDAFCountEvaluator();
- }
-
- @Override
- public GenericUDAFEvaluator getEvaluator(GenericUDAFParameterInfo paramInfo)
- throws SemanticException {
-
- TypeInfo[] parameters = paramInfo.getParameters();
-
- if (parameters.length == 0) {
- if (!paramInfo.isAllColumns()) {
- throw new UDFArgumentException("Argument expected");
- }
- assert !paramInfo.isDistinct() : "DISTINCT not supported with *";
- } else {
- if (parameters.length > 1 && !paramInfo.isDistinct()) {
- throw new UDFArgumentException(
- "DISTINCT keyword must be specified");
- }
- assert !paramInfo.isAllColumns() : "* not supported in expression list";
- }
-
- return new GenericUDAFCountEvaluator().setCountAllColumns(paramInfo
- .isAllColumns());
- }
-
- /**
- * GenericUDAFCountEvaluator.
- *
- */
- public static class GenericUDAFCountEvaluator extends GenericUDAFEvaluator {
- private boolean countAllColumns = false;
- private LongObjectInspector partialCountAggOI;
- private LongWritable result;
-
- @Override
- public ObjectInspector init(Mode m, ObjectInspector[] parameters)
- throws HiveException {
- super.init(m, parameters);
- partialCountAggOI = PrimitiveObjectInspectorFactory.writableLongObjectInspector;
- result = new LongWritable(0);
- return PrimitiveObjectInspectorFactory.writableLongObjectInspector;
- }
-
- private GenericUDAFCountEvaluator setCountAllColumns(
- boolean countAllCols) {
- countAllColumns = countAllCols;
- return this;
- }
-
- /** class for storing count value. */
- static class CountAgg implements SerializableBuffer {
- long value;
-
- @Override
- public void deSerializeAggBuffer(byte[] data, int start, int len) {
- value = BufferSerDeUtil.getLong(data, start);
- }
-
- @Override
- public void serializeAggBuffer(byte[] data, int start, int len) {
- BufferSerDeUtil.writeLong(value, data, start);
- }
-
- @Override
- public void serializeAggBuffer(DataOutput output)
- throws IOException {
- output.writeLong(value);
- }
- }
-
- @Override
- public AggregationBuffer getNewAggregationBuffer() throws HiveException {
- CountAgg buffer = new CountAgg();
- reset(buffer);
- return buffer;
- }
-
- @Override
- public void reset(AggregationBuffer agg) throws HiveException {
- ((CountAgg) agg).value = 0;
- }
-
- @Override
- public void iterate(AggregationBuffer agg, Object[] parameters)
- throws HiveException {
- // parameters == null means the input table/split is empty
- if (parameters == null) {
- return;
- }
- if (countAllColumns) {
- assert parameters.length == 0;
- ((CountAgg) agg).value++;
- } else {
- assert parameters.length > 0;
- boolean countThisRow = true;
- for (Object nextParam : parameters) {
- if (nextParam == null) {
- countThisRow = false;
- break;
- }
- }
- if (countThisRow) {
- ((CountAgg) agg).value++;
- }
- }
- }
-
- @Override
- public void merge(AggregationBuffer agg, Object partial)
- throws HiveException {
- if (partial != null) {
- long p = partialCountAggOI.get(partial);
- ((CountAgg) agg).value += p;
- }
- }
-
- @Override
- public Object terminate(AggregationBuffer agg) throws HiveException {
- result.set(((CountAgg) agg).value);
- return result;
- }
-
- @Override
- public Object terminatePartial(AggregationBuffer agg)
- throws HiveException {
- return terminate(agg);
- }
- }
-}
diff --git a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCovariance.java b/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCovariance.java
deleted file mode 100644
index 11d9dc3..0000000
--- a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCovariance.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.ql.udf.generic;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.Description;
-import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.LongWritable;
-
-import edu.uci.ics.hivesterix.runtime.evaluator.BufferSerDeUtil;
-import edu.uci.ics.hivesterix.runtime.evaluator.SerializableBuffer;
-
-/**
- * Compute the covariance covar_pop(x, y), using the following one-pass method
- * (ref. "Formulas for Robust, One-Pass Parallel Computation of Covariances and
- * Arbitrary-Order Statistical Moments", Philippe Pebay, Sandia Labs):
- *
- * Incremental: n : <count> mx_n = mx_(n-1) + [x_n - mx_(n-1)]/n : <xavg> my_n =
- * my_(n-1) + [y_n - my_(n-1)]/n : <yavg> c_n = c_(n-1) + (x_n - mx_(n-1))*(y_n
- * - my_n) : <covariance * n>
- *
- * Merge: c_X = c_A + c_B + (mx_A - mx_B)*(my_A - my_B)*n_A*n_B/n_X
- *
- */
-@Description(name = "covariance,covar_pop", value = "_FUNC_(x,y) - Returns the population covariance of a set of number pairs", extended = "The function takes as arguments any pair of numeric types and returns a double.\n"
- + "Any pair with a NULL is ignored. If the function is applied to an empty set, NULL\n"
- + "will be returned. Otherwise, it computes the following:\n"
- + " (SUM(x*y)-SUM(x)*SUM(y)/COUNT(x,y))/COUNT(x,y)\n"
- + "where neither x nor y is null.")
-public class GenericUDAFCovariance extends AbstractGenericUDAFResolver {
-
- static final Log LOG = LogFactory.getLog(GenericUDAFCovariance.class
- .getName());
-
- @Override
- public GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters)
- throws SemanticException {
- if (parameters.length != 2) {
- throw new UDFArgumentTypeException(parameters.length - 1,
- "Exactly two arguments are expected.");
- }
-
- if (parameters[0].getCategory() != ObjectInspector.Category.PRIMITIVE) {
- throw new UDFArgumentTypeException(0,
- "Only primitive type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
-
- if (parameters[1].getCategory() != ObjectInspector.Category.PRIMITIVE) {
- throw new UDFArgumentTypeException(1,
- "Only primitive type arguments are accepted but "
- + parameters[1].getTypeName() + " is passed.");
- }
-
- switch (((PrimitiveTypeInfo) parameters[0]).getPrimitiveCategory()) {
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
- switch (((PrimitiveTypeInfo) parameters[1]).getPrimitiveCategory()) {
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
- return new GenericUDAFCovarianceEvaluator();
- case STRING:
- case BOOLEAN:
- default:
- throw new UDFArgumentTypeException(1,
- "Only numeric or string type arguments are accepted but "
- + parameters[1].getTypeName() + " is passed.");
- }
- case STRING:
- case BOOLEAN:
- default:
- throw new UDFArgumentTypeException(0,
- "Only numeric or string type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- }
-
- /**
- * Evaluate the variance using the algorithm described in
- * http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance,
- * presumably by Pébay, Philippe (2008), in "Formulas for Robust, One-Pass
- * Parallel Computation of Covariances and Arbitrary-Order Statistical
- * Moments", Technical Report SAND2008-6212, Sandia National Laboratories,
- * http://infoserve.sandia.gov/sand_doc/2008/086212.pdf
- *
- * Incremental: n : <count> mx_n = mx_(n-1) + [x_n - mx_(n-1)]/n : <xavg>
- * my_n = my_(n-1) + [y_n - my_(n-1)]/n : <yavg> c_n = c_(n-1) + (x_n -
- * mx_(n-1))*(y_n - my_n) : <covariance * n>
- *
- * Merge: c_X = c_A + c_B + (mx_A - mx_B)*(my_A - my_B)*n_A*n_B/n_X
- *
- * This one-pass algorithm is stable.
- *
- */
- public static class GenericUDAFCovarianceEvaluator extends
- GenericUDAFEvaluator {
-
- // For PARTIAL1 and COMPLETE
- private PrimitiveObjectInspector xInputOI;
- private PrimitiveObjectInspector yInputOI;
-
- // For PARTIAL2 and FINAL
- private StructObjectInspector soi;
- private StructField countField;
- private StructField xavgField;
- private StructField yavgField;
- private StructField covarField;
- private LongObjectInspector countFieldOI;
- private DoubleObjectInspector xavgFieldOI;
- private DoubleObjectInspector yavgFieldOI;
- private DoubleObjectInspector covarFieldOI;
-
- // For PARTIAL1 and PARTIAL2
- private Object[] partialResult;
-
- // For FINAL and COMPLETE
- private DoubleWritable result;
-
- @Override
- public ObjectInspector init(Mode m, ObjectInspector[] parameters)
- throws HiveException {
- super.init(m, parameters);
-
- // init input
- if (mode == Mode.PARTIAL1 || mode == Mode.COMPLETE) {
- assert (parameters.length == 2);
- xInputOI = (PrimitiveObjectInspector) parameters[0];
- yInputOI = (PrimitiveObjectInspector) parameters[1];
- } else {
- assert (parameters.length == 1);
- soi = (StructObjectInspector) parameters[0];
-
- countField = soi.getStructFieldRef("count");
- xavgField = soi.getStructFieldRef("xavg");
- yavgField = soi.getStructFieldRef("yavg");
- covarField = soi.getStructFieldRef("covar");
-
- countFieldOI = (LongObjectInspector) countField
- .getFieldObjectInspector();
- xavgFieldOI = (DoubleObjectInspector) xavgField
- .getFieldObjectInspector();
- yavgFieldOI = (DoubleObjectInspector) yavgField
- .getFieldObjectInspector();
- covarFieldOI = (DoubleObjectInspector) covarField
- .getFieldObjectInspector();
- }
-
- // init output
- if (mode == Mode.PARTIAL1 || mode == Mode.PARTIAL2) {
- // The output of a partial aggregation is a struct containing
- // a long count, two double averages, and a double covariance.
-
- ArrayList<ObjectInspector> foi = new ArrayList<ObjectInspector>();
-
- foi.add(PrimitiveObjectInspectorFactory.writableLongObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
-
- ArrayList<String> fname = new ArrayList<String>();
- fname.add("count");
- fname.add("xavg");
- fname.add("yavg");
- fname.add("covar");
-
- partialResult = new Object[4];
- partialResult[0] = new LongWritable(0);
- partialResult[1] = new DoubleWritable(0);
- partialResult[2] = new DoubleWritable(0);
- partialResult[3] = new DoubleWritable(0);
-
- return ObjectInspectorFactory.getStandardStructObjectInspector(
- fname, foi);
-
- } else {
- setResult(new DoubleWritable(0));
- return PrimitiveObjectInspectorFactory.writableDoubleObjectInspector;
- }
- }
-
- static class StdAgg implements SerializableBuffer {
- long count; // number n of elements
- double xavg; // average of x elements
- double yavg; // average of y elements
- double covar; // n times the covariance
-
- @Override
- public void deSerializeAggBuffer(byte[] data, int start, int len) {
- count = BufferSerDeUtil.getLong(data, start);
- start += 8;
- xavg = BufferSerDeUtil.getDouble(data, start);
- start += 8;
- yavg = BufferSerDeUtil.getDouble(data, start);
- start += 8;
- covar = BufferSerDeUtil.getDouble(data, start);
- }
-
- @Override
- public void serializeAggBuffer(byte[] data, int start, int len) {
- BufferSerDeUtil.writeLong(count, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(xavg, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(yavg, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(covar, data, start);
- }
-
- @Override
- public void serializeAggBuffer(DataOutput output)
- throws IOException {
- output.writeLong(count);
- output.writeDouble(xavg);
- output.writeDouble(yavg);
- output.writeDouble(covar);
- }
- };
-
- @Override
- public AggregationBuffer getNewAggregationBuffer() throws HiveException {
- StdAgg result = new StdAgg();
- reset(result);
- return result;
- }
-
- @Override
- public void reset(AggregationBuffer agg) throws HiveException {
- StdAgg myagg = (StdAgg) agg;
- myagg.count = 0;
- myagg.xavg = 0;
- myagg.yavg = 0;
- myagg.covar = 0;
- }
-
- @Override
- public void iterate(AggregationBuffer agg, Object[] parameters)
- throws HiveException {
- assert (parameters.length == 2);
- Object px = parameters[0];
- Object py = parameters[1];
- if (px != null && py != null) {
- StdAgg myagg = (StdAgg) agg;
- double vx = PrimitiveObjectInspectorUtils.getDouble(px,
- xInputOI);
- double vy = PrimitiveObjectInspectorUtils.getDouble(py,
- yInputOI);
- myagg.count++;
- myagg.yavg = myagg.yavg + (vy - myagg.yavg) / myagg.count;
- if (myagg.count > 1) {
- myagg.covar += (vx - myagg.xavg) * (vy - myagg.yavg);
- }
- myagg.xavg = myagg.xavg + (vx - myagg.xavg) / myagg.count;
- }
- }
-
- @Override
- public Object terminatePartial(AggregationBuffer agg)
- throws HiveException {
- StdAgg myagg = (StdAgg) agg;
- ((LongWritable) partialResult[0]).set(myagg.count);
- ((DoubleWritable) partialResult[1]).set(myagg.xavg);
- ((DoubleWritable) partialResult[2]).set(myagg.yavg);
- ((DoubleWritable) partialResult[3]).set(myagg.covar);
- return partialResult;
- }
-
- @Override
- public void merge(AggregationBuffer agg, Object partial)
- throws HiveException {
- if (partial != null) {
- StdAgg myagg = (StdAgg) agg;
-
- Object partialCount = soi.getStructFieldData(partial,
- countField);
- Object partialXAvg = soi.getStructFieldData(partial, xavgField);
- Object partialYAvg = soi.getStructFieldData(partial, yavgField);
- Object partialCovar = soi.getStructFieldData(partial,
- covarField);
-
- long nA = myagg.count;
- long nB = countFieldOI.get(partialCount);
-
- if (nA == 0) {
- // Just copy the information since there is nothing so far
- myagg.count = countFieldOI.get(partialCount);
- myagg.xavg = xavgFieldOI.get(partialXAvg);
- myagg.yavg = yavgFieldOI.get(partialYAvg);
- myagg.covar = covarFieldOI.get(partialCovar);
- }
-
- if (nA != 0 && nB != 0) {
- // Merge the two partials
- double xavgA = myagg.xavg;
- double yavgA = myagg.yavg;
- double xavgB = xavgFieldOI.get(partialXAvg);
- double yavgB = yavgFieldOI.get(partialYAvg);
- double covarB = covarFieldOI.get(partialCovar);
-
- myagg.count += nB;
- myagg.xavg = (xavgA * nA + xavgB * nB) / myagg.count;
- myagg.yavg = (yavgA * nA + yavgB * nB) / myagg.count;
- myagg.covar += covarB + (xavgA - xavgB) * (yavgA - yavgB)
- * ((double) (nA * nB) / myagg.count);
- }
- }
- }
-
- @Override
- public Object terminate(AggregationBuffer agg) throws HiveException {
- StdAgg myagg = (StdAgg) agg;
-
- if (myagg.count == 0) { // SQL standard - return null for zero
- // elements
- return null;
- } else {
- getResult().set(myagg.covar / (myagg.count));
- return getResult();
- }
- }
-
- public void setResult(DoubleWritable result) {
- this.result = result;
- }
-
- public DoubleWritable getResult() {
- return result;
- }
- }
-
-}
diff --git a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java b/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java
deleted file mode 100644
index 0323531..0000000
--- a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.ql.udf.generic;
-
-import java.io.DataOutput;
-import java.io.IOException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.Description;
-import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.LongWritable;
-import org.apache.hadoop.util.StringUtils;
-
-import edu.uci.ics.hivesterix.runtime.evaluator.BufferSerDeUtil;
-import edu.uci.ics.hivesterix.runtime.evaluator.SerializableBuffer;
-
-/**
- * GenericUDAFSum.
- *
- */
-@Description(name = "sum", value = "_FUNC_(x) - Returns the sum of a set of numbers")
-public class GenericUDAFSum extends AbstractGenericUDAFResolver {
-
- static final Log LOG = LogFactory.getLog(GenericUDAFSum.class.getName());
-
- @Override
- public GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters)
- throws SemanticException {
- if (parameters.length != 1) {
- throw new UDFArgumentTypeException(parameters.length - 1,
- "Exactly one argument is expected.");
- }
-
- if (parameters[0].getCategory() != ObjectInspector.Category.PRIMITIVE) {
- throw new UDFArgumentTypeException(0,
- "Only primitive type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- switch (((PrimitiveTypeInfo) parameters[0]).getPrimitiveCategory()) {
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- return new GenericUDAFSumLong();
- case FLOAT:
- case DOUBLE:
- case STRING:
- return new GenericUDAFSumDouble();
- case BOOLEAN:
- default:
- throw new UDFArgumentTypeException(0,
- "Only numeric or string type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- }
-
- /**
- * GenericUDAFSumDouble.
- *
- */
- public static class GenericUDAFSumDouble extends GenericUDAFEvaluator {
- private PrimitiveObjectInspector inputOI;
- private DoubleWritable result;
-
- @Override
- public ObjectInspector init(Mode m, ObjectInspector[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- super.init(m, parameters);
- result = new DoubleWritable(0);
- inputOI = (PrimitiveObjectInspector) parameters[0];
- return PrimitiveObjectInspectorFactory.writableDoubleObjectInspector;
- }
-
- /** class for storing double sum value. */
- static class SumDoubleAgg implements SerializableBuffer {
- boolean empty;
- double sum;
-
- @Override
- public void deSerializeAggBuffer(byte[] data, int start, int len) {
- empty = BufferSerDeUtil.getBoolean(data, start);
- start += 1;
- sum = BufferSerDeUtil.getDouble(data, start);
- }
-
- @Override
- public void serializeAggBuffer(byte[] data, int start, int len) {
- BufferSerDeUtil.writeBoolean(empty, data, start);
- start += 1;
- BufferSerDeUtil.writeDouble(sum, data, start);
- }
-
- @Override
- public void serializeAggBuffer(DataOutput output)
- throws IOException {
- output.writeBoolean(empty);
- output.writeDouble(sum);
- }
- }
-
- @Override
- public AggregationBuffer getNewAggregationBuffer() throws HiveException {
- SumDoubleAgg result = new SumDoubleAgg();
- reset(result);
- return result;
- }
-
- @Override
- public void reset(AggregationBuffer agg) throws HiveException {
- SumDoubleAgg myagg = (SumDoubleAgg) agg;
- myagg.empty = true;
- myagg.sum = 0;
- }
-
- boolean warned = false;
-
- @Override
- public void iterate(AggregationBuffer agg, Object[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- try {
- merge(agg, parameters[0]);
- } catch (NumberFormatException e) {
- if (!warned) {
- warned = true;
- LOG.warn(getClass().getSimpleName() + " "
- + StringUtils.stringifyException(e));
- LOG.warn(getClass().getSimpleName()
- + " ignoring similar exceptions.");
- }
- }
- }
-
- @Override
- public Object terminatePartial(AggregationBuffer agg)
- throws HiveException {
- return terminate(agg);
- }
-
- @Override
- public void merge(AggregationBuffer agg, Object partial)
- throws HiveException {
- if (partial != null) {
- SumDoubleAgg myagg = (SumDoubleAgg) agg;
- myagg.empty = false;
- myagg.sum += PrimitiveObjectInspectorUtils.getDouble(partial,
- inputOI);
- }
- }
-
- @Override
- public Object terminate(AggregationBuffer agg) throws HiveException {
- SumDoubleAgg myagg = (SumDoubleAgg) agg;
- if (myagg.empty) {
- return null;
- }
- result.set(myagg.sum);
- return result;
- }
-
- }
-
- /**
- * GenericUDAFSumLong.
- *
- */
- public static class GenericUDAFSumLong extends GenericUDAFEvaluator {
- private PrimitiveObjectInspector inputOI;
- private LongWritable result;
-
- @Override
- public ObjectInspector init(Mode m, ObjectInspector[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- super.init(m, parameters);
- result = new LongWritable(0);
- inputOI = (PrimitiveObjectInspector) parameters[0];
- return PrimitiveObjectInspectorFactory.writableLongObjectInspector;
- }
-
- /** class for storing double sum value. */
- static class SumLongAgg implements SerializableBuffer {
- boolean empty;
- long sum;
-
- @Override
- public void deSerializeAggBuffer(byte[] data, int start, int len) {
- empty = BufferSerDeUtil.getBoolean(data, start);
- start += 1;
- sum = BufferSerDeUtil.getLong(data, start);
- }
-
- @Override
- public void serializeAggBuffer(byte[] data, int start, int len) {
- BufferSerDeUtil.writeBoolean(empty, data, start);
- start += 1;
- BufferSerDeUtil.writeLong(sum, data, start);
- }
-
- @Override
- public void serializeAggBuffer(DataOutput output)
- throws IOException {
- output.writeBoolean(empty);
- output.writeLong(sum);
- }
- }
-
- @Override
- public AggregationBuffer getNewAggregationBuffer() throws HiveException {
- SumLongAgg result = new SumLongAgg();
- reset(result);
- return result;
- }
-
- @Override
- public void reset(AggregationBuffer agg) throws HiveException {
- SumLongAgg myagg = (SumLongAgg) agg;
- myagg.empty = true;
- myagg.sum = 0;
- }
-
- private boolean warned = false;
-
- @Override
- public void iterate(AggregationBuffer agg, Object[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- try {
- merge(agg, parameters[0]);
- } catch (NumberFormatException e) {
- if (!warned) {
- warned = true;
- LOG.warn(getClass().getSimpleName() + " "
- + StringUtils.stringifyException(e));
- }
- }
- }
-
- @Override
- public Object terminatePartial(AggregationBuffer agg)
- throws HiveException {
- return terminate(agg);
- }
-
- @Override
- public void merge(AggregationBuffer agg, Object partial)
- throws HiveException {
- if (partial != null) {
- SumLongAgg myagg = (SumLongAgg) agg;
- myagg.sum += PrimitiveObjectInspectorUtils.getLong(partial,
- inputOI);
- myagg.empty = false;
- }
- }
-
- @Override
- public Object terminate(AggregationBuffer agg) throws HiveException {
- SumLongAgg myagg = (SumLongAgg) agg;
- if (myagg.empty) {
- return null;
- }
- result.set(myagg.sum);
- return result;
- }
-
- }
-
-}
diff --git a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFVariance.java b/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFVariance.java
deleted file mode 100644
index 4c16f5a..0000000
--- a/hivesterix/src/main/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFVariance.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.ql.udf.generic;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.Description;
-import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.io.LongWritable;
-import org.apache.hadoop.util.StringUtils;
-
-import edu.uci.ics.hivesterix.runtime.evaluator.BufferSerDeUtil;
-import edu.uci.ics.hivesterix.runtime.evaluator.SerializableBuffer;
-
-/**
- * Compute the variance. This class is extended by: GenericUDAFVarianceSample
- * GenericUDAFStd GenericUDAFStdSample
- *
- */
-@Description(name = "variance,var_pop", value = "_FUNC_(x) - Returns the variance of a set of numbers")
-public class GenericUDAFVariance extends AbstractGenericUDAFResolver {
-
- static final Log LOG = LogFactory.getLog(GenericUDAFVariance.class
- .getName());
-
- @Override
- public GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters)
- throws SemanticException {
- if (parameters.length != 1) {
- throw new UDFArgumentTypeException(parameters.length - 1,
- "Exactly one argument is expected.");
- }
-
- if (parameters[0].getCategory() != ObjectInspector.Category.PRIMITIVE) {
- throw new UDFArgumentTypeException(0,
- "Only primitive type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- switch (((PrimitiveTypeInfo) parameters[0]).getPrimitiveCategory()) {
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
- case STRING:
- return new GenericUDAFVarianceEvaluator();
- case BOOLEAN:
- default:
- throw new UDFArgumentTypeException(0,
- "Only numeric or string type arguments are accepted but "
- + parameters[0].getTypeName() + " is passed.");
- }
- }
-
- /**
- * Evaluate the variance using the algorithm described by Chan, Golub, and
- * LeVeque in
- * "Algorithms for computing the sample variance: analysis and recommendations"
- * The American Statistician, 37 (1983) pp. 242--247.
- *
- * variance = variance1 + variance2 + n/(m*(m+n)) * pow(((m/n)*t1 - t2),2)
- *
- * where: - variance is sum[x-avg^2] (this is actually n times the variance)
- * and is updated at every step. - n is the count of elements in chunk1 - m
- * is the count of elements in chunk2 - t1 = sum of elements in chunk1, t2 =
- * sum of elements in chunk2.
- *
- * This algorithm was proven to be numerically stable by J.L. Barlow in
- * "Error analysis of a pairwise summation algorithm to compute sample variance"
- * Numer. Math, 58 (1991) pp. 583--590
- *
- */
- public static class GenericUDAFVarianceEvaluator extends
- GenericUDAFEvaluator {
-
- // For PARTIAL1 and COMPLETE
- private PrimitiveObjectInspector inputOI;
-
- // For PARTIAL2 and FINAL
- private StructObjectInspector soi;
- private StructField countField;
- private StructField sumField;
- private StructField varianceField;
- private LongObjectInspector countFieldOI;
- private DoubleObjectInspector sumFieldOI;
-
- // For PARTIAL1 and PARTIAL2
- private Object[] partialResult;
-
- // For FINAL and COMPLETE
- private DoubleWritable result;
-
- @Override
- public ObjectInspector init(Mode m, ObjectInspector[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- super.init(m, parameters);
-
- // init input
- if (mode == Mode.PARTIAL1 || mode == Mode.COMPLETE) {
- inputOI = (PrimitiveObjectInspector) parameters[0];
- } else {
- soi = (StructObjectInspector) parameters[0];
-
- countField = soi.getStructFieldRef("count");
- sumField = soi.getStructFieldRef("sum");
- varianceField = soi.getStructFieldRef("variance");
-
- countFieldOI = (LongObjectInspector) countField
- .getFieldObjectInspector();
- sumFieldOI = (DoubleObjectInspector) sumField
- .getFieldObjectInspector();
- }
-
- // init output
- if (mode == Mode.PARTIAL1 || mode == Mode.PARTIAL2) {
- // The output of a partial aggregation is a struct containing
- // a long count and doubles sum and variance.
-
- ArrayList<ObjectInspector> foi = new ArrayList<ObjectInspector>();
-
- foi.add(PrimitiveObjectInspectorFactory.writableLongObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
- foi.add(PrimitiveObjectInspectorFactory.writableDoubleObjectInspector);
-
- ArrayList<String> fname = new ArrayList<String>();
- fname.add("count");
- fname.add("sum");
- fname.add("variance");
-
- partialResult = new Object[3];
- partialResult[0] = new LongWritable(0);
- partialResult[1] = new DoubleWritable(0);
- partialResult[2] = new DoubleWritable(0);
-
- return ObjectInspectorFactory.getStandardStructObjectInspector(
- fname, foi);
-
- } else {
- setResult(new DoubleWritable(0));
- return PrimitiveObjectInspectorFactory.writableDoubleObjectInspector;
- }
- }
-
- static class StdAgg implements SerializableBuffer {
- long count; // number of elements
- double sum; // sum of elements
- double variance; // sum[x-avg^2] (this is actually n times the
- // variance)
-
- @Override
- public void deSerializeAggBuffer(byte[] data, int start, int len) {
- count = BufferSerDeUtil.getLong(data, start);
- start += 8;
- sum = BufferSerDeUtil.getDouble(data, start);
- start += 8;
- variance = BufferSerDeUtil.getDouble(data, start);
- }
-
- @Override
- public void serializeAggBuffer(byte[] data, int start, int len) {
- BufferSerDeUtil.writeLong(count, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(sum, data, start);
- start += 8;
- BufferSerDeUtil.writeDouble(variance, data, start);
- }
-
- @Override
- public void serializeAggBuffer(DataOutput output)
- throws IOException {
- output.writeLong(count);
- output.writeDouble(sum);
- output.writeDouble(variance);
- }
- };
-
- @Override
- public AggregationBuffer getNewAggregationBuffer() throws HiveException {
- StdAgg result = new StdAgg();
- reset(result);
- return result;
- }
-
- @Override
- public void reset(AggregationBuffer agg) throws HiveException {
- StdAgg myagg = (StdAgg) agg;
- myagg.count = 0;
- myagg.sum = 0;
- myagg.variance = 0;
- }
-
- private boolean warned = false;
-
- @Override
- public void iterate(AggregationBuffer agg, Object[] parameters)
- throws HiveException {
- assert (parameters.length == 1);
- Object p = parameters[0];
- if (p != null) {
- StdAgg myagg = (StdAgg) agg;
- try {
- double v = PrimitiveObjectInspectorUtils.getDouble(p,
- inputOI);
- myagg.count++;
- myagg.sum += v;
- if (myagg.count > 1) {
- double t = myagg.count * v - myagg.sum;
- myagg.variance += (t * t)
- / ((double) myagg.count * (myagg.count - 1));
- }
- } catch (NumberFormatException e) {
- if (!warned) {
- warned = true;
- LOG.warn(getClass().getSimpleName() + " "
- + StringUtils.stringifyException(e));
- LOG.warn(getClass().getSimpleName()
- + " ignoring similar exceptions.");
- }
- }
- }
- }
-
- @Override
- public Object terminatePartial(AggregationBuffer agg)
- throws HiveException {
- StdAgg myagg = (StdAgg) agg;
- ((LongWritable) partialResult[0]).set(myagg.count);
- ((DoubleWritable) partialResult[1]).set(myagg.sum);
- ((DoubleWritable) partialResult[2]).set(myagg.variance);
- return partialResult;
- }
-
- @Override
- public void merge(AggregationBuffer agg, Object partial)
- throws HiveException {
- if (partial != null) {
- StdAgg myagg = (StdAgg) agg;
-
- Object partialCount = soi.getStructFieldData(partial,
- countField);
- Object partialSum = soi.getStructFieldData(partial, sumField);
- Object partialVariance = soi.getStructFieldData(partial,
- varianceField);
-
- long n = myagg.count;
- long m = countFieldOI.get(partialCount);
-
- if (n == 0) {
- // Just copy the information since there is nothing so far
- myagg.variance = sumFieldOI.get(partialVariance);
- myagg.count = countFieldOI.get(partialCount);
- myagg.sum = sumFieldOI.get(partialSum);
- }
-
- if (m != 0 && n != 0) {
- // Merge the two partials
-
- double a = myagg.sum;
- double b = sumFieldOI.get(partialSum);
-
- myagg.count += m;
- myagg.sum += b;
- double t = (m / (double) n) * a - b;
- myagg.variance += sumFieldOI.get(partialVariance)
- + ((n / (double) m) / ((double) n + m)) * t * t;
- }
- }
- }
-
- @Override
- public Object terminate(AggregationBuffer agg) throws HiveException {
- StdAgg myagg = (StdAgg) agg;
-
- if (myagg.count == 0) { // SQL standard - return null for zero
- // elements
- return null;
- } else {
- if (myagg.count > 1) {
- getResult().set(myagg.variance / (myagg.count));
- } else { // for one element the variance is always 0
- getResult().set(0);
- }
- return getResult();
- }
- }
-
- public void setResult(DoubleWritable result) {
- this.result = result;
- }
-
- public DoubleWritable getResult() {
- return result;
- }
- }
-
-}
diff --git a/hivesterix/src/main/scripts/run.cmd b/hivesterix/src/main/scripts/run.cmd
deleted file mode 100755
index b8eb4a0..0000000
--- a/hivesterix/src/main/scripts/run.cmd
+++ /dev/null
@@ -1,63 +0,0 @@
-@ECHO OFF
-SETLOCAL
-
-:: Licensed to the Apache Software Foundation (ASF) under one or more
-:: contributor license agreements. See the NOTICE file distributed with
-:: this work for additional information regarding copyright ownership.
-:: The ASF licenses this file to You under the Apache License, Version 2.0
-:: (the "License"); you may not use this file except in compliance with
-:: the License. You may obtain a copy of the License at
-::
-:: http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-
-:: JAVA classpath
-:: Use the local variable CLASSPATH to add custom entries (e.g. JDBC drivers) to
-:: the classpath. Separate multiple paths with ":". Enclose the value
-:: in double quotes. Adding additional files or locations on separate
-:: lines makes things clearer.
-:: Note: If under running under cygwin use "/cygdrive/c/..." for "C:/..."
-:: Example:
-::
-:: Set the CLASSPATH to a jar file and a directory. Note that
-:: "classes dir" is a directory of class files with a space in the name.
-::
-:: CLASSPATH="usr/local/Product1/lib/product.jar"
-:: CLASSPATH="${CLASSPATH}:../MyProject/classes dir"
-::
-SET CLASSPATH="@classpath@"
-
-:: JVM parameters
-:: If you want to modify the default parameters (e.g. maximum heap size -Xmx)
-:: for the Java virtual machine set the local variable JVM_PARAMETERS below
-:: Example:
-:: JVM_PARAMETERS=-Xms100M -Xmx200M
-::
-:: Below are the JVM parameters needed to do remote debugging using Intellij
-:: IDEA. Uncomment and then do: JVM_PARAMETERS="$IDEA_REMOTE_DEBUG_PARAMS"
-:: IDEA_REMOTE_DEBUG_PARAMS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
-::
-:: JVM_PARAMETERS=
-
-:: ---------------------------------------------------------------------------
-:: Default configuration. Do not modify below this line.
-:: ---------------------------------------------------------------------------
-:: Application specific parameters
-
-SET MAIN_CLASS=@main.class@
-SET JVM_PARAMS=@jvm.params@
-SET PROGRAM_PARAMS=@program.params@
-
-:: Try to find java virtual machine
-IF NOT DEFINED JAVA (
- IF NOT DEFINED JAVA_HOME SET JAVA="java.exe"
- IF DEFINED JAVA_HOME SET JAVA="%JAVA_HOME%\bin\java.exe"
-)
-
-:: Run program
-%JAVA% %JVM_PARAMS% %JVM_PARAMETERS% -classpath %CLASSPATH% %MAIN_CLASS% %PROGRAM_PARAMS% %*
diff --git a/hivesterix/src/main/scripts/run.sh b/hivesterix/src/main/scripts/run.sh
deleted file mode 100755
index a998626..0000000
--- a/hivesterix/src/main/scripts/run.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/sh
-# JAVA classpath
-# Use the local variable CLASSPATH to add custom entries (e.g. JDBC drivers) to
-# the classpath. Separate multiple paths with ":". Enclose the value
-# in double quotes. Adding additional files or locations on separate
-# lines makes things clearer.
-# Note: If under running under cygwin use "/cygdrive/c/..." for "C:/..."
-# Example:
-#
-# Set the CLASSPATH to a jar file and a directory. Note that
-# "classes dir" is a directory of class files with a space in the name.
-#
-# CLASSPATH="usr/local/Product1/lib/product.jar"
-# CLASSPATH="${CLASSPATH}:../MyProject/classes dir"
-#
-CLASSPATH="@classpath@"
-
-# JVM parameters
-# If you want to modify the default parameters (e.g. maximum heap size -Xmx)
-# for the Java virtual machine set the local variable JVM_PARAMETERS below
-# Example:
-# JVM_PARAMETERS=-Xms100M -Xmx200M
-#
-# Below are the JVM parameters needed to do remote debugging using Intellij
-# IDEA. Uncomment and then do: JVM_PARAMETERS="$IDEA_REMOTE_DEBUG_PARAMS"
-# IDEA_REMOTE_DEBUG_PARAMS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
-#
-# JVM_PARAMETERS=
-
-#run with shared memory setup
-#if [ -n "${RUN_SHARED_MEM}"]; then
-# JVM_PARAMETERS="${JVM_PARAMETERS} -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,server=n,address=javadebug,suspend=y"
-#fi
-
-# ---------------------------------------------------------------------------
-# Default configuration. Do not modify below this line.
-# ---------------------------------------------------------------------------
-# Application specific parameters
-
-MAIN_CLASS="@main.class@"
-JVM_PARAMS="@jvm.params@"
-PROGRAM_PARAMS="@program.params@"
-
-# Cygwin support. $cygwin _must_ be set to either true or false.
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- *) cygwin=false ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin; then
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# Try to find java virtual machine
-if [ -z "${JAVA}" ]; then
- if [ -z "${JAVA_HOME}" ]; then
- JAVA=java
- else
- JAVA=${JAVA_HOME}/bin/java
- fi
-fi
-
-# Try to find directory where this script is located
-COMMAND="${PWD}/$0"
-if [ ! -f "${COMMAND}" ]; then
- COMMAND="$0"
-fi
-BASEDIR=`expr "${COMMAND}" : '\(.*\)/\.*'`
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-# JAVA=`cygpath --path --windows "$JAVA"`
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
-
-# Run program
-${JAVA} ${JVM_PARAMS} ${JVM_PARAMETERS} -classpath "${CLASSPATH}" ${MAIN_CLASS} ${PROGRAM_PARAMS} $*
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestCase.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestCase.java
deleted file mode 100644
index a69a3f2..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestCase.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package edu.uci.ics.hivesterix.perf;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.Driver;
-import org.junit.Test;
-
-import edu.uci.ics.hivesterix.perf.base.AbstractPerfTestCase;
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-
-public class PerfTestCase extends AbstractPerfTestCase {
- private File resultFile;
- private FileSystem dfs;
-
- PerfTestCase(File queryFile, File resultFile) {
- super("testRuntimeFunction", queryFile);
- this.queryFile = queryFile;
- this.resultFile = resultFile;
- }
-
- @Test
- public void testRuntimeFunction() throws Exception {
- StringBuilder queryString = new StringBuilder();
- readFileToString(queryFile, queryString);
- String[] queries = queryString.toString().split(";");
- StringWriter sw = new StringWriter();
-
- HiveConf hconf = ConfUtil.getHiveConf();
- Driver driver = new Driver(hconf, new PrintWriter(sw));
- driver.init();
-
- dfs = FileSystem.get(ConfUtil.getJobConf());
-
- int i = 0;
- for (String query : queries) {
- if (i == queries.length - 1)
- break;
- driver.run(query);
- driver.clear();
- i++;
- }
-
- String warehouse = hconf.get("hive.metastore.warehouse.dir");
- String tableName = removeExt(resultFile.getName());
- String directory = warehouse + "/" + tableName + "/";
- String localDirectory = "tmp";
-
- FileStatus[] files = dfs.listStatus(new Path(directory));
- FileSystem lfs = null;
- if (files == null) {
- lfs = FileSystem.getLocal(ConfUtil.getJobConf());
- files = lfs.listStatus(new Path(directory));
- }
-
- File resultDirectory = new File(localDirectory + "/" + tableName);
- deleteDir(resultDirectory);
- resultDirectory.mkdir();
-
- for (FileStatus fs : files) {
- Path src = fs.getPath();
- if (src.getName().indexOf("crc") >= 0)
- continue;
-
- String destStr = localDirectory + "/" + tableName + "/"
- + src.getName();
- Path dest = new Path(destStr);
- if (lfs != null) {
- lfs.copyToLocalFile(src, dest);
- dfs.copyFromLocalFile(dest, new Path(directory));
- } else
- dfs.copyToLocalFile(src, dest);
- }
-
- File[] rFiles = resultDirectory.listFiles();
- StringBuilder sb = new StringBuilder();
- for (File r : rFiles) {
- if (r.getName().indexOf("crc") >= 0)
- continue;
- readFileToString(r, sb);
- }
- deleteDir(resultDirectory);
-
- StringBuilder buf = new StringBuilder();
- readFileToString(resultFile, buf);
- if (!equal(buf, sb)) {
- throw new Exception("Result for " + queryFile + " changed:\n"
- + sw.toString());
- }
- }
-
- private void deleteDir(File resultDirectory) {
- if (resultDirectory.exists()) {
- File[] rFiles = resultDirectory.listFiles();
- for (File r : rFiles)
- r.delete();
- resultDirectory.delete();
- }
- }
-
- private boolean equal(StringBuilder sb1, StringBuilder sb2) {
- String s1 = sb1.toString();
- String s2 = sb2.toString();
- String[] rowsOne = s1.split("\n");
- String[] rowsTwo = s2.split("\n");
-
- if (rowsOne.length != rowsTwo.length)
- return false;
-
- for (int i = 0; i < rowsOne.length; i++) {
- String row1 = rowsOne[i];
- String row2 = rowsTwo[i];
-
- if (row1.equals(row2))
- continue;
-
- String[] fields1 = row1.split("");
- String[] fields2 = row2.split("");
-
- for (int j = 0; j < fields1.length; j++) {
- if (fields1[j].equals(fields2[j])) {
- continue;
- } else if (fields1[j].indexOf('.') < 0) {
- return false;
- } else {
- Float float1 = Float.parseFloat(fields1[j]);
- Float float2 = Float.parseFloat(fields2[j]);
-
- if (Math.abs(float1 - float2) == 0)
- continue;
- else
- return false;
- }
- }
- }
-
- return true;
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuite.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuite.java
deleted file mode 100644
index 8d8178f..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuite.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package edu.uci.ics.hivesterix.perf;
-
-import java.io.File;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import edu.uci.ics.hivesterix.perf.base.AbstractPerfTestSuiteClass;
-
-public class PerfTestSuite extends AbstractPerfTestSuiteClass {
-
- private static final String PATH_TO_QUERIES = "src/test/resources/perf/queries/";
- private static final String PATH_TO_RESULTS = "src/test/resources/perf/results/";
- private static final String PATH_TO_IGNORES = "src/test/resources/perf/ignore.txt";
-
- private static final String FILE_EXTENSION_OF_RESULTS = "result";
-
- public static Test suite() throws Exception {
- List<String> ignores = getIgnoreList(PATH_TO_IGNORES);
- File testData = new File(PATH_TO_QUERIES);
- File[] queries = testData.listFiles();
- PerfTestSuite testSuite = new PerfTestSuite();
-
- // set hdfs and hyracks cluster, and load test data to hdfs
- try {
- testSuite.setup();
- testSuite.loadData();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
-
- for (File qFile : queries) {
- if (isIgnored(qFile.getName(), ignores))
- continue;
-
- if (qFile.isFile()) {
- String resultFileName = hiveExtToResExt(qFile.getName());
- File rFile = new File(PATH_TO_RESULTS + resultFileName);
- testSuite.addTest(new PerfTestCase(qFile, rFile));
- }
- }
- return testSuite;
- }
-
- private static String hiveExtToResExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot + 1) + FILE_EXTENSION_OF_RESULTS;
- }
-
- /**
- * Runs the tests and collects their result in a TestResult.
- */
- @Override
- public void run(TestResult result) {
-
- int testCount = countTestCases();
- for (int i = 0; i < testCount; i++) {
- Test each = this.testAt(i);
- if (result.shouldStop())
- break;
- runTest(each, result);
- }
-
- // cleanup hdfs and hyracks cluster
- try {
- cleanup();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuiteCaseGenerator.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuiteCaseGenerator.java
deleted file mode 100644
index 258db22..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuiteCaseGenerator.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package edu.uci.ics.hivesterix.perf;
-
-import java.io.File;
-
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.Driver;
-import org.junit.Test;
-
-import edu.uci.ics.hivesterix.perf.base.AbstractPerfTestCase;
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-
-public class PerfTestSuiteCaseGenerator extends AbstractPerfTestCase {
- private File resultFile;
- private FileSystem dfs;
-
- PerfTestSuiteCaseGenerator(File queryFile, File resultFile) {
- super("testRuntimeFunction", queryFile);
- this.queryFile = queryFile;
- this.resultFile = resultFile;
- }
-
- @Test
- public void testRuntimeFunction() throws Exception {
- StringBuilder queryString = new StringBuilder();
- readFileToString(queryFile, queryString);
- String[] queries = queryString.toString().split(";");
-
- HiveConf hconf = ConfUtil.getHiveConf();
- Driver driver = new Driver(hconf);
- driver.init();
-
- dfs = FileSystem.get(ConfUtil.getJobConf());
-
- long startTime = System.currentTimeMillis();
- int i = 0;
- for (String query : queries) {
- if (i == queries.length - 1)
- break;
- driver.run(query);
- // driver.clear();
- i++;
- }
- long endTime = System.currentTimeMillis();
- System.out.println(resultFile.getName() + " execution time "
- + (endTime - startTime));
-
- String warehouse = hconf.get("hive.metastore.warehouse.dir");
- String tableName = removeExt(resultFile.getName());
- String directory = warehouse + "/" + tableName + "/";
- String localDirectory = "tmp";
-
- FileStatus[] files = dfs.listStatus(new Path(directory));
- FileSystem lfs = null;
- if (files == null) {
- lfs = FileSystem.getLocal(ConfUtil.getJobConf());
- files = lfs.listStatus(new Path(directory));
- }
-
- File resultDirectory = new File(localDirectory + "/" + tableName);
- deleteDir(resultDirectory);
- resultDirectory.mkdir();
-
- for (FileStatus fs : files) {
- Path src = fs.getPath();
- if (src.getName().indexOf("crc") >= 0)
- continue;
-
- String destStr = localDirectory + "/" + tableName + "/"
- + src.getName();
- Path dest = new Path(destStr);
- if (lfs != null) {
- lfs.copyToLocalFile(src, dest);
- dfs.copyFromLocalFile(dest, new Path(directory));
- } else
- dfs.copyToLocalFile(src, dest);
- }
-
- File[] rFiles = resultDirectory.listFiles();
- StringBuilder sb = new StringBuilder();
- for (File r : rFiles) {
- if (r.getName().indexOf("crc") >= 0)
- continue;
- readFileToString(r, sb);
- }
- deleteDir(resultDirectory);
-
- writeStringToFile(resultFile, sb);
- }
-
- private void deleteDir(File resultDirectory) {
- if (resultDirectory.exists()) {
- File[] rFiles = resultDirectory.listFiles();
- for (File r : rFiles)
- r.delete();
- resultDirectory.delete();
- }
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuiteGenerator.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuiteGenerator.java
deleted file mode 100644
index 0a27ca2..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/PerfTestSuiteGenerator.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package edu.uci.ics.hivesterix.perf;
-
-import java.io.File;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import edu.uci.ics.hivesterix.perf.base.AbstractPerfTestSuiteClass;
-
-public class PerfTestSuiteGenerator extends AbstractPerfTestSuiteClass {
-
- private static final String PATH_TO_QUERIES = "src/test/resources/perf/queries/";
- private static final String PATH_TO_RESULTS = "src/test/resources/perf/results/";
- private static final String PATH_TO_IGNORES = "src/test/resources/perf/ignore.txt";
-
- private static final String FILE_EXTENSION_OF_RESULTS = "result";
-
- public static Test suite() throws Exception {
- List<String> ignores = getIgnoreList(PATH_TO_IGNORES);
- File testData = new File(PATH_TO_QUERIES);
- File[] queries = testData.listFiles();
- PerfTestSuiteGenerator testSuite = new PerfTestSuiteGenerator();
-
- // set hdfs and hyracks cluster, and load test data to hdfs
- try {
- testSuite.setup();
- testSuite.loadData();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
-
- for (File qFile : queries) {
- if (isIgnored(qFile.getName(), ignores))
- continue;
-
- if (qFile.isFile() && qFile.getName().startsWith("q18_")) {
- String resultFileName = hiveExtToResExt(qFile.getName());
- File rFile = new File(PATH_TO_RESULTS + resultFileName);
- testSuite.addTest(new PerfTestSuiteCaseGenerator(qFile, rFile));
- }
- }
- return testSuite;
- }
-
- private static String hiveExtToResExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot + 1) + FILE_EXTENSION_OF_RESULTS;
- }
-
- /**
- * Runs the tests and collects their result in a TestResult.
- */
- @Override
- public void run(TestResult result) {
-
- int testCount = countTestCases();
- for (int i = 0; i < testCount; i++) {
- Test each = this.testAt(i);
- if (result.shouldStop())
- break;
- runTest(each, result);
- }
-
- // cleanup hdfs and hyracks cluster
- try {
- cleanup();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestCase.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestCase.java
deleted file mode 100644
index f55d6a1..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestCase.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package edu.uci.ics.hivesterix.perf.base;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import junit.framework.TestCase;
-
-public class AbstractPerfTestCase extends TestCase {
- protected File queryFile;
-
- public AbstractPerfTestCase(String testName, File queryFile) {
- super(testName);
- }
-
- protected static void readFileToString(File file, StringBuilder buf)
- throws Exception {
- BufferedReader result = new BufferedReader(new FileReader(file));
- while (true) {
- String s = result.readLine();
- if (s == null) {
- break;
- } else {
- buf.append(s);
- buf.append('\n');
- }
- }
- result.close();
- }
-
- protected static void writeStringToFile(File file, StringWriter buf)
- throws Exception {
- PrintWriter result = new PrintWriter(new FileWriter(file));
- result.print(buf);
- result.close();
- }
-
- protected static void writeStringToFile(File file, StringBuilder buf)
- throws Exception {
- PrintWriter result = new PrintWriter(new FileWriter(file));
- result.print(buf);
- result.close();
- }
-
- protected static String removeExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot);
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestSuiteClass.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestSuiteClass.java
deleted file mode 100644
index 3d66f59..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/perf/base/AbstractPerfTestSuiteClass.java
+++ /dev/null
@@ -1,211 +0,0 @@
-package edu.uci.ics.hivesterix.perf.base;
-
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestSuite;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hdfs.MiniDFSCluster;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.MiniMRCluster;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hyracks.api.client.HyracksConnection;
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.control.cc.ClusterControllerService;
-import edu.uci.ics.hyracks.control.common.controllers.CCConfig;
-import edu.uci.ics.hyracks.control.common.controllers.NCConfig;
-import edu.uci.ics.hyracks.control.nc.NodeControllerService;
-
-@SuppressWarnings("deprecation")
-public abstract class AbstractPerfTestSuiteClass extends TestSuite {
-
- private static final String PATH_TO_HADOOP_CONF = "src/test/resources/perf/hadoop/conf";
- private static final String PATH_TO_HIVE_CONF = "src/test/resources/perf/hive/conf/hive-default.xml";
- private static final String PATH_TO_DATA = "src/test/resources/perf/data/";
-
- private MiniDFSCluster dfsCluster;
- private MiniMRCluster mrCluster;
-
- private JobConf conf = new JobConf();
- protected FileSystem dfs;
-
- private int numberOfNC = 2;
- private ClusterControllerService cc;
- private Map<String, NodeControllerService> ncs = new HashMap<String, NodeControllerService>();
-
- /**
- * setup cluster
- *
- * @throws IOException
- */
- protected void setup() throws Exception {
- setupHdfs();
- setupHyracks();
- }
-
- private void setupHdfs() throws IOException {
- conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
- conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
- conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
- HiveConf hconf = new HiveConf(SessionState.class);
- hconf.addResource(new Path(PATH_TO_HIVE_CONF));
-
- FileSystem lfs = FileSystem.getLocal(new Configuration());
- lfs.delete(new Path("build"), true);
- lfs.delete(new Path("metastore_db"), true);
-
- System.setProperty("hadoop.log.dir", "logs");
- dfsCluster = new MiniDFSCluster(hconf, numberOfNC, true, null);
- dfs = dfsCluster.getFileSystem();
-
- mrCluster = new MiniMRCluster(2, dfs.getUri().toString(), 1);
- hconf.setVar(HiveConf.ConfVars.HADOOPJT,
- "localhost:" + mrCluster.getJobTrackerPort());
- hconf.setInt("mapred.min.split.size", 1342177280);
-
- conf = new JobConf(hconf);
- ConfUtil.setJobConf(conf);
-
- String fsName = conf.get("fs.default.name");
- hconf.set("hive.metastore.warehouse.dir",
- fsName.concat("/tmp/hivesterix"));
- String warehouse = hconf.get("hive.metastore.warehouse.dir");
- dfs.mkdirs(new Path(warehouse));
- ConfUtil.setHiveConf(hconf);
- }
-
- private void setupHyracks() throws Exception {
- // read hive conf
- HiveConf hconf = new HiveConf(SessionState.class);
- hconf.addResource(new Path(PATH_TO_HIVE_CONF));
- SessionState.start(hconf);
- String ipAddress = hconf.get("hive.hyracks.host");
- int clientPort = Integer.parseInt(hconf.get("hive.hyracks.port"));
- int clusterPort = clientPort;
- String applicationName = hconf.get("hive.hyracks.app");
-
- // start hyracks cc
- CCConfig ccConfig = new CCConfig();
- ccConfig.clientNetIpAddress = ipAddress;
- ccConfig.clientNetPort = clientPort;
- ccConfig.clusterNetPort = clusterPort;
- ccConfig.profileDumpPeriod = 1000;
- ccConfig.heartbeatPeriod = 200000000;
- ccConfig.maxHeartbeatLapsePeriods = 200000000;
- cc = new ClusterControllerService(ccConfig);
- cc.start();
-
- // start hyracks nc
- for (int i = 0; i < numberOfNC; i++) {
- NCConfig ncConfig = new NCConfig();
- ncConfig.ccHost = ipAddress;
- ncConfig.clusterNetIPAddress = ipAddress;
- ncConfig.ccPort = clientPort;
- ncConfig.dataIPAddress = "127.0.0.1";
- ncConfig.datasetIPAddress = "127.0.0.1";
- ncConfig.nodeId = "nc" + i;
- NodeControllerService nc = new NodeControllerService(ncConfig);
- nc.start();
- ncs.put(ncConfig.nodeId, nc);
- }
-
- IHyracksClientConnection hcc = new HyracksConnection(
- ccConfig.clientNetIpAddress, clientPort);
- hcc.createApplication(applicationName, null);
- }
-
- protected void makeDir(String path) throws IOException {
- dfs.mkdirs(new Path(path));
- }
-
- protected void loadFiles(String src, String dest) throws IOException {
- dfs.copyFromLocalFile(new Path(src), new Path(dest));
- }
-
- protected void cleanup() throws Exception {
- cleanupHdfs();
- cleanupHyracks();
- }
-
- /**
- * cleanup hdfs cluster
- */
- private void cleanupHdfs() throws IOException {
- dfs.delete(new Path("/"), true);
- FileSystem.closeAll();
- dfsCluster.shutdown();
- }
-
- /**
- * cleanup hyracks cluster
- */
- private void cleanupHyracks() throws Exception {
- Iterator<NodeControllerService> iterator = ncs.values().iterator();
- while (iterator.hasNext()) {
- NodeControllerService nc = iterator.next();
- nc.stop();
- }
- cc.stop();
- }
-
- protected static List<String> getIgnoreList(String ignorePath)
- throws FileNotFoundException, IOException {
- BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
- String s = null;
- List<String> ignores = new ArrayList<String>();
- while ((s = reader.readLine()) != null) {
- ignores.add(s);
- }
- reader.close();
- return ignores;
- }
-
- protected static boolean isIgnored(String q, List<String> ignoreList) {
- for (String ignore : ignoreList) {
- if (ignore.equals(q)) {
- return true;
- }
- }
- return false;
- }
-
- protected void loadData() throws IOException {
-
- makeDir("/tpch");
- makeDir("/tpch/customer");
- makeDir("/tpch/lineitem");
- makeDir("/tpch/orders");
- makeDir("/tpch/part");
- makeDir("/tpch/partsupp");
- makeDir("/tpch/supplier");
- makeDir("/tpch/nation");
- makeDir("/tpch/region");
-
- makeDir("/jarod");
-
- loadFiles(PATH_TO_DATA + "customer.tbl", "/tpch/customer/");
- loadFiles(PATH_TO_DATA + "lineitem.tbl", "/tpch/lineitem/");
- loadFiles(PATH_TO_DATA + "orders.tbl", "/tpch/orders/");
- loadFiles(PATH_TO_DATA + "part.tbl", "/tpch/part/");
- loadFiles(PATH_TO_DATA + "partsupp.tbl", "/tpch/partsupp/");
- loadFiles(PATH_TO_DATA + "supplier.tbl", "/tpch/supplier/");
- loadFiles(PATH_TO_DATA + "nation.tbl", "/tpch/nation/");
- loadFiles(PATH_TO_DATA + "region.tbl", "/tpch/region/");
-
- loadFiles(PATH_TO_DATA + "ext-gby.tbl", "/jarod/");
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractHivesterixTestCase.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractHivesterixTestCase.java
deleted file mode 100644
index 560cef7..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractHivesterixTestCase.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package edu.uci.ics.hivesterix.test.base;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import junit.framework.TestCase;
-
-public class AbstractHivesterixTestCase extends TestCase {
- protected File queryFile;
-
- public AbstractHivesterixTestCase(String testName, File queryFile) {
- super(testName);
- }
-
- protected static void readFileToString(File file, StringBuilder buf)
- throws Exception {
- BufferedReader result = new BufferedReader(new FileReader(file));
- while (true) {
- String s = result.readLine();
- if (s == null) {
- break;
- } else {
- buf.append(s);
- buf.append('\n');
- }
- }
- result.close();
- }
-
- protected static void writeStringToFile(File file, StringWriter buf)
- throws Exception {
- PrintWriter result = new PrintWriter(new FileWriter(file));
- result.print(buf);
- result.close();
- }
-
- protected static void writeStringToFile(File file, StringBuilder buf)
- throws Exception {
- PrintWriter result = new PrintWriter(new FileWriter(file));
- result.print(buf);
- result.close();
- }
-
- protected static String removeExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot);
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
deleted file mode 100644
index 64ad495..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/base/AbstractTestSuiteClass.java
+++ /dev/null
@@ -1,218 +0,0 @@
-package edu.uci.ics.hivesterix.test.base;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestSuite;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hdfs.MiniDFSCluster;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.MiniMRCluster;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hyracks.api.client.HyracksConnection;
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.control.cc.ClusterControllerService;
-import edu.uci.ics.hyracks.control.common.controllers.CCConfig;
-import edu.uci.ics.hyracks.control.common.controllers.NCConfig;
-import edu.uci.ics.hyracks.control.nc.NodeControllerService;
-
-@SuppressWarnings("deprecation")
-public abstract class AbstractTestSuiteClass extends TestSuite {
-
- private static final String PATH_TO_HADOOP_CONF = "src/test/resources/runtimefunctionts/hadoop/conf";
- private static final String PATH_TO_HIVE_CONF = "src/test/resources/runtimefunctionts/hive/conf/hive-default.xml";
-
- private static final String PATH_TO_CLUSTER_CONF = "src/test/resources/runtimefunctionts/hive/conf/topology.xml";
- private static final String PATH_TO_DATA = "src/test/resources/runtimefunctionts/data/";
-
- private MiniDFSCluster dfsCluster;
- private MiniMRCluster mrCluster;
-
- private JobConf conf = new JobConf();
- protected FileSystem dfs;
-
- private int numberOfNC = 2;
- private ClusterControllerService cc;
- private Map<String, NodeControllerService> ncs = new HashMap<String, NodeControllerService>();
-
- /**
- * setup cluster
- *
- * @throws IOException
- */
- protected void setup() throws Exception {
- setupHdfs();
- setupHyracks();
- }
-
- private void setupHdfs() throws IOException {
- conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
- conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
- conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
- HiveConf hconf = new HiveConf(SessionState.class);
- hconf.addResource(new Path(PATH_TO_HIVE_CONF));
-
- FileSystem lfs = FileSystem.getLocal(new Configuration());
- lfs.delete(new Path("build"), true);
- lfs.delete(new Path("metastore_db"), true);
-
- System.setProperty("hadoop.log.dir", "logs");
- dfsCluster = new MiniDFSCluster(hconf, numberOfNC, true, null);
- dfs = dfsCluster.getFileSystem();
-
- mrCluster = new MiniMRCluster(2, dfs.getUri().toString(), 1);
- hconf.setVar(HiveConf.ConfVars.HADOOPJT,
- "localhost:" + mrCluster.getJobTrackerPort());
-
- conf = new JobConf(hconf);
- ConfUtil.setJobConf(conf);
-
- String fsName = conf.get("fs.default.name");
- hconf.set("hive.metastore.warehouse.dir",
- fsName.concat("/tmp/hivesterix"));
- String warehouse = hconf.get("hive.metastore.warehouse.dir");
- dfs.mkdirs(new Path(warehouse));
- ConfUtil.setHiveConf(hconf);
- }
-
- private void setupHyracks() throws Exception {
- // read hive conf
- HiveConf hconf = new HiveConf(SessionState.class);
- hconf.addResource(new Path(PATH_TO_HIVE_CONF));
- SessionState.start(hconf);
- String ipAddress = hconf.get("hive.hyracks.host");
- int clientPort = Integer.parseInt(hconf.get("hive.hyracks.port"));
- int netPort = clientPort + 1;
- String applicationName = hconf.get("hive.hyracks.app");
-
- // start hyracks cc
- CCConfig ccConfig = new CCConfig();
- ccConfig.clientNetIpAddress = ipAddress;
- ccConfig.clientNetPort = clientPort;
- ccConfig.clusterNetPort = netPort;
- ccConfig.profileDumpPeriod = 1000;
- ccConfig.heartbeatPeriod = 200000000;
- ccConfig.maxHeartbeatLapsePeriods = 200000000;
- ccConfig.clusterTopologyDefinition = new File(PATH_TO_CLUSTER_CONF);
- cc = new ClusterControllerService(ccConfig);
- cc.start();
-
- // start hyracks nc
- for (int i = 0; i < numberOfNC; i++) {
- NCConfig ncConfig = new NCConfig();
- ncConfig.ccHost = ipAddress;
- ncConfig.clusterNetIPAddress = ipAddress;
- ncConfig.ccPort = netPort;
- ncConfig.dataIPAddress = "127.0.0.1";
- ncConfig.datasetIPAddress = "127.0.0.1";
- ncConfig.nodeId = "nc" + i;
- NodeControllerService nc = new NodeControllerService(ncConfig);
- nc.start();
- ncs.put(ncConfig.nodeId, nc);
- }
-
- IHyracksClientConnection hcc = new HyracksConnection(
- ccConfig.clientNetIpAddress, clientPort);
- hcc.createApplication(applicationName, null);
- }
-
- protected void makeDir(String path) throws IOException {
- dfs.mkdirs(new Path(path));
- }
-
- protected void loadFiles(String src, String dest) throws IOException {
- dfs.copyFromLocalFile(new Path(src), new Path(dest));
- }
-
- protected void cleanup() throws Exception {
- cleanupHdfs();
- cleanupHyracks();
- }
-
- /**
- * cleanup hdfs cluster
- */
- private void cleanupHdfs() throws IOException {
- dfs.delete(new Path("/"), true);
- FileSystem.closeAll();
- dfsCluster.shutdown();
- }
-
- /**
- * cleanup hyracks cluster
- */
- private void cleanupHyracks() throws Exception {
- Iterator<NodeControllerService> iterator = ncs.values().iterator();
- while (iterator.hasNext()) {
- NodeControllerService nc = iterator.next();
- nc.stop();
- }
- cc.stop();
- }
-
- protected static List<String> getIgnoreList(String ignorePath)
- throws FileNotFoundException, IOException {
- BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
- String s = null;
- List<String> ignores = new ArrayList<String>();
- while ((s = reader.readLine()) != null) {
- ignores.add(s);
- }
- reader.close();
- return ignores;
- }
-
- protected static boolean isIgnored(String q, List<String> ignoreList) {
- for (String ignore : ignoreList) {
- if (q.indexOf(ignore) >= 0) {
- return true;
- }
- }
- return false;
- }
-
- protected void loadData() throws IOException {
-
- makeDir("/tpch");
- makeDir("/tpch/customer");
- makeDir("/tpch/lineitem");
- makeDir("/tpch/orders");
- makeDir("/tpch/part");
- makeDir("/tpch/partsupp");
- makeDir("/tpch/supplier");
- makeDir("/tpch/nation");
- makeDir("/tpch/region");
-
- makeDir("/test");
- makeDir("/test/joinsrc1");
- makeDir("/test/joinsrc2");
-
- loadFiles(PATH_TO_DATA + "customer.tbl", "/tpch/customer/");
- loadFiles(PATH_TO_DATA + "lineitem.tbl", "/tpch/lineitem/");
- loadFiles(PATH_TO_DATA + "orders.tbl", "/tpch/orders/");
- loadFiles(PATH_TO_DATA + "part.tbl", "/tpch/part/");
- loadFiles(PATH_TO_DATA + "partsupp.tbl", "/tpch/partsupp/");
- loadFiles(PATH_TO_DATA + "supplier.tbl", "/tpch/supplier/");
- loadFiles(PATH_TO_DATA + "nation.tbl", "/tpch/nation/");
- loadFiles(PATH_TO_DATA + "region.tbl", "/tpch/region/");
-
- loadFiles(PATH_TO_DATA + "large_card_join_src.tbl", "/test/joinsrc1/");
- loadFiles(PATH_TO_DATA + "large_card_join_src_small.tbl",
- "/test/joinsrc2/");
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/datagen/RecordBalance.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/datagen/RecordBalance.java
deleted file mode 100644
index 800d6be..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/datagen/RecordBalance.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package edu.uci.ics.hivesterix.test.datagen;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.io.LongWritable;
-import org.apache.hadoop.io.NullWritable;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapred.FileInputFormat;
-import org.apache.hadoop.mapred.FileOutputFormat;
-import org.apache.hadoop.mapred.JobClient;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.MapReduceBase;
-import org.apache.hadoop.mapred.Mapper;
-import org.apache.hadoop.mapred.OutputCollector;
-import org.apache.hadoop.mapred.Reducer;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.mapred.TextInputFormat;
-
-@SuppressWarnings("deprecation")
-public class RecordBalance {
-
- private static String confPath = System.getenv("HADDOP_HOME");
- private static Path[] inputPaths = { new Path("/tpch/100x/customer"),
- new Path("/tpch/100x/nation"), new Path("/tpch/100x/region"),
- new Path("/tpch/100x/lineitem"), new Path("/tpch/100x/orders"),
- new Path("/tpch/100x/part"), new Path("/tpch/100x/partsupp"),
- new Path("/tpch/100x/supplier") };
-
- private static Path[] outputPaths = { new Path("/tpch/100/customer"),
- new Path("/tpch/100/nation"), new Path("/tpch/100/region"),
- new Path("/tpch/100/lineitem"), new Path("/tpch/100/orders"),
- new Path("/tpch/100/part"), new Path("/tpch/100/partsupp"),
- new Path("/tpch/100/supplier") };
-
- public static class MapRecordOnly extends MapReduceBase implements
- Mapper<LongWritable, Text, LongWritable, Text> {
-
- public void map(LongWritable id, Text inputValue,
- OutputCollector<LongWritable, Text> output, Reporter reporter)
- throws IOException {
- output.collect(id, inputValue);
- }
- }
-
- public static class ReduceRecordOnly extends MapReduceBase implements
- Reducer<LongWritable, Text, NullWritable, Text> {
-
- NullWritable key = NullWritable.get();
-
- public void reduce(LongWritable inputKey, Iterator<Text> inputValue,
- OutputCollector<NullWritable, Text> output, Reporter reporter)
- throws IOException {
- while (inputValue.hasNext())
- output.collect(key, inputValue.next());
- }
- }
-
- public static void main(String[] args) throws IOException {
-
- for (int i = 0; i < inputPaths.length; i++) {
- JobConf job = new JobConf(RecordBalance.class);
- job.addResource(new Path(confPath + "/core-site.xml"));
- job.addResource(new Path(confPath + "/mapred-site.xml"));
- job.addResource(new Path(confPath + "/hdfs-site.xml"));
-
- job.setJobName(RecordBalance.class.getSimpleName());
- job.setMapperClass(MapRecordOnly.class);
- job.setReducerClass(ReduceRecordOnly.class);
- job.setMapOutputKeyClass(LongWritable.class);
- job.setMapOutputValueClass(Text.class);
-
- job.setInputFormat(TextInputFormat.class);
- FileInputFormat.setInputPaths(job, inputPaths[i]);
- FileOutputFormat.setOutputPath(job, outputPaths[i]);
- job.setNumReduceTasks(Integer.parseInt(args[0]));
-
- JobClient.runJob(job);
- }
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/legacy/LegacyTestCase.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/legacy/LegacyTestCase.java
deleted file mode 100644
index 9591c32..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/legacy/LegacyTestCase.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package edu.uci.ics.hivesterix.test.legacy;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.Driver;
-import org.junit.Test;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.test.base.AbstractHivesterixTestCase;
-
-public class LegacyTestCase extends AbstractHivesterixTestCase {
- private File resultFile;
- private FileSystem dfs;
-
- public LegacyTestCase(File queryFile, File resultFile) {
- super("legacy", queryFile);
- this.queryFile = queryFile;
- this.resultFile = resultFile;
- }
-
- @Test
- public void testRuntimeFunction() throws Exception {
- StringBuilder queryString = new StringBuilder();
- readFileToString(queryFile, queryString);
- String[] queries = queryString.toString().split(";");
- StringWriter sw = new StringWriter();
-
- HiveConf hconf = ConfUtil.getHiveConf();
- Driver driver = new Driver(hconf, new PrintWriter(sw));
- driver.init();
-
- dfs = FileSystem.get(ConfUtil.getJobConf());
-
- int i = 0;
- for (String query : queries) {
- if (i == queries.length - 1)
- break;
- driver.run(query);
- driver.clear();
- i++;
- }
-
- String warehouse = hconf.get("hive.metastore.warehouse.dir");
- String tableName = removeExt(resultFile.getName());
- String directory = warehouse + "/" + tableName + "/";
- String localDirectory = "tmp";
-
- FileStatus[] files = dfs.listStatus(new Path(directory));
- FileSystem lfs = null;
- if (files == null) {
- lfs = FileSystem.getLocal(ConfUtil.getJobConf());
- files = lfs.listStatus(new Path(directory));
- }
-
- File resultDirectory = new File(localDirectory + "/" + tableName);
- deleteDir(resultDirectory);
- resultDirectory.mkdir();
-
- for (FileStatus fs : files) {
- Path src = fs.getPath();
- if (src.getName().indexOf("crc") >= 0)
- continue;
-
- String destStr = localDirectory + "/" + tableName + "/"
- + src.getName();
- Path dest = new Path(destStr);
- if (lfs != null) {
- lfs.copyToLocalFile(src, dest);
- dfs.copyFromLocalFile(dest, new Path(directory));
- } else
- dfs.copyToLocalFile(src, dest);
- }
-
- File[] rFiles = resultDirectory.listFiles();
- StringBuilder sb = new StringBuilder();
- for (File r : rFiles) {
- if (r.getName().indexOf("crc") >= 0)
- continue;
- readFileToString(r, sb);
- }
- deleteDir(resultDirectory);
-
- StringBuilder buf = new StringBuilder();
- readFileToString(resultFile, buf);
- if (!equal(buf, sb)) {
- throw new Exception("Result for " + queryFile + " changed:\n"
- + sw.toString());
- }
- }
-
- private void deleteDir(File resultDirectory) {
- if (resultDirectory.exists()) {
- File[] rFiles = resultDirectory.listFiles();
- for (File r : rFiles)
- r.delete();
- resultDirectory.delete();
- }
- }
-
- private boolean equal(StringBuilder sb1, StringBuilder sb2) {
- String s1 = sb1.toString();
- String s2 = sb2.toString();
- String[] rowsOne = s1.split("\n");
- String[] rowsTwo = s2.split("\n");
-
- if (rowsOne.length != rowsTwo.length)
- return false;
-
- for (int i = 0; i < rowsOne.length; i++) {
- String row1 = rowsOne[i];
- String row2 = rowsTwo[i];
-
- if (row1.equals(row2))
- continue;
-
- String[] fields1 = row1.split("");
- String[] fields2 = row2.split("");
-
- for (int j = 0; j < fields1.length; j++) {
- if (fields1[j].equals(fields2[j])) {
- continue;
- } else if (fields1[j].indexOf('.') < 0) {
- return false;
- } else {
- Float float1 = Float.parseFloat(fields1[j]);
- Float float2 = Float.parseFloat(fields2[j]);
-
- if (Math.abs(float1 - float2) == 0)
- continue;
- else
- return false;
- }
- }
- }
-
- return true;
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestCase.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestCase.java
deleted file mode 100644
index db13676..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestCase.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package edu.uci.ics.hivesterix.test.optimizer;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.Driver;
-import org.junit.Test;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.test.base.AbstractHivesterixTestCase;
-
-public class OptimizerTestCase extends AbstractHivesterixTestCase {
- private File resultFile;
-
- OptimizerTestCase(File queryFile, File resultFile) {
- super("testOptimizer", queryFile);
- this.queryFile = queryFile;
- this.resultFile = resultFile;
- }
-
- @Test
- public void testOptimizer() throws Exception {
- StringBuilder queryString = new StringBuilder();
- readFileToString(queryFile, queryString);
- String[] queries = queryString.toString().split(";");
- StringWriter sw = new StringWriter();
-
- HiveConf hconf = ConfUtil.getHiveConf();
- Driver driver = new Driver(hconf, new PrintWriter(sw));
- driver.init();
-
- int i = 0;
- for (String query : queries) {
- if (i == queries.length - 1)
- break;
- if (query.toLowerCase().indexOf("create") >= 0
- || query.toLowerCase().indexOf("drop") >= 0
- || query.toLowerCase().indexOf("set") >= 0
- || query.toLowerCase().startsWith("\n\ncreate")
- || query.toLowerCase().startsWith("\n\ndrop")
- || query.toLowerCase().startsWith("\n\nset"))
- driver.run(query);
- else
- driver.compile(query);
- driver.clear();
- i++;
- }
- StringBuilder buf = new StringBuilder();
- readFileToString(resultFile, buf);
- if (!buf.toString().equals(sw.toString())) {
- throw new Exception("Result for " + queryFile + " changed:\n"
- + sw.toString());
- }
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuitGenerator.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuitGenerator.java
deleted file mode 100644
index 217f67d..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuitGenerator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package edu.uci.ics.hivesterix.test.optimizer;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import edu.uci.ics.hivesterix.test.base.AbstractTestSuiteClass;
-
-public class OptimizerTestSuitGenerator extends AbstractTestSuiteClass {
- private static final String PATH_TO_QUERIES = "src/test/resources/optimizerts/queries/";
- private static final String PATH_TO_RESULTS = "src/test/resources/optimizerts/results/";
- private static final String PATH_TO_IGNORES = "src/test/resources/optimizerts/ignore.txt";
-
- private static final String FILE_EXTENSION_OF_RESULTS = "plan";
-
- public static Test suite() throws UnsupportedEncodingException,
- FileNotFoundException, IOException {
- List<String> ignores = getIgnoreList(PATH_TO_IGNORES);
- File testData = new File(PATH_TO_QUERIES);
- File[] queries = testData.listFiles();
- OptimizerTestSuitGenerator testSuite = new OptimizerTestSuitGenerator();
- // set hdfs and hyracks cluster, and load test data to hdfs
- try {
- testSuite.setup();
- testSuite.loadData();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
-
- for (File qFile : queries) {
- if (isIgnored(qFile.getName(), ignores))
- continue;
-
- if (qFile.isFile()) {
- String resultFileName = aqlExtToResExt(qFile.getName());
- File rFile = new File(PATH_TO_RESULTS + resultFileName);
- testSuite.addTest(new OptimizerTestSuiteCaseGenerator(qFile,
- rFile));
- }
- }
- return testSuite;
- }
-
- private static String aqlExtToResExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot + 1) + FILE_EXTENSION_OF_RESULTS;
- }
-
- /**
- * Runs the tests and collects their result in a TestResult.
- */
- @Override
- public void run(TestResult result) {
-
- int testCount = countTestCases();
- for (int i = 0; i < testCount; i++) {
- Test each = this.testAt(i);
- if (result.shouldStop())
- break;
- runTest(each, result);
- }
-
- // cleanup hdfs and hyracks cluster
- try {
- cleanup();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuite.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuite.java
deleted file mode 100644
index e3a4a4e..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuite.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package edu.uci.ics.hivesterix.test.optimizer;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.util.List;
-
-import junit.framework.Test;
-import edu.uci.ics.hivesterix.test.base.AbstractTestSuiteClass;
-
-public class OptimizerTestSuite extends AbstractTestSuiteClass {
-
- private static final String PATH_TO_QUERIES = "src/test/resources/optimizerts/queries/";
- private static final String PATH_TO_RESULTS = "src/test/resources/optimizerts/results/";
- private static final String PATH_TO_IGNORES = "src/test/resources/optimizerts/ignore.txt";
-
- private static final String FILE_EXTENSION_OF_RESULTS = "plan";
-
- public static Test suite() throws UnsupportedEncodingException,
- FileNotFoundException, IOException {
- List<String> ignores = getIgnoreList(PATH_TO_IGNORES);
- File testData = new File(PATH_TO_QUERIES);
- File[] queries = testData.listFiles();
- OptimizerTestSuite testSuite = new OptimizerTestSuite();
-
- // set hdfs and hyracks cluster, and load test data to hdfs
- try {
- testSuite.setup();
- testSuite.loadData();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
-
- for (File qFile : queries) {
- if (isIgnored(qFile.getName(), ignores))
- continue;
-
- if (qFile.isFile() && qFile.getName().startsWith("h11_")) {
- String resultFileName = hiveExtToResExt(qFile.getName());
- File rFile = new File(PATH_TO_RESULTS + resultFileName);
- testSuite.addTest(new OptimizerTestCase(qFile, rFile));
- }
- }
- return testSuite;
- }
-
- private static String hiveExtToResExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot + 1) + FILE_EXTENSION_OF_RESULTS;
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuiteCaseGenerator.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuiteCaseGenerator.java
deleted file mode 100644
index a86dc29..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/optimizer/OptimizerTestSuiteCaseGenerator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package edu.uci.ics.hivesterix.test.optimizer;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.Driver;
-import org.junit.Test;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.test.base.AbstractHivesterixTestCase;
-
-public class OptimizerTestSuiteCaseGenerator extends AbstractHivesterixTestCase {
- private File resultFile;
-
- OptimizerTestSuiteCaseGenerator(File queryFile, File resultFile) {
- super("testOptimizer", queryFile);
- this.queryFile = queryFile;
- this.resultFile = resultFile;
- }
-
- @Test
- public void testOptimizer() throws Exception {
- StringBuilder queryString = new StringBuilder();
- readFileToString(queryFile, queryString);
- String[] queries = queryString.toString().split(";");
- StringWriter sw = new StringWriter();
-
- HiveConf hconf = ConfUtil.getHiveConf();
- Driver driver = new Driver(hconf, new PrintWriter(sw));
- driver.init();
-
- int i = 0;
- for (String query : queries) {
- if (i == queries.length - 1)
- break;
- if (query.toLowerCase().indexOf("create") >= 0
- || query.toLowerCase().indexOf("drop") >= 0
- || query.toLowerCase().indexOf("set") >= 0
- || query.toLowerCase().startsWith("\n\ncreate")
- || query.toLowerCase().startsWith("\n\ndrop")
- || query.toLowerCase().startsWith("\n\nset"))
- driver.run(query);
- else
- driver.compile(query);
- driver.clear();
- i++;
- }
- sw.close();
- writeStringToFile(resultFile, sw);
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestCase.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestCase.java
deleted file mode 100644
index 078de9a..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestCase.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package edu.uci.ics.hivesterix.test.runtimefunction;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.Driver;
-import org.junit.Test;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.test.base.AbstractHivesterixTestCase;
-
-public class RuntimeFunctionTestCase extends AbstractHivesterixTestCase {
- private File resultFile;
- private FileSystem dfs;
-
- RuntimeFunctionTestCase(File queryFile, File resultFile) {
- super("testRuntimeFunction", queryFile);
- this.queryFile = queryFile;
- this.resultFile = resultFile;
- }
-
- @Test
- public void testRuntimeFunction() throws Exception {
- StringBuilder queryString = new StringBuilder();
- readFileToString(queryFile, queryString);
- String[] queries = queryString.toString().split(";");
- StringWriter sw = new StringWriter();
-
- HiveConf hconf = ConfUtil.getHiveConf();
- Driver driver = new Driver(hconf, new PrintWriter(sw));
- driver.init();
- // Driver driver = new Driver(hconf);
-
- dfs = FileSystem.get(ConfUtil.getJobConf());
-
- int i = 0;
- for (String query : queries) {
- if (i == queries.length - 1)
- break;
- driver.run(query);
- driver.clear();
- i++;
- }
-
- String warehouse = hconf.get("hive.metastore.warehouse.dir");
- String tableName = removeExt(resultFile.getName());
- String directory = warehouse + "/" + tableName + "/";
- String localDirectory = "tmp";
-
- FileStatus[] files = dfs.listStatus(new Path(directory));
- FileSystem lfs = null;
- if (files == null) {
- lfs = FileSystem.getLocal(ConfUtil.getJobConf());
- files = lfs.listStatus(new Path(directory));
- }
-
- File resultDirectory = new File(localDirectory + "/" + tableName);
- deleteDir(resultDirectory);
- resultDirectory.mkdir();
-
- for (FileStatus fs : files) {
- Path src = fs.getPath();
- if (src.getName().indexOf("crc") >= 0)
- continue;
-
- String destStr = localDirectory + "/" + tableName + "/"
- + src.getName();
- Path dest = new Path(destStr);
- if (lfs != null) {
- lfs.copyToLocalFile(src, dest);
- dfs.copyFromLocalFile(dest, new Path(directory));
- } else
- dfs.copyToLocalFile(src, dest);
- }
-
- File[] rFiles = resultDirectory.listFiles();
- StringBuilder sb = new StringBuilder();
- for (File r : rFiles) {
- if (r.getName().indexOf("crc") >= 0)
- continue;
- readFileToString(r, sb);
- }
-
- StringBuilder buf = new StringBuilder();
- readFileToString(resultFile, buf);
- StringBuffer errorMsg = new StringBuffer();
- if (!equal(buf, sb, errorMsg)) {
- throw new Exception("Result for " + queryFile + " changed:\n"
- + errorMsg.toString());
- }
- deleteDir(resultDirectory);
- }
-
- private void deleteDir(File resultDirectory) {
- if (resultDirectory.exists()) {
- File[] rFiles = resultDirectory.listFiles();
- for (File r : rFiles)
- r.delete();
- resultDirectory.delete();
- }
- }
-
- private boolean equal(StringBuilder sb1, StringBuilder sb2,
- StringBuffer errorMsg) {
- String s1 = sb1.toString();
- String s2 = sb2.toString();
- String[] rowsOne = s1.split("\n");
- String[] rowsTwo = s2.split("\n");
-
- if (rowsOne.length != rowsTwo.length)
- return false;
-
- for (int i = 0; i < rowsOne.length; i++) {
- String row1 = rowsOne[i];
- String row2 = rowsTwo[i];
-
- if (row1.equals(row2))
- continue;
-
- String[] fields1 = row1.split("");
- String[] fields2 = row2.split("");
-
- for (int j = 0; j < fields1.length; j++) {
- if (fields1[j].equals(fields2[j])) {
- continue;
- } else if (fields1[j].indexOf('.') < 0) {
- errorMsg.append("line " + i + " column " + j + ": "
- + fields2[j] + " expected " + fields1[j]);
- return false;
- } else {
- Float float1 = Float.parseFloat(fields1[j]);
- Float float2 = Float.parseFloat(fields2[j]);
-
- if (Math.abs(float1 - float2) == 0)
- continue;
- else {
- errorMsg.append("line " + i + " column " + j + ": "
- + fields2[j] + " expected " + fields1[j]);
- return false;
- }
- }
- }
- }
-
- return true;
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuite.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuite.java
deleted file mode 100644
index 2093b1d..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuite.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package edu.uci.ics.hivesterix.test.runtimefunction;
-
-import java.io.File;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import edu.uci.ics.hivesterix.test.base.AbstractTestSuiteClass;
-
-public class RuntimeFunctionTestSuite extends AbstractTestSuiteClass {
-
- private static final String PATH_TO_QUERIES = "src/test/resources/runtimefunctionts/queries/";
- private static final String PATH_TO_RESULTS = "src/test/resources/runtimefunctionts/results/";
- private static final String PATH_TO_IGNORES = "src/test/resources/runtimefunctionts/ignore.txt";
-
- private static final String FILE_EXTENSION_OF_RESULTS = "result";
-
- public static Test suite() throws Exception {
- List<String> ignores = getIgnoreList(PATH_TO_IGNORES);
- File testData = new File(PATH_TO_QUERIES);
- File[] queries = testData.listFiles();
- RuntimeFunctionTestSuite testSuite = new RuntimeFunctionTestSuite();
-
- // set hdfs and hyracks cluster, and load test data to hdfs
- try {
- testSuite.setup();
- testSuite.loadData();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
-
- for (File qFile : queries) {
- if (isIgnored(qFile.getName(), ignores))
- continue;
-
- if (qFile.isFile()) {
- String resultFileName = hiveExtToResExt(qFile.getName());
- File rFile = new File(PATH_TO_RESULTS + resultFileName);
- testSuite.addTest(new RuntimeFunctionTestCase(qFile, rFile));
- }
- }
- return testSuite;
- }
-
- private static String hiveExtToResExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot + 1) + FILE_EXTENSION_OF_RESULTS;
- }
-
- /**
- * Runs the tests and collects their result in a TestResult.
- */
- @Override
- public void run(TestResult result) {
-
- int testCount = countTestCases();
- for (int i = 0; i < testCount; i++) {
- Test each = this.testAt(i);
- if (result.shouldStop())
- break;
- runTest(each, result);
- }
-
- // cleanup hdfs and hyracks cluster
- try {
- cleanup();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuiteCaseGenerator.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuiteCaseGenerator.java
deleted file mode 100644
index 1b45b41..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuiteCaseGenerator.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package edu.uci.ics.hivesterix.test.runtimefunction;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.Driver;
-import org.junit.Test;
-
-import edu.uci.ics.hivesterix.runtime.config.ConfUtil;
-import edu.uci.ics.hivesterix.test.base.AbstractHivesterixTestCase;
-
-public class RuntimeFunctionTestSuiteCaseGenerator extends
- AbstractHivesterixTestCase {
- private File resultFile;
- private FileSystem dfs;
-
- RuntimeFunctionTestSuiteCaseGenerator(File queryFile, File resultFile) {
- super("testRuntimeFunction", queryFile);
- this.queryFile = queryFile;
- this.resultFile = resultFile;
- }
-
- @Test
- public void testRuntimeFunction() throws Exception {
- StringBuilder queryString = new StringBuilder();
- readFileToString(queryFile, queryString);
- String[] queries = queryString.toString().split(";");
- StringWriter sw = new StringWriter();
-
- HiveConf hconf = ConfUtil.getHiveConf();
- Driver driver = new Driver(hconf, new PrintWriter(sw));
- driver.init();
-
- dfs = FileSystem.get(ConfUtil.getJobConf());
-
- int i = 0;
- for (String query : queries) {
- if (i == queries.length - 1)
- break;
- driver.run(query);
- driver.clear();
- i++;
- }
-
- String warehouse = hconf.get("hive.metastore.warehouse.dir");
- String tableName = removeExt(resultFile.getName());
- String directory = warehouse + "/" + tableName + "/";
- String localDirectory = "tmp";
-
- FileStatus[] files = dfs.listStatus(new Path(directory));
- FileSystem lfs = null;
- if (files == null) {
- lfs = FileSystem.getLocal(ConfUtil.getJobConf());
- files = lfs.listStatus(new Path(directory));
- }
-
- File resultDirectory = new File(localDirectory + "/" + tableName);
- deleteDir(resultDirectory);
- resultDirectory.mkdir();
-
- for (FileStatus fs : files) {
- Path src = fs.getPath();
- if (src.getName().indexOf("crc") >= 0)
- continue;
-
- String destStr = localDirectory + "/" + tableName + "/"
- + src.getName();
- Path dest = new Path(destStr);
- if (lfs != null) {
- lfs.copyToLocalFile(src, dest);
- dfs.copyFromLocalFile(dest, new Path(directory));
- } else
- dfs.copyToLocalFile(src, dest);
- }
-
- File[] rFiles = resultDirectory.listFiles();
- StringBuilder sb = new StringBuilder();
- for (File r : rFiles) {
- if (r.getName().indexOf("crc") >= 0)
- continue;
- readFileToString(r, sb);
- }
- deleteDir(resultDirectory);
-
- writeStringToFile(resultFile, sb);
- }
-
- private void deleteDir(File resultDirectory) {
- if (resultDirectory.exists()) {
- File[] rFiles = resultDirectory.listFiles();
- for (File r : rFiles)
- r.delete();
- resultDirectory.delete();
- }
- }
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuiteGenerator.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuiteGenerator.java
deleted file mode 100644
index a67f475..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/runtimefunction/RuntimeFunctionTestSuiteGenerator.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package edu.uci.ics.hivesterix.test.runtimefunction;
-
-import java.io.File;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import edu.uci.ics.hivesterix.test.base.AbstractTestSuiteClass;
-
-public class RuntimeFunctionTestSuiteGenerator extends AbstractTestSuiteClass {
-
- private static final String PATH_TO_QUERIES = "src/test/resources/runtimefunctionts/queries/";
- private static final String PATH_TO_RESULTS = "src/test/resources/runtimefunctionts/results/";
- private static final String PATH_TO_IGNORES = "src/test/resources/runtimefunctionts/ignore.txt";
-
- private static final String FILE_EXTENSION_OF_RESULTS = "result";
-
- public static Test suite() throws Exception {
- List<String> ignores = getIgnoreList(PATH_TO_IGNORES);
- File testData = new File(PATH_TO_QUERIES);
- File[] queries = testData.listFiles();
- RuntimeFunctionTestSuiteGenerator testSuite = new RuntimeFunctionTestSuiteGenerator();
-
- // set hdfs and hyracks cluster, and load test data to hdfs
- try {
- testSuite.setup();
- testSuite.loadData();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
-
- for (File qFile : queries) {
- if (isIgnored(qFile.getName(), ignores))
- continue;
-
- if (qFile.isFile() && qFile.getName().startsWith("q16_")) {
- String resultFileName = hiveExtToResExt(qFile.getName());
- File rFile = new File(PATH_TO_RESULTS + resultFileName);
- testSuite.addTest(new RuntimeFunctionTestSuiteCaseGenerator(
- qFile, rFile));
- }
- }
- return testSuite;
- }
-
- private static String hiveExtToResExt(String fname) {
- int dot = fname.lastIndexOf('.');
- return fname.substring(0, dot + 1) + FILE_EXTENSION_OF_RESULTS;
- }
-
- /**
- * Runs the tests and collects their result in a TestResult.
- */
- @Override
- public void run(TestResult result) {
-
- int testCount = countTestCases();
- for (int i = 0; i < testCount; i++) {
- Test each = this.testAt(i);
- if (result.shouldStop())
- break;
- runTest(each, result);
- }
-
- // cleanup hdfs and hyracks cluster
- try {
- cleanup();
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
- }
- }
-
-}
diff --git a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/serde/SerDeTest.java b/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/serde/SerDeTest.java
deleted file mode 100644
index b5db432..0000000
--- a/hivesterix/src/test/java/edu/uci/ics/hivesterix/test/serde/SerDeTest.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hivesterix.test.serde;
-
-import java.util.List;
-import java.util.Properties;
-
-import junit.framework.TestCase;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.serde.Constants;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.SerDeException;
-import org.apache.hadoop.hive.serde2.io.ByteWritable;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.hive.serde2.io.ShortWritable;
-import org.apache.hadoop.hive.serde2.lazy.LazyPrimitive;
-import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.io.BytesWritable;
-import org.apache.hadoop.io.IntWritable;
-import org.apache.hadoop.io.LongWritable;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.io.Writable;
-
-import edu.uci.ics.hivesterix.serde.lazy.LazySerDe;
-
-/**
- * TestLazySimpleSerDe.
- *
- */
-@SuppressWarnings({ "deprecation", "rawtypes" })
-public class SerDeTest extends TestCase {
-
- /**
- * Test the LazySimpleSerDe class.
- */
- public void testLazySimpleSerDe() throws Throwable {
- try {
- // Create the SerDe
- LazySimpleSerDe serDe = new LazySimpleSerDe();
- Configuration conf = new Configuration();
- Properties tbl = createProperties();
- serDe.initialize(conf, tbl);
-
- LazySerDe outputSerde = new LazySerDe();
- outputSerde.initialize(conf, tbl);
-
- // Data
- String s = "123\t456\t789\t1000\t5.3\thive and hadoop\t1\tqf";
-
- byte[] bytes = s.getBytes();
- Writable bytesWritable = new BytesWritable(bytes);
-
- // Test
- // deserializeAndSerialize(serDe, t, s, expectedFieldsData);
- Object row = serDe.deserialize(bytesWritable); // test my serde
- StructObjectInspector simpleInspector = (StructObjectInspector) serDe
- .getObjectInspector();
- List<Object> fields = simpleInspector
- .getStructFieldsDataAsList(row);
- List<? extends StructField> fieldRefs = simpleInspector
- .getAllStructFieldRefs();
-
- int i = 0;
- for (Object field : fields) {
- BytesWritable fieldWritable = (BytesWritable) outputSerde
- .serialize(field, fieldRefs.get(i)
- .getFieldObjectInspector());
- System.out.print(fieldWritable.getSize() + "|");
- i++;
- }
-
- // Writable output = outputSerde.serialize(row, serDe
- // .getObjectInspector());
- // System.out.println(output);
- //
- // Object row2 = outputSerde.deserialize(output);
- // Writable output2 = serDe.serialize(row2, outputSerde
- // .getObjectInspector());
- // System.out.println(output2);
-
- // System.out.println(output);
- // deserializeAndSerialize(outputSerde, t, s, expectedFieldsData);
-
- } catch (Throwable e) {
- e.printStackTrace();
- throw e;
- }
- }
-
- private void deserializeAndSerialize(SerDe serDe, Text t, String s,
- Object[] expectedFieldsData) throws SerDeException {
- // Get the row structure
- StructObjectInspector oi = (StructObjectInspector) serDe
- .getObjectInspector();
- List<? extends StructField> fieldRefs = oi.getAllStructFieldRefs();
- assertEquals(8, fieldRefs.size());
-
- // Deserialize
- Object row = serDe.deserialize(t);
- for (int i = 0; i < fieldRefs.size(); i++) {
- Object fieldData = oi.getStructFieldData(row, fieldRefs.get(i));
- if (fieldData != null) {
- fieldData = ((LazyPrimitive) fieldData).getWritableObject();
- }
- assertEquals("Field " + i, expectedFieldsData[i], fieldData);
- }
- // Serialize
- assertEquals(Text.class, serDe.getSerializedClass());
- Text serializedText = (Text) serDe.serialize(row, oi);
- assertEquals("Serialized data", s, serializedText.toString());
- }
-
- private Properties createProperties() {
- Properties tbl = new Properties();
-
- // Set the configuration parameters
- tbl.setProperty(Constants.SERIALIZATION_FORMAT, "9");
- tbl.setProperty("columns",
- "abyte,ashort,aint,along,adouble,astring,anullint,anullstring");
- tbl.setProperty("columns.types",
- "tinyint:smallint:int:bigint:double:string:int:string");
- tbl.setProperty(Constants.SERIALIZATION_NULL_FORMAT, "NULL");
- return tbl;
- }
-
- /**
- * Test the LazySimpleSerDe class with LastColumnTakesRest option.
- */
- public void testLazySimpleSerDeLastColumnTakesRest() throws Throwable {
- try {
- // Create the SerDe
- LazySimpleSerDe serDe = new LazySimpleSerDe();
- Configuration conf = new Configuration();
- Properties tbl = createProperties();
- tbl.setProperty(Constants.SERIALIZATION_LAST_COLUMN_TAKES_REST,
- "true");
- serDe.initialize(conf, tbl);
-
- // Data
- Text t = new Text(
- "123\t456\t789\t1000\t5.3\thive and hadoop\t1.\ta\tb\t");
- String s = "123\t456\t789\t1000\t5.3\thive and hadoop\tNULL\ta\tb\t";
- Object[] expectedFieldsData = { new ByteWritable((byte) 123),
- new ShortWritable((short) 456), new IntWritable(789),
- new LongWritable(1000), new DoubleWritable(5.3),
- new Text("hive and hadoop"), null, new Text("a\tb\t") };
-
- // Test
- deserializeAndSerialize(serDe, t, s, expectedFieldsData);
-
- } catch (Throwable e) {
- e.printStackTrace();
- throw e;
- }
- }
-
- /**
- * Test the LazySimpleSerDe class with extra columns.
- */
- public void testLazySimpleSerDeExtraColumns() throws Throwable {
- try {
- // Create the SerDe
- LazySimpleSerDe serDe = new LazySimpleSerDe();
- Configuration conf = new Configuration();
- Properties tbl = createProperties();
- serDe.initialize(conf, tbl);
-
- // Data
- Text t = new Text(
- "123\t456\t789\t1000\t5.3\thive and hadoop\t1.\ta\tb\t");
- String s = "123\t456\t789\t1000\t5.3\thive and hadoop\tNULL\ta";
- Object[] expectedFieldsData = { new ByteWritable((byte) 123),
- new ShortWritable((short) 456), new IntWritable(789),
- new LongWritable(1000), new DoubleWritable(5.3),
- new Text("hive and hadoop"), null, new Text("a") };
-
- // Test
- deserializeAndSerialize(serDe, t, s, expectedFieldsData);
-
- } catch (Throwable e) {
- e.printStackTrace();
- throw e;
- }
- }
-
- /**
- * Test the LazySimpleSerDe class with missing columns.
- */
- public void testLazySimpleSerDeMissingColumns() throws Throwable {
- try {
- // Create the SerDe
- LazySimpleSerDe serDe = new LazySimpleSerDe();
- Configuration conf = new Configuration();
- Properties tbl = createProperties();
- serDe.initialize(conf, tbl);
-
- // Data
- Text t = new Text("123\t456\t789\t1000\t5.3\t");
- String s = "123\t456\t789\t1000\t5.3\t\tNULL\tNULL";
- Object[] expectedFieldsData = { new ByteWritable((byte) 123),
- new ShortWritable((short) 456), new IntWritable(789),
- new LongWritable(1000), new DoubleWritable(5.3),
- new Text(""), null, null };
-
- // Test
- deserializeAndSerialize(serDe, t, s, expectedFieldsData);
-
- } catch (Throwable e) {
- e.printStackTrace();
- throw e;
- }
- }
-
-}
diff --git a/hivesterix/src/test/resources/log4j.properties b/hivesterix/src/test/resources/log4j.properties
deleted file mode 100755
index d5e6004..0000000
--- a/hivesterix/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-# Define some default values that can be overridden by system properties
-hadoop.root.logger=FATAL,console
-hadoop.log.dir=.
-hadoop.log.file=hadoop.log
-
-# Define the root logger to the system property "hadoop.root.logger".
-log4j.rootLogger=${hadoop.root.logger}, EventCounter
-
-# Logging Threshold
-log4j.threshhold=FATAL
-
-#
-# Daily Rolling File Appender
-#
-
-log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}
-
-# Rollver at midnight
-log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
-
-# 30-day backup
-#log4j.appender.DRFA.MaxBackupIndex=30
-log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
-
-# Pattern format: Date LogLevel LoggerName LogMessage
-log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
-# Debugging Pattern format
-#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
-
-
-#
-# console
-# Add "console" to rootlogger above if you want to use this
-#
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.target=System.err
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
-
-#
-# TaskLog Appender
-#
-
-#Default values
-hadoop.tasklog.taskid=null
-hadoop.tasklog.noKeepSplits=4
-hadoop.tasklog.totalLogFileSize=100
-hadoop.tasklog.purgeLogSplits=true
-hadoop.tasklog.logsRetainHours=12
-
-log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
-log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
-log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
-
-log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
-log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
-
-#
-# Rolling File Appender
-#
-
-#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
-#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
-
-# Logfile size and and 30-day backups
-#log4j.appender.RFA.MaxFileSize=1MB
-#log4j.appender.RFA.MaxBackupIndex=30
-
-#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
-#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
-#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
-
-#
-# FSNamesystem Audit logging
-# All audit events are logged at INFO level
-#
-log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
-
-# Custom Logging levels
-
-#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
-#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
-#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
-
-# Jets3t library
-log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
-
-#
-# Event Counter Appender
-# Sends counts of logging messages at different severity levels to Hadoop Metrics.
-#
-log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
diff --git a/hivesterix/src/test/resources/logging.properties b/hivesterix/src/test/resources/logging.properties
deleted file mode 100644
index 1cc34e1..0000000
--- a/hivesterix/src/test/resources/logging.properties
+++ /dev/null
@@ -1,65 +0,0 @@
-############################################################
-# Default Logging Configuration File
-#
-# You can use a different file by specifying a filename
-# with the java.util.logging.config.file system property.
-# For example java -Djava.util.logging.config.file=myfile
-############################################################
-
-############################################################
-# Global properties
-############################################################
-
-# "handlers" specifies a comma separated list of log Handler
-# classes. These handlers will be installed during VM startup.
-# Note that these classes must be on the system classpath.
-# By default we only configure a ConsoleHandler, which will only
-# show messages at the INFO and above levels.
-
-handlers= java.util.logging.ConsoleHandler
-
-# To also add the FileHandler, use the following line instead.
-
-# handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
-
-# Default global logging level.
-# This specifies which kinds of events are logged across
-# all loggers. For any given facility this global level
-# can be overriden by a facility specific level
-# Note that the ConsoleHandler also has a separate level
-# setting to limit messages printed to the console.
-
-.level= WARNING
-# .level= INFO
-# .level= FINE
-# .level = FINEST
-
-############################################################
-# Handler specific properties.
-# Describes specific configuration info for Handlers.
-############################################################
-
-# default file output is in user's home directory.
-
-# java.util.logging.FileHandler.pattern = %h/java%u.log
-# java.util.logging.FileHandler.limit = 50000
-# java.util.logging.FileHandler.count = 1
-# java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
-
-# Limit the message that are printed on the console to FINE and above.
-
-java.util.logging.ConsoleHandler.level = FINE
-java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-
-
-############################################################
-# Facility specific properties.
-# Provides extra control for each logger.
-############################################################
-
-# For example, set the com.xyz.foo logger to only log SEVERE
-# messages:
-
-edu.uci.ics.asterix.level = WARNING
-edu.uci.ics.algebricks.level = WARNING
-edu.uci.ics.hyracks.level = WARNING
diff --git a/hivesterix/src/test/resources/optimizerts/hive/conf/hive-default.xml b/hivesterix/src/test/resources/optimizerts/hive/conf/hive-default.xml
deleted file mode 100644
index d5d0149..0000000
--- a/hivesterix/src/test/resources/optimizerts/hive/conf/hive-default.xml
+++ /dev/null
@@ -1,793 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<configuration>
-
- <!-- Hive Configuration can either be stored in this file or in the hadoop
- configuration files -->
- <!-- that are implied by Hadoop setup variables. -->
- <!-- Aside from Hadoop setup variables - this file is provided as a convenience
- so that Hive -->
- <!-- users do not have to edit hadoop configuration files (that may be managed
- as a centralized -->
- <!-- resource). -->
-
- <!-- Hive Execution Parameters -->
- <property>
- <name>mapred.reduce.tasks</name>
- <value>-1</value>
- <description>The default number of reduce tasks per job. Typically set
- to a prime close to the number of available hosts. Ignored when
- mapred.job.tracker is "local". Hadoop set this to 1 by default,
- whereas hive uses -1 as its default value.
- By setting this property to
- -1, Hive will automatically figure out what
- should be the number of
- reducers.
- </description>
- </property>
-
- <property>
- <name>hive.hyracks.host</name>
- <value>127.0.0.1</value>
- </property>
-
- <property>
- <name>hive.hyracks.port</name>
- <value>13099</value>
- </property>
-
- <property>
- <name>hive.hyracks.app</name>
- <value>hivesterix</value>
- </property>
-
-
- <property>
- <name>hive.hyracks.parrallelism</name>
- <value>2</value>
- </property>
-
- <property>
- <name>hive.algebricks.groupby.external</name>
- <value>true</value>
- </property>
-
- <property>
- <name>hive.algebricks.groupby.external.memory</name>
- <value>3072</value>
- </property>
-
- <property>
- <name>hive.algebricks.sort.memory</name>
- <value>3072</value>
- </property>
-
- <property>
- <name>hive.algebricks.framesize</name>
- <value>768</value>
- </property>
-
- <property>
- <name>hive.exec.reducers.bytes.per.reducer</name>
- <value>1000000000</value>
- <description>size per reducer.The default is 1G, i.e if the input size
- is 10G, it will use 10 reducers.</description>
- </property>
-
- <property>
- <name>hive.exec.reducers.max</name>
- <value>999</value>
- <description>max number of reducers will be used. If the one
- specified
- in the configuration parameter mapred.reduce.tasks is
- negative, hive
- will use this one as the max number of reducers when
- automatically
- determine number of reducers.</description>
- </property>
-
- <property>
- <name>hive.exec.scratchdir</name>
- <value>/tmp/hive-${user.name}</value>
- <description>Scratch space for Hive jobs</description>
- </property>
-
- <property>
- <name>hive.test.mode</name>
- <value>false</value>
- <description>whether hive is running in test mode. If yes, it turns on
- sampling and prefixes the output tablename</description>
- </property>
-
- <property>
- <name>hive.test.mode.prefix</name>
- <value>test_</value>
- <description>if hive is running in test mode, prefixes the output
- table by this string</description>
- </property>
-
- <!-- If the input table is not bucketed, the denominator of the tablesample
- is determinied by the parameter below -->
- <!-- For example, the following query: -->
- <!-- INSERT OVERWRITE TABLE dest -->
- <!-- SELECT col1 from src -->
- <!-- would be converted to -->
- <!-- INSERT OVERWRITE TABLE test_dest -->
- <!-- SELECT col1 from src TABLESAMPLE (BUCKET 1 out of 32 on rand(1)) -->
- <property>
- <name>hive.test.mode.samplefreq</name>
- <value>32</value>
- <description>if hive is running in test mode and table is not
- bucketed, sampling frequency</description>
- </property>
-
- <property>
- <name>hive.test.mode.nosamplelist</name>
- <value></value>
- <description>if hive is running in test mode, dont sample the above
- comma seperated list of tables</description>
- </property>
-
- <property>
- <name>hive.metastore.local</name>
- <value>true</value>
- <description>controls whether to connect to remove metastore server or
- open a new metastore server in Hive Client JVM</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
- <description>JDBC connect string for a JDBC metastore</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionDriverName</name>
- <value>org.apache.derby.jdbc.EmbeddedDriver</value>
- <description>Driver class name for a JDBC metastore</description>
- </property>
-
- <property>
- <name>javax.jdo.PersistenceManagerFactoryClass</name>
- <value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>
- <description>class implementing the jdo persistence</description>
- </property>
-
- <property>
- <name>datanucleus.connectionPoolingType</name>
- <value>DBCP</value>
- <description>Uses a DBCP connection pool for JDBC metastore
- </description>
- </property>
-
- <property>
- <name>javax.jdo.option.DetachAllOnCommit</name>
- <value>true</value>
- <description>detaches all objects from session so that they can be
- used after transaction is committed</description>
- </property>
-
- <property>
- <name>javax.jdo.option.NonTransactionalRead</name>
- <value>true</value>
- <description>reads outside of transactions</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionUserName</name>
- <value>APP</value>
- <description>username to use against metastore database</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionPassword</name>
- <value>mine</value>
- <description>password to use against metastore database</description>
- </property>
-
- <property>
- <name>datanucleus.validateTables</name>
- <value>false</value>
- <description>validates existing schema against code. turn this on if
- you want to verify existing schema </description>
- </property>
-
- <property>
- <name>datanucleus.validateColumns</name>
- <value>false</value>
- <description>validates existing schema against code. turn this on if
- you want to verify existing schema </description>
- </property>
-
- <property>
- <name>datanucleus.validateConstraints</name>
- <value>false</value>
- <description>validates existing schema against code. turn this on if
- you want to verify existing schema </description>
- </property>
-
- <property>
- <name>datanucleus.storeManagerType</name>
- <value>rdbms</value>
- <description>metadata store type</description>
- </property>
-
- <property>
- <name>datanucleus.autoCreateSchema</name>
- <value>true</value>
- <description>creates necessary schema on a startup if one doesn't
- exist. set this to false, after creating it once</description>
- </property>
-
- <property>
- <name>datanucleus.autoStartMechanismMode</name>
- <value>checked</value>
- <description>throw exception if metadata tables are incorrect
- </description>
- </property>
-
- <property>
- <name>datanucleus.transactionIsolation</name>
- <value>read-committed</value>
- <description>Default transaction isolation level for identity
- generation. </description>
- </property>
-
- <property>
- <name>datanucleus.cache.level2</name>
- <value>false</value>
- <description>Use a level 2 cache. Turn this off if metadata is changed
- independently of hive metastore server</description>
- </property>
-
- <property>
- <name>datanucleus.cache.level2.type</name>
- <value>SOFT</value>
- <description>SOFT=soft reference based cache, WEAK=weak reference
- based cache.</description>
- </property>
-
- <property>
- <name>datanucleus.identifierFactory</name>
- <value>datanucleus</value>
- <description>Name of the identifier factory to use when generating
- table/column names etc. 'datanucleus' is used for backward
- compatibility</description>
- </property>
-
- <property>
- <name>hive.metastore.warehouse.dir</name>
- <value>/tmp/hivesterix</value>
- <description>location of default database for the warehouse
- </description>
- </property>
-
- <property>
- <name>hive.metastore.connect.retries</name>
- <value>5</value>
- <description>Number of retries while opening a connection to metastore
- </description>
- </property>
-
- <property>
- <name>hive.metastore.rawstore.impl</name>
- <value>org.apache.hadoop.hive.metastore.ObjectStore</value>
- <description>Name of the class that implements
- org.apache.hadoop.hive.metastore.rawstore interface. This class is
- used to store and retrieval of raw metadata objects such as table,
- database</description>
- </property>
-
- <property>
- <name>hive.default.fileformat</name>
- <value>TextFile</value>
- <description>Default file format for CREATE TABLE statement. Options
- are TextFile and SequenceFile. Users can explicitly say CREATE TABLE
- ... STORED AS <TEXTFILE|SEQUENCEFILE> to override</description>
- </property>
-
- <property>
- <name>hive.fileformat.check</name>
- <value>true</value>
- <description>Whether to check file format or not when loading data
- files</description>
- </property>
-
- <property>
- <name>hive.map.aggr</name>
- <value>true</value>
- <description>Whether to use map-side aggregation in Hive Group By
- queries</description>
- </property>
-
- <property>
- <name>hive.groupby.skewindata</name>
- <value>false</value>
- <description>Whether there is skew in data to optimize group by
- queries</description>
- </property>
-
- <property>
- <name>hive.groupby.mapaggr.checkinterval</name>
- <value>100000</value>
- <description>Number of rows after which size of the grouping
- keys/aggregation classes is performed</description>
- </property>
-
- <property>
- <name>hive.mapred.local.mem</name>
- <value>0</value>
- <description>For local mode, memory of the mappers/reducers
- </description>
- </property>
-
- <property>
- <name>hive.map.aggr.hash.percentmemory</name>
- <value>0.5</value>
- <description>Portion of total memory to be used by map-side grup
- aggregation hash table</description>
- </property>
-
- <property>
- <name>hive.map.aggr.hash.min.reduction</name>
- <value>0.5</value>
- <description>Hash aggregation will be turned off if the ratio between
- hash
- table size and input rows is bigger than this number. Set to 1 to
- make
- sure
- hash aggregation is never turned off.</description>
- </property>
-
- <property>
- <name>hive.optimize.cp</name>
- <value>true</value>
- <description>Whether to enable column pruner</description>
- </property>
-
- <property>
- <name>hive.optimize.ppd</name>
- <value>true</value>
- <description>Whether to enable predicate pushdown</description>
- </property>
-
- <property>
- <name>hive.optimize.pruner</name>
- <value>true</value>
- <description>Whether to enable the new partition pruner which depends
- on predicate pushdown. If this is disabled,
- the old partition pruner
- which is based on AST will be enabled.
- </description>
- </property>
-
- <property>
- <name>hive.optimize.groupby</name>
- <value>true</value>
- <description>Whether to enable the bucketed group by from bucketed
- partitions/tables.</description>
- </property>
-
- <property>
- <name>hive.join.emit.interval</name>
- <value>1000</value>
- <description>How many rows in the right-most join operand Hive should
- buffer before emitting the join result. </description>
- </property>
-
- <property>
- <name>hive.join.cache.size</name>
- <value>25000</value>
- <description>How many rows in the joining tables (except the streaming
- table) should be cached in memory. </description>
- </property>
-
- <property>
- <name>hive.mapjoin.bucket.cache.size</name>
- <value>100</value>
- <description>How many values in each keys in the map-joined table
- should be cached in memory. </description>
- </property>
-
- <property>
- <name>hive.mapjoin.maxsize</name>
- <value>100000</value>
- <description>Maximum # of rows of the small table that can be handled
- by map-side join. If the size is reached and hive.task.progress is
- set, a fatal error counter is set and the job will be killed.
- </description>
- </property>
-
- <property>
- <name>hive.mapjoin.cache.numrows</name>
- <value>25000</value>
- <description>How many rows should be cached by jdbm for map join.
- </description>
- </property>
-
- <property>
- <name>hive.optimize.skewjoin</name>
- <value>false</value>
- <description>Whether to enable skew join optimization. </description>
- </property>
-
- <property>
- <name>hive.skewjoin.key</name>
- <value>100000</value>
- <description>Determine if we get a skew key in join. If we see more
- than the specified number of rows with the same key in join operator,
- we think the key as a skew join key. </description>
- </property>
-
- <property>
- <name>hive.skewjoin.mapjoin.map.tasks</name>
- <value>10000</value>
- <description> Determine the number of map task used in the follow up
- map join job
- for a skew join. It should be used together with
- hive.skewjoin.mapjoin.min.split
- to perform a fine grained control.
- </description>
- </property>
-
- <property>
- <name>hive.skewjoin.mapjoin.min.split</name>
- <value>33554432</value>
- <description> Determine the number of map task at most used in the
- follow up map join job
- for a skew join by specifying the minimum split
- size. It should be used
- together with
- hive.skewjoin.mapjoin.map.tasks
- to perform a fine grained control.</description>
- </property>
-
- <property>
- <name>hive.mapred.mode</name>
- <value>nonstrict</value>
- <description>The mode in which the hive operations are being
- performed. In strict mode, some risky queries are not allowed to run
- </description>
- </property>
-
- <property>
- <name>hive.exec.script.maxerrsize</name>
- <value>100000</value>
- <description>Maximum number of bytes a script is allowed to emit to
- standard error (per map-reduce task). This prevents runaway scripts
- from filling logs partitions to capacity </description>
- </property>
-
- <property>
- <name>hive.exec.script.allow.partial.consumption</name>
- <value>false</value>
- <description> When enabled, this option allows a user script to exit
- successfully without consuming all the data from the standard input.
- </description>
- </property>
-
- <property>
- <name>hive.script.operator.id.env.var</name>
- <value>HIVE_SCRIPT_OPERATOR_ID</value>
- <description> Name of the environment variable that holds the unique
- script operator ID in the user's transform function (the custom
- mapper/reducer that the user has specified in the query)
- </description>
- </property>
-
- <property>
- <name>hive.exec.compress.output</name>
- <value>false</value>
- <description> This controls whether the final outputs of a query (to a
- local/hdfs file or a hive table) is compressed. The compression codec
- and other options are determined from hadoop config variables
- mapred.output.compress* </description>
- </property>
-
- <property>
- <name>hive.exec.compress.intermediate</name>
- <value>false</value>
- <description> This controls whether intermediate files produced by
- hive between multiple map-reduce jobs are compressed. The compression
- codec and other options are determined from hadoop config variables
- mapred.output.compress* </description>
- </property>
-
- <property>
- <name>hive.exec.parallel</name>
- <value>false</value>
- <description>Whether to execute jobs in parallel</description>
- </property>
-
- <property>
- <name>hive.exec.parallel.thread.number</name>
- <value>8</value>
- <description>How many jobs at most can be executed in parallel
- </description>
- </property>
-
- <property>
- <name>hive.hwi.war.file</name>
- <value>lib\hive-hwi-0.7.0.war</value>
- <description>This sets the path to the HWI war file, relative to
- ${HIVE_HOME}. </description>
- </property>
-
- <property>
- <name>hive.hwi.listen.host</name>
- <value>0.0.0.0</value>
- <description>This is the host address the Hive Web Interface will
- listen on</description>
- </property>
-
- <property>
- <name>hive.hwi.listen.port</name>
- <value>9999</value>
- <description>This is the port the Hive Web Interface will listen on
- </description>
- </property>
-
- <property>
- <name>hive.exec.pre.hooks</name>
- <value></value>
- <description>Pre Execute Hook for Tests</description>
- </property>
-
- <property>
- <name>hive.merge.mapfiles</name>
- <value>true</value>
- <description>Merge small files at the end of a map-only job
- </description>
- </property>
-
- <property>
- <name>hive.merge.mapredfiles</name>
- <value>false</value>
- <description>Merge small files at the end of a map-reduce job
- </description>
- </property>
-
- <property>
- <name>hive.heartbeat.interval</name>
- <value>1000</value>
- <description>Send a heartbeat after this interval - used by mapjoin
- and filter operators</description>
- </property>
-
- <property>
- <name>hive.merge.size.per.task</name>
- <value>256000000</value>
- <description>Size of merged files at the end of the job</description>
- </property>
-
- <property>
- <name>hive.merge.size.smallfiles.avgsize</name>
- <value>16000000</value>
- <description>When the average output file size of a job is less than
- this number, Hive will start an additional map-reduce job to merge
- the output files into bigger files. This is only done for map-only
- jobs if hive.merge.mapfiles is true, and for map-reduce jobs if
- hive.merge.mapredfiles is true.</description>
- </property>
-
- <property>
- <name>hive.script.auto.progress</name>
- <value>false</value>
- <description>Whether Hive Tranform/Map/Reduce Clause should
- automatically send progress information to TaskTracker to avoid the
- task getting killed because of inactivity. Hive sends progress
- information when the script is outputting to stderr. This option
- removes the need of periodically producing stderr messages, but users
- should be cautious because this may prevent infinite loops in the
- scripts to be killed by TaskTracker. </description>
- </property>
-
- <property>
- <name>hive.script.serde</name>
- <value>org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe</value>
- <description>The default serde for trasmitting input data to and
- reading output data from the user scripts. </description>
- </property>
-
- <property>
- <name>hive.script.recordreader</name>
- <value>org.apache.hadoop.hive.ql.exec.TextRecordReader</value>
- <description>The default record reader for reading data from the user
- scripts. </description>
- </property>
-
- <property>
- <name>hive.script.recordwriter</name>
- <value>org.apache.hadoop.hive.ql.exec.TextRecordWriter</value>
- <description>The default record writer for writing data to the user
- scripts. </description>
- </property>
-
- <property>
- <name>hive.input.format</name>
- <value>org.apache.hadoop.hive.ql.io.HiveInputFormat</value>
- <description>The default input format, if it is not specified, the
- system assigns it. It is set to HiveInputFormat for hadoop versions
- 17, 18 and 19, whereas it is set to CombinedHiveInputFormat for
- hadoop 20. The user can always overwrite it - if there is a bug in
- CombinedHiveInputFormat, it can always be manually set to
- HiveInputFormat. </description>
- </property>
-
- <property>
- <name>hive.udtf.auto.progress</name>
- <value>false</value>
- <description>Whether Hive should automatically send progress
- information to TaskTracker when using UDTF's to prevent the task
- getting killed because of inactivity. Users should be cautious
- because this may prevent TaskTracker from killing tasks with infinte
- loops. </description>
- </property>
-
- <property>
- <name>hive.mapred.reduce.tasks.speculative.execution</name>
- <value>true</value>
- <description>Whether speculative execution for reducers should be
- turned on. </description>
- </property>
-
- <property>
- <name>hive.exec.counters.pull.interval</name>
- <value>1000</value>
- <description>The interval with which to poll the JobTracker for the
- counters the running job. The smaller it is the more load there will
- be on the jobtracker, the higher it is the less granular the caught
- will be.</description>
- </property>
-
- <property>
- <name>hive.enforce.bucketing</name>
- <value>false</value>
- <description>Whether bucketing is enforced. If true, while inserting
- into the table, bucketing is enforced. </description>
- </property>
-
- <property>
- <name>hive.enforce.sorting</name>
- <value>false</value>
- <description>Whether sorting is enforced. If true, while inserting
- into the table, sorting is enforced. </description>
- </property>
-
- <property>
- <name>hive.metastore.ds.connection.url.hook</name>
- <value></value>
- <description>Name of the hook to use for retriving the JDO connection
- URL. If empty, the value in javax.jdo.option.ConnectionURL is used
- </description>
- </property>
-
- <property>
- <name>hive.metastore.ds.retry.attempts</name>
- <value>1</value>
- <description>The number of times to retry a metastore call if there
- were a connection error</description>
- </property>
-
- <property>
- <name>hive.metastore.ds.retry.interval</name>
- <value>1000</value>
- <description>The number of miliseconds between metastore retry
- attempts</description>
- </property>
-
- <property>
- <name>hive.metastore.server.min.threads</name>
- <value>200</value>
- <description>Minimum number of worker threads in the Thrift server's
- pool.</description>
- </property>
-
- <property>
- <name>hive.metastore.server.max.threads</name>
- <value>100000</value>
- <description>Maximum number of worker threads in the Thrift server's
- pool.</description>
- </property>
-
- <property>
- <name>hive.metastore.server.tcp.keepalive</name>
- <value>true</value>
- <description>Whether to enable TCP keepalive for the metastore server.
- Keepalive will prevent accumulation of half-open connections.
- </description>
- </property>
-
- <property>
- <name>hive.optimize.reducededuplication</name>
- <value>true</value>
- <description>Remove extra map-reduce jobs if the data is already
- clustered by the same key which needs to be used again. This should
- always be set to true. Since it is a new feature, it has been made
- configurable.</description>
- </property>
-
- <property>
- <name>hive.exec.dynamic.partition</name>
- <value>false</value>
- <description>Whether or not to allow dynamic partitions in DML/DDL.
- </description>
- </property>
-
- <property>
- <name>hive.exec.dynamic.partition.mode</name>
- <value>strict</value>
- <description>In strict mode, the user must specify at least one static
- partition in case the user accidentally overwrites all partitions.
- </description>
- </property>
-
- <property>
- <name>hive.exec.max.dynamic.partitions</name>
- <value>1000</value>
- <description>Maximum number of dynamic partitions allowed to be
- created in total.</description>
- </property>
-
- <property>
- <name>hive.exec.max.dynamic.partitions.pernode</name>
- <value>100</value>
- <description>Maximum number of dynamic partitions allowed to be
- created in each mapper/reducer node.</description>
- </property>
-
- <property>
- <name>hive.default.partition.name</name>
- <value>__HIVE_DEFAULT_PARTITION__</value>
- <description>The default partition name in case the dynamic partition
- column value is null/empty string or anyother values that cannot be
- escaped. This value must not contain any special character used in
- HDFS URI (e.g., ':', '%', '/' etc). The user has to be aware that the
- dynamic partition value should not contain this value to avoid
- confusions.</description>
- </property>
-
- <property>
- <name>fs.har.impl</name>
- <value>org.apache.hadoop.hive.shims.HiveHarFileSystem</value>
- <description>The implementation for accessing Hadoop Archives. Note
- that this won't be applicable to Hadoop vers less than 0.20
- </description>
- </property>
-
- <property>
- <name>hive.archive.enabled</name>
- <value>false</value>
- <description>Whether archiving operations are permitted</description>
- </property>
-
- <property>
- <name>hive.archive.har.parentdir.settable</name>
- <value>false</value>
- <description>In new Hadoop versions, the parent directory must be set
- while
- creating a HAR. Because this functionality is hard to detect
- with just
- version
- numbers, this conf var needs to be set manually.
- </description>
- </property>
-
- <!-- HBase Storage Handler Parameters -->
-
- <property>
- <name>hive.hbase.wal.enabled</name>
- <value>true</value>
- <description>Whether writes to HBase should be forced to the
- write-ahead log. Disabling this improves HBase write performance at
- the risk of lost writes in case of a crash.</description>
- </property>
-
- <property>
- <name>hive.exec.drop.ignorenonexistent</name>
- <value>true</value>
- <description>drop table always works.</description>
- </property>
-
-</configuration>
diff --git a/hivesterix/src/test/resources/optimizerts/ignore.txt b/hivesterix/src/test/resources/optimizerts/ignore.txt
deleted file mode 100644
index e69de29..0000000
--- a/hivesterix/src/test/resources/optimizerts/ignore.txt
+++ /dev/null
diff --git a/hivesterix/src/test/resources/optimizerts/queries/h11_share_scan.hive b/hivesterix/src/test/resources/optimizerts/queries/h11_share_scan.hive
deleted file mode 100644
index a5c46c6..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/h11_share_scan.hive
+++ /dev/null
@@ -1,10 +0,0 @@
--- union case: both subqueries are map jobs on same input, followed by filesink
-DROP TABLE IF EXISTS src;
-
-CREATE TABLE src(key int, value int);
-CREATE TABLE src1(key int, value int);
-CREATE TABLE src2(key int);
-
-FROM src
-INSERT overwrite table src1 select * where key < 5
-INSERT overwrite table src2 select key where key > 10;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/h12_select_struct.hive b/hivesterix/src/test/resources/optimizerts/queries/h12_select_struct.hive
deleted file mode 100644
index 24ca265..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/h12_select_struct.hive
+++ /dev/null
@@ -1,6 +0,0 @@
--- union case: both subqueries are map jobs on same input, followed by filesink
-DROP TABLE IF EXISTS src;
-
-CREATE TABLE src(key int, value struct<v1:int, v2:int>);
-
-select value from src;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q10_returned_item.hive b/hivesterix/src/test/resources/optimizerts/queries/q10_returned_item.hive
deleted file mode 100644
index 3f1214a..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q10_returned_item.hive
+++ /dev/null
@@ -1,37 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q10_returned_item;
-
--- create the tables and load the data
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the result table
-create table q10_returned_item (c_custkey int, c_name string, revenue double, c_acctbal string, n_name string, c_address string, c_phone string, c_comment string);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1024000000;
-
--- the query
-insert overwrite table q10_returned_item
-select
- c_custkey, c_name, sum(l_extendedprice * (1 - l_discount)) as revenue,
- c_acctbal, n_name, c_address, c_phone, c_comment
-from
- customer c join orders o
- on
- c.c_custkey = o.o_custkey and o.o_orderdate >= '1993-10-01' and o.o_orderdate < '1994-01-01'
- join nation n
- on
- c.c_nationkey = n.n_nationkey
- join lineitem l
- on
- l.l_orderkey = o.o_orderkey and l.l_returnflag = 'R'
-group by c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment
-order by revenue desc
-limit 20;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q11_important_stock.hive b/hivesterix/src/test/resources/optimizerts/queries/q11_important_stock.hive
deleted file mode 100644
index 8550b72..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q11_important_stock.hive
+++ /dev/null
@@ -1,47 +0,0 @@
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q11_important_stock;
-DROP TABLE IF EXISTS q11_part_tmp;
-DROP TABLE IF EXISTS q11_sum_tmp;
-
--- create tables and load data
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-
--- create the target table
-create table q11_important_stock(ps_partkey INT, value DOUBLE);
-create table q11_part_tmp(ps_partkey int, part_value double);
-create table q11_sum_tmp(total_value double);
-
--- the query
-insert overwrite table q11_part_tmp
-select
- ps_partkey, sum(ps_supplycost * ps_availqty) as part_value
-from
- nation n join supplier s
- on
- s.s_nationkey = n.n_nationkey and n.n_name = 'GERMANY'
- join partsupp ps
- on
- ps.ps_suppkey = s.s_suppkey
-group by ps_partkey;
-
-insert overwrite table q11_sum_tmp
-select
- sum(part_value) as total_value
-from
- q11_part_tmp;
-
-insert overwrite table q11_important_stock
-select
- ps_partkey, part_value as value
-from
- (
- select ps_partkey, part_value, total_value
- from q11_part_tmp join q11_sum_tmp
- ) a
-where part_value > total_value * 0.0001
-order by value desc;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q12_shipping.hive b/hivesterix/src/test/resources/optimizerts/queries/q12_shipping.hive
deleted file mode 100644
index 062f7b9..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q12_shipping.hive
+++ /dev/null
@@ -1,42 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS q12_shipping;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-
--- create the result table
-create table q12_shipping(l_shipmode string, high_line_count double, low_line_count double);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1225000000;
-
--- the query
-insert overwrite table q12_shipping
-select
- l_shipmode,
- sum(case
- when o_orderpriority ='1-URGENT'
- or o_orderpriority ='2-HIGH'
- then 1
- else 0
-end
- ) as high_line_count,
- sum(case
- when o_orderpriority <> '1-URGENT'
- and o_orderpriority <> '2-HIGH'
- then 1
- else 0
-end
- ) as low_line_count
-from
- orders o join lineitem l
- on
- o.o_orderkey = l.l_orderkey and l.l_commitdate < l.l_receiptdate
-and l.l_shipdate < l.l_commitdate and l.l_receiptdate >= '1994-01-01'
-and l.l_receiptdate < '1995-01-01'
-where
- l.l_shipmode = 'MAIL' or l.l_shipmode = 'SHIP'
-group by l_shipmode
-order by l_shipmode;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q13_customer_distribution.hive b/hivesterix/src/test/resources/optimizerts/queries/q13_customer_distribution.hive
deleted file mode 100644
index a799008..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q13_customer_distribution.hive
+++ /dev/null
@@ -1,27 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS q13_customer_distribution;
-
--- create the tables and load the data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-
--- create the result table
-create table q13_customer_distribution (c_count int, custdist int);
-
--- the query
-insert overwrite table q13_customer_distribution
-select
- c_count, count(1) as custdist
-from
- (select
- c_custkey, count(o_orderkey) as c_count
- from
- customer c left outer join orders o
- on
- c.c_custkey = o.o_custkey and not o.o_comment like '%special%requests%'
- group by c_custkey
- ) c_orders
-group by c_count
-order by custdist desc, c_count desc;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q14_promotion_effect.hive b/hivesterix/src/test/resources/optimizerts/queries/q14_promotion_effect.hive
deleted file mode 100644
index 988f400..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q14_promotion_effect.hive
+++ /dev/null
@@ -1,28 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q14_promotion_effect;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-
--- create the result table
-create table q14_promotion_effect(promo_revenue double);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1040000000;
-
--- the query
-insert overwrite table q14_promotion_effect
-select
- 100.00 * sum(case
- when p_type like 'PROMO%'
- then l_extendedprice*(1-l_discount)
- else 0.0
- end
- ) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue
-from
- part p join lineitem l
- on
- l.l_partkey = p.p_partkey and l.l_shipdate >= '1995-09-01' and l.l_shipdate < '1995-10-01';
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q15_top_supplier.hive b/hivesterix/src/test/resources/optimizerts/queries/q15_top_supplier.hive
deleted file mode 100644
index 04064ed..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q15_top_supplier.hive
+++ /dev/null
@@ -1,45 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS revenue;
-DROP TABLE IF EXISTS max_revenue;
-DROP TABLE IF EXISTS q15_top_supplier;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-
--- create result tables
-create table revenue(supplier_no int, total_revenue double);
-create table max_revenue(max_revenue double);
-create table q15_top_supplier(s_suppkey int, s_name string, s_address string, s_phone string, total_revenue double);
-
-
-set mapred.min.split.size=536870912;
-
--- the query
-insert overwrite table revenue
-select
- l_suppkey as supplier_no, sum(l_extendedprice * (1 - l_discount)) as total_revenue
-from
- lineitem
-where
- l_shipdate >= '1996-01-01' and l_shipdate < '1996-04-01'
-group by l_suppkey;
-
-insert overwrite table max_revenue
-select
- max(total_revenue)
-from
- revenue;
-
-insert overwrite table q15_top_supplier
-select
- s_suppkey, s_name, s_address, s_phone, total_revenue
-from supplier s join revenue r
- on
- s.s_suppkey = r.supplier_no
- join max_revenue m
- on
- r.total_revenue = m.max_revenue
-order by s_suppkey;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q16_parts_supplier_relationship.hive b/hivesterix/src/test/resources/optimizerts/queries/q16_parts_supplier_relationship.hive
deleted file mode 100644
index 971ef99..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q16_parts_supplier_relationship.hive
+++ /dev/null
@@ -1,53 +0,0 @@
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS q16_parts_supplier_relationship;
-DROP TABLE IF EXISTS q16_tmp;
-DROP TABLE IF EXISTS supplier_tmp;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-
--- create the result table
-create table q16_parts_supplier_relationship(p_brand string, p_type string, p_size int, supplier_cnt int);
-create table q16_tmp(p_brand string, p_type string, p_size int, ps_suppkey int);
-create table supplier_tmp(s_suppkey int);
-
--- the query
-insert overwrite table supplier_tmp
-select
- s_suppkey
-from
- supplier
-where
- not s_comment like '%Customer%Complaints%';
-
-insert overwrite table q16_tmp
-select
- p_brand, p_type, p_size, ps_suppkey
-from
- partsupp ps join part p
- on
- p.p_partkey = ps.ps_partkey and p.p_brand <> 'Brand#45'
- and not p.p_type like 'MEDIUM POLISHED%'
- join supplier_tmp s
- on
- ps.ps_suppkey = s.s_suppkey;
-
-insert overwrite table q16_parts_supplier_relationship
-select
- p_brand, p_type, p_size, count(distinct ps_suppkey) as supplier_cnt
-from
- (select
- *
- from
- q16_tmp
- where p_size = 49 or p_size = 14 or p_size = 23 or
- p_size = 45 or p_size = 19 or p_size = 3 or
- p_size = 36 or p_size = 9
-) q16_all
-group by p_brand, p_type, p_size
-order by supplier_cnt desc, p_brand, p_type, p_size;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q17_small_quantity_order_revenue.hive b/hivesterix/src/test/resources/optimizerts/queries/q17_small_quantity_order_revenue.hive
deleted file mode 100644
index 65291cd..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q17_small_quantity_order_revenue.hive
+++ /dev/null
@@ -1,38 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q17_small_quantity_order_revenue;
-DROP TABLE IF EXISTS lineitem_tmp;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-
--- create the result table
-create table q17_small_quantity_order_revenue (avg_yearly double);
-create table lineitem_tmp (t_partkey int, t_avg_quantity double);
-
--- the query
-insert overwrite table lineitem_tmp
-select
- l_partkey as t_partkey, 0.2 * avg(l_quantity) as t_avg_quantity
-from
- lineitem
-group by l_partkey;
-
-insert overwrite table q17_small_quantity_order_revenue
-select
- sum(l_extendedprice) / 7.0 as avg_yearly
-from
- (select l_quantity, l_extendedprice, t_avg_quantity from
- lineitem_tmp t join
- (select
- l_quantity, l_partkey, l_extendedprice
- from
- part p join lineitem l
- on
- p.p_partkey = l.l_partkey
- and p.p_brand = 'Brand#23'
- and p.p_container = 'MED BOX'
- ) l1 on l1.l_partkey = t.t_partkey
- ) a
-where l_quantity < t_avg_quantity;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q18_large_volume_customer.hive b/hivesterix/src/test/resources/optimizerts/queries/q18_large_volume_customer.hive
deleted file mode 100644
index 76d0475..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q18_large_volume_customer.hive
+++ /dev/null
@@ -1,43 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS q18_tmp;
-DROP TABLE IF EXISTS q18_large_volume_customer;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-
--- create the result tables
-create table q18_tmp(l_orderkey int, t_sum_quantity double);
-create table q18_large_volume_customer(c_name string, c_custkey int, o_orderkey int, o_orderdate string, o_totalprice double, sum_quantity double);
-
-set mapred.min.split.size=268435456;
-set hive.exec.reducers.bytes.per.reducer=1164000000;
-
--- the query
-insert overwrite table q18_tmp
-select
- l_orderkey, sum(l_quantity) as t_sum_quantity
-from
- lineitem
-group by l_orderkey;
-
-insert overwrite table q18_large_volume_customer
-select
- c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice,sum(l_quantity)
-from
- customer c join orders o
- on
- c.c_custkey = o.o_custkey
- join q18_tmp t
- on
- o.o_orderkey = t.l_orderkey and t.t_sum_quantity > 300
- join lineitem l
- on
- o.o_orderkey = l.l_orderkey
-group by c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice
-order by o_totalprice desc,o_orderdate
-limit 100;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q19_discounted_revenue.hive b/hivesterix/src/test/resources/optimizerts/queries/q19_discounted_revenue.hive
deleted file mode 100644
index fd330cd..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q19_discounted_revenue.hive
+++ /dev/null
@@ -1,49 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q19_discounted_revenue;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-
--- create the result table
-create table q19_discounted_revenue(revenue double);
-
-set mapred.min.split.size=268435456;
-set hive.exec.reducers.bytes.per.reducer=1040000000;
-
--- the query
-insert overwrite table q19_discounted_revenue
-select
- sum(l_extendedprice * (1 - l_discount) ) as revenue
-from
- part p join lineitem l
- on
- p.p_partkey = l.l_partkey
-where
- (
- p_brand = 'Brand#12'
- and p_container REGEXP 'SM CASE||SM BOX||SM PACK||SM PKG'
- and l_quantity >= 1 and l_quantity <= 11
- and p_size >= 1 and p_size <= 5
- and l_shipmode REGEXP 'AIR||AIR REG'
- and l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_brand = 'Brand#23'
- and p_container REGEXP 'MED BAG||MED BOX||MED PKG||MED PACK'
- and l_quantity >= 10 and l_quantity <= 20
- and p_size >= 1 and p_size <= 10
- and l_shipmode REGEXP 'AIR||AIR REG'
- and l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_brand = 'Brand#34'
- and p_container REGEXP 'LG CASE||LG BOX||LG PACK||LG PKG'
- and l_quantity >= 20 and l_quantity <= 30
- and p_size >= 1 and p_size <= 15
- and l_shipmode REGEXP 'AIR||AIR REG'
- and l_shipinstruct = 'DELIVER IN PERSON'
- );
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q1_pricing_summary_report.hive b/hivesterix/src/test/resources/optimizerts/queries/q1_pricing_summary_report.hive
deleted file mode 100644
index a002068..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q1_pricing_summary_report.hive
+++ /dev/null
@@ -1,21 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS q1_pricing_summary_report;
-
--- create tables and load data
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the target table
-CREATE TABLE q1_pricing_summary_report ( L_RETURNFLAG STRING, L_LINESTATUS STRING, SUM_QTY DOUBLE, SUM_BASE_PRICE DOUBLE, SUM_DISC_PRICE DOUBLE, SUM_CHARGE DOUBLE, AVE_QTY DOUBLE, AVE_PRICE DOUBLE, AVE_DISC DOUBLE, COUNT_ORDER INT);
-
-set mapred.min.split.size=536870912;
-
--- the query
-INSERT OVERWRITE TABLE q1_pricing_summary_report
-SELECT
- L_RETURNFLAG, L_LINESTATUS, SUM(L_QUANTITY), SUM(L_EXTENDEDPRICE), SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)), SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)*(1+L_TAX)), AVG(L_QUANTITY), AVG(L_EXTENDEDPRICE), AVG(L_DISCOUNT), COUNT(1)
-FROM
- lineitem
-WHERE
- L_SHIPDATE<='1998-09-02'
-GROUP BY L_RETURNFLAG, L_LINESTATUS
-ORDER BY L_RETURNFLAG, L_LINESTATUS;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q20_potential_part_promotion.hive b/hivesterix/src/test/resources/optimizerts/queries/q20_potential_part_promotion.hive
deleted file mode 100644
index 63297e6..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q20_potential_part_promotion.hive
+++ /dev/null
@@ -1,78 +0,0 @@
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q20_tmp1;
-DROP TABLE IF EXISTS q20_tmp2;
-DROP TABLE IF EXISTS q20_tmp3;
-DROP TABLE IF EXISTS q20_tmp4;
-DROP TABLE IF EXISTS q20_potential_part_promotion;
-
--- create tables and load data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-
--- create the target table
-create table q20_tmp1(p_partkey int);
-create table q20_tmp2(l_partkey int, l_suppkey int, sum_quantity double);
-create table q20_tmp3(ps_suppkey int, ps_availqty int, sum_quantity double);
-create table q20_tmp4(ps_suppkey int);
-create table q20_potential_part_promotion(s_name string, s_address string);
-
-set mapred.min.split.size=536870912;
-
--- the query
-insert overwrite table q20_tmp1
-select distinct p_partkey
-from
- part
-where
- p_name like 'forest%';
-
-insert overwrite table q20_tmp2
-select
- l_partkey, l_suppkey, 0.5 * sum(l_quantity)
-from
- lineitem
-where
- l_shipdate >= '1994-01-01'
- and l_shipdate < '1995-01-01'
-group by l_partkey, l_suppkey;
-
-insert overwrite table q20_tmp3
-select
- ps_suppkey, ps_availqty, sum_quantity
-from
- partsupp ps join q20_tmp1 t1
- on
- ps.ps_partkey = t1.p_partkey
- join q20_tmp2 t2
- on
- ps.ps_partkey = t2.l_partkey and ps.ps_suppkey = t2.l_suppkey;
-
-insert overwrite table q20_tmp4
-select
- ps_suppkey
-from
- q20_tmp3
-where
- ps_availqty > sum_quantity
-group by ps_suppkey;
-
-insert overwrite table q20_potential_part_promotion
-select
- s_name, s_address
-from
- supplier s join nation n
- on
- s.s_nationkey = n.n_nationkey
- and n.n_name = 'CANADA'
- join q20_tmp4 t4
- on
- s.s_suppkey = t4.ps_suppkey
-order by s_name;
-
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q21_suppliers_who_kept_orders_waiting.hive b/hivesterix/src/test/resources/optimizerts/queries/q21_suppliers_who_kept_orders_waiting.hive
deleted file mode 100644
index a467f60..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q21_suppliers_who_kept_orders_waiting.hive
+++ /dev/null
@@ -1,74 +0,0 @@
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q21_tmp1;
-DROP TABLE IF EXISTS q21_tmp2;
-DROP TABLE IF EXISTS q21_suppliers_who_kept_orders_waiting;
-
--- create tables and load data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create target tables
-create table q21_tmp1(l_orderkey int, count_suppkey int, max_suppkey int);
-create table q21_tmp2(l_orderkey int, count_suppkey int, max_suppkey int);
-create table q21_suppliers_who_kept_orders_waiting(s_name string, numwait int);
-
--- the query
-insert overwrite table q21_tmp1
-select
- l_orderkey, count(distinct l_suppkey), max(l_suppkey) as max_suppkey
-from
- lineitem
-group by l_orderkey;
-
-insert overwrite table q21_tmp2
-select
- l_orderkey, count(distinct l_suppkey), max(l_suppkey) as max_suppkey
-from
- lineitem
-where
- l_receiptdate > l_commitdate
-group by l_orderkey;
-
-insert overwrite table q21_suppliers_who_kept_orders_waiting
-select
- s_name, count(1) as numwait
-from
- (select s_name from
-(select s_name, t2.l_orderkey, l_suppkey, count_suppkey, max_suppkey
- from q21_tmp2 t2 right outer join
- (select s_name, l_orderkey, l_suppkey from
- (select s_name, t1.l_orderkey, l_suppkey, count_suppkey, max_suppkey
- from
- q21_tmp1 t1 join
- (select s_name, l_orderkey, l_suppkey
- from
- orders o join
- (select s_name, l_orderkey, l_suppkey
- from
- nation n join supplier s
- on
- s.s_nationkey = n.n_nationkey
- and n.n_name = 'SAUDI ARABIA'
- join lineitem l
- on
- s.s_suppkey = l.l_suppkey
- where
- l.l_receiptdate > l.l_commitdate
- ) l1 on o.o_orderkey = l1.l_orderkey and o.o_orderstatus = 'F'
- ) l2 on l2.l_orderkey = t1.l_orderkey
- ) a
- where
- (count_suppkey > 1) or ((count_suppkey=1) and (l_suppkey <> max_suppkey))
- ) l3 on l3.l_orderkey = t2.l_orderkey
- ) b
- where
- (count_suppkey is null) or ((count_suppkey=1) and (l_suppkey = max_suppkey))
- )c
-group by s_name
-order by numwait desc, s_name
-limit 100;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q22_global_sales_opportunity.hive b/hivesterix/src/test/resources/optimizerts/queries/q22_global_sales_opportunity.hive
deleted file mode 100644
index a7d6c72..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q22_global_sales_opportunity.hive
+++ /dev/null
@@ -1,70 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS q22_customer_tmp;
-DROP TABLE IF EXISTS q22_customer_tmp1;
-DROP TABLE IF EXISTS q22_orders_tmp;
-DROP TABLE IF EXISTS q22_global_sales_opportunity;
-
--- create tables and load data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-
--- create target tables
-create table q22_customer_tmp(c_acctbal double, c_custkey int, cntrycode string);
-create table q22_customer_tmp1(avg_acctbal double);
-create table q22_orders_tmp(o_custkey int);
-create table q22_global_sales_opportunity(cntrycode string, numcust int, totacctbal double);
-
--- the query
-insert overwrite table q22_customer_tmp
-select
- c_acctbal, c_custkey, substr(c_phone, 1, 2) as cntrycode
-from
- customer
-where
- substr(c_phone, 1, 2) = '13' or
- substr(c_phone, 1, 2) = '31' or
- substr(c_phone, 1, 2) = '23' or
- substr(c_phone, 1, 2) = '29' or
- substr(c_phone, 1, 2) = '30' or
- substr(c_phone, 1, 2) = '18' or
- substr(c_phone, 1, 2) = '17';
-
-insert overwrite table q22_customer_tmp1
-select
- avg(c_acctbal)
-from
- q22_customer_tmp
-where
- c_acctbal > 0.00;
-
-insert overwrite table q22_orders_tmp
-select
- o_custkey
-from
- orders
-group by
- o_custkey;
-
-insert overwrite table q22_global_sales_opportunity
-select
- cntrycode, count(1) as numcust, sum(c_acctbal) as totacctbal
-from
-(
- select cntrycode, c_acctbal, avg_acctbal from
- q22_customer_tmp1 ct1 join
- (
- select cntrycode, c_acctbal from
- q22_orders_tmp ot
- right outer join q22_customer_tmp ct
- on
- ct.c_custkey = ot.o_custkey
- where
- o_custkey is null
- ) ct2
-) a
-where
- c_acctbal > avg_acctbal
-group by cntrycode
-order by cntrycode;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q2_minimum_cost_supplier.hive b/hivesterix/src/test/resources/optimizerts/queries/q2_minimum_cost_supplier.hive
deleted file mode 100644
index 061c5e7..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q2_minimum_cost_supplier.hive
+++ /dev/null
@@ -1,56 +0,0 @@
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS region;
-DROP TABLE IF EXISTS q2_minimum_cost_supplier;
-DROP TABLE IF EXISTS q2_minimum_cost_supplier_tmp1;
-DROP TABLE IF EXISTS q2_minimum_cost_supplier_tmp2;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/region';
-
--- create result tables
-create table q2_minimum_cost_supplier_tmp1 (s_acctbal double, s_name string, n_name string, p_partkey int, ps_supplycost double, p_mfgr string, s_address string, s_phone string, s_comment string);
-create table q2_minimum_cost_supplier_tmp2 (p_partkey int, ps_min_supplycost double);
-create table q2_minimum_cost_supplier (s_acctbal double, s_name string, n_name string, p_partkey int, p_mfgr string, s_address string, s_phone string, s_comment string);
-
--- the query
-insert overwrite table q2_minimum_cost_supplier_tmp1
-select
- s.s_acctbal, s.s_name, n.n_name, p.p_partkey, ps.ps_supplycost, p.p_mfgr, s.s_address, s.s_phone, s.s_comment
-from
- nation n join region r
- on
- n.n_regionkey = r.r_regionkey and r.r_name = 'EUROPE'
- join supplier s
- on
-s.s_nationkey = n.n_nationkey
- join partsupp ps
- on
-s.s_suppkey = ps.ps_suppkey
- join part p
- on
- p.p_partkey = ps.ps_partkey and p.p_size = 15 and p.p_type like '%BRASS' ;
-
-insert overwrite table q2_minimum_cost_supplier_tmp2
-select
- p_partkey, min(ps_supplycost)
-from
- q2_minimum_cost_supplier_tmp1
-group by p_partkey;
-
-insert overwrite table q2_minimum_cost_supplier
-select
- t1.s_acctbal, t1.s_name, t1.n_name, t1.p_partkey, t1.p_mfgr, t1.s_address, t1.s_phone, t1.s_comment
-from
- q2_minimum_cost_supplier_tmp1 t1 join q2_minimum_cost_supplier_tmp2 t2
-on
- t1.p_partkey = t2.p_partkey and t1.ps_supplycost=t2.ps_min_supplycost
-order by s_acctbal desc, n_name, s_name, p_partkey
-limit 100;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q3_shipping_priority.hive b/hivesterix/src/test/resources/optimizerts/queries/q3_shipping_priority.hive
deleted file mode 100644
index 0049eb3..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q3_shipping_priority.hive
+++ /dev/null
@@ -1,29 +0,0 @@
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS q3_shipping_priority;
-
--- create tables and load data
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-
--- create the target table
-create table q3_shipping_priority (l_orderkey int, revenue double, o_orderdate string, o_shippriority int);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1024000000;
-
--- the query
-Insert overwrite table q3_shipping_priority
-select
- l_orderkey, (l_extendedprice*(1-l_discount)) as revenue, o_orderdate, o_shippriority
-from
- customer c join orders o
- on c.c_mktsegment = 'BUILDING' and c.c_custkey = o.o_custkey
- join lineitem l
- on l.l_orderkey = o.o_orderkey and l.l_linenumber<3
--- group by l_orderkey, o_orderdate, o_shippriority
-order by revenue desc
-limit 10;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q4_order_priority.hive b/hivesterix/src/test/resources/optimizerts/queries/q4_order_priority.hive
deleted file mode 100644
index aa828e9..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q4_order_priority.hive
+++ /dev/null
@@ -1,30 +0,0 @@
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS q4_order_priority_tmp;
-DROP TABLE IF EXISTS q4_order_priority;
-
--- create tables and load data
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the target table
-CREATE TABLE q4_order_priority_tmp (O_ORDERKEY INT);
-CREATE TABLE q4_order_priority (O_ORDERPRIORITY STRING, ORDER_COUNT INT);
-
-set mapred.min.split.size=536870912;
--- the query
-INSERT OVERWRITE TABLE q4_order_priority_tmp
-select
- DISTINCT l_orderkey
-from
- lineitem
-where
- l_commitdate < l_receiptdate;
-INSERT OVERWRITE TABLE q4_order_priority
-select o_orderpriority, count(1) as order_count
-from
- orders o join q4_order_priority_tmp t
- on
-o.o_orderkey = t.o_orderkey and o.o_orderdate >= '1993-07-01' and o.o_orderdate < '1993-10-01'
-group by o_orderpriority
-order by o_orderpriority;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q5_local_supplier_volume.hive b/hivesterix/src/test/resources/optimizerts/queries/q5_local_supplier_volume.hive
deleted file mode 100644
index a975ce1..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q5_local_supplier_volume.hive
+++ /dev/null
@@ -1,42 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS region;
-DROP TABLE IF EXISTS q5_local_supplier_volume;
-
--- create tables and load data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/region';
-
--- create the target table
-create table q5_local_supplier_volume (N_NAME STRING, REVENUE DOUBLE);
-
-set mapred.min.split.size=536870912;
-
--- the query
-insert overwrite table q5_local_supplier_volume
-select
- n_name, sum(l_extendedprice * (1 - l_discount)) as revenue
-from
- customer c join
- ( select n_name, l_extendedprice, l_discount, s_nationkey, o_custkey from orders o join
- ( select n_name, l_extendedprice, l_discount, l_orderkey, s_nationkey from lineitem l join
- ( select n_name, s_suppkey, s_nationkey from supplier s join
- ( select n_name, n_nationkey
- from nation n join region r
- on n.n_regionkey = r.r_regionkey and r.r_name = 'ASIA'
- ) n1 on s.s_nationkey = n1.n_nationkey
- ) s1 on l.l_suppkey = s1.s_suppkey
- ) l1 on l1.l_orderkey = o.o_orderkey and o.o_orderdate >= '1994-01-01'
- and o.o_orderdate < '1995-01-01'
-) o1
-on c.c_nationkey = o1.s_nationkey and c.c_custkey = o1.o_custkey
-group by n_name
-order by revenue desc;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q6_forecast_revenue_change.hive b/hivesterix/src/test/resources/optimizerts/queries/q6_forecast_revenue_change.hive
deleted file mode 100644
index d8cb9b9..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q6_forecast_revenue_change.hive
+++ /dev/null
@@ -1,21 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS q6_forecast_revenue_change;
-
--- create tables and load data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the target table
-create table q6_forecast_revenue_change (revenue double);
-
--- the query
-insert overwrite table q6_forecast_revenue_change
-select
- sum(l_extendedprice*l_discount) as revenue
-from
- lineitem
-where
- l_shipdate >= '1994-01-01'
- and l_shipdate < '1995-01-01'
- and l_discount >= 0.05 and l_discount <= 0.07
- and l_quantity < 24;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q7_volume_shipping.hive b/hivesterix/src/test/resources/optimizerts/queries/q7_volume_shipping.hive
deleted file mode 100644
index 3dfb22a..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q7_volume_shipping.hive
+++ /dev/null
@@ -1,71 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q7_volume_shipping;
-DROP TABLE IF EXISTS q7_volume_shipping_tmp;
-
--- create tables and load data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the target table
-create table q7_volume_shipping (supp_nation string, cust_nation string, l_year int, revenue double);
-create table q7_volume_shipping_tmp(supp_nation string, cust_nation string, s_nationkey int, c_nationkey int);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1225000000;
-
--- the query
-insert overwrite table q7_volume_shipping_tmp
-select
- *
-from
- (
- select
- n1.n_name as supp_nation, n2.n_name as cust_nation, n1.n_nationkey as s_nationkey,
- n2.n_nationkey as c_nationkey
-from
- nation n1 join nation n2
- on
- n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY'
- UNION ALL
-select
- n1.n_name as supp_nation, n2.n_name as cust_nation, n1.n_nationkey as s_nationkey,
- n2.n_nationkey as c_nationkey
-from
- nation n1 join nation n2
- on
- n2.n_name = 'FRANCE' and n1.n_name = 'GERMANY'
-) a;
-
-insert overwrite table q7_volume_shipping
-select
- supp_nation, cust_nation, l_year, sum(volume) as revenue
-from
- (
- select
- supp_nation, cust_nation, year(l_shipdate) as l_year,
- l_extendedprice * (1 - l_discount) as volume
- from
- q7_volume_shipping_tmp t join
- (select l_shipdate, l_extendedprice, l_discount, c_nationkey, s_nationkey
- from supplier s join
- (select l_shipdate, l_extendedprice, l_discount, l_suppkey, c_nationkey
- from customer c join
- (select l_shipdate, l_extendedprice, l_discount, l_suppkey, o_custkey
- from orders o join lineitem l
- on
- o.o_orderkey = l.l_orderkey and l.l_shipdate >= '1995-01-01'
- and l.l_shipdate <= '1996-12-31'
- ) l1 on c.c_custkey = l1.o_custkey
- ) l2 on s.s_suppkey = l2.l_suppkey
- ) l3 on l3.c_nationkey = t.c_nationkey and l3.s_nationkey = t.s_nationkey
- ) shipping
-group by supp_nation, cust_nation, l_year
-order by supp_nation, cust_nation, l_year;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q8_national_market_share.hive b/hivesterix/src/test/resources/optimizerts/queries/q8_national_market_share.hive
deleted file mode 100644
index 5e7baaa..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q8_national_market_share.hive
+++ /dev/null
@@ -1,56 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS region;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q8_national_market_share;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/region';
-
--- create the result table
-create table q8_national_market_share(o_year string, mkt_share double);
-
--- the query
-insert overwrite table q8_national_market_share
-select
- o_year, sum(case when nation = 'BRAZIL' then volume else 0.0 end) / sum(volume) as mkt_share
-from
- (
-select
- year(o_orderdate) as o_year, l_extendedprice * (1-l_discount) as volume,
- n2.n_name as nation
- from
- nation n2 join
- (select o_orderdate, l_discount, l_extendedprice, s_nationkey
- from supplier s join
- (select o_orderdate, l_discount, l_extendedprice, l_suppkey
- from part p join
- (select o_orderdate, l_partkey, l_discount, l_extendedprice, l_suppkey
- from
- (select o_orderdate, o_orderkey
- from orders o join
- (select c.c_custkey
- from customer c join
- (select n1.n_nationkey
- from nation n1 join region r
- on n1.n_regionkey = r.r_regionkey and r.r_name = 'AMERICA'
- ) n11 on c.c_nationkey = n11.n_nationkey
- ) c1 on c1.c_custkey = o.o_custkey
- ) o1 join lineitem l on l.l_orderkey = o1.o_orderkey and o1.o_orderdate >= '1995-01-01'
- and o1.o_orderdate < '1996-12-31'
- ) l1 on p.p_partkey = l1.l_partkey and p.p_type = 'ECONOMY ANODIZED STEEL'
- ) p1 on s.s_suppkey = p1.l_suppkey
- ) s1 on s1.s_nationkey = n2.n_nationkey
- ) all_nation
-group by o_year
-order by o_year;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/q9_product_type_profit.hive b/hivesterix/src/test/resources/optimizerts/queries/q9_product_type_profit.hive
deleted file mode 100644
index 586779c..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/q9_product_type_profit.hive
+++ /dev/null
@@ -1,51 +0,0 @@
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q9_product_type_profit;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the result table
-create table q9_product_type_profit (nation string, o_year string, sum_profit double);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1024000000;
-
--- the query
-insert overwrite table q9_product_type_profit
-select
- nation, o_year, sum(amount) as sum_profit
-from
- (
-select
- n_name as nation, year(o_orderdate) as o_year,
- l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount
- from
- orders o join
- (select l_extendedprice, l_discount, l_quantity, l_orderkey, n_name, ps_supplycost
- from part p join
- (select l_extendedprice, l_discount, l_quantity, l_partkey, l_orderkey,
- n_name, ps_supplycost
- from partsupp ps join
- (select l_suppkey, l_extendedprice, l_discount, l_quantity, l_partkey,
- l_orderkey, n_name
- from
- (select s_suppkey, n_name
- from nation n join supplier s on n.n_nationkey = s.s_nationkey
- ) s1 join lineitem l on s1.s_suppkey = l.l_suppkey
- ) l1 on ps.ps_suppkey = l1.l_suppkey and ps.ps_partkey = l1.l_partkey
- ) l2 on p.p_name like '%green%' and p.p_partkey = l2.l_partkey
- ) l3 on o.o_orderkey = l3.l_orderkey
- )profit
-group by nation, o_year
-order by nation, o_year desc;
-
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u10_nestedloop_join.hive b/hivesterix/src/test/resources/optimizerts/queries/u10_nestedloop_join.hive
deleted file mode 100644
index ce94ac6..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u10_nestedloop_join.hive
+++ /dev/null
@@ -1,21 +0,0 @@
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS u10_nestedloop_join;
-
--- create tables and load data
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the target table
-create table u10_nestedloop_join(supp_nation string, cust_nation string, s_nationkey int, c_nationkey int);
-
--- the query
-insert overwrite table u10_nestedloop_join
-select
- *
-from
- (
- select
- n1.n_name as supp_nation, n2.n_name as cust_nation, n1.n_nationkey as s_nationkey,
- n2.n_nationkey as c_nationkey
-from
- nation n1 join nation n2 where n1.n_nationkey > n2.n_nationkey
-) a;
\ No newline at end of file
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u1_group_by.hive b/hivesterix/src/test/resources/optimizerts/queries/u1_group_by.hive
deleted file mode 100644
index 1d5c312..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u1_group_by.hive
+++ /dev/null
@@ -1,12 +0,0 @@
-drop table IF EXISTS lineitem;
-
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE,
-L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING,
-L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING,
-L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS
-TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
-select * from (select sum(abs(L_QUANTITY)), SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)*(1+L_TAX))
-FROM lineitem WHERE L_SHIPDATE<='1998-09-02' GROUP BY L_RETURNFLAG) T;
-
-drop table lineitem;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u2_select-project.hive b/hivesterix/src/test/resources/optimizerts/queries/u2_select-project.hive
deleted file mode 100644
index 1cf0c36..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u2_select-project.hive
+++ /dev/null
@@ -1,7 +0,0 @@
-drop table IF EXISTS supplier;
-drop table IF EXISTS result;
-
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create table result (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT);
-
-select (2*s_suppkey), s_address, s_nationkey, s_name FROM supplier where S_SUPPKEY*2 < 20;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u3_union.hive b/hivesterix/src/test/resources/optimizerts/queries/u3_union.hive
deleted file mode 100644
index 1c84ba8..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u3_union.hive
+++ /dev/null
@@ -1,7 +0,0 @@
-drop table IF EXISTS supplier;
-drop table IF EXISTS result;
-
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create table result (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT);
-
-select * from (select (2*s_suppkey), s_address, s_nationkey, s_name FROM supplier where S_SUPPKEY*2 < 20 union all select (2*s_suppkey), s_address, s_nationkey, s_name FROM supplier where S_SUPPKEY*2 > 50) t;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u4_join.hive b/hivesterix/src/test/resources/optimizerts/queries/u4_join.hive
deleted file mode 100644
index c013fa6..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u4_join.hive
+++ /dev/null
@@ -1,14 +0,0 @@
-drop table IF EXISTS supplier;
-drop table IF EXISTS result;
-
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING,
-S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED
-BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-
-create table result (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT);
-
-insert overwrite table result select s_suppkey, s_name, s_address, s_nationkey
-from supplier where S_SUPPKEY*2 < 20;
-
-select result.s_suppkey, supplier.s_phone, supplier.s_acctbal,
-supplier.s_comment from result join supplier on result.s_suppkey=supplier.s_suppkey;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u5_lateral_view.hive b/hivesterix/src/test/resources/optimizerts/queries/u5_lateral_view.hive
deleted file mode 100644
index 2740bca..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u5_lateral_view.hive
+++ /dev/null
@@ -1,7 +0,0 @@
-drop table IF EXISTS supplier;
-drop table IF EXISTS result;
-
-create table supplier (S_SUPPKEY array<int>, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING);
-create table result (S_SUPPKEY int);
-
-select s_name, s_address, col1 from supplier LATERAL VIEW explode(s_suppkey) suppadd as col1;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u6_limit.hive b/hivesterix/src/test/resources/optimizerts/queries/u6_limit.hive
deleted file mode 100644
index b268aff..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u6_limit.hive
+++ /dev/null
@@ -1,8 +0,0 @@
-drop table IF EXISTS orders;
-drop table IF EXISTS result;
-drop table IF EXISTS q_limit2;
-
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create table q_limit2(col1 int, col2 double, col3 string, col4 string);
-
-insert overwrite table q_limit2 select O_ORDERKEY, O_TOTALPRICE, O_ORDERDATE, O_CLERK from orders where O_TOTALPRICE<10000 order by o_totalprice limit 4;
\ No newline at end of file
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u7_multi_join.hive b/hivesterix/src/test/resources/optimizerts/queries/u7_multi_join.hive
deleted file mode 100644
index 2891c56..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u7_multi_join.hive
+++ /dev/null
@@ -1,9 +0,0 @@
-drop table IF EXISTS lineitem;
-drop table IF EXISTS orders;
-drop table IF EXISTS customer;
-
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-
-select l_linenumber, o_orderkey, o_totalprice, o_orderdate, o_shippriority from customer c join orders o on c.c_custkey = o.o_custkey join lineitem l on o.o_orderkey = l.l_orderkey where c.c_custkey<5 and o.o_totalprice<30000;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u8_non_mapred.hive b/hivesterix/src/test/resources/optimizerts/queries/u8_non_mapred.hive
deleted file mode 100644
index 247f2c1..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u8_non_mapred.hive
+++ /dev/null
@@ -1,7 +0,0 @@
-drop table IF EXISTS supplier;
-drop table IF EXISTS result;
-
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create table result (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT);
-
-select * FROM supplier;
diff --git a/hivesterix/src/test/resources/optimizerts/queries/u9_order_by.hive b/hivesterix/src/test/resources/optimizerts/queries/u9_order_by.hive
deleted file mode 100644
index 8d5d1cf..0000000
--- a/hivesterix/src/test/resources/optimizerts/queries/u9_order_by.hive
+++ /dev/null
@@ -1,7 +0,0 @@
-drop table IF EXISTS supplier;
-drop table IF EXISTS result;
-
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create table result (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT);
-
-insert overwrite table result select s_suppkey, s_name, s_address, s_nationkey FROM supplier where S_SUPPKEY*2 < 20 order by s_name;
diff --git a/hivesterix/src/test/resources/optimizerts/results/h11_share_scan.plan b/hivesterix/src/test/resources/optimizerts/results/h11_share_scan.plan
deleted file mode 100644
index 867bfaf..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/h11_share_scan.plan
+++ /dev/null
@@ -1,34 +0,0 @@
-write [%0->$$1, %0->$$2]
--- SINK_WRITE |PARTITIONED|
- select (function-call: algebricks:lt, Args:[%0->$$1, 5])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- SPLIT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2] <- default.src
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$1]
--- SINK_WRITE |PARTITIONED|
- project ([$$1])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:gt, Args:[%0->$$1, 10])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- SPLIT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2] <- default.src
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/h12_select_struct.plan b/hivesterix/src/test/resources/optimizerts/results/h12_select_struct.plan
deleted file mode 100644
index 8bbfb61..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/h12_select_struct.plan
+++ /dev/null
@@ -1,10 +0,0 @@
-write [%0->$$2]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2]<-[$$1, $$2] <- default.src
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q10_returned_item.plan b/hivesterix/src/test/resources/optimizerts/results/q10_returned_item.plan
deleted file mode 100644
index 05b3718..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q10_returned_item.plan
+++ /dev/null
@@ -1,102 +0,0 @@
-write [%0->$$38, %0->$$39, %0->$$45, %0->$$40, %0->$$42, %0->$$43, %0->$$41, %0->$$44]
--- SINK_WRITE |UNPARTITIONED|
- project ([$$38, $$39, $$45, $$40, $$42, $$43, $$41, $$44])
- -- STREAM_PROJECT |PARTITIONED|
- limit 20
- -- STREAM_LIMIT |UNPARTITIONED|
- limit 20
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$45(DESC) ] |PARTITIONED|
- limit 20
- -- STREAM_LIMIT |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (DESC, %0->$$45)
- -- STABLE_SORT [$$45(DESC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$38 := %0->$$48; $$39 := %0->$$49; $$40 := %0->$$50; $$41 := %0->$$51; $$42 := %0->$$52; $$43 := %0->$$53; $$44 := %0->$$54]) decor ([]) {
- aggregate [$$45] <- [function-call: hive:sum(FINAL), Args:[%0->$$47]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$48, $$49, $$50, $$51, $$52, $$53, $$54] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$48, $$49, $$50, $$51, $$52, $$53, $$54] |PARTITIONED|
- group by ([$$48 := %0->$$21; $$49 := %0->$$22; $$50 := %0->$$26; $$51 := %0->$$25; $$52 := %0->$$18; $$53 := %0->$$23; $$54 := %0->$$28]) decor ([]) {
- aggregate [$$47] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$6, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$7]]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$21, $$22, $$26, $$25, $$18, $$23, $$28] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$21, $$22, $$23, $$25, $$26, $$28, $$18, $$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$29])
- -- HYBRID_HASH_JOIN [$$1][$$29] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1, $$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$9, R])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$6, $$7, $$9]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$29] |PARTITIONED|
- project ([$$29, $$21, $$22, $$23, $$25, $$26, $$28, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$17, %0->$$24])
- -- HYBRID_HASH_JOIN [$$17][$$24] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$17] |PARTITIONED|
- data-scan [$$17, $$18]<-[$$17, $$18, $$19, $$20] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$24] |PARTITIONED|
- project ([$$24, $$21, $$22, $$23, $$25, $$26, $$28, $$29])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$30, %0->$$21])
- -- HYBRID_HASH_JOIN [$$30][$$21] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$30] |PARTITIONED|
- project ([$$30, $$29])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$33, 1994-01-01], function-call: algebricks:ge, Args:[%0->$$33, 1993-10-01], function-call: algebricks:lt, Args:[%0->$$33, 1994-01-01]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$33, $$29, $$30]<-[$$29, $$30, $$31, $$32, $$33, $$34, $$35, $$36, $$37] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
- data-scan [$$21, $$22, $$23, $$24, $$25, $$26, $$28]<-[$$21, $$22, $$23, $$24, $$25, $$26, $$27, $$28] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q11_important_stock.plan b/hivesterix/src/test/resources/optimizerts/results/q11_important_stock.plan
deleted file mode 100644
index 70ad7ee..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q11_important_stock.plan
+++ /dev/null
@@ -1,126 +0,0 @@
-write [%0->$$17, %0->$$18]
--- SINK_WRITE |PARTITIONED|
- project ([$$17, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$17 := %0->$$21]) decor ([]) {
- aggregate [$$18] <- [function-call: hive:sum(FINAL), Args:[%0->$$20]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$21] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
- group by ([$$21 := %0->$$1]) decor ([]) {
- aggregate [$$20] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$4, %0->$$3]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$1] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$1, $$3, $$4])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$2, %0->$$6])
- -- HYBRID_HASH_JOIN [$$2][$$6] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- data-scan [$$2, $$1, $$3, $$4]<-[$$1, $$2, $$3, $$4, $$5] <- default.partsupp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$6] |PARTITIONED|
- project ([$$6])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$9, %0->$$13])
- -- HYBRID_HASH_JOIN [$$9][$$13] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$9] |PARTITIONED|
- data-scan [$$9, $$6]<-[$$6, $$7, $$8, $$9, $$10, $$11, $$12] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$13] |PARTITIONED|
- project ([$$13])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$14, GERMANY])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$13, $$14]<-[$$13, $$14, $$15, $$16] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$3]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$3] <- [function-call: hive:sum(FINAL), Args:[%0->$$5]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [] |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$5] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$2]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2]<-[$$1, $$2] <- default.q11_part_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$2, %0->$$3]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$3(DESC) ] |PARTITIONED|
- order (DESC, %0->$$3)
- -- STABLE_SORT [$$3(DESC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$2, $$3])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:gt, Args:[%0->$$3, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$1, 1.0E-4]], true])
- -- NESTED_LOOP |PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1] <- default.q11_sum_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2, $$3]<-[$$2, $$3] <- default.q11_part_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q12_shipping.plan b/hivesterix/src/test/resources/optimizerts/results/q12_shipping.plan
deleted file mode 100644
index 5c240e2..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q12_shipping.plan
+++ /dev/null
@@ -1,58 +0,0 @@
-write [%0->$$26, %0->$$29, %0->$$30]
--- SINK_WRITE |PARTITIONED|
- project ([$$26, $$29, $$30])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$29, $$30] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToDouble, Args:[%0->$$27], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToDouble, Args:[%0->$$28]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$26(ASC) ] |PARTITIONED|
- order (ASC, %0->$$26)
- -- STABLE_SORT [$$26(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$26 := %0->$$34]) decor ([]) {
- aggregate [$$27, $$28] <- [function-call: hive:sum(FINAL), Args:[%0->$$32], function-call: hive:sum(FINAL), Args:[%0->$$33]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$34] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$34] |PARTITIONED|
- group by ([$$34 := %0->$$24]) decor ([]) {
- aggregate [$$32, $$33] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.generic.GenericUDFWhen, Args:[function-call: algebricks:or, Args:[function-call: algebricks:eq, Args:[%0->$$6, 1-URGENT], function-call: algebricks:eq, Args:[%0->$$6, 2-HIGH]], 1, 0]], function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.generic.GenericUDFWhen, Args:[function-call: algebricks:and, Args:[function-call: algebricks:neq, Args:[%0->$$6, 1-URGENT], function-call: algebricks:neq, Args:[%0->$$6, 2-HIGH]], 1, 0]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$24] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$6, $$24])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$10, %0->$$1])
- -- HYBRID_HASH_JOIN [$$10][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$10] |PARTITIONED|
- project ([$$10, $$24])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$22, 1995-01-01], function-call: algebricks:ge, Args:[%0->$$22, 1994-01-01], function-call: algebricks:lt, Args:[%0->$$20, %0->$$21], function-call: algebricks:lt, Args:[%0->$$21, %0->$$22], function-call: algebricks:lt, Args:[%0->$$20, %0->$$21], function-call: algebricks:ge, Args:[%0->$$22, 1994-01-01], function-call: algebricks:lt, Args:[%0->$$22, 1995-01-01], function-call: algebricks:or, Args:[function-call: algebricks:eq, Args:[%0->$$24, MAIL], function-call: algebricks:eq, Args:[%0->$$24, SHIP]], function-call: algebricks:or, Args:[function-call: algebricks:eq, Args:[%0->$$24, MAIL], function-call: algebricks:eq, Args:[%0->$$24, SHIP]]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$21, $$20, $$22, $$24, $$10]<-[$$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1, $$6]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q13_customer_distribution.plan b/hivesterix/src/test/resources/optimizerts/results/q13_customer_distribution.plan
deleted file mode 100644
index 19bcd24..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q13_customer_distribution.plan
+++ /dev/null
@@ -1,80 +0,0 @@
-write [%0->$$22, %0->$$23]
--- SINK_WRITE |PARTITIONED|
- project ([$$22, $$23])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$22, $$23] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$20], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$21]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$21(DESC), $$20(DESC) ] |PARTITIONED|
- order (DESC, %0->$$21) (DESC, %0->$$20)
- -- STABLE_SORT [$$21(DESC), $$20(DESC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$20 := %0->$$28]) decor ([]) {
- aggregate [$$21] <- [function-call: hive:count(FINAL), Args:[%0->$$27]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$28] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$28] |PARTITIONED|
- group by ([$$28 := %0->$$19]) decor ([]) {
- aggregate [$$27] <- [function-call: hive:count(PARTIAL1), Args:[1]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$19] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$19])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$18 := %0->$$26]) decor ([]) {
- aggregate [$$19] <- [function-call: hive:count(FINAL), Args:[%0->$$25]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$26] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$26] |PARTITIONED|
- group by ([$$26 := %0->$$10]) decor ([]) {
- aggregate [$$25] <- [function-call: hive:count(PARTIAL1), Args:[%0->$$1]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$10] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$10, $$1])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- left outer join (function-call: algebricks:eq, Args:[%0->$$2, %0->$$10])
- -- HYBRID_HASH_JOIN [$$10][$$2] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$10] |PARTITIONED|
- data-scan [$$10]<-[$$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- project ([$$2, $$1])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:not, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$9, %special%requests%]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$2, $$9]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q14_promotion_effect.plan b/hivesterix/src/test/resources/optimizerts/results/q14_promotion_effect.plan
deleted file mode 100644
index 21b90bd..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q14_promotion_effect.plan
+++ /dev/null
@@ -1,54 +0,0 @@
-write [%0->$$28]
--- SINK_WRITE |PARTITIONED|
- project ([$$28])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$28] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPDivide, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[100.0, %0->$$26], %0->$$27]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$26, $$27] <- [function-call: hive:sum(FINAL), Args:[%0->$$30], function-call: hive:sum(FINAL), Args:[%0->$$31]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [] |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$30, $$31] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.generic.GenericUDFWhen, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$5, PROMO%], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$15, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$16]], 0.0]], function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$15, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$16]]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$5, $$15, $$16])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$11, %0->$$1])
- -- HYBRID_HASH_JOIN [$$11][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$11] |PARTITIONED|
- project ([$$11, $$15, $$16])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$20, 1995-10-01], function-call: algebricks:ge, Args:[%0->$$20, 1995-09-01], function-call: algebricks:lt, Args:[%0->$$20, 1995-10-01]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$16, $$20, $$11, $$15]<-[$$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1, $$5]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q15_top_supplier.plan b/hivesterix/src/test/resources/optimizerts/results/q15_top_supplier.plan
deleted file mode 100644
index a5bd27a..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q15_top_supplier.plan
+++ /dev/null
@@ -1,110 +0,0 @@
-write [%0->$$17, %0->$$18]
--- SINK_WRITE |PARTITIONED|
- project ([$$17, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$17 := %0->$$21]) decor ([]) {
- aggregate [$$18] <- [function-call: hive:sum(FINAL), Args:[%0->$$20]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$21] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
- group by ([$$21 := %0->$$3]) decor ([]) {
- aggregate [$$20] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$6, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$7]]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$3] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$3, $$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:ge, Args:[%0->$$11, 1996-01-01], function-call: algebricks:lt, Args:[%0->$$11, 1996-04-01], function-call: algebricks:ge, Args:[%0->$$11, 1996-01-01], function-call: algebricks:lt, Args:[%0->$$11, 1996-04-01]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$3, $$6, $$7, $$11]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$3]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$3] <- [function-call: hive:max(FINAL), Args:[%0->$$5]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [] |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$5] <- [function-call: hive:max(PARTIAL1), Args:[%0->$$2]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2]<-[$$1, $$2] <- default.revenue
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$2, %0->$$3, %0->$$4, %0->$$6, %0->$$10]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$2(ASC) ] |PARTITIONED|
- order (ASC, %0->$$2)
- -- STABLE_SORT [$$2(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$2, $$3, $$4, $$6, $$10])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$10])
- -- HYBRID_HASH_JOIN [$$1][$$10] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan []<-[$$1] <- default.max_revenue
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$10] |PARTITIONED|
- project ([$$10, $$2, $$3, $$4, $$6])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$9, %0->$$2])
- -- HYBRID_HASH_JOIN [$$9][$$2] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$9] |PARTITIONED|
- data-scan []<-[$$9, $$10] <- default.revenue
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- data-scan [$$2, $$3, $$4, $$6]<-[$$2, $$3, $$4, $$5, $$6, $$7, $$8] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q16_parts_supplier_relationship.plan b/hivesterix/src/test/resources/optimizerts/results/q16_parts_supplier_relationship.plan
deleted file mode 100644
index 9835346..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q16_parts_supplier_relationship.plan
+++ /dev/null
@@ -1,98 +0,0 @@
-write [%0->$$1]
--- SINK_WRITE |PARTITIONED|
- project ([$$1])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:not, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$7, %Customer%Complaints%]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$7]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$5, %0->$$6, %0->$$7, %0->$$12]
--- SINK_WRITE |PARTITIONED|
- project ([$$5, $$6, $$7, $$12])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$12])
- -- HYBRID_HASH_JOIN [$$1][$$12] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan []<-[$$1] <- default.supplier_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$12] |PARTITIONED|
- project ([$$12, $$5, $$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$2, %0->$$11])
- -- HYBRID_HASH_JOIN [$$2][$$11] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:not, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$6, MEDIUM POLISHED%]], function-call: algebricks:neq, Args:[%0->$$5, Brand#45], function-call: algebricks:not, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$6, MEDIUM POLISHED%]]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2, $$5, $$6, $$7]<-[$$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$11] |PARTITIONED|
- data-scan [$$11, $$12]<-[$$11, $$12, $$13, $$14, $$15] <- default.partsupp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$10, %0->$$11, %0->$$12, %0->$$14]
--- SINK_WRITE |PARTITIONED|
- project ([$$10, $$11, $$12, $$14])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$14] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$13]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$13(DESC), $$10(ASC), $$11(ASC), $$12(ASC) ] |PARTITIONED|
- order (DESC, %0->$$13) (ASC, %0->$$10) (ASC, %0->$$11) (ASC, %0->$$12)
- -- STABLE_SORT [$$13(DESC), $$10(ASC), $$11(ASC), $$12(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$10 := %0->$$5; $$11 := %0->$$6; $$12 := %0->$$7]) decor ([]) {
- aggregate [$$13] <- [function-call: hive:count(COMPLETE), Args:[%0->$$8]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$5, $$6, $$7] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$5, $$6, $$7] |PARTITIONED|
- group by ([$$5 := %0->$$1; $$6 := %0->$$2; $$7 := %0->$$3; $$8 := %0->$$4]) decor ([]) {
- aggregate [] <- []
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$1, $$2, $$3, $$4] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:eq, Args:[%0->$$3, 49], function-call: algebricks:eq, Args:[%0->$$3, 14]], function-call: algebricks:eq, Args:[%0->$$3, 23]], function-call: algebricks:eq, Args:[%0->$$3, 45]], function-call: algebricks:eq, Args:[%0->$$3, 19]], function-call: algebricks:eq, Args:[%0->$$3, 3]], function-call: algebricks:eq, Args:[%0->$$3, 36]], function-call: algebricks:eq, Args:[%0->$$3, 9]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2, $$3, $$4] <- default.q16_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q17_small_quantity_order_revenue.plan b/hivesterix/src/test/resources/optimizerts/results/q17_small_quantity_order_revenue.plan
deleted file mode 100644
index a827007..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q17_small_quantity_order_revenue.plan
+++ /dev/null
@@ -1,104 +0,0 @@
-write [%0->$$17, %0->$$19]
--- SINK_WRITE |PARTITIONED|
- project ([$$17, $$19])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$19] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[0.2, %0->$$18]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$17 := %0->$$22]) decor ([]) {
- aggregate [$$18] <- [function-call: hive:avg(FINAL), Args:[%0->$$21]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$22] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
- group by ([$$22 := %0->$$2]) decor ([]) {
- aggregate [$$21] <- [function-call: hive:avg(PARTIAL1), Args:[%0->$$5]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$2] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2, $$5]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$29]
--- SINK_WRITE |PARTITIONED|
- project ([$$29])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$29] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPDivide, Args:[%0->$$28, 7.0]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$28] <- [function-call: hive:sum(FINAL), Args:[%0->$$31]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [] |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$31] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$17]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$17])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:lt, Args:[%0->$$16, %0->$$2])
- -- STREAM_SELECT |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$13, %0->$$1])
- -- HYBRID_HASH_JOIN [$$13][$$1] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$13, $$16, $$17])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$13, %0->$$3])
- -- HYBRID_HASH_JOIN [$$13][$$3] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$13] |PARTITIONED|
- data-scan [$$13, $$16, $$17]<-[$$12, $$13, $$14, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26, $$27] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$3] |PARTITIONED|
- project ([$$3])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$9, MED BOX], function-call: algebricks:eq, Args:[%0->$$6, Brand#23], function-call: algebricks:eq, Args:[%0->$$9, MED BOX]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$3, $$6, $$9]<-[$$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1, $$2]<-[$$1, $$2] <- default.lineitem_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q18_large_volume_customer.plan b/hivesterix/src/test/resources/optimizerts/results/q18_large_volume_customer.plan
deleted file mode 100644
index ea47ea0..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q18_large_volume_customer.plan
+++ /dev/null
@@ -1,126 +0,0 @@
-write [%0->$$17, %0->$$18]
--- SINK_WRITE |PARTITIONED|
- project ([$$17, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$17 := %0->$$21]) decor ([]) {
- aggregate [$$18] <- [function-call: hive:sum(FINAL), Args:[%0->$$20]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$21] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
- group by ([$$21 := %0->$$1]) decor ([]) {
- aggregate [$$20] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$5]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$1] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$5]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$36, %0->$$37, %0->$$38, %0->$$39, %0->$$40, %0->$$41]
--- SINK_WRITE |UNPARTITIONED|
- project ([$$36, $$37, $$38, $$39, $$40, $$41])
- -- STREAM_PROJECT |PARTITIONED|
- limit 100
- -- STREAM_LIMIT |UNPARTITIONED|
- limit 100
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$40(DESC), $$39(ASC) ] |PARTITIONED|
- limit 100
- -- STREAM_LIMIT |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (DESC, %0->$$40) (ASC, %0->$$39)
- -- STABLE_SORT [$$40(DESC), $$39(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$36 := %0->$$44; $$37 := %0->$$45; $$38 := %0->$$46; $$39 := %0->$$47; $$40 := %0->$$48]) decor ([]) {
- aggregate [$$41] <- [function-call: hive:sum(FINAL), Args:[%0->$$43]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$44, $$45, $$46, $$47, $$48] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$44, $$45, $$46, $$47, $$48] |PARTITIONED|
- group by ([$$44 := %0->$$20; $$45 := %0->$$19; $$46 := %0->$$27; $$47 := %0->$$31; $$48 := %0->$$30]) decor ([]) {
- aggregate [$$43] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$7]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$20, $$19, $$27, $$31, $$30] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$19, $$20, $$27, $$30, $$31, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$27, %0->$$1])
- -- HYBRID_HASH_JOIN [$$1][$$27] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$3, %0->$$1])
- -- HYBRID_HASH_JOIN [$$3][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$3] |PARTITIONED|
- data-scan [$$3, $$7]<-[$$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17, $$18] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:gt, Args:[%0->$$2, 300])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2] <- default.q18_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$27] |PARTITIONED|
- project ([$$27, $$19, $$20, $$30, $$31])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$28, %0->$$19])
- -- HYBRID_HASH_JOIN [$$28][$$19] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$28] |PARTITIONED|
- data-scan [$$28, $$27, $$30, $$31]<-[$$27, $$28, $$29, $$30, $$31, $$32, $$33, $$34, $$35] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$19] |PARTITIONED|
- data-scan [$$19, $$20]<-[$$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q19_discounted_revenue.plan b/hivesterix/src/test/resources/optimizerts/results/q19_discounted_revenue.plan
deleted file mode 100644
index 1827729..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q19_discounted_revenue.plan
+++ /dev/null
@@ -1,46 +0,0 @@
-write [%0->$$26]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$26] <- [function-call: hive:sum(FINAL), Args:[%0->$$28]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [] |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$28] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$15, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$16]]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$15, $$16])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$4, Brand#12], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFRegExp, Args:[%0->$$7, SM CASE||SM BOX||SM PACK||SM PKG]], function-call: algebricks:ge, Args:[%0->$$14, 1]], function-call: algebricks:le, Args:[%0->$$14, 11]], function-call: algebricks:ge, Args:[%0->$$6, 1]], function-call: algebricks:le, Args:[%0->$$6, 5]], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFRegExp, Args:[%0->$$24, AIR||AIR REG]], function-call: algebricks:eq, Args:[%0->$$23, DELIVER IN PERSON]], function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$4, Brand#23], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFRegExp, Args:[%0->$$7, MED BAG||MED BOX||MED PKG||MED PACK]], function-call: algebricks:ge, Args:[%0->$$14, 10]], function-call: algebricks:le, Args:[%0->$$14, 20]], function-call: algebricks:ge, Args:[%0->$$6, 1]], function-call: algebricks:le, Args:[%0->$$6, 10]], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFRegExp, Args:[%0->$$24, AIR||AIR REG]], function-call: algebricks:eq, Args:[%0->$$23, DELIVER IN PERSON]]], function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$4, Brand#34], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFRegExp, Args:[%0->$$7, LG CASE||LG BOX||LG PACK||LG PKG]], function-call: algebricks:ge, Args:[%0->$$14, 20]], function-call: algebricks:le, Args:[%0->$$14, 30]], function-call: algebricks:ge, Args:[%0->$$6, 1]], function-call: algebricks:le, Args:[%0->$$6, 15]], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFRegExp, Args:[%0->$$24, AIR||AIR REG]], function-call: algebricks:eq, Args:[%0->$$23, DELIVER IN PERSON]]])
- -- STREAM_SELECT |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$11, %0->$$1])
- -- HYBRID_HASH_JOIN [$$11][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$11] |PARTITIONED|
- data-scan [$$11, $$14, $$15, $$16, $$23, $$24]<-[$$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1, $$4, $$6, $$7]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q1_pricing_summary_report.plan b/hivesterix/src/test/resources/optimizerts/results/q1_pricing_summary_report.plan
deleted file mode 100644
index 0e9c90f..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q1_pricing_summary_report.plan
+++ /dev/null
@@ -1,42 +0,0 @@
-write [%0->$$17, %0->$$18, %0->$$19, %0->$$20, %0->$$21, %0->$$22, %0->$$23, %0->$$24, %0->$$25, %0->$$27]
--- SINK_WRITE |PARTITIONED|
- project ([$$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25, $$27])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$27] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$26]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$17(ASC), $$18(ASC) ] |PARTITIONED|
- order (ASC, %0->$$17) (ASC, %0->$$18)
- -- STABLE_SORT [$$17(ASC), $$18(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$17 := %0->$$37; $$18 := %0->$$38]) decor ([]) {
- aggregate [$$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26] <- [function-call: hive:sum(FINAL), Args:[%0->$$29], function-call: hive:sum(FINAL), Args:[%0->$$30], function-call: hive:sum(FINAL), Args:[%0->$$31], function-call: hive:sum(FINAL), Args:[%0->$$32], function-call: hive:avg(FINAL), Args:[%0->$$33], function-call: hive:avg(FINAL), Args:[%0->$$34], function-call: hive:avg(FINAL), Args:[%0->$$35], function-call: hive:count(FINAL), Args:[%0->$$36]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$37, $$38] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$37, $$38] |PARTITIONED|
- group by ([$$37 := %0->$$9; $$38 := %0->$$10]) decor ([]) {
- aggregate [$$29, $$30, $$31, $$32, $$33, $$34, $$35, $$36] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$5], function-call: hive:sum(PARTIAL1), Args:[%0->$$6], function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$6, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$7]]], function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$6, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$7]], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPPlus, Args:[1, %0->$$8]]], function-call: hive:avg(PARTIAL1), Args:[%0->$$5], function-call: hive:avg(PARTIAL1), Args:[%0->$$6], function-call: hive:avg(PARTIAL1), Args:[%0->$$7], function-call: hive:count(PARTIAL1), Args:[1]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$9, $$10] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$9, $$10, $$5, $$6, $$7, $$8])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:le, Args:[%0->$$11, 1998-09-02])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$5, $$6, $$7, $$8, $$9, $$10, $$11]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q20_potential_part_promotion.plan b/hivesterix/src/test/resources/optimizerts/results/q20_potential_part_promotion.plan
deleted file mode 100644
index eddfca5..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q20_potential_part_promotion.plan
+++ /dev/null
@@ -1,178 +0,0 @@
-write [%0->$$1]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([%0->$$1])
- -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$1)
- -- STABLE_SORT [$$1(ASC)] |LOCAL|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$2, forest%])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$2]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$17, %0->$$18, %0->$$20]
--- SINK_WRITE |PARTITIONED|
- project ([$$17, $$18, $$20])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$20] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[0.5, %0->$$19]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$17 := %0->$$23; $$18 := %0->$$24]) decor ([]) {
- aggregate [$$19] <- [function-call: hive:sum(FINAL), Args:[%0->$$22]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$23, $$24] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$23, $$24] |PARTITIONED|
- group by ([$$23 := %0->$$2; $$24 := %0->$$3]) decor ([]) {
- aggregate [$$22] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$5]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$2, $$3] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$2, $$3, $$5])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:ge, Args:[%0->$$11, 1994-01-01], function-call: algebricks:lt, Args:[%0->$$11, 1995-01-01], function-call: algebricks:ge, Args:[%0->$$11, 1994-01-01], function-call: algebricks:lt, Args:[%0->$$11, 1995-01-01]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2, $$3, $$5, $$11]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$6, %0->$$7, %0->$$3]
--- SINK_WRITE |PARTITIONED|
- project ([$$6, $$7, $$3])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$1, %0->$$5], function-call: algebricks:eq, Args:[%0->$$2, %0->$$6]])
- -- HYBRID_HASH_JOIN [$$1, $$2][$$5, $$6] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1, $$2] |PARTITIONED|
- data-scan []<-[$$1, $$2, $$3] <- default.q20_tmp2
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$5, $$6] |PARTITIONED|
- project ([$$5, $$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$4, %0->$$5])
- -- HYBRID_HASH_JOIN [$$4][$$5] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$4] |PARTITIONED|
- data-scan []<-[$$4] <- default.q20_tmp1
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$5] |PARTITIONED|
- data-scan [$$5, $$6, $$7]<-[$$5, $$6, $$7, $$8, $$9] <- default.partsupp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$1]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([%0->$$1])
- -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$1)
- -- STABLE_SORT [$$1(ASC)] |LOCAL|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:gt, Args:[%0->$$2, %0->$$3])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2, $$3] <- default.q20_tmp3
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$3, %0->$$4]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$3(ASC) ] |PARTITIONED|
- order (ASC, %0->$$3)
- -- STABLE_SORT [$$3(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$3, $$4])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$2])
- -- HYBRID_HASH_JOIN [$$1][$$2] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan []<-[$$1] <- default.q20_tmp4
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- project ([$$2, $$3, $$4])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$9, %0->$$5])
- -- HYBRID_HASH_JOIN [$$9][$$5] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$9] |PARTITIONED|
- project ([$$9])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$10, CANADA])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$9, $$10]<-[$$9, $$10, $$11, $$12] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$5] |PARTITIONED|
- data-scan [$$5, $$2, $$3, $$4]<-[$$2, $$3, $$4, $$5, $$6, $$7, $$8] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q21_suppliers_who_kept_orders_waiting.plan b/hivesterix/src/test/resources/optimizerts/results/q21_suppliers_who_kept_orders_waiting.plan
deleted file mode 100644
index cc47cf3..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q21_suppliers_who_kept_orders_waiting.plan
+++ /dev/null
@@ -1,224 +0,0 @@
-write [%0->$$21, %0->$$24, %0->$$23]
--- SINK_WRITE |PARTITIONED|
- project ([$$21, $$24, $$23])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$24] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$22]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$21 := %0->$$17]) decor ([]) {
- aggregate [$$22, $$23] <- [function-call: hive:count(COMPLETE), Args:[%0->$$18], function-call: hive:max(FINAL), Args:[%0->$$20]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[$$17] |PARTITIONED|
- exchange
- -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$17(ASC)] HASH:[$$17] |PARTITIONED|
- group by ([$$17 := %0->$$1; $$18 := %0->$$3]) decor ([]) {
- aggregate [$$20] <- [function-call: hive:max(PARTIAL1), Args:[%0->$$3]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[$$1, $$3] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$1) (ASC, %0->$$3)
- -- STABLE_SORT [$$1(ASC), $$3(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$3]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$21, %0->$$24, %0->$$23]
--- SINK_WRITE |PARTITIONED|
- project ([$$21, $$24, $$23])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$24] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$22]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$21 := %0->$$17]) decor ([]) {
- aggregate [$$22, $$23] <- [function-call: hive:count(COMPLETE), Args:[%0->$$18], function-call: hive:max(FINAL), Args:[%0->$$20]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[$$17] |PARTITIONED|
- exchange
- -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$17(ASC)] HASH:[$$17] |PARTITIONED|
- group by ([$$17 := %0->$$1; $$18 := %0->$$3]) decor ([]) {
- aggregate [$$20] <- [function-call: hive:max(PARTIAL1), Args:[%0->$$3]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[$$1, $$3] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$1) (ASC, %0->$$3)
- -- STABLE_SORT [$$1(ASC), $$3(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$1, $$3])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:gt, Args:[%0->$$13, %0->$$12])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$3, $$12, $$13]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$43, %0->$$45]
--- SINK_WRITE |UNPARTITIONED|
- project ([$$43, $$45])
- -- STREAM_PROJECT |UNPARTITIONED|
- assign [$$45] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$44]]
- -- ASSIGN |UNPARTITIONED|
- limit 100
- -- STREAM_LIMIT |UNPARTITIONED|
- limit 100
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$44(DESC), $$43(ASC) ] |PARTITIONED|
- limit 100
- -- STREAM_LIMIT |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (DESC, %0->$$44) (ASC, %0->$$43)
- -- STABLE_SORT [$$44(DESC), $$43(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$43 := %0->$$48]) decor ([]) {
- aggregate [$$44] <- [function-call: hive:count(FINAL), Args:[%0->$$47]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$48] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$48] |PARTITIONED|
- group by ([$$48 := %0->$$37]) decor ([]) {
- aggregate [$$47] <- [function-call: hive:count(PARTIAL1), Args:[1]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$37] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$37])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:or, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPNull, Args:[%0->$$2], function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$2, 1], function-call: algebricks:eq, Args:[%0->$$18, %0->$$3]]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- left outer join (function-call: algebricks:eq, Args:[%0->$$4, %0->$$1])
- -- HYBRID_HASH_JOIN [$$4][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$4] |PARTITIONED|
- project ([$$37, $$4, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:or, Args:[function-call: algebricks:gt, Args:[%0->$$5, 1], function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$5, 1], function-call: algebricks:neq, Args:[%0->$$18, %0->$$6]]])
- -- STREAM_SELECT |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$16, %0->$$4])
- -- HYBRID_HASH_JOIN [$$16][$$4] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$37, $$16, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$16, %0->$$7])
- -- HYBRID_HASH_JOIN [$$16][$$7] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$16] |PARTITIONED|
- project ([$$37, $$16, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$18, %0->$$36])
- -- HYBRID_HASH_JOIN [$$18][$$36] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$18] |PARTITIONED|
- project ([$$16, $$18])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:gt, Args:[%0->$$28, %0->$$27], function-call: algebricks:gt, Args:[%0->$$28, %0->$$27]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$16, $$18, $$27, $$28]<-[$$16, $$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26, $$27, $$28, $$29, $$30, $$31] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
- project ([$$36, $$37])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$39, %0->$$32])
- -- HYBRID_HASH_JOIN [$$39][$$32] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$39] |PARTITIONED|
- data-scan [$$39, $$36, $$37]<-[$$36, $$37, $$38, $$39, $$40, $$41, $$42] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$32] |PARTITIONED|
- project ([$$32])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$33, SAUDI ARABIA])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$32, $$33]<-[$$32, $$33, $$34, $$35] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$7] |PARTITIONED|
- project ([$$7])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$9, F])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$7, $$9]<-[$$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$4] |PARTITIONED|
- data-scan [$$4, $$5, $$6]<-[$$4, $$5, $$6] <- default.q21_tmp1
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1, $$2, $$3]<-[$$1, $$2, $$3] <- default.q21_tmp2
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q22_global_sales_opportunity.plan b/hivesterix/src/test/resources/optimizerts/results/q22_global_sales_opportunity.plan
deleted file mode 100644
index 591576b..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q22_global_sales_opportunity.plan
+++ /dev/null
@@ -1,136 +0,0 @@
-write [%0->$$6, %0->$$1, %0->$$9]
--- SINK_WRITE |PARTITIONED|
- project ([$$6, $$1, $$9])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$9] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2]]
- -- ASSIGN |PARTITIONED|
- select (function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:or, Args:[function-call: algebricks:eq, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2], 13], function-call: algebricks:eq, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2], 31]], function-call: algebricks:eq, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2], 23]], function-call: algebricks:eq, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2], 29]], function-call: algebricks:eq, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2], 30]], function-call: algebricks:eq, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2], 18]], function-call: algebricks:eq, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFSubstr, Args:[%0->$$5, 1, 2], 17]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$4]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$4] <- [function-call: hive:avg(FINAL), Args:[%0->$$6]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [] |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$6] <- [function-call: hive:avg(PARTIAL1), Args:[%0->$$1]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (function-call: algebricks:gt, Args:[%0->$$1, 0.0])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1]<-[$$1, $$2, $$3] <- default.q22_customer_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$2]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([%0->$$2])
- -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$2)
- -- STABLE_SORT [$$2(ASC)] |LOCAL|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- data-scan [$$2]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$6, %0->$$9, %0->$$8]
--- SINK_WRITE |PARTITIONED|
- project ([$$6, $$9, $$8])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$9] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$7]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$6(ASC) ] |PARTITIONED|
- order (ASC, %0->$$6)
- -- STABLE_SORT [$$6(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$6 := %0->$$13]) decor ([]) {
- aggregate [$$7, $$8] <- [function-call: hive:count(FINAL), Args:[%0->$$11], function-call: hive:sum(FINAL), Args:[%0->$$12]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$13] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$13] |PARTITIONED|
- group by ([$$13 := %0->$$5]) decor ([]) {
- aggregate [$$11, $$12] <- [function-call: hive:count(PARTIAL1), Args:[1], function-call: hive:sum(PARTIAL1), Args:[%0->$$3]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$5] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$5, $$3])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:gt, Args:[%0->$$3, %0->$$1], true])
- -- NESTED_LOOP |PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$5, $$3])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: hive:org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPNull, Args:[%0->$$2])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- left outer join (function-call: algebricks:eq, Args:[%0->$$4, %0->$$2])
- -- HYBRID_HASH_JOIN [$$4][$$2] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$4] |PARTITIONED|
- data-scan []<-[$$3, $$4, $$5] <- default.q22_customer_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- data-scan [$$2]<-[$$2] <- default.q22_orders_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1]<-[$$1] <- default.q22_customer_tmp1
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q2_minimum_cost_supplier.plan b/hivesterix/src/test/resources/optimizerts/results/q2_minimum_cost_supplier.plan
deleted file mode 100644
index 151f34d..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q2_minimum_cost_supplier.plan
+++ /dev/null
@@ -1,156 +0,0 @@
-write [%0->$$20, %0->$$16, %0->$$26, %0->$$1, %0->$$13, %0->$$3, %0->$$17, %0->$$19, %0->$$21]
--- SINK_WRITE |PARTITIONED|
- project ([$$20, $$16, $$26, $$1, $$13, $$3, $$17, $$19, $$21])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$10])
- -- HYBRID_HASH_JOIN [$$1][$$10] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1, $$3])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$5, %BRASS], function-call: algebricks:eq, Args:[%0->$$6, 15], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$5, %BRASS]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$3, $$5, $$6]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$10] |PARTITIONED|
- project ([$$10, $$16, $$17, $$19, $$20, $$21, $$26, $$13])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$11, %0->$$15])
- -- HYBRID_HASH_JOIN [$$11][$$15] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$11] |PARTITIONED|
- data-scan [$$11, $$10, $$13]<-[$$10, $$11, $$12, $$13, $$14] <- default.partsupp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$15] |PARTITIONED|
- project ([$$15, $$16, $$17, $$19, $$20, $$21, $$26])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$18, %0->$$25])
- -- HYBRID_HASH_JOIN [$$18][$$25] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$18] |PARTITIONED|
- data-scan []<-[$$15, $$16, $$17, $$18, $$19, $$20, $$21] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$25] |PARTITIONED|
- project ([$$25, $$26])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$22, %0->$$27])
- -- HYBRID_HASH_JOIN [$$22][$$27] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
- project ([$$22])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$23, EUROPE])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$23, $$22]<-[$$22, $$23, $$24] <- default.region
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$27] |PARTITIONED|
- data-scan [$$27, $$25, $$26]<-[$$25, $$26, $$27, $$28] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$10, %0->$$11]
--- SINK_WRITE |PARTITIONED|
- project ([$$10, $$11])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$10 := %0->$$14]) decor ([]) {
- aggregate [$$11] <- [function-call: hive:min(FINAL), Args:[%0->$$13]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[$$14] |PARTITIONED|
- exchange
- -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$14(ASC)] HASH:[$$14] |PARTITIONED|
- group by ([$$14 := %0->$$4]) decor ([]) {
- aggregate [$$13] <- [function-call: hive:min(PARTIAL1), Args:[%0->$$5]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- PRE_CLUSTERED_GROUP_BY[$$4] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$4)
- -- STABLE_SORT [$$4(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$4, $$5]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.q2_minimum_cost_supplier_tmp1
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$3, %0->$$4, %0->$$5, %0->$$6, %0->$$8, %0->$$9, %0->$$10, %0->$$11]
--- SINK_WRITE |UNPARTITIONED|
- limit 100
- -- STREAM_LIMIT |UNPARTITIONED|
- limit 100
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$3(DESC), $$5(ASC), $$4(ASC), $$6(ASC) ] |PARTITIONED|
- limit 100
- -- STREAM_LIMIT |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (DESC, %0->$$3) (ASC, %0->$$5) (ASC, %0->$$4) (ASC, %0->$$6)
- -- STABLE_SORT [$$3(DESC), $$5(ASC), $$4(ASC), $$6(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$3, $$4, $$5, $$6, $$8, $$9, $$10, $$11])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$1, %0->$$6], function-call: algebricks:eq, Args:[%0->$$2, %0->$$7]])
- -- HYBRID_HASH_JOIN [$$1, $$2][$$6, $$7] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1, $$2] |PARTITIONED|
- data-scan []<-[$$1, $$2] <- default.q2_minimum_cost_supplier_tmp2
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$6, $$7] |PARTITIONED|
- data-scan [$$6, $$7, $$3, $$4, $$5, $$8, $$9, $$10, $$11]<-[$$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11] <- default.q2_minimum_cost_supplier_tmp1
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q3_shipping_priority.plan b/hivesterix/src/test/resources/optimizerts/results/q3_shipping_priority.plan
deleted file mode 100644
index a1b8e42..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q3_shipping_priority.plan
+++ /dev/null
@@ -1,70 +0,0 @@
-write [%0->$$1, %0->$$34, %0->$$29, %0->$$32]
--- SINK_WRITE |UNPARTITIONED|
- limit 10
- -- STREAM_LIMIT |UNPARTITIONED|
- limit 10
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$34(DESC) ] |PARTITIONED|
- limit 10
- -- STREAM_LIMIT |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (DESC, %0->$$34)
- -- STABLE_SORT [$$34(DESC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$1, $$34, $$29, $$32])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$34] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$6, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$7]]]
- -- ASSIGN |PARTITIONED|
- project ([$$29, $$32, $$1, $$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$25])
- -- HYBRID_HASH_JOIN [$$1][$$25] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1, $$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:lt, Args:[%0->$$4, 3])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$4, $$6, $$7]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$25] |PARTITIONED|
- project ([$$25, $$29, $$32])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$26, %0->$$17])
- -- HYBRID_HASH_JOIN [$$26][$$17] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$26] |PARTITIONED|
- data-scan [$$26, $$25, $$29, $$32]<-[$$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$17] |PARTITIONED|
- project ([$$17])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$23, BUILDING])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$17, $$23]<-[$$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q4_order_priority.plan b/hivesterix/src/test/resources/optimizerts/results/q4_order_priority.plan
deleted file mode 100644
index 435fd7c..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q4_order_priority.plan
+++ /dev/null
@@ -1,82 +0,0 @@
-write [%0->$$1]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([%0->$$1])
- -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$1)
- -- STABLE_SORT [$$1(ASC)] |LOCAL|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:lt, Args:[%0->$$12, %0->$$13])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$12, $$13]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$11, %0->$$13]
--- SINK_WRITE |PARTITIONED|
- project ([$$11, $$13])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$13] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$12]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$11(ASC) ] |PARTITIONED|
- order (ASC, %0->$$11)
- -- STABLE_SORT [$$11(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$11 := %0->$$16]) decor ([]) {
- aggregate [$$12] <- [function-call: hive:count(FINAL), Args:[%0->$$15]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$16] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$16] |PARTITIONED|
- group by ([$$16 := %0->$$7]) decor ([]) {
- aggregate [$$15] <- [function-call: hive:count(PARTIAL1), Args:[1]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$7] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$7])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$2])
- -- HYBRID_HASH_JOIN [$$1][$$2] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan []<-[$$1] <- default.q4_order_priority_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED|
- project ([$$2, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$6, 1993-10-01], function-call: algebricks:ge, Args:[%0->$$6, 1993-07-01], function-call: algebricks:lt, Args:[%0->$$6, 1993-10-01]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$2, $$6, $$7]<-[$$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q5_local_supplier_volume.plan b/hivesterix/src/test/resources/optimizerts/results/q5_local_supplier_volume.plan
deleted file mode 100644
index 177d24c..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q5_local_supplier_volume.plan
+++ /dev/null
@@ -1,126 +0,0 @@
-write [%0->$$48, %0->$$49]
--- SINK_WRITE |PARTITIONED|
- project ([$$48, $$49])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$49(DESC) ] |PARTITIONED|
- order (DESC, %0->$$49)
- -- STABLE_SORT [$$49(DESC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$48 := %0->$$52]) decor ([]) {
- aggregate [$$49] <- [function-call: hive:sum(FINAL), Args:[%0->$$51]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$52] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$52] |PARTITIONED|
- group by ([$$52 := %0->$$42]) decor ([]) {
- aggregate [$$51] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$23, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$24]]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$42] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$42, $$23, $$24])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$37, %0->$$4], function-call: algebricks:eq, Args:[%0->$$10, %0->$$1]])
- -- HYBRID_HASH_JOIN [$$37, $$10][$$4, $$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$37, $$10] |PARTITIONED|
- project ([$$10, $$42, $$23, $$24, $$37])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$18, %0->$$9])
- -- HYBRID_HASH_JOIN [$$18][$$9] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$18] |PARTITIONED|
- project ([$$18, $$23, $$24, $$42, $$37])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$34, %0->$$20])
- -- HYBRID_HASH_JOIN [$$34][$$20] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$34] |PARTITIONED|
- project ([$$34, $$37, $$42])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$41, %0->$$37])
- -- HYBRID_HASH_JOIN [$$41][$$37] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$41] |PARTITIONED|
- project ([$$41, $$42])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$45, %0->$$43])
- -- HYBRID_HASH_JOIN [$$45][$$43] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$45] |PARTITIONED|
- project ([$$45])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$46, ASIA])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$46, $$45]<-[$$45, $$46, $$47] <- default.region
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
- data-scan [$$43, $$41, $$42]<-[$$41, $$42, $$43, $$44] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$37] |PARTITIONED|
- data-scan [$$37, $$34]<-[$$34, $$35, $$36, $$37, $$38, $$39, $$40] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$20] |PARTITIONED|
- data-scan [$$20, $$18, $$23, $$24]<-[$$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$9] |PARTITIONED|
- project ([$$9, $$10])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$13, 1995-01-01], function-call: algebricks:ge, Args:[%0->$$13, 1994-01-01], function-call: algebricks:lt, Args:[%0->$$13, 1995-01-01]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$9, $$10, $$13]<-[$$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$4, $$1] |PARTITIONED|
- data-scan [$$4, $$1]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q6_forecast_revenue_change.plan b/hivesterix/src/test/resources/optimizerts/results/q6_forecast_revenue_change.plan
deleted file mode 100644
index cd9ffcd..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q6_forecast_revenue_change.plan
+++ /dev/null
@@ -1,34 +0,0 @@
-write [%0->$$17]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$17] <- [function-call: hive:sum(FINAL), Args:[%0->$$19]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [] |PARTITIONED|
- group by ([]) decor ([]) {
- aggregate [$$19] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$6, %0->$$7]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$6, $$7])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:ge, Args:[%0->$$11, 1994-01-01], function-call: algebricks:lt, Args:[%0->$$11, 1995-01-01], function-call: algebricks:ge, Args:[%0->$$7, 0.05], function-call: algebricks:le, Args:[%0->$$7, 0.07], function-call: algebricks:lt, Args:[%0->$$5, 24], function-call: algebricks:ge, Args:[%0->$$11, 1994-01-01], function-call: algebricks:lt, Args:[%0->$$11, 1995-01-01], function-call: algebricks:ge, Args:[%0->$$7, 0.05], function-call: algebricks:le, Args:[%0->$$7, 0.07], function-call: algebricks:lt, Args:[%0->$$5, 24]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$5, $$6, $$7, $$11]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q7_volume_shipping.plan b/hivesterix/src/test/resources/optimizerts/results/q7_volume_shipping.plan
deleted file mode 100644
index 39f8301..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q7_volume_shipping.plan
+++ /dev/null
@@ -1,192 +0,0 @@
-write [%0->$$17, %0->$$18, %0->$$19, %0->$$20]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- union ($$6, $$10, $$17) ($$2, $$14, $$18) ($$5, $$9, $$19) ($$1, $$13, $$20)
- -- UNION_ALL |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$6, $$2, $$5, $$1])
- -- STREAM_PROJECT |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (true)
- -- NESTED_LOOP |PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$2, GERMANY])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$2]<-[$$1, $$2, $$3, $$4] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$5, $$6])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$6, FRANCE])
- -- STREAM_SELECT |PARTITIONED|
- project ([$$5, $$6])
- -- STREAM_PROJECT |UNPARTITIONED|
- assign [$$5, $$6] <- [%0->$$9, %0->$$10]
- -- ASSIGN |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- SPLIT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$9, $$10]<-[$$9, $$10, $$11, $$12] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$10, $$14, $$9, $$13])
- -- STREAM_PROJECT |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (true)
- -- NESTED_LOOP |PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$14, FRANCE])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$13, $$14]<-[$$13, $$14, $$15, $$16] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$9, $$10])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$10, GERMANY])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- SPLIT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$9, $$10]<-[$$9, $$10, $$11, $$12] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$47, %0->$$48, %0->$$49, %0->$$50]
--- SINK_WRITE |PARTITIONED|
- project ([$$47, $$48, $$49, $$50])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$47(ASC), $$48(ASC), $$49(ASC) ] |PARTITIONED|
- order (ASC, %0->$$47) (ASC, %0->$$48) (ASC, %0->$$49)
- -- STABLE_SORT [$$47(ASC), $$48(ASC), $$49(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$47 := %0->$$53; $$48 := %0->$$54; $$49 := %0->$$55]) decor ([]) {
- aggregate [$$50] <- [function-call: hive:sum(FINAL), Args:[%0->$$52]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$53, $$54, $$55] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$53, $$54, $$55] |PARTITIONED|
- group by ([$$53 := %0->$$1; $$54 := %0->$$2; $$55 := %0->$$45]) decor ([]) {
- aggregate [$$52] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$46]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$1, $$2, $$45] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$1, $$2, $$45, $$46])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$45, $$46] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFYear, Args:[%0->$$30], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$25, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$26]]]
- -- ASSIGN |PARTITIONED|
- project ([$$1, $$2, $$30, $$25, $$26])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$15, %0->$$4], function-call: algebricks:eq, Args:[%0->$$8, %0->$$3]])
- -- HYBRID_HASH_JOIN [$$15, $$8][$$4, $$3] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$15, $$8] |PARTITIONED|
- project ([$$8, $$30, $$25, $$26, $$15])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$22, %0->$$5])
- -- HYBRID_HASH_JOIN [$$22][$$5] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
- project ([$$15, $$30, $$25, $$26, $$22])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$37, %0->$$12])
- -- HYBRID_HASH_JOIN [$$37][$$12] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$37] |PARTITIONED|
- project ([$$37, $$22, $$25, $$26, $$30])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$20, %0->$$36])
- -- HYBRID_HASH_JOIN [$$20][$$36] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$20] |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:le, Args:[%0->$$30, 1996-12-31], function-call: algebricks:ge, Args:[%0->$$30, 1995-01-01], function-call: algebricks:le, Args:[%0->$$30, 1996-12-31]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$20, $$22, $$25, $$26, $$30]<-[$$20, $$21, $$22, $$23, $$24, $$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33, $$34, $$35] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
- data-scan [$$36, $$37]<-[$$36, $$37, $$38, $$39, $$40, $$41, $$42, $$43, $$44] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$12] |PARTITIONED|
- data-scan [$$12, $$15]<-[$$12, $$13, $$14, $$15, $$16, $$17, $$18, $$19] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$5] |PARTITIONED|
- data-scan [$$5, $$8]<-[$$5, $$6, $$7, $$8, $$9, $$10, $$11] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$4, $$3] |PARTITIONED|
- data-scan [$$4, $$3, $$1, $$2]<-[$$1, $$2, $$3, $$4] <- default.q7_volume_shipping_tmp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q8_national_market_share.plan b/hivesterix/src/test/resources/optimizerts/results/q8_national_market_share.plan
deleted file mode 100644
index b807a24..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q8_national_market_share.plan
+++ /dev/null
@@ -1,190 +0,0 @@
-write [%0->$$63, %0->$$66]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$63(ASC) ] |PARTITIONED|
- order (ASC, %0->$$63)
- -- STABLE_SORT [$$63(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$63, $$66])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$66] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPDivide, Args:[%0->$$64, %0->$$65]]
- -- ASSIGN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$63 := %0->$$70]) decor ([]) {
- aggregate [$$64, $$65] <- [function-call: hive:sum(FINAL), Args:[%0->$$68], function-call: hive:sum(FINAL), Args:[%0->$$69]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$70] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$70] |PARTITIONED|
- group by ([$$70 := %0->$$61]) decor ([]) {
- aggregate [$$68, $$69] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.generic.GenericUDFWhen, Args:[function-call: algebricks:eq, Args:[%0->$$2, BRAZIL], %0->$$62, 0.0]], function-call: hive:sum(PARTIAL1), Args:[%0->$$62]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$61] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$61, $$62, $$2])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$61, $$62] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFYear, Args:[%0->$$41], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$26, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$27]]]
- -- ASSIGN |PARTITIONED|
- project ([$$2, $$41, $$27, $$26])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$8, %0->$$1])
- -- HYBRID_HASH_JOIN [$$8][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$8] |PARTITIONED|
- project ([$$8, $$41, $$27, $$26])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$23, %0->$$5])
- -- HYBRID_HASH_JOIN [$$23][$$5] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$23] |PARTITIONED|
- project ([$$41, $$27, $$26, $$23])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$22, %0->$$12])
- -- HYBRID_HASH_JOIN [$$22][$$12] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
- project ([$$41, $$22, $$23, $$26, $$27])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$21, %0->$$37])
- -- HYBRID_HASH_JOIN [$$21][$$37] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
- data-scan [$$21, $$22, $$23, $$26, $$27]<-[$$21, $$22, $$23, $$24, $$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33, $$34, $$35, $$36] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$37] |PARTITIONED|
- project ([$$37, $$41])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$46, %0->$$38])
- -- HYBRID_HASH_JOIN [$$46][$$38] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
- project ([$$46])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$54, %0->$$49])
- -- HYBRID_HASH_JOIN [$$54][$$49] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$54] |PARTITIONED|
- project ([$$54])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$58, %0->$$56])
- -- HYBRID_HASH_JOIN [$$58][$$56] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$58] |PARTITIONED|
- project ([$$58])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$59, AMERICA])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$59, $$58]<-[$$58, $$59, $$60] <- default.region
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$56] |PARTITIONED|
- project ([$$56, $$54])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- SPLIT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$54, $$55, $$56, $$57] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED|
- data-scan [$$49, $$46]<-[$$46, $$47, $$48, $$49, $$50, $$51, $$52, $$53] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
- project ([$$38, $$37, $$41])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$41, 1996-12-31], function-call: algebricks:ge, Args:[%0->$$41, 1995-01-01]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$38, $$37, $$41]<-[$$37, $$38, $$39, $$40, $$41, $$42, $$43, $$44, $$45] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$12] |PARTITIONED|
- project ([$$12])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:eq, Args:[%0->$$16, ECONOMY ANODIZED STEEL])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$16, $$12]<-[$$12, $$13, $$14, $$15, $$16, $$17, $$18, $$19, $$20] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$5] |PARTITIONED|
- data-scan [$$5, $$8]<-[$$5, $$6, $$7, $$8, $$9, $$10, $$11] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- project ([$$1, $$2])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$1, $$2, $$3, $$4] <- [%0->$$54, %0->$$55, %0->$$56, %0->$$57]
- -- ASSIGN |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- SPLIT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$54, $$55, $$56, $$57] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/q9_product_type_profit.plan b/hivesterix/src/test/resources/optimizerts/results/q9_product_type_profit.plan
deleted file mode 100644
index f57f4a3..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/q9_product_type_profit.plan
+++ /dev/null
@@ -1,124 +0,0 @@
-write [%0->$$53, %0->$$54, %0->$$55]
--- SINK_WRITE |PARTITIONED|
- project ([$$53, $$54, $$55])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$53(ASC), $$54(DESC) ] |PARTITIONED|
- order (ASC, %0->$$53) (DESC, %0->$$54)
- -- STABLE_SORT [$$53(ASC), $$54(DESC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$53 := %0->$$58; $$54 := %0->$$59]) decor ([]) {
- aggregate [$$55] <- [function-call: hive:sum(FINAL), Args:[%0->$$57]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$58, $$59] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$58, $$59] |PARTITIONED|
- group by ([$$58 := %0->$$48; $$59 := %0->$$51]) decor ([]) {
- aggregate [$$57] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$52]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$48, $$51] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$48, $$51, $$52])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$51, $$52] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFYear, Args:[%0->$$5], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$29, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$30]], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$22, %0->$$28]]]
- -- ASSIGN |PARTITIONED|
- project ([$$5, $$29, $$30, $$28, $$48, $$22])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$24, %0->$$1])
- -- HYBRID_HASH_JOIN [$$24][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$24] |PARTITIONED|
- project ([$$29, $$30, $$28, $$24, $$48, $$22])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$25, %0->$$10])
- -- HYBRID_HASH_JOIN [$$25][$$10] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$25] |PARTITIONED|
- project ([$$22, $$29, $$30, $$28, $$25, $$24, $$48])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:eq, Args:[%0->$$26, %0->$$20], function-call: algebricks:eq, Args:[%0->$$25, %0->$$19]])
- -- HYBRID_HASH_JOIN [$$26, $$25][$$20, $$19] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$48, $$24, $$25, $$26, $$28, $$29, $$30])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$26, %0->$$40])
- -- HYBRID_HASH_JOIN [$$26][$$40] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$26] |PARTITIONED|
- data-scan [$$26, $$24, $$25, $$28, $$29, $$30]<-[$$24, $$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33, $$34, $$35, $$36, $$37, $$38, $$39] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$40] |PARTITIONED|
- project ([$$40, $$48])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$43, %0->$$47])
- -- HYBRID_HASH_JOIN [$$43][$$47] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
- data-scan [$$43, $$40]<-[$$40, $$41, $$42, $$43, $$44, $$45, $$46] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
- data-scan [$$47, $$48]<-[$$47, $$48, $$49, $$50] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$20] |PARTITIONED|
- data-scan [$$20, $$19, $$22]<-[$$19, $$20, $$21, $$22, $$23] <- default.partsupp
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$10] |PARTITIONED|
- project ([$$10])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: hive:org.apache.hadoop.hive.ql.udf.UDFLike, Args:[%0->$$11, %green%])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$10, $$11]<-[$$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17, $$18] <- default.part
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1, $$5]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u10_nestedloop_join.plan b/hivesterix/src/test/resources/optimizerts/results/u10_nestedloop_join.plan
deleted file mode 100644
index c86d57f..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u10_nestedloop_join.plan
+++ /dev/null
@@ -1,24 +0,0 @@
-write [%0->$$6, %0->$$2, %0->$$5, %0->$$1]
--- SINK_WRITE |PARTITIONED|
- project ([$$6, $$2, $$5, $$1])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:and, Args:[function-call: algebricks:gt, Args:[%0->$$5, %0->$$1], true])
- -- NESTED_LOOP |PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$2]<-[$$1, $$2, $$3, $$4] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$5, $$6]<-[$$5, $$6, $$7, $$8] <- default.nation
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u1_group_by.plan b/hivesterix/src/test/resources/optimizerts/results/u1_group_by.plan
deleted file mode 100644
index 188aa6d..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u1_group_by.plan
+++ /dev/null
@@ -1,36 +0,0 @@
-write [%0->$$18, %0->$$19]
--- SINK_WRITE |PARTITIONED|
- project ([$$18, $$19])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- group by ([$$17 := %0->$$23]) decor ([]) {
- aggregate [$$18, $$19] <- [function-call: hive:sum(FINAL), Args:[%0->$$21], function-call: hive:sum(FINAL), Args:[%0->$$22]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$23] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$23] |PARTITIONED|
- group by ([$$23 := %0->$$9]) decor ([]) {
- aggregate [$$21, $$22] <- [function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFAbs, Args:[%0->$$5]], function-call: hive:sum(PARTIAL1), Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$6, function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMinus, Args:[1, %0->$$7]], function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPPlus, Args:[1, %0->$$8]]]]
- -- AGGREGATE |LOCAL|
- nested tuple source
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- EXTERNAL_GROUP_BY[$$9] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$9, $$5, $$6, $$7, $$8])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:le, Args:[%0->$$11, 1998-09-02])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$5, $$6, $$7, $$8, $$9, $$11]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u2_select-project.plan b/hivesterix/src/test/resources/optimizerts/results/u2_select-project.plan
deleted file mode 100644
index 4485b36..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u2_select-project.plan
+++ /dev/null
@@ -1,16 +0,0 @@
-write [%0->$$8, %0->$$3, %0->$$4, %0->$$2]
--- SINK_WRITE |PARTITIONED|
- project ([$$8, $$3, $$4, $$2])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$8] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[2, %0->$$1]]
- -- ASSIGN |PARTITIONED|
- select (function-call: algebricks:lt, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$1, 2], 20])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u3_union.plan b/hivesterix/src/test/resources/optimizerts/results/u3_union.plan
deleted file mode 100644
index c4040f2..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u3_union.plan
+++ /dev/null
@@ -1,38 +0,0 @@
-write [%0->$$17, %0->$$18, %0->$$19, %0->$$20]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- union ($$8, $$16, $$17) ($$3, $$11, $$18) ($$4, $$12, $$19) ($$2, $$10, $$20)
- -- UNION_ALL |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$8, $$3, $$4, $$2])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$8] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[2, %0->$$1]]
- -- ASSIGN |PARTITIONED|
- select (function-call: algebricks:gt, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$1, 2], 50])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$16, $$11, $$12, $$10])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$16] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[2, %0->$$9]]
- -- ASSIGN |PARTITIONED|
- select (function-call: algebricks:lt, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$9, 2], 20])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$9, $$10, $$11, $$12, $$13, $$14, $$15] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u4_join.plan b/hivesterix/src/test/resources/optimizerts/results/u4_join.plan
deleted file mode 100644
index 449a601..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u4_join.plan
+++ /dev/null
@@ -1,36 +0,0 @@
-write [%0->$$1, %0->$$2, %0->$$3, %0->$$4]
--- SINK_WRITE |PARTITIONED|
- select (function-call: algebricks:lt, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$1, 2], 20])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$2, $$3, $$4]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
-write [%0->$$1, %0->$$9, %0->$$10, %0->$$11]
--- SINK_WRITE |PARTITIONED|
- project ([$$1, $$9, $$10, $$11])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$5, %0->$$1])
- -- HYBRID_HASH_JOIN [$$5][$$1] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$5] |PARTITIONED|
- data-scan [$$5, $$9, $$10, $$11]<-[$$5, $$6, $$7, $$8, $$9, $$10, $$11] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1]<-[$$1, $$2, $$3, $$4] <- default.result
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u5_lateral_view.plan b/hivesterix/src/test/resources/optimizerts/results/u5_lateral_view.plan
deleted file mode 100644
index 48e624e..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u5_lateral_view.plan
+++ /dev/null
@@ -1,14 +0,0 @@
-write [%0->$$2, %0->$$3, %0->$$8]
--- SINK_WRITE |PARTITIONED|
- project ([$$2, $$3, $$8])
- -- STREAM_PROJECT |PARTITIONED|
- unnest $$8 <- function-call: hive:explode, Args:[%0->$$1]
- -- UNNEST |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$2, $$3]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u6_limit.plan b/hivesterix/src/test/resources/optimizerts/results/u6_limit.plan
deleted file mode 100644
index b5ed12f..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u6_limit.plan
+++ /dev/null
@@ -1,26 +0,0 @@
-write [%0->$$1, %0->$$4, %0->$$5, %0->$$7]
--- SINK_WRITE |UNPARTITIONED|
- limit 4
- -- STREAM_LIMIT |UNPARTITIONED|
- limit 4
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$4(ASC) ] |PARTITIONED|
- limit 4
- -- STREAM_LIMIT |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |LOCAL|
- order (ASC, %0->$$4)
- -- STABLE_SORT [$$4(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (function-call: algebricks:lt, Args:[%0->$$4, 10000])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$4, $$5, $$7]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u7_multi_join.plan b/hivesterix/src/test/resources/optimizerts/results/u7_multi_join.plan
deleted file mode 100644
index ab55181..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u7_multi_join.plan
+++ /dev/null
@@ -1,52 +0,0 @@
-write [%0->$$4, %0->$$25, %0->$$28, %0->$$29, %0->$$32]
--- SINK_WRITE |PARTITIONED|
- project ([$$4, $$25, $$28, $$29, $$32])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$25])
- -- HYBRID_HASH_JOIN [$$1][$$25] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$1] |PARTITIONED|
- data-scan [$$1, $$4]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$25] |PARTITIONED|
- project ([$$32, $$25, $$29, $$28])
- -- STREAM_PROJECT |PARTITIONED|
- project ([$$25, $$17, $$28, $$29, $$32])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (function-call: algebricks:eq, Args:[%0->$$26, %0->$$17])
- -- HYBRID_HASH_JOIN [$$26][$$17] |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$26] |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$28, 30000], function-call: algebricks:lt, Args:[%0->$$28, 30000]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$32, $$25, $$26, $$29, $$28]<-[$$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33] <- default.orders
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange
- -- HASH_PARTITION_EXCHANGE [$$17] |PARTITIONED|
- project ([$$17])
- -- STREAM_PROJECT |PARTITIONED|
- select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$17, 5], function-call: algebricks:lt, Args:[%0->$$17, 5]])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$17]<-[$$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24] <- default.customer
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/optimizerts/results/u8_non_mapred.plan b/hivesterix/src/test/resources/optimizerts/results/u8_non_mapred.plan
deleted file mode 100644
index e69de29..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u8_non_mapred.plan
+++ /dev/null
diff --git a/hivesterix/src/test/resources/optimizerts/results/u9_order_by.plan b/hivesterix/src/test/resources/optimizerts/results/u9_order_by.plan
deleted file mode 100644
index 7370fcf..0000000
--- a/hivesterix/src/test/resources/optimizerts/results/u9_order_by.plan
+++ /dev/null
@@ -1,18 +0,0 @@
-write [%0->$$1, %0->$$2, %0->$$3, %0->$$4]
--- SINK_WRITE |PARTITIONED|
- exchange
- -- SORT_MERGE_EXCHANGE [$$2(ASC) ] |PARTITIONED|
- order (ASC, %0->$$2)
- -- STABLE_SORT [$$2(ASC)] |LOCAL|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (function-call: algebricks:lt, Args:[function-call: hive:org.apache.hadoop.hive.ql.udf.UDFOPMultiply, Args:[%0->$$1, 2], 20])
- -- STREAM_SELECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan [$$1, $$2, $$3, $$4]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7] <- default.supplier
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/conf/cluster b/hivesterix/src/test/resources/runtimefunctionts/conf/cluster
deleted file mode 100644
index ee81dc1..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/conf/cluster
+++ /dev/null
@@ -1,3 +0,0 @@
-2
-127.0.0.1 nc0
-127.0.0.1 nc1
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/customer.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/customer.tbl
deleted file mode 100644
index 5d39c80..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/customer.tbl
+++ /dev/null
@@ -1,150 +0,0 @@
-1|Customer#000000001|IVhzIApeRb ot,c,E|15|25-989-741-2988|711.56|BUILDING|to the even, regular platelets. regular, ironic epitaphs nag e|
-2|Customer#000000002|XSTf4,NCwDVaWNe6tEgvwfmRchLXak|13|23-768-687-3665|121.65|AUTOMOBILE|l accounts. blithely ironic theodolites integrate boldly: caref|
-3|Customer#000000003|MG9kdTD2WBHm|1|11-719-748-3364|7498.12|AUTOMOBILE| deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov|
-4|Customer#000000004|XxVSJsLAGtn|4|14-128-190-5944|2866.83|MACHINERY| requests. final, regular ideas sleep final accou|
-5|Customer#000000005|KvpyuHCplrB84WgAiGV6sYpZq7Tj|3|13-750-942-6364|794.47|HOUSEHOLD|n accounts will have to unwind. foxes cajole accor|
-6|Customer#000000006|sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn|20|30-114-968-4951|7638.57|AUTOMOBILE|tions. even deposits boost according to the slyly bold packages. final accounts cajole requests. furious|
-7|Customer#000000007|TcGe5gaZNgVePxU5kRrvXBfkasDTea|18|28-190-982-9759|9561.95|AUTOMOBILE|ainst the ironic, express theodolites. express, even pinto beans among the exp|
-8|Customer#000000008|I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5|17|27-147-574-9335|6819.74|BUILDING|among the slyly regular theodolites kindle blithely courts. carefully even theodolites haggle slyly along the ide|
-9|Customer#000000009|xKiAFTjUsCuxfeleNqefumTrjS|8|18-338-906-3675|8324.07|FURNITURE|r theodolites according to the requests wake thinly excuses: pending requests haggle furiousl|
-10|Customer#000000010|6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2|5|15-741-346-9870|2753.54|HOUSEHOLD|es regular deposits haggle. fur|
-11|Customer#000000011|PkWS 3HlXqwTuzrKg633BEi|23|33-464-151-3439|-272.60|BUILDING|ckages. requests sleep slyly. quickly even pinto beans promise above the slyly regular pinto beans. |
-12|Customer#000000012|9PWKuhzT4Zr1Q|13|23-791-276-1263|3396.49|HOUSEHOLD| to the carefully final braids. blithely regular requests nag. ironic theodolites boost quickly along|
-13|Customer#000000013|nsXQu0oVjD7PM659uC3SRSp|3|13-761-547-5974|3857.34|BUILDING|ounts sleep carefully after the close frays. carefully bold notornis use ironic requests. blithely|
-14|Customer#000000014|KXkletMlL2JQEA |1|11-845-129-3851|5266.30|FURNITURE|, ironic packages across the unus|
-15|Customer#000000015|YtWggXoOLdwdo7b0y,BZaGUQMLJMX1Y,EC,6Dn|23|33-687-542-7601|2788.52|HOUSEHOLD| platelets. regular deposits detect asymptotes. blithely unusual packages nag slyly at the fluf|
-16|Customer#000000016|cYiaeMLZSMAOQ2 d0W,|10|20-781-609-3107|4681.03|FURNITURE|kly silent courts. thinly regular theodolites sleep fluffily after |
-17|Customer#000000017|izrh 6jdqtp2eqdtbkswDD8SG4SzXruMfIXyR7|2|12-970-682-3487|6.34|AUTOMOBILE|packages wake! blithely even pint|
-18|Customer#000000018|3txGO AiuFux3zT0Z9NYaFRnZt|6|16-155-215-1315|5494.43|BUILDING|s sleep. carefully even instructions nag furiously alongside of t|
-19|Customer#000000019|uc,3bHIx84H,wdrmLOjVsiqXCq2tr|18|28-396-526-5053|8914.71|HOUSEHOLD| nag. furiously careful packages are slyly at the accounts. furiously regular in|
-20|Customer#000000020|JrPk8Pqplj4Ne|22|32-957-234-8742|7603.40|FURNITURE|g alongside of the special excuses-- fluffily enticing packages wake |
-21|Customer#000000021|XYmVpr9yAHDEn|8|18-902-614-8344|1428.25|MACHINERY| quickly final accounts integrate blithely furiously u|
-22|Customer#000000022|QI6p41,FNs5k7RZoCCVPUTkUdYpB|3|13-806-545-9701|591.98|MACHINERY|s nod furiously above the furiously ironic ideas. |
-23|Customer#000000023|OdY W13N7Be3OC5MpgfmcYss0Wn6TKT|3|13-312-472-8245|3332.02|HOUSEHOLD|deposits. special deposits cajole slyly. fluffily special deposits about the furiously |
-24|Customer#000000024|HXAFgIAyjxtdqwimt13Y3OZO 4xeLe7U8PqG|13|23-127-851-8031|9255.67|MACHINERY|into beans. fluffily final ideas haggle fluffily|
-25|Customer#000000025|Hp8GyFQgGHFYSilH5tBfe|12|22-603-468-3533|7133.70|FURNITURE|y. accounts sleep ruthlessly according to the regular theodolites. unusual instructions sleep. ironic, final|
-26|Customer#000000026|8ljrc5ZeMl7UciP|22|32-363-455-4837|5182.05|AUTOMOBILE|c requests use furiously ironic requests. slyly ironic dependencies us|
-27|Customer#000000027|IS8GIyxpBrLpMT0u7|3|13-137-193-2709|5679.84|BUILDING| about the carefully ironic pinto beans. accoun|
-28|Customer#000000028|iVyg0daQ,Tha8x2WPWA9m2529m|8|18-774-241-1462|1007.18|FURNITURE| along the regular deposits. furiously final pac|
-29|Customer#000000029|sJ5adtfyAkCK63df2,vF25zyQMVYE34uh|0|10-773-203-7342|7618.27|FURNITURE|its after the carefully final platelets x-ray against |
-30|Customer#000000030|nJDsELGAavU63Jl0c5NKsKfL8rIJQQkQnYL2QJY|1|11-764-165-5076|9321.01|BUILDING|lithely final requests. furiously unusual account|
-31|Customer#000000031|LUACbO0viaAv6eXOAebryDB xjVst|23|33-197-837-7094|5236.89|HOUSEHOLD|s use among the blithely pending depo|
-32|Customer#000000032|jD2xZzi UmId,DCtNBLXKj9q0Tlp2iQ6ZcO3J|15|25-430-914-2194|3471.53|BUILDING|cial ideas. final, furious requests across the e|
-33|Customer#000000033|qFSlMuLucBmx9xnn5ib2csWUweg D|17|27-375-391-1280|-78.56|AUTOMOBILE|s. slyly regular accounts are furiously. carefully pending requests|
-34|Customer#000000034|Q6G9wZ6dnczmtOx509xgE,M2KV|15|25-344-968-5422|8589.70|HOUSEHOLD|nder against the even, pending accounts. even|
-35|Customer#000000035|TEjWGE4nBzJL2|17|27-566-888-7431|1228.24|HOUSEHOLD|requests. special, express requests nag slyly furiousl|
-36|Customer#000000036|3TvCzjuPzpJ0,DdJ8kW5U|21|31-704-669-5769|4987.27|BUILDING|haggle. enticing, quiet platelets grow quickly bold sheaves. carefully regular acc|
-37|Customer#000000037|7EV4Pwh,3SboctTWt|8|18-385-235-7162|-917.75|FURNITURE|ilent packages are carefully among the deposits. furiousl|
-38|Customer#000000038|a5Ee5e9568R8RLP 2ap7|12|22-306-880-7212|6345.11|HOUSEHOLD|lar excuses. closely even asymptotes cajole blithely excuses. carefully silent pinto beans sleep carefully fin|
-39|Customer#000000039|nnbRg,Pvy33dfkorYE FdeZ60|2|12-387-467-6509|6264.31|AUTOMOBILE|tions. slyly silent excuses slee|
-40|Customer#000000040|gOnGWAyhSV1ofv|3|13-652-915-8939|1335.30|BUILDING|rges impress after the slyly ironic courts. foxes are. blithely |
-41|Customer#000000041|IM9mzmyoxeBmvNw8lA7G3Ydska2nkZF|10|20-917-711-4011|270.95|HOUSEHOLD|ly regular accounts hang bold, silent packages. unusual foxes haggle slyly above the special, final depo|
-42|Customer#000000042|ziSrvyyBke|5|15-416-330-4175|8727.01|BUILDING|ssly according to the pinto beans: carefully special requests across the even, pending accounts wake special|
-43|Customer#000000043|ouSbjHk8lh5fKX3zGso3ZSIj9Aa3PoaFd|19|29-316-665-2897|9904.28|MACHINERY|ial requests: carefully pending foxes detect quickly. carefully final courts cajole quickly. carefully|
-44|Customer#000000044|Oi,dOSPwDu4jo4x,,P85E0dmhZGvNtBwi|16|26-190-260-5375|7315.94|AUTOMOBILE|r requests around the unusual, bold a|
-45|Customer#000000045|4v3OcpFgoOmMG,CbnF,4mdC|9|19-715-298-9917|9983.38|AUTOMOBILE|nto beans haggle slyly alongside of t|
-46|Customer#000000046|eaTXWWm10L9|6|16-357-681-2007|5744.59|AUTOMOBILE|ctions. accounts sleep furiously even requests. regular, regular accounts cajole blithely around the final pa|
-47|Customer#000000047|b0UgocSqEW5 gdVbhNT|2|12-427-271-9466|274.58|BUILDING|ions. express, ironic instructions sleep furiously ironic ideas. furi|
-48|Customer#000000048|0UU iPhBupFvemNB|0|10-508-348-5882|3792.50|BUILDING|re fluffily pending foxes. pending, bold platelets sleep slyly. even platelets cajo|
-49|Customer#000000049|cNgAeX7Fqrdf7HQN9EwjUa4nxT,68L FKAxzl|10|20-908-631-4424|4573.94|FURNITURE|nusual foxes! fluffily pending packages maintain to the regular |
-50|Customer#000000050|9SzDYlkzxByyJ1QeTI o|6|16-658-112-3221|4266.13|MACHINERY|ts. furiously ironic accounts cajole furiously slyly ironic dinos.|
-51|Customer#000000051|uR,wEaiTvo4|12|22-344-885-4251|855.87|FURNITURE|eposits. furiously regular requests integrate carefully packages. furious|
-52|Customer#000000052|7 QOqGqqSy9jfV51BC71jcHJSD0|11|21-186-284-5998|5630.28|HOUSEHOLD|ic platelets use evenly even accounts. stealthy theodolites cajole furiou|
-53|Customer#000000053|HnaxHzTfFTZs8MuCpJyTbZ47Cm4wFOOgib|15|25-168-852-5363|4113.64|HOUSEHOLD|ar accounts are. even foxes are blithely. fluffily pending deposits boost|
-54|Customer#000000054|,k4vf 5vECGWFy,hosTE,|4|14-776-370-4745|868.90|AUTOMOBILE|sual, silent accounts. furiously express accounts cajole special deposits. final, final accounts use furi|
-55|Customer#000000055|zIRBR4KNEl HzaiV3a i9n6elrxzDEh8r8pDom|10|20-180-440-8525|4572.11|MACHINERY|ully unusual packages wake bravely bold packages. unusual requests boost deposits! blithely ironic packages ab|
-56|Customer#000000056|BJYZYJQk4yD5B|10|20-895-685-6920|6530.86|FURNITURE|. notornis wake carefully. carefully fluffy requests are furiously even accounts. slyly expre|
-57|Customer#000000057|97XYbsuOPRXPWU|21|31-835-306-1650|4151.93|AUTOMOBILE|ove the carefully special packages. even, unusual deposits sleep slyly pend|
-58|Customer#000000058|g9ap7Dk1Sv9fcXEWjpMYpBZIRUohi T|13|23-244-493-2508|6478.46|HOUSEHOLD|ideas. ironic ideas affix furiously express, final instructions. regular excuses use quickly e|
-59|Customer#000000059|zLOCP0wh92OtBihgspOGl4|1|11-355-584-3112|3458.60|MACHINERY|ously final packages haggle blithely after the express deposits. furiou|
-60|Customer#000000060|FyodhjwMChsZmUz7Jz0H|12|22-480-575-5866|2741.87|MACHINERY|latelets. blithely unusual courts boost furiously about the packages. blithely final instruct|
-61|Customer#000000061|9kndve4EAJxhg3veF BfXr7AqOsT39o gtqjaYE|17|27-626-559-8599|1536.24|FURNITURE|egular packages shall have to impress along the |
-62|Customer#000000062|upJK2Dnw13,|7|17-361-978-7059|595.61|MACHINERY|kly special dolphins. pinto beans are slyly. quickly regular accounts are furiously a|
-63|Customer#000000063|IXRSpVWWZraKII|21|31-952-552-9584|9331.13|AUTOMOBILE|ithely even accounts detect slyly above the fluffily ir|
-64|Customer#000000064|MbCeGY20kaKK3oalJD,OT|3|13-558-731-7204|-646.64|BUILDING|structions after the quietly ironic theodolites cajole be|
-65|Customer#000000065|RGT yzQ0y4l0H90P783LG4U95bXQFDRXbWa1sl,X|23|33-733-623-5267|8795.16|AUTOMOBILE|y final foxes serve carefully. theodolites are carefully. pending i|
-66|Customer#000000066|XbsEqXH1ETbJYYtA1A|22|32-213-373-5094|242.77|HOUSEHOLD|le slyly accounts. carefully silent packages benea|
-67|Customer#000000067|rfG0cOgtr5W8 xILkwp9fpCS8|9|19-403-114-4356|8166.59|MACHINERY|indle furiously final, even theodo|
-68|Customer#000000068|o8AibcCRkXvQFh8hF,7o|12|22-918-832-2411|6853.37|HOUSEHOLD| pending pinto beans impress realms. final dependencies |
-69|Customer#000000069|Ltx17nO9Wwhtdbe9QZVxNgP98V7xW97uvSH1prEw|9|19-225-978-5670|1709.28|HOUSEHOLD|thely final ideas around the quickly final dependencies affix carefully quickly final theodolites. final accounts c|
-70|Customer#000000070|mFowIuhnHjp2GjCiYYavkW kUwOjIaTCQ|22|32-828-107-2832|4867.52|FURNITURE|fter the special asymptotes. ideas after the unusual frets cajole quickly regular pinto be|
-71|Customer#000000071|TlGalgdXWBmMV,6agLyWYDyIz9MKzcY8gl,w6t1B|7|17-710-812-5403|-611.19|HOUSEHOLD|g courts across the regular, final pinto beans are blithely pending ac|
-72|Customer#000000072|putjlmskxE,zs,HqeIA9Wqu7dhgH5BVCwDwHHcf|2|12-759-144-9689|-362.86|FURNITURE|ithely final foxes sleep always quickly bold accounts. final wat|
-73|Customer#000000073|8IhIxreu4Ug6tt5mog4|0|10-473-439-3214|4288.50|BUILDING|usual, unusual packages sleep busily along the furiou|
-74|Customer#000000074|IkJHCA3ZThF7qL7VKcrU nRLl,kylf |4|14-199-862-7209|2764.43|MACHINERY|onic accounts. blithely slow packages would haggle carefully. qui|
-75|Customer#000000075|Dh 6jZ,cwxWLKQfRKkiGrzv6pm|18|28-247-803-9025|6684.10|AUTOMOBILE| instructions cajole even, even deposits. finally bold deposits use above the even pains. slyl|
-76|Customer#000000076|m3sbCvjMOHyaOofH,e UkGPtqc4|0|10-349-718-3044|5745.33|FURNITURE|pecial deposits. ironic ideas boost blithely according to the closely ironic theodolites! furiously final deposits n|
-77|Customer#000000077|4tAE5KdMFGD4byHtXF92vx|17|27-269-357-4674|1738.87|BUILDING|uffily silent requests. carefully ironic asymptotes among the ironic hockey players are carefully bli|
-78|Customer#000000078|HBOta,ZNqpg3U2cSL0kbrftkPwzX|9|19-960-700-9191|7136.97|FURNITURE|ests. blithely bold pinto beans h|
-79|Customer#000000079|n5hH2ftkVRwW8idtD,BmM2|15|25-147-850-4166|5121.28|MACHINERY|es. packages haggle furiously. regular, special requests poach after the quickly express ideas. blithely pending re|
-80|Customer#000000080|K,vtXp8qYB |0|10-267-172-7101|7383.53|FURNITURE|tect among the dependencies. bold accounts engage closely even pinto beans. ca|
-81|Customer#000000081|SH6lPA7JiiNC6dNTrR|20|30-165-277-3269|2023.71|BUILDING|r packages. fluffily ironic requests cajole fluffily. ironically regular theodolit|
-82|Customer#000000082|zhG3EZbap4c992Gj3bK,3Ne,Xn|18|28-159-442-5305|9468.34|AUTOMOBILE|s wake. bravely regular accounts are furiously. regula|
-83|Customer#000000083|HnhTNB5xpnSF20JBH4Ycs6psVnkC3RDf|22|32-817-154-4122|6463.51|BUILDING|ccording to the quickly bold warhorses. final, regular foxes integrate carefully. bold packages nag blithely ev|
-84|Customer#000000084|lpXz6Fwr9945rnbtMc8PlueilS1WmASr CB|11|21-546-818-3802|5174.71|FURNITURE|ly blithe foxes. special asymptotes haggle blithely against the furiously regular depo|
-85|Customer#000000085|siRerlDwiolhYR 8FgksoezycLj|5|15-745-585-8219|3386.64|FURNITURE|ronic ideas use above the slowly pendin|
-86|Customer#000000086|US6EGGHXbTTXPL9SBsxQJsuvy|0|10-677-951-2353|3306.32|HOUSEHOLD|quests. pending dugouts are carefully aroun|
-87|Customer#000000087|hgGhHVSWQl 6jZ6Ev|23|33-869-884-7053|6327.54|FURNITURE|hely ironic requests integrate according to the ironic accounts. slyly regular pla|
-88|Customer#000000088|wtkjBN9eyrFuENSMmMFlJ3e7jE5KXcg|16|26-516-273-2566|8031.44|AUTOMOBILE|s are quickly above the quickly ironic instructions; even requests about the carefully final deposi|
-89|Customer#000000089|dtR, y9JQWUO6FoJExyp8whOU|14|24-394-451-5404|1530.76|FURNITURE|counts are slyly beyond the slyly final accounts. quickly final ideas wake. r|
-90|Customer#000000090|QxCzH7VxxYUWwfL7|16|26-603-491-1238|7354.23|BUILDING|sly across the furiously even |
-91|Customer#000000091|S8OMYFrpHwoNHaGBeuS6E 6zhHGZiprw1b7 q|8|18-239-400-3677|4643.14|AUTOMOBILE|onic accounts. fluffily silent pinto beans boost blithely according to the fluffily exp|
-92|Customer#000000092|obP PULk2LH LqNF,K9hcbNqnLAkJVsl5xqSrY,|2|12-446-416-8471|1182.91|MACHINERY|. pinto beans hang slyly final deposits. ac|
-93|Customer#000000093|EHXBr2QGdh|7|17-359-388-5266|2182.52|MACHINERY|press deposits. carefully regular platelets r|
-94|Customer#000000094|IfVNIN9KtkScJ9dUjK3Pg5gY1aFeaXewwf|9|19-953-499-8833|5500.11|HOUSEHOLD|latelets across the bold, final requests sleep according to the fluffily bold accounts. unusual deposits amon|
-95|Customer#000000095|EU0xvmWvOmUUn5J,2z85DQyG7QCJ9Xq7|15|25-923-255-2929|5327.38|MACHINERY|ithely. ruthlessly final requests wake slyly alongside of the furiously silent pinto beans. even the|
-96|Customer#000000096|vWLOrmXhRR|8|18-422-845-1202|6323.92|AUTOMOBILE|press requests believe furiously. carefully final instructions snooze carefully. |
-97|Customer#000000097|OApyejbhJG,0Iw3j rd1M|17|27-588-919-5638|2164.48|AUTOMOBILE|haggle slyly. bold, special ideas are blithely above the thinly bold theo|
-98|Customer#000000098|7yiheXNSpuEAwbswDW|12|22-885-845-6889|-551.37|BUILDING|ages. furiously pending accounts are quickly carefully final foxes: busily pe|
-99|Customer#000000099|szsrOiPtCHVS97Lt|15|25-515-237-9232|4088.65|HOUSEHOLD|cajole slyly about the regular theodolites! furiously bold requests nag along the pending, regular packages. somas|
-100|Customer#000000100|fptUABXcmkC5Wx|20|30-749-445-4907|9889.89|FURNITURE|was furiously fluffily quiet deposits. silent, pending requests boost against |
-101|Customer#000000101|sMmL2rNeHDltovSm Y|2|12-514-298-3699|7470.96|MACHINERY| sleep. pending packages detect slyly ironic pack|
-102|Customer#000000102|UAtflJ06 fn9zBfKjInkQZlWtqaA|19|29-324-978-8538|8462.17|BUILDING|ously regular dependencies nag among the furiously express dinos. blithely final|
-103|Customer#000000103|8KIsQX4LJ7QMsj6DrtFtXu0nUEdV,8a|9|19-216-107-2107|2757.45|BUILDING|furiously pending notornis boost slyly around the blithely ironic ideas? final, even instructions cajole fl|
-104|Customer#000000104|9mcCK L7rt0SwiYtrbO88DiZS7U d7M|10|20-966-284-8065|-588.38|FURNITURE|rate carefully slyly special pla|
-105|Customer#000000105|4iSJe4L SPjg7kJj98Yz3z0B|10|20-793-553-6417|9091.82|MACHINERY|l pains cajole even accounts. quietly final instructi|
-106|Customer#000000106|xGCOEAUjUNG|1|11-751-989-4627|3288.42|MACHINERY|lose slyly. ironic accounts along the evenly regular theodolites wake about the special, final gifts. |
-107|Customer#000000107|Zwg64UZ,q7GRqo3zm7P1tZIRshBDz|15|25-336-529-9919|2514.15|AUTOMOBILE|counts cajole slyly. regular requests wake. furiously regular deposits about the blithely final fo|
-108|Customer#000000108|GPoeEvpKo1|5|15-908-619-7526|2259.38|BUILDING|refully ironic deposits sleep. regular, unusual requests wake slyly|
-109|Customer#000000109|OOOkYBgCMzgMQXUmkocoLb56rfrdWp2NE2c|16|26-992-422-8153|-716.10|BUILDING|es. fluffily final dependencies sleep along the blithely even pinto beans. final deposits haggle furiously furiou|
-110|Customer#000000110|mymPfgphaYXNYtk|10|20-893-536-2069|7462.99|AUTOMOBILE|nto beans cajole around the even, final deposits. quickly bold packages according to the furiously regular dept|
-111|Customer#000000111|CBSbPyOWRorloj2TBvrK9qp9tHBs|22|32-582-283-7528|6505.26|MACHINERY|ly unusual instructions detect fluffily special deposits-- theodolites nag carefully during the ironic dependencies|
-112|Customer#000000112|RcfgG3bO7QeCnfjqJT1|19|29-233-262-8382|2953.35|FURNITURE|rmanently unusual multipliers. blithely ruthless deposits are furiously along the|
-113|Customer#000000113|eaOl5UBXIvdY57rglaIzqvfPD,MYfK|12|22-302-930-4756|2912.00|BUILDING|usly regular theodolites boost furiously doggedly pending instructio|
-114|Customer#000000114|xAt 5f5AlFIU|14|24-805-212-7646|1027.46|FURNITURE|der the carefully express theodolites are after the packages. packages are. bli|
-115|Customer#000000115|0WFt1IXENmUT2BgbsB0ShVKJZt0HCBCbFl0aHc|8|18-971-699-1843|7508.92|HOUSEHOLD|sits haggle above the carefully ironic theodolite|
-116|Customer#000000116|yCuVxIgsZ3,qyK2rloThy3u|16|26-632-309-5792|8403.99|BUILDING|as. quickly final sauternes haggle slyly carefully even packages. brave, ironic pinto beans are above the furious|
-117|Customer#000000117|uNhM,PzsRA3S,5Y Ge5Npuhi|24|34-403-631-3505|3950.83|FURNITURE|affix. instructions are furiously sl|
-118|Customer#000000118|OVnFuHygK9wx3xpg8|18|28-639-943-7051|3582.37|AUTOMOBILE|uick packages alongside of the furiously final deposits haggle above the fluffily even foxes. blithely dogged dep|
-119|Customer#000000119|M1ETOIecuvH8DtM0Y0nryXfW|7|17-697-919-8406|3930.35|FURNITURE|express ideas. blithely ironic foxes thrash. special acco|
-120|Customer#000000120|zBNna00AEInqyO1|12|22-291-534-1571|363.75|MACHINERY| quickly. slyly ironic requests cajole blithely furiously final dependen|
-121|Customer#000000121|tv nCR2YKupGN73mQudO|17|27-411-990-2959|6428.32|BUILDING|uriously stealthy ideas. carefully final courts use carefully|
-122|Customer#000000122|yp5slqoNd26lAENZW3a67wSfXA6hTF|3|13-702-694-4520|7865.46|HOUSEHOLD| the special packages hinder blithely around the permanent requests. bold depos|
-123|Customer#000000123|YsOnaaER8MkvK5cpf4VSlq|5|15-817-151-1168|5897.83|BUILDING|ependencies. regular, ironic requests are fluffily regu|
-124|Customer#000000124|aTbyVAW5tCd,v09O|18|28-183-750-7809|1842.49|AUTOMOBILE|le fluffily even dependencies. quietly s|
-125|Customer#000000125|,wSZXdVR xxIIfm9s8ITyLl3kgjT6UC07GY0Y|19|29-261-996-3120|-234.12|FURNITURE|x-ray finally after the packages? regular requests c|
-126|Customer#000000126|ha4EHmbx3kg DYCsP6DFeUOmavtQlHhcfaqr|22|32-755-914-7592|1001.39|HOUSEHOLD|s about the even instructions boost carefully furiously ironic pearls. ruthless, |
-127|Customer#000000127|Xyge4DX2rXKxXyye1Z47LeLVEYMLf4Bfcj|21|31-101-672-2951|9280.71|MACHINERY|ic, unusual theodolites nod silently after the final, ironic instructions: pending r|
-128|Customer#000000128|AmKUMlJf2NRHcKGmKjLS|4|14-280-874-8044|-986.96|HOUSEHOLD|ing packages integrate across the slyly unusual dugouts. blithely silent ideas sublate carefully. blithely expr|
-129|Customer#000000129|q7m7rbMM0BpaCdmxloCgBDRCleXsXkdD8kf|7|17-415-148-7416|9127.27|HOUSEHOLD| unusual deposits boost carefully furiously silent ideas. pending accounts cajole slyly across|
-130|Customer#000000130|RKPx2OfZy0Vn 8wGWZ7F2EAvmMORl1k8iH|9|19-190-993-9281|5073.58|HOUSEHOLD|ix slowly. express packages along the furiously ironic requests integrate daringly deposits. fur|
-131|Customer#000000131|jyN6lAjb1FtH10rMC,XzlWyCBrg75|11|21-840-210-3572|8595.53|HOUSEHOLD|jole special packages. furiously final dependencies about the furiously speci|
-132|Customer#000000132|QM5YabAsTLp9|4|14-692-150-9717|162.57|HOUSEHOLD|uickly carefully special theodolites. carefully regular requests against the blithely unusual instructions |
-133|Customer#000000133|IMCuXdpIvdkYO92kgDGuyHgojcUs88p|17|27-408-997-8430|2314.67|AUTOMOBILE|t packages. express pinto beans are blithely along the unusual, even theodolites. silent packages use fu|
-134|Customer#000000134|sUiZ78QCkTQPICKpA9OBzkUp2FM|11|21-200-159-5932|4608.90|BUILDING|yly fluffy foxes boost final ideas. b|
-135|Customer#000000135|oZK,oC0 fdEpqUML|19|29-399-293-6241|8732.91|FURNITURE| the slyly final accounts. deposits cajole carefully. carefully sly packag|
-136|Customer#000000136|QoLsJ0v5C1IQbh,DS1|7|17-501-210-4726|-842.39|FURNITURE|ackages sleep ironic, final courts. even requests above the blithely bold requests g|
-137|Customer#000000137|cdW91p92rlAEHgJafqYyxf1Q|16|26-777-409-5654|7838.30|HOUSEHOLD|carefully regular theodolites use. silent dolphins cajo|
-138|Customer#000000138|5uyLAeY7HIGZqtu66Yn08f|5|15-394-860-4589|430.59|MACHINERY|ts doze on the busy ideas. regular|
-139|Customer#000000139|3ElvBwudHKL02732YexGVFVt |9|19-140-352-1403|7897.78|MACHINERY|nstructions. quickly ironic ideas are carefully. bold, |
-140|Customer#000000140|XRqEPiKgcETII,iOLDZp5jA|4|14-273-885-6505|9963.15|MACHINERY|ies detect slyly ironic accounts. slyly ironic theodolites hag|
-141|Customer#000000141|5IW,WROVnikc3l7DwiUDGQNGsLBGOL6Dc0|1|11-936-295-6204|6706.14|FURNITURE|packages nag furiously. carefully unusual accounts snooze according to the fluffily regular pinto beans. slyly spec|
-142|Customer#000000142|AnJ5lxtLjioClr2khl9pb8NLxG2,|9|19-407-425-2584|2209.81|AUTOMOBILE|. even, express theodolites upo|
-143|Customer#000000143|681r22uL452zqk 8By7I9o9enQfx0|16|26-314-406-7725|2186.50|MACHINERY|across the blithely unusual requests haggle theodo|
-144|Customer#000000144|VxYZ3ebhgbltnetaGjNC8qCccjYU05 fePLOno8y|1|11-717-379-4478|6417.31|MACHINERY|ges. slyly regular accounts are slyly. bold, idle reque|
-145|Customer#000000145|kQjHmt2kcec cy3hfMh969u|13|23-562-444-8454|9748.93|HOUSEHOLD|ests? express, express instructions use. blithely fina|
-146|Customer#000000146|GdxkdXG9u7iyI1,,y5tq4ZyrcEy|3|13-835-723-3223|3328.68|FURNITURE|ffily regular dinos are slyly unusual requests. slyly specia|
-147|Customer#000000147|6VvIwbVdmcsMzuu,C84GtBWPaipGfi7DV|18|28-803-187-4335|8071.40|AUTOMOBILE|ress packages above the blithely regular packages sleep fluffily blithely ironic accounts. |
-148|Customer#000000148|BhSPlEWGvIJyT9swk vCWE|11|21-562-498-6636|2135.60|HOUSEHOLD|ing to the carefully ironic requests. carefully regular dependencies about the theodolites wake furious|
-149|Customer#000000149|3byTHCp2mNLPigUrrq|19|29-797-439-6760|8959.65|AUTOMOBILE|al instructions haggle against the slyly bold w|
-150|Customer#000000150|zeoGShTjCwGPplOWFkLURrh41O0AZ8dwNEEN4 |18|28-328-564-7630|3849.48|MACHINERY|ole blithely among the furiously pending packages. furiously bold ideas wake fluffily ironic idea|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/large_card_join_src.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/large_card_join_src.tbl
deleted file mode 100644
index 0168ae9..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/large_card_join_src.tbl
+++ /dev/null
@@ -1,1030 +0,0 @@
-0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-3
-3
-3
-4
-4
\ No newline at end of file
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/large_card_join_src_small.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/large_card_join_src_small.tbl
deleted file mode 100644
index d8263ee..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/large_card_join_src_small.tbl
+++ /dev/null
@@ -1 +0,0 @@
-2
\ No newline at end of file
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/lineitem.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/lineitem.tbl
deleted file mode 100644
index 58d47c6..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/lineitem.tbl
+++ /dev/null
@@ -1,6005 +0,0 @@
-1|156|4|1|17|17954.55|0.04|0.02|N|O|1996-03-13|1996-02-12|1996-03-22|DELIVER IN PERSON|TRUCK|egular courts above the|
-1|68|9|2|36|34850.16|0.09|0.06|N|O|1996-04-12|1996-02-28|1996-04-20|TAKE BACK RETURN|MAIL|ly final dependencies: slyly bold |
-1|64|5|3|8|7712.48|0.10|0.02|N|O|1996-01-29|1996-03-05|1996-01-31|TAKE BACK RETURN|REG AIR|riously. regular, express dep|
-1|3|6|4|28|25284.00|0.09|0.06|N|O|1996-04-21|1996-03-30|1996-05-16|NONE|AIR|lites. fluffily even de|
-1|25|8|5|24|22200.48|0.10|0.04|N|O|1996-03-30|1996-03-14|1996-04-01|NONE|FOB| pending foxes. slyly re|
-1|16|3|6|32|29312.32|0.07|0.02|N|O|1996-01-30|1996-02-07|1996-02-03|DELIVER IN PERSON|MAIL|arefully slyly ex|
-2|107|2|1|38|38269.80|0.00|0.05|N|O|1997-01-28|1997-01-14|1997-02-02|TAKE BACK RETURN|RAIL|ven requests. deposits breach a|
-3|5|2|1|45|40725.00|0.06|0.00|R|F|1994-02-02|1994-01-04|1994-02-23|NONE|AIR|ongside of the furiously brave acco|
-3|20|10|2|49|45080.98|0.10|0.00|R|F|1993-11-09|1993-12-20|1993-11-24|TAKE BACK RETURN|RAIL| unusual accounts. eve|
-3|129|8|3|27|27786.24|0.06|0.07|A|F|1994-01-16|1993-11-22|1994-01-23|DELIVER IN PERSON|SHIP|nal foxes wake. |
-3|30|5|4|2|1860.06|0.01|0.06|A|F|1993-12-04|1994-01-07|1994-01-01|NONE|TRUCK|y. fluffily pending d|
-3|184|5|5|28|30357.04|0.04|0.00|R|F|1993-12-14|1994-01-10|1994-01-01|TAKE BACK RETURN|FOB|ages nag slyly pending|
-3|63|8|6|26|25039.56|0.10|0.02|A|F|1993-10-29|1993-12-18|1993-11-04|TAKE BACK RETURN|RAIL|ges sleep after the caref|
-4|89|10|1|30|29672.40|0.03|0.08|N|O|1996-01-10|1995-12-14|1996-01-18|DELIVER IN PERSON|REG AIR|- quickly regular packages sleep. idly|
-5|109|10|1|15|15136.50|0.02|0.04|R|F|1994-10-31|1994-08-31|1994-11-20|NONE|AIR|ts wake furiously |
-5|124|5|2|26|26627.12|0.07|0.08|R|F|1994-10-16|1994-09-25|1994-10-19|NONE|FOB|sts use slyly quickly special instruc|
-5|38|4|3|50|46901.50|0.08|0.03|A|F|1994-08-08|1994-10-13|1994-08-26|DELIVER IN PERSON|AIR|eodolites. fluffily unusual|
-6|140|6|1|37|38485.18|0.08|0.03|A|F|1992-04-27|1992-05-15|1992-05-02|TAKE BACK RETURN|TRUCK|p furiously special foxes|
-7|183|4|1|12|12998.16|0.07|0.03|N|O|1996-05-07|1996-03-13|1996-06-03|TAKE BACK RETURN|FOB|ss pinto beans wake against th|
-7|146|3|2|9|9415.26|0.08|0.08|N|O|1996-02-01|1996-03-02|1996-02-19|TAKE BACK RETURN|SHIP|es. instructions|
-7|95|8|3|46|45774.14|0.10|0.07|N|O|1996-01-15|1996-03-27|1996-02-03|COLLECT COD|MAIL| unusual reques|
-7|164|5|4|28|29796.48|0.03|0.04|N|O|1996-03-21|1996-04-08|1996-04-20|NONE|FOB|. slyly special requests haggl|
-7|152|4|5|38|39981.70|0.08|0.01|N|O|1996-02-11|1996-02-24|1996-02-18|DELIVER IN PERSON|TRUCK|ns haggle carefully ironic deposits. bl|
-7|80|10|6|35|34302.80|0.06|0.03|N|O|1996-01-16|1996-02-23|1996-01-22|TAKE BACK RETURN|FOB|jole. excuses wake carefully alongside of |
-7|158|3|7|5|5290.75|0.04|0.02|N|O|1996-02-10|1996-03-26|1996-02-13|NONE|FOB|ithely regula|
-32|83|4|1|28|27526.24|0.05|0.08|N|O|1995-10-23|1995-08-27|1995-10-26|TAKE BACK RETURN|TRUCK|sleep quickly. req|
-32|198|10|2|32|35142.08|0.02|0.00|N|O|1995-08-14|1995-10-07|1995-08-27|COLLECT COD|AIR|lithely regular deposits. fluffily |
-32|45|2|3|2|1890.08|0.09|0.02|N|O|1995-08-07|1995-10-07|1995-08-23|DELIVER IN PERSON|AIR| express accounts wake according to the|
-32|3|8|4|4|3612.00|0.09|0.03|N|O|1995-08-04|1995-10-01|1995-09-03|NONE|REG AIR|e slyly final pac|
-32|86|7|5|44|43387.52|0.05|0.06|N|O|1995-08-28|1995-08-20|1995-09-14|DELIVER IN PERSON|AIR|symptotes nag according to the ironic depo|
-32|12|6|6|6|5472.06|0.04|0.03|N|O|1995-07-21|1995-09-23|1995-07-25|COLLECT COD|RAIL| gifts cajole carefully.|
-33|62|7|1|31|29823.86|0.09|0.04|A|F|1993-10-29|1993-12-19|1993-11-08|COLLECT COD|TRUCK|ng to the furiously ironic package|
-33|61|8|2|32|30753.92|0.02|0.05|A|F|1993-12-09|1994-01-04|1993-12-28|COLLECT COD|MAIL|gular theodolites|
-33|138|4|3|5|5190.65|0.05|0.03|A|F|1993-12-09|1993-12-25|1993-12-23|TAKE BACK RETURN|AIR|. stealthily bold exc|
-33|34|5|4|41|38295.23|0.09|0.00|R|F|1993-11-09|1994-01-24|1993-11-11|TAKE BACK RETURN|MAIL|unusual packages doubt caref|
-34|89|10|1|13|12858.04|0.00|0.07|N|O|1998-10-23|1998-09-14|1998-11-06|NONE|REG AIR|nic accounts. deposits are alon|
-34|90|1|2|22|21781.98|0.08|0.06|N|O|1998-10-09|1998-10-16|1998-10-12|NONE|FOB|thely slyly p|
-34|170|7|3|6|6421.02|0.02|0.06|N|O|1998-10-30|1998-09-20|1998-11-05|NONE|FOB|ar foxes sleep |
-35|1|4|1|24|21624.00|0.02|0.00|N|O|1996-02-21|1996-01-03|1996-03-18|TAKE BACK RETURN|FOB|, regular tithe|
-35|162|1|2|34|36113.44|0.06|0.08|N|O|1996-01-22|1996-01-06|1996-01-27|DELIVER IN PERSON|RAIL|s are carefully against the f|
-35|121|4|3|7|7147.84|0.06|0.04|N|O|1996-01-19|1995-12-22|1996-01-29|NONE|MAIL| the carefully regular |
-35|86|7|4|25|24652.00|0.06|0.05|N|O|1995-11-26|1995-12-25|1995-12-21|DELIVER IN PERSON|SHIP| quickly unti|
-35|120|7|5|34|34684.08|0.08|0.06|N|O|1995-11-08|1996-01-15|1995-11-26|COLLECT COD|MAIL|. silent, unusual deposits boost|
-35|31|7|6|28|26068.84|0.03|0.02|N|O|1996-02-01|1995-12-24|1996-02-28|COLLECT COD|RAIL|ly alongside of |
-36|120|1|1|42|42845.04|0.09|0.00|N|O|1996-02-03|1996-01-21|1996-02-23|COLLECT COD|SHIP| careful courts. special |
-37|23|8|1|40|36920.80|0.09|0.03|A|F|1992-07-21|1992-08-01|1992-08-15|NONE|REG AIR|luffily regular requests. slyly final acco|
-37|127|6|2|39|40057.68|0.05|0.02|A|F|1992-07-02|1992-08-18|1992-07-28|TAKE BACK RETURN|RAIL|the final requests. ca|
-37|13|7|3|43|39259.43|0.05|0.08|A|F|1992-07-10|1992-07-06|1992-08-02|DELIVER IN PERSON|TRUCK|iously ste|
-38|176|5|1|44|47351.48|0.04|0.02|N|O|1996-09-29|1996-11-17|1996-09-30|COLLECT COD|MAIL|s. blithely unusual theodolites am|
-39|3|10|1|44|39732.00|0.09|0.06|N|O|1996-11-14|1996-12-15|1996-12-12|COLLECT COD|RAIL|eodolites. careful|
-39|187|8|2|26|28266.68|0.08|0.04|N|O|1996-11-04|1996-10-20|1996-11-20|NONE|FOB|ckages across the slyly silent|
-39|68|3|3|46|44530.76|0.06|0.08|N|O|1996-09-26|1996-12-19|1996-10-26|DELIVER IN PERSON|AIR|he carefully e|
-39|21|6|4|32|29472.64|0.07|0.05|N|O|1996-10-02|1996-12-19|1996-10-14|COLLECT COD|MAIL|heodolites sleep silently pending foxes. ac|
-39|55|10|5|43|41067.15|0.01|0.01|N|O|1996-10-17|1996-11-14|1996-10-26|COLLECT COD|MAIL|yly regular i|
-39|95|7|6|40|39803.60|0.06|0.05|N|O|1996-12-08|1996-10-22|1997-01-01|COLLECT COD|AIR|quickly ironic fox|
-64|86|7|1|21|20707.68|0.05|0.02|R|F|1994-09-30|1994-09-18|1994-10-26|DELIVER IN PERSON|REG AIR|ch slyly final, thin platelets.|
-65|60|5|1|26|24961.56|0.03|0.03|A|F|1995-04-20|1995-04-25|1995-05-13|NONE|TRUCK|pending deposits nag even packages. ca|
-65|74|3|2|22|21429.54|0.00|0.05|N|O|1995-07-17|1995-06-04|1995-07-19|COLLECT COD|FOB| ideas. special, r|
-65|2|5|3|21|18942.00|0.09|0.07|N|O|1995-07-06|1995-05-14|1995-07-31|DELIVER IN PERSON|RAIL|bove the even packages. accounts nag carefu|
-66|116|10|1|31|31499.41|0.00|0.08|R|F|1994-02-19|1994-03-11|1994-02-20|TAKE BACK RETURN|RAIL|ut the unusual accounts sleep at the bo|
-66|174|5|2|41|44040.97|0.04|0.07|A|F|1994-02-21|1994-03-01|1994-03-18|COLLECT COD|AIR| regular de|
-67|22|5|1|4|3688.08|0.09|0.04|N|O|1997-04-17|1997-01-31|1997-04-20|NONE|SHIP| cajole thinly expres|
-67|21|10|2|12|11052.24|0.09|0.05|N|O|1997-01-27|1997-02-21|1997-02-22|NONE|REG AIR| even packages cajole|
-67|174|4|3|5|5370.85|0.03|0.07|N|O|1997-02-20|1997-02-12|1997-02-21|DELIVER IN PERSON|TRUCK|y unusual packages thrash pinto |
-67|88|9|4|44|43475.52|0.08|0.06|N|O|1997-03-18|1997-01-29|1997-04-13|DELIVER IN PERSON|RAIL|se quickly above the even, express reques|
-67|41|10|5|23|21643.92|0.05|0.07|N|O|1997-04-19|1997-02-14|1997-05-06|DELIVER IN PERSON|REG AIR|ly regular deposit|
-67|179|9|6|29|31295.93|0.02|0.05|N|O|1997-01-25|1997-01-27|1997-01-27|DELIVER IN PERSON|FOB|ultipliers |
-68|8|1|1|3|2724.00|0.05|0.02|N|O|1998-07-04|1998-06-05|1998-07-21|NONE|RAIL|fully special instructions cajole. furious|
-68|176|4|2|46|49503.82|0.02|0.05|N|O|1998-06-26|1998-06-07|1998-07-05|NONE|MAIL| requests are unusual, regular pinto |
-68|35|1|3|46|43011.38|0.04|0.05|N|O|1998-08-13|1998-07-08|1998-08-29|NONE|RAIL|egular dependencies affix ironically along |
-68|95|9|4|20|19901.80|0.07|0.01|N|O|1998-06-27|1998-05-23|1998-07-02|NONE|REG AIR| excuses integrate fluffily |
-68|83|4|5|27|26543.16|0.03|0.06|N|O|1998-06-19|1998-06-25|1998-06-29|DELIVER IN PERSON|SHIP|ccounts. deposits use. furiously|
-68|103|6|6|30|30093.00|0.05|0.06|N|O|1998-08-11|1998-07-11|1998-08-14|NONE|RAIL|oxes are slyly blithely fin|
-68|140|6|7|41|42645.74|0.09|0.08|N|O|1998-06-24|1998-06-27|1998-07-06|NONE|SHIP|eposits nag special ideas. furiousl|
-69|116|10|1|48|48773.28|0.01|0.07|A|F|1994-08-17|1994-08-11|1994-09-08|NONE|TRUCK|regular epitaphs. carefully even ideas hag|
-69|105|10|2|32|32163.20|0.08|0.06|A|F|1994-08-24|1994-08-17|1994-08-31|NONE|REG AIR|s sleep carefully bold, |
-69|138|4|3|17|17648.21|0.09|0.00|A|F|1994-07-02|1994-07-07|1994-07-03|TAKE BACK RETURN|AIR|final, pending instr|
-69|38|9|4|3|2814.09|0.09|0.04|R|F|1994-06-06|1994-07-27|1994-06-15|NONE|MAIL| blithely final d|
-69|93|6|5|42|41709.78|0.07|0.04|R|F|1994-07-31|1994-07-26|1994-08-28|DELIVER IN PERSON|REG AIR|tect regular, speci|
-69|19|3|6|23|21137.23|0.05|0.00|A|F|1994-10-03|1994-08-06|1994-10-24|NONE|SHIP|nding accounts ca|
-70|65|2|1|8|7720.48|0.03|0.08|R|F|1994-01-12|1994-02-27|1994-01-14|TAKE BACK RETURN|FOB|ggle. carefully pending dependenc|
-70|197|10|2|13|14263.47|0.06|0.06|A|F|1994-03-03|1994-02-13|1994-03-26|COLLECT COD|AIR|lyly special packag|
-70|180|8|3|1|1080.18|0.03|0.05|R|F|1994-01-26|1994-03-05|1994-01-28|TAKE BACK RETURN|RAIL|quickly. fluffily unusual theodolites c|
-70|46|9|4|11|10406.44|0.01|0.05|A|F|1994-03-17|1994-03-17|1994-03-27|NONE|MAIL|alongside of the deposits. fur|
-70|38|9|5|37|34707.11|0.09|0.04|R|F|1994-02-13|1994-03-16|1994-02-21|COLLECT COD|MAIL|n accounts are. q|
-70|56|8|6|19|18164.95|0.06|0.03|A|F|1994-01-26|1994-02-17|1994-02-06|TAKE BACK RETURN|SHIP| packages wake pending accounts.|
-71|62|3|1|25|24051.50|0.09|0.07|N|O|1998-04-10|1998-04-22|1998-04-11|COLLECT COD|FOB|ckly. slyly|
-71|66|1|2|3|2898.18|0.09|0.07|N|O|1998-05-23|1998-04-03|1998-06-02|COLLECT COD|SHIP|y. pinto beans haggle after the|
-71|35|1|3|45|42076.35|0.00|0.07|N|O|1998-02-23|1998-03-20|1998-03-24|DELIVER IN PERSON|SHIP| ironic packages believe blithely a|
-71|97|9|4|33|32903.97|0.00|0.01|N|O|1998-04-12|1998-03-20|1998-04-15|NONE|FOB| serve quickly fluffily bold deposi|
-71|104|7|5|39|39159.90|0.08|0.06|N|O|1998-01-29|1998-04-07|1998-02-18|DELIVER IN PERSON|RAIL|l accounts sleep across the pack|
-71|196|9|6|34|37270.46|0.04|0.01|N|O|1998-03-05|1998-04-22|1998-03-30|DELIVER IN PERSON|TRUCK|s cajole. |
-96|124|7|1|23|23554.76|0.10|0.06|A|F|1994-07-19|1994-06-29|1994-07-25|DELIVER IN PERSON|TRUCK|ep-- carefully reg|
-96|136|7|2|30|31083.90|0.01|0.06|R|F|1994-06-03|1994-05-29|1994-06-22|DELIVER IN PERSON|TRUCK|e quickly even ideas. furiou|
-97|120|4|1|13|13261.56|0.00|0.02|R|F|1993-04-01|1993-04-04|1993-04-08|NONE|TRUCK|ayers cajole against the furiously|
-97|50|7|2|37|35151.85|0.02|0.06|A|F|1993-04-13|1993-03-30|1993-04-14|DELIVER IN PERSON|SHIP|ic requests boost carefully quic|
-97|78|6|3|19|18583.33|0.06|0.08|R|F|1993-05-14|1993-03-05|1993-05-25|TAKE BACK RETURN|RAIL|gifts. furiously ironic packages cajole. |
-98|41|2|1|28|26349.12|0.06|0.07|A|F|1994-12-24|1994-10-25|1995-01-16|COLLECT COD|REG AIR| pending, regular accounts s|
-98|110|7|2|1|1010.11|0.00|0.00|A|F|1994-12-01|1994-12-12|1994-12-15|DELIVER IN PERSON|TRUCK|. unusual instructions against|
-98|45|6|3|14|13230.56|0.05|0.02|A|F|1994-12-30|1994-11-22|1995-01-27|COLLECT COD|AIR| cajole furiously. blithely ironic ideas |
-98|168|9|4|10|10681.60|0.03|0.03|A|F|1994-10-23|1994-11-08|1994-11-09|COLLECT COD|RAIL| carefully. quickly ironic ideas|
-99|88|9|1|10|9880.80|0.02|0.01|A|F|1994-05-18|1994-06-03|1994-05-23|COLLECT COD|RAIL|kages. requ|
-99|124|5|2|5|5120.60|0.02|0.07|R|F|1994-05-06|1994-05-28|1994-05-20|TAKE BACK RETURN|RAIL|ests cajole fluffily waters. blithe|
-99|135|1|3|42|43475.46|0.02|0.02|A|F|1994-04-19|1994-05-18|1994-04-20|NONE|RAIL|kages are fluffily furiously ir|
-99|109|2|4|36|36327.60|0.09|0.02|A|F|1994-07-04|1994-04-17|1994-07-30|DELIVER IN PERSON|AIR|slyly. slyly e|
-100|63|4|1|28|26965.68|0.04|0.05|N|O|1998-05-08|1998-05-13|1998-06-07|COLLECT COD|TRUCK|sts haggle. slowl|
-100|116|10|2|22|22354.42|0.00|0.07|N|O|1998-06-24|1998-04-12|1998-06-29|DELIVER IN PERSON|SHIP|nto beans alongside of the fi|
-100|47|4|3|46|43563.84|0.03|0.04|N|O|1998-05-02|1998-04-10|1998-05-22|TAKE BACK RETURN|SHIP|ular accounts. even|
-100|39|10|4|14|13146.42|0.06|0.03|N|O|1998-05-22|1998-05-01|1998-06-03|COLLECT COD|MAIL|y. furiously ironic ideas gr|
-100|54|6|5|37|35299.85|0.05|0.00|N|O|1998-03-06|1998-04-16|1998-03-31|TAKE BACK RETURN|TRUCK|nd the quickly s|
-101|119|9|1|49|49936.39|0.10|0.00|N|O|1996-06-21|1996-05-27|1996-06-29|DELIVER IN PERSON|REG AIR|ts-- final packages sleep furiousl|
-101|164|9|2|36|38309.76|0.00|0.01|N|O|1996-05-19|1996-05-01|1996-06-04|DELIVER IN PERSON|AIR|tes. blithely pending dolphins x-ray f|
-101|139|5|3|12|12469.56|0.06|0.02|N|O|1996-03-29|1996-04-20|1996-04-12|COLLECT COD|MAIL|. quickly regular|
-102|89|10|1|37|36595.96|0.06|0.00|N|O|1997-07-24|1997-08-02|1997-08-07|TAKE BACK RETURN|SHIP|ully across the ideas. final deposit|
-102|170|5|2|34|36385.78|0.03|0.08|N|O|1997-08-09|1997-07-28|1997-08-26|TAKE BACK RETURN|SHIP|eposits cajole across|
-102|183|4|3|25|27079.50|0.01|0.01|N|O|1997-07-31|1997-07-24|1997-08-17|NONE|RAIL|bits. ironic accoun|
-102|62|7|4|15|14430.90|0.07|0.07|N|O|1997-06-02|1997-07-13|1997-06-04|DELIVER IN PERSON|SHIP|final packages. carefully even excu|
-103|195|9|1|6|6571.14|0.03|0.05|N|O|1996-10-11|1996-07-25|1996-10-28|NONE|FOB|cajole. carefully ex|
-103|11|5|2|37|33707.37|0.02|0.07|N|O|1996-09-17|1996-07-27|1996-09-20|TAKE BACK RETURN|MAIL|ies. quickly ironic requests use blithely|
-103|29|10|3|23|21367.46|0.01|0.04|N|O|1996-09-11|1996-09-18|1996-09-26|NONE|FOB|ironic accou|
-103|30|9|4|32|29760.96|0.01|0.07|N|O|1996-07-30|1996-08-06|1996-08-04|NONE|RAIL|kages doze. special, regular deposit|
-128|107|10|1|38|38269.80|0.06|0.01|A|F|1992-09-01|1992-08-27|1992-10-01|TAKE BACK RETURN|FOB| cajole careful|
-129|3|6|1|46|41538.00|0.08|0.02|R|F|1993-02-15|1993-01-24|1993-03-05|COLLECT COD|TRUCK|uietly bold theodolites. fluffil|
-129|186|7|2|36|39102.48|0.01|0.02|A|F|1992-11-25|1992-12-25|1992-12-09|TAKE BACK RETURN|REG AIR|packages are care|
-129|40|6|3|33|31021.32|0.04|0.06|A|F|1993-01-08|1993-02-14|1993-01-29|COLLECT COD|SHIP|sts nag bravely. fluffily|
-129|136|7|4|34|35228.42|0.00|0.01|R|F|1993-01-29|1993-02-14|1993-02-10|COLLECT COD|MAIL|quests. express ideas|
-129|32|8|5|24|22368.72|0.06|0.00|A|F|1992-12-07|1993-01-02|1992-12-11|TAKE BACK RETURN|FOB|uests. foxes cajole slyly after the ca|
-129|78|6|6|22|21517.54|0.06|0.01|R|F|1993-02-15|1993-01-31|1993-02-24|COLLECT COD|SHIP|e. fluffily regular |
-129|169|6|7|1|1069.16|0.05|0.04|R|F|1993-01-26|1993-01-08|1993-02-24|DELIVER IN PERSON|FOB|e carefully blithely bold dolp|
-130|129|10|1|14|14407.68|0.08|0.05|A|F|1992-08-15|1992-07-25|1992-09-13|COLLECT COD|RAIL| requests. final instruction|
-130|2|5|2|48|43296.00|0.03|0.02|R|F|1992-07-01|1992-07-12|1992-07-24|NONE|AIR|lithely alongside of the regu|
-130|12|3|3|18|16416.18|0.04|0.08|A|F|1992-07-04|1992-06-14|1992-07-29|DELIVER IN PERSON|MAIL| slyly ironic decoys abou|
-130|116|6|4|13|13209.43|0.09|0.02|R|F|1992-06-26|1992-07-29|1992-07-05|NONE|FOB| pending dolphins sleep furious|
-130|70|7|5|31|30072.17|0.06|0.05|R|F|1992-09-01|1992-07-18|1992-09-02|TAKE BACK RETURN|RAIL|thily about the ruth|
-131|168|7|1|45|48067.20|0.10|0.02|R|F|1994-09-14|1994-09-02|1994-10-04|NONE|FOB|ironic, bold accounts. careful|
-131|45|8|2|50|47252.00|0.02|0.04|A|F|1994-09-17|1994-08-10|1994-09-21|NONE|SHIP|ending requests. final, ironic pearls slee|
-131|190|1|3|4|4360.76|0.04|0.03|A|F|1994-09-20|1994-08-30|1994-09-23|COLLECT COD|REG AIR| are carefully slyly i|
-132|141|8|1|18|18740.52|0.00|0.08|R|F|1993-07-10|1993-08-05|1993-07-13|NONE|TRUCK|ges. platelets wake furio|
-132|120|1|2|43|43865.16|0.01|0.08|R|F|1993-09-01|1993-08-16|1993-09-22|NONE|TRUCK|y pending theodolites|
-132|115|6|3|32|32483.52|0.04|0.04|A|F|1993-07-12|1993-08-05|1993-08-05|COLLECT COD|TRUCK|d instructions hagg|
-132|29|2|4|23|21367.46|0.10|0.00|A|F|1993-06-16|1993-08-27|1993-06-23|DELIVER IN PERSON|AIR|refully blithely bold acco|
-133|104|7|1|27|27110.70|0.00|0.02|N|O|1997-12-21|1998-02-23|1997-12-27|TAKE BACK RETURN|MAIL|yly even gifts after the sl|
-133|177|5|2|12|12926.04|0.02|0.06|N|O|1997-12-02|1998-01-15|1997-12-29|DELIVER IN PERSON|REG AIR|ts cajole fluffily quickly i|
-133|118|8|3|29|29525.19|0.09|0.08|N|O|1998-02-28|1998-01-30|1998-03-09|DELIVER IN PERSON|RAIL| the carefully regular theodoli|
-133|90|1|4|11|10890.99|0.06|0.01|N|O|1998-03-21|1998-01-15|1998-04-04|DELIVER IN PERSON|REG AIR|e quickly across the dolphins|
-134|1|2|1|21|18921.00|0.00|0.03|A|F|1992-07-17|1992-07-08|1992-07-26|COLLECT COD|SHIP|s. quickly regular|
-134|165|2|2|35|37280.60|0.06|0.07|A|F|1992-08-23|1992-06-01|1992-08-24|NONE|MAIL|ajole furiously. instructio|
-134|189|10|3|26|28318.68|0.09|0.06|A|F|1992-06-20|1992-07-12|1992-07-16|NONE|RAIL| among the pending depos|
-134|145|6|4|47|49121.58|0.05|0.00|A|F|1992-08-16|1992-07-06|1992-08-28|NONE|REG AIR|s! carefully unusual requests boost careful|
-134|36|7|5|12|11232.36|0.05|0.02|A|F|1992-07-03|1992-06-01|1992-07-11|COLLECT COD|TRUCK|nts are quic|
-134|134|10|6|12|12409.56|0.00|0.00|A|F|1992-08-08|1992-07-07|1992-08-20|TAKE BACK RETURN|FOB|lyly regular pac|
-135|109|10|1|47|47427.70|0.06|0.08|N|O|1996-02-18|1996-01-01|1996-02-25|COLLECT COD|RAIL|ctions wake slyly abo|
-135|199|3|2|21|23082.99|0.00|0.07|N|O|1996-02-11|1996-01-12|1996-02-13|DELIVER IN PERSON|SHIP| deposits believe. furiously regular p|
-135|158|10|3|33|34918.95|0.02|0.00|N|O|1996-01-03|1995-11-21|1996-02-01|TAKE BACK RETURN|MAIL|ptotes boost slowly care|
-135|68|7|4|34|32914.04|0.02|0.03|N|O|1996-01-12|1996-01-19|1996-02-05|NONE|TRUCK|counts doze against the blithely ironi|
-135|137|8|5|20|20742.60|0.01|0.04|N|O|1996-01-25|1995-11-20|1996-02-09|NONE|MAIL|theodolites. quickly p|
-135|115|5|6|13|13196.43|0.04|0.02|N|O|1995-11-12|1995-12-22|1995-11-17|NONE|FOB|nal ideas. final instr|
-160|15|2|1|36|32940.36|0.07|0.01|N|O|1997-03-11|1997-03-11|1997-03-20|COLLECT COD|MAIL|old, ironic deposits are quickly abov|
-160|87|8|2|22|21715.76|0.00|0.04|N|O|1997-02-18|1997-03-05|1997-03-05|COLLECT COD|RAIL|ncies about the request|
-160|21|10|3|34|31314.68|0.01|0.05|N|O|1997-01-31|1997-03-13|1997-02-14|NONE|FOB|st sleep even gifts. dependencies along|
-161|103|10|1|19|19058.90|0.01|0.01|A|F|1994-12-13|1994-11-19|1994-12-26|DELIVER IN PERSON|TRUCK|, regular sheaves sleep along|
-162|190|1|1|2|2180.38|0.02|0.01|N|O|1995-09-02|1995-06-17|1995-09-08|COLLECT COD|FOB|es! final somas integrate|
-163|168|3|1|43|45930.88|0.01|0.00|N|O|1997-09-19|1997-11-19|1997-10-03|COLLECT COD|REG AIR|al, bold dependencies wake. iron|
-163|121|2|2|13|13274.56|0.01|0.04|N|O|1997-11-11|1997-10-18|1997-12-07|DELIVER IN PERSON|TRUCK|inal requests. even pinto beans hag|
-163|37|3|3|27|25299.81|0.04|0.08|N|O|1997-12-26|1997-11-28|1998-01-05|COLLECT COD|REG AIR|ously express dependen|
-163|193|5|4|5|5465.95|0.02|0.00|N|O|1997-11-17|1997-10-09|1997-12-05|DELIVER IN PERSON|TRUCK| must belie|
-163|127|2|5|12|12325.44|0.10|0.00|N|O|1997-12-18|1997-10-26|1997-12-22|COLLECT COD|TRUCK|ly blithe accounts cajole |
-163|191|4|6|20|21823.80|0.00|0.07|N|O|1997-09-27|1997-11-15|1997-10-07|TAKE BACK RETURN|FOB|tructions integrate b|
-164|92|4|1|26|25794.34|0.09|0.04|A|F|1993-01-04|1992-11-21|1993-01-07|NONE|RAIL|s. blithely special courts are blithel|
-164|19|6|2|24|22056.24|0.05|0.05|R|F|1992-12-22|1992-11-27|1993-01-06|NONE|AIR|side of the slyly unusual theodolites. f|
-164|126|9|3|38|38992.56|0.03|0.06|R|F|1992-12-04|1992-11-23|1993-01-02|TAKE BACK RETURN|AIR|counts cajole fluffily regular packages. b|
-164|18|2|4|32|29376.32|0.05|0.01|R|F|1992-12-21|1992-12-23|1992-12-28|COLLECT COD|RAIL|ts wake again|
-164|148|1|5|43|45070.02|0.06|0.01|R|F|1992-11-26|1993-01-03|1992-12-08|COLLECT COD|RAIL|y carefully regular dep|
-164|109|10|6|27|27245.70|0.10|0.04|R|F|1992-12-23|1993-01-16|1993-01-10|DELIVER IN PERSON|AIR|ayers wake carefully a|
-164|4|7|7|23|20792.00|0.09|0.04|A|F|1992-11-03|1992-12-02|1992-11-12|NONE|REG AIR|ress packages haggle ideas. blithely spec|
-165|34|5|1|3|2802.09|0.01|0.08|R|F|1993-03-29|1993-03-06|1993-04-12|DELIVER IN PERSON|REG AIR|riously requests. depos|
-165|162|7|2|43|45672.88|0.08|0.05|R|F|1993-02-27|1993-04-19|1993-03-03|DELIVER IN PERSON|TRUCK|jole slyly according |
-165|59|1|3|15|14385.75|0.00|0.05|R|F|1993-04-10|1993-03-29|1993-05-01|COLLECT COD|SHIP| bold packages mainta|
-165|140|1|4|49|50966.86|0.07|0.06|A|F|1993-02-20|1993-04-02|1993-03-10|COLLECT COD|REG AIR|uses sleep slyly ruthlessly regular a|
-165|156|4|5|27|28516.05|0.01|0.04|R|F|1993-04-27|1993-03-04|1993-05-13|NONE|MAIL|around the ironic, even orb|
-166|65|2|1|37|35707.22|0.09|0.03|N|O|1995-11-16|1995-10-17|1995-12-13|NONE|MAIL|lar frays wake blithely a|
-166|167|8|2|13|13873.08|0.09|0.05|N|O|1995-11-09|1995-11-18|1995-11-14|COLLECT COD|SHIP|fully above the blithely fina|
-166|100|2|3|41|41004.10|0.07|0.03|N|O|1995-11-13|1995-11-07|1995-12-08|COLLECT COD|FOB|hily along the blithely pending fo|
-166|46|3|4|8|7568.32|0.05|0.02|N|O|1995-12-30|1995-11-29|1996-01-29|DELIVER IN PERSON|RAIL|e carefully bold |
-167|102|3|1|28|28058.80|0.06|0.01|R|F|1993-02-19|1993-02-16|1993-03-03|DELIVER IN PERSON|TRUCK|sly during the u|
-167|172|2|2|27|28948.59|0.09|0.00|R|F|1993-05-01|1993-03-31|1993-05-31|TAKE BACK RETURN|FOB|eans affix furiously-- packages|
-192|98|1|1|23|22956.07|0.00|0.00|N|O|1998-02-05|1998-02-06|1998-03-07|TAKE BACK RETURN|AIR|ly pending theodolites haggle quickly fluf|
-192|162|7|2|20|21243.20|0.07|0.01|N|O|1998-03-13|1998-02-02|1998-03-31|TAKE BACK RETURN|REG AIR|tes. carefu|
-192|111|8|3|15|15166.65|0.09|0.01|N|O|1998-01-30|1998-02-10|1998-02-23|TAKE BACK RETURN|TRUCK|he ironic requests haggle about|
-192|197|1|4|2|2194.38|0.06|0.02|N|O|1998-03-06|1998-02-03|1998-03-24|COLLECT COD|SHIP|s. dependencies nag furiously alongside|
-192|83|4|5|25|24577.00|0.02|0.03|N|O|1998-02-15|1998-01-11|1998-03-17|COLLECT COD|TRUCK|. carefully regular|
-192|142|9|6|45|46896.30|0.00|0.05|N|O|1998-03-11|1998-01-09|1998-04-03|NONE|MAIL|equests. ideas sleep idea|
-193|93|5|1|9|8937.81|0.06|0.06|A|F|1993-09-17|1993-10-08|1993-09-30|COLLECT COD|TRUCK|against the fluffily regular d|
-193|154|6|2|15|15812.25|0.02|0.07|R|F|1993-11-22|1993-10-09|1993-12-05|TAKE BACK RETURN|SHIP|ffily. regular packages d|
-193|94|6|3|23|22864.07|0.06|0.05|A|F|1993-08-21|1993-10-11|1993-09-02|DELIVER IN PERSON|TRUCK|ly even accounts wake blithely bold|
-194|3|6|1|17|15351.00|0.05|0.04|R|F|1992-05-24|1992-05-22|1992-05-30|COLLECT COD|AIR| regular deposi|
-194|184|5|2|1|1084.18|0.04|0.06|R|F|1992-04-30|1992-05-18|1992-05-23|NONE|REG AIR| regular theodolites. regular, iron|
-194|66|1|3|13|12558.78|0.08|0.08|A|F|1992-05-07|1992-06-18|1992-05-10|NONE|AIR|about the blit|
-194|146|7|4|36|37661.04|0.00|0.05|R|F|1992-05-21|1992-05-18|1992-05-27|TAKE BACK RETURN|RAIL|pecial packages wake after the slyly r|
-194|57|2|5|8|7656.40|0.04|0.00|R|F|1992-07-06|1992-06-25|1992-07-11|COLLECT COD|FOB|uriously unusual excuses|
-194|149|6|6|16|16786.24|0.06|0.03|A|F|1992-05-14|1992-06-14|1992-05-21|TAKE BACK RETURN|TRUCK|y regular requests. furious|
-194|168|7|7|21|22431.36|0.02|0.01|R|F|1992-05-06|1992-05-20|1992-05-07|COLLECT COD|REG AIR|accounts detect quickly dogged |
-195|85|6|1|6|5910.48|0.04|0.02|A|F|1994-01-09|1994-03-27|1994-01-28|COLLECT COD|REG AIR|y, even deposits haggle carefully. bli|
-195|94|8|2|41|40757.69|0.05|0.07|A|F|1994-02-24|1994-02-11|1994-03-20|NONE|TRUCK|rts detect in place of t|
-195|86|7|3|34|33526.72|0.08|0.08|R|F|1994-01-31|1994-02-11|1994-02-12|NONE|TRUCK| cajole furiously bold i|
-195|86|7|4|41|40429.28|0.06|0.04|R|F|1994-03-14|1994-03-13|1994-04-09|COLLECT COD|RAIL|ggle fluffily foxes. fluffily ironic ex|
-196|136|7|1|19|19686.47|0.03|0.02|R|F|1993-04-17|1993-05-27|1993-04-30|NONE|SHIP|sts maintain foxes. furiously regular p|
-196|10|3|2|15|13650.15|0.03|0.04|A|F|1993-07-05|1993-05-08|1993-07-06|TAKE BACK RETURN|SHIP|s accounts. furio|
-197|99|1|1|39|38964.51|0.02|0.04|N|O|1995-07-21|1995-07-01|1995-08-14|TAKE BACK RETURN|AIR|press accounts. daringly sp|
-197|178|8|2|8|8625.36|0.09|0.02|A|F|1995-04-17|1995-07-01|1995-04-27|DELIVER IN PERSON|SHIP|y blithely even deposits. blithely fina|
-197|156|4|3|17|17954.55|0.06|0.02|N|O|1995-08-02|1995-06-23|1995-08-03|COLLECT COD|REG AIR|ts. careful|
-197|18|5|4|25|22950.25|0.04|0.01|N|F|1995-06-13|1995-05-23|1995-06-24|TAKE BACK RETURN|FOB|s-- quickly final accounts|
-197|42|9|5|14|13188.56|0.09|0.01|R|F|1995-05-08|1995-05-24|1995-05-12|TAKE BACK RETURN|RAIL|use slyly slyly silent depo|
-197|106|1|6|1|1006.10|0.07|0.05|N|O|1995-07-15|1995-06-21|1995-08-11|COLLECT COD|RAIL| even, thin dependencies sno|
-198|57|8|1|33|31582.65|0.07|0.02|N|O|1998-01-05|1998-03-20|1998-01-10|TAKE BACK RETURN|TRUCK|carefully caref|
-198|16|10|2|20|18320.20|0.03|0.00|N|O|1998-01-15|1998-03-31|1998-01-25|DELIVER IN PERSON|FOB|carefully final escapades a|
-198|149|2|3|15|15737.10|0.04|0.02|N|O|1998-04-12|1998-02-26|1998-04-15|COLLECT COD|MAIL|es. quickly pending deposits s|
-198|11|5|4|35|31885.35|0.08|0.02|N|O|1998-02-27|1998-03-23|1998-03-14|TAKE BACK RETURN|RAIL|ests nod quickly furiously sly pinto be|
-198|102|3|5|33|33069.30|0.02|0.01|N|O|1998-03-22|1998-03-12|1998-04-14|DELIVER IN PERSON|SHIP|ending foxes acr|
-199|133|9|1|50|51656.50|0.02|0.00|N|O|1996-06-12|1996-06-03|1996-07-04|DELIVER IN PERSON|MAIL|essly regular ideas boost sly|
-199|134|5|2|30|31023.90|0.08|0.05|N|O|1996-03-27|1996-05-29|1996-04-14|NONE|TRUCK|ilent packages doze quickly. thinly |
-224|151|2|1|16|16818.40|0.04|0.00|A|F|1994-08-01|1994-07-30|1994-08-27|DELIVER IN PERSON|MAIL|y unusual foxes |
-224|109|2|2|34|34309.40|0.04|0.08|R|F|1994-07-13|1994-08-25|1994-07-31|COLLECT COD|TRUCK| carefully. final platelets |
-224|190|1|3|41|44697.79|0.07|0.04|A|F|1994-09-01|1994-09-15|1994-09-02|TAKE BACK RETURN|SHIP|after the furiou|
-224|167|4|4|12|12805.92|0.08|0.06|R|F|1994-10-12|1994-08-29|1994-10-20|DELIVER IN PERSON|MAIL|uriously regular packages. slyly fina|
-224|94|7|5|45|44734.05|0.07|0.07|R|F|1994-08-14|1994-09-02|1994-08-27|COLLECT COD|AIR|leep furiously regular requests. furiousl|
-224|51|3|6|4|3804.20|0.02|0.00|R|F|1994-09-08|1994-08-24|1994-10-04|DELIVER IN PERSON|FOB|tructions |
-225|172|3|1|4|4288.68|0.09|0.07|N|O|1995-08-05|1995-08-19|1995-09-03|TAKE BACK RETURN|SHIP|ng the ironic packages. asymptotes among |
-225|131|7|2|3|3093.39|0.00|0.08|N|O|1995-07-25|1995-07-08|1995-08-17|DELIVER IN PERSON|REG AIR| fluffily about the carefully bold a|
-225|199|2|3|45|49463.55|0.06|0.01|N|O|1995-08-17|1995-08-20|1995-08-30|TAKE BACK RETURN|FOB|the slyly even platelets use aro|
-225|147|4|4|24|25131.36|0.00|0.06|N|O|1995-09-23|1995-08-05|1995-10-16|COLLECT COD|MAIL|ironic accounts are final account|
-225|8|5|5|31|28148.00|0.04|0.06|N|O|1995-06-21|1995-07-24|1995-07-04|TAKE BACK RETURN|FOB|special platelets. quickly r|
-225|132|8|6|12|12385.56|0.00|0.00|A|F|1995-06-04|1995-07-15|1995-06-08|COLLECT COD|MAIL| unusual requests. bus|
-225|142|1|7|44|45854.16|0.10|0.06|N|O|1995-09-22|1995-08-16|1995-10-22|NONE|REG AIR|leep slyly |
-226|97|9|1|4|3988.36|0.00|0.00|R|F|1993-03-31|1993-04-30|1993-04-10|NONE|TRUCK|c foxes integrate carefully against th|
-226|138|4|2|46|47753.98|0.06|0.01|A|F|1993-07-06|1993-04-24|1993-07-13|COLLECT COD|FOB|s. carefully bold accounts cajol|
-226|38|4|3|35|32831.05|0.09|0.03|A|F|1993-03-31|1993-05-18|1993-04-01|NONE|RAIL|osits cajole. final, even foxes a|
-226|41|10|4|45|42346.80|0.10|0.02|R|F|1993-04-17|1993-05-27|1993-05-11|DELIVER IN PERSON|AIR| carefully pending pi|
-226|118|8|5|2|2036.22|0.07|0.02|R|F|1993-03-26|1993-04-13|1993-04-20|TAKE BACK RETURN|SHIP|al platelets. express somas |
-226|83|4|6|48|47187.84|0.02|0.00|A|F|1993-06-11|1993-05-15|1993-06-19|NONE|REG AIR|efully silent packages. final deposit|
-226|118|8|7|14|14253.54|0.09|0.00|R|F|1993-05-20|1993-06-05|1993-05-27|COLLECT COD|MAIL|ep carefully regular accounts. ironic|
-227|166|1|1|19|20257.04|0.05|0.06|N|O|1995-12-10|1996-01-30|1995-12-26|NONE|RAIL|s cajole furiously a|
-227|175|3|2|24|25804.08|0.07|0.07|N|O|1996-02-03|1995-12-24|1996-02-12|COLLECT COD|SHIP|uses across the blithe dependencies cajol|
-228|5|8|1|3|2715.00|0.10|0.08|A|F|1993-05-20|1993-04-08|1993-05-26|DELIVER IN PERSON|SHIP|ckages. sly|
-229|84|5|1|20|19681.60|0.02|0.03|R|F|1994-01-11|1994-01-31|1994-01-26|DELIVER IN PERSON|REG AIR|le. instructions use across the quickly fin|
-229|129|10|2|29|29844.48|0.07|0.00|A|F|1994-03-15|1994-03-02|1994-03-26|COLLECT COD|SHIP|s, final request|
-229|79|10|3|28|27413.96|0.02|0.02|R|F|1994-02-10|1994-02-02|1994-03-10|DELIVER IN PERSON|FOB| final, regular requests. platel|
-229|177|6|4|3|3231.51|0.02|0.08|R|F|1994-03-22|1994-03-24|1994-04-04|DELIVER IN PERSON|REG AIR|posits. furiously regular theodol|
-229|156|1|5|33|34852.95|0.03|0.06|R|F|1994-03-25|1994-02-11|1994-04-13|NONE|FOB| deposits; bold, ruthless theodolites|
-229|106|9|6|29|29176.90|0.04|0.00|R|F|1994-01-14|1994-02-16|1994-01-22|NONE|FOB|uriously pending |
-230|186|7|1|46|49964.28|0.09|0.00|R|F|1994-02-03|1994-01-15|1994-02-23|TAKE BACK RETURN|SHIP|old packages ha|
-230|195|7|2|6|6571.14|0.03|0.08|A|F|1994-01-26|1994-01-25|1994-02-13|NONE|REG AIR| sleep furiously about the p|
-230|8|5|3|1|908.00|0.07|0.06|R|F|1994-01-22|1994-01-03|1994-02-05|TAKE BACK RETURN|RAIL|blithely unusual dolphins. bold, ex|
-230|10|3|4|44|40040.44|0.08|0.06|R|F|1994-02-09|1994-01-18|1994-03-11|NONE|MAIL|deposits integrate slyly sile|
-230|19|9|5|8|7352.08|0.09|0.06|R|F|1993-11-03|1994-01-20|1993-11-11|TAKE BACK RETURN|TRUCK|g the instructions. fluffil|
-230|34|10|6|8|7472.24|0.00|0.05|R|F|1993-11-21|1994-01-05|1993-12-19|TAKE BACK RETURN|FOB|nal ideas. silent, reg|
-231|159|10|1|16|16946.40|0.04|0.08|R|F|1994-11-20|1994-10-29|1994-12-17|TAKE BACK RETURN|AIR|e furiously ironic pinto beans.|
-231|84|5|2|46|45267.68|0.04|0.05|R|F|1994-12-13|1994-12-02|1994-12-14|DELIVER IN PERSON|SHIP|affix blithely. bold requests among the f|
-231|199|1|3|50|54959.50|0.09|0.01|A|F|1994-12-11|1994-12-14|1994-12-13|NONE|RAIL|onic packages haggle fluffily a|
-231|57|8|4|31|29668.55|0.08|0.02|A|F|1994-11-05|1994-12-27|1994-11-30|TAKE BACK RETURN|SHIP|iously special decoys wake q|
-256|89|10|1|22|21759.76|0.09|0.02|R|F|1994-01-12|1993-12-28|1994-01-26|COLLECT COD|FOB|ke quickly ironic, ironic deposits. reg|
-256|119|6|2|40|40764.40|0.10|0.01|A|F|1993-11-30|1993-12-13|1993-12-02|NONE|FOB|nal theodolites. deposits cajole s|
-256|130|9|3|45|46355.85|0.02|0.08|R|F|1994-01-14|1994-01-17|1994-02-10|COLLECT COD|SHIP| grouches. ideas wake quickly ar|
-257|147|8|1|7|7329.98|0.05|0.02|N|O|1998-06-18|1998-05-15|1998-06-27|COLLECT COD|FOB|ackages sleep bold realms. f|
-258|107|4|1|8|8056.80|0.00|0.07|R|F|1994-01-20|1994-03-21|1994-02-09|NONE|REG AIR|ully about the fluffily silent dependencies|
-258|197|1|2|40|43887.60|0.10|0.01|A|F|1994-03-13|1994-02-23|1994-04-05|DELIVER IN PERSON|FOB|silent frets nod daringly busy, bold|
-258|162|3|3|45|47797.20|0.07|0.07|R|F|1994-03-04|1994-02-13|1994-03-30|DELIVER IN PERSON|TRUCK|regular excuses-- fluffily ruthl|
-258|133|9|4|31|32027.03|0.02|0.05|A|F|1994-04-20|1994-03-20|1994-04-28|COLLECT COD|REG AIR| slyly blithely special mul|
-258|36|2|5|25|23400.75|0.08|0.02|A|F|1994-04-13|1994-02-26|1994-04-29|TAKE BACK RETURN|TRUCK|leep pending packages.|
-258|147|4|6|36|37697.04|0.09|0.04|A|F|1994-01-11|1994-03-04|1994-01-18|DELIVER IN PERSON|AIR|nic asymptotes. slyly silent r|
-259|99|10|1|14|13987.26|0.00|0.08|A|F|1993-12-17|1993-12-09|1993-12-31|COLLECT COD|SHIP|ons against the express acco|
-259|162|1|2|14|14870.24|0.03|0.05|R|F|1993-11-10|1993-11-20|1993-11-17|DELIVER IN PERSON|FOB|ully even, regul|
-259|24|5|3|42|38808.84|0.09|0.00|R|F|1993-10-20|1993-11-18|1993-11-12|NONE|TRUCK|the slyly ironic pinto beans. fi|
-259|196|10|4|3|3288.57|0.08|0.06|R|F|1993-10-04|1993-11-07|1993-10-14|TAKE BACK RETURN|SHIP|ng slyly at the accounts.|
-259|193|6|5|6|6559.14|0.00|0.05|R|F|1993-12-05|1993-12-22|1993-12-21|COLLECT COD|TRUCK| requests sleep|
-260|156|7|1|50|52807.50|0.07|0.08|N|O|1997-03-24|1997-02-09|1997-04-20|TAKE BACK RETURN|REG AIR|c deposits |
-260|183|4|2|26|28162.68|0.02|0.07|N|O|1996-12-12|1997-02-06|1996-12-15|NONE|TRUCK|ld theodolites boost fl|
-260|42|1|3|27|25435.08|0.05|0.08|N|O|1997-03-23|1997-02-15|1997-04-22|TAKE BACK RETURN|RAIL|ions according to the|
-260|6|1|4|29|26274.00|0.10|0.06|N|O|1997-03-15|1997-01-14|1997-04-13|NONE|MAIL|fluffily even asymptotes. express wa|
-260|96|9|5|44|43827.96|0.01|0.05|N|O|1997-03-26|1997-02-03|1997-04-19|DELIVER IN PERSON|MAIL|above the blithely ironic instr|
-261|2|7|1|34|30668.00|0.05|0.08|R|F|1993-08-18|1993-09-24|1993-08-20|COLLECT COD|REG AIR|c packages. asymptotes da|
-261|66|7|2|20|19321.20|0.00|0.06|R|F|1993-10-21|1993-08-02|1993-11-04|DELIVER IN PERSON|RAIL|ites hinder |
-261|174|3|3|28|30076.76|0.08|0.03|R|F|1993-07-24|1993-08-20|1993-08-05|COLLECT COD|AIR|ironic packages nag slyly. carefully fin|
-261|119|3|4|49|49936.39|0.04|0.05|R|F|1993-09-12|1993-08-31|1993-10-07|COLLECT COD|SHIP|ions. bold accounts |
-261|61|6|5|49|47091.94|0.01|0.08|A|F|1993-09-29|1993-09-08|1993-10-01|COLLECT COD|SHIP| pinto beans haggle slyly furiously pending|
-261|97|9|6|20|19941.80|0.06|0.06|A|F|1993-10-15|1993-09-05|1993-11-07|NONE|AIR|ing to the special, ironic deposi|
-262|192|3|1|39|42595.41|0.01|0.05|N|O|1996-01-15|1996-02-18|1996-01-28|COLLECT COD|RAIL|usual, regular requests|
-262|61|6|2|33|31714.98|0.09|0.03|N|O|1996-03-10|1996-01-31|1996-03-27|TAKE BACK RETURN|AIR|atelets sleep furiously. requests cajole. b|
-262|59|1|3|35|33566.75|0.05|0.08|N|O|1996-03-12|1996-02-14|1996-04-11|COLLECT COD|MAIL|lites cajole along the pending packag|
-263|24|9|1|22|20328.44|0.06|0.08|R|F|1994-08-24|1994-06-20|1994-09-09|NONE|FOB|efully express fo|
-263|85|6|2|9|8865.72|0.08|0.00|A|F|1994-07-21|1994-07-16|1994-08-08|TAKE BACK RETURN|TRUCK|lms wake bl|
-263|143|2|3|50|52157.00|0.06|0.04|R|F|1994-08-18|1994-07-31|1994-08-22|NONE|TRUCK|re the packages. special|
-288|51|3|1|31|29482.55|0.00|0.03|N|O|1997-03-17|1997-04-28|1997-04-06|TAKE BACK RETURN|AIR|instructions wa|
-288|117|1|2|49|49838.39|0.08|0.05|N|O|1997-04-19|1997-05-19|1997-05-18|TAKE BACK RETURN|TRUCK|ic excuses sleep always spe|
-288|99|10|3|36|35967.24|0.02|0.02|N|O|1997-02-22|1997-05-07|1997-03-07|TAKE BACK RETURN|TRUCK|yly pending excu|
-288|79|10|4|19|18602.33|0.07|0.07|N|O|1997-03-14|1997-04-04|1997-03-26|NONE|MAIL|deposits. blithely quick courts ar|
-288|162|9|5|31|32926.96|0.10|0.04|N|O|1997-05-29|1997-04-24|1997-06-20|TAKE BACK RETURN|RAIL|ns. fluffily|
-289|174|2|1|25|26854.25|0.07|0.05|N|O|1997-03-18|1997-05-05|1997-04-15|DELIVER IN PERSON|FOB|out the quickly bold theodol|
-289|112|2|2|6|6072.66|0.06|0.05|N|O|1997-02-18|1997-05-08|1997-03-19|DELIVER IN PERSON|SHIP|d packages use fluffily furiously|
-289|17|4|3|44|40348.44|0.10|0.08|N|O|1997-06-05|1997-04-20|1997-07-02|COLLECT COD|MAIL|ly ironic foxes. asymptotes |
-289|40|6|4|48|45121.92|0.01|0.08|N|O|1997-03-14|1997-03-30|1997-03-24|DELIVER IN PERSON|RAIL|sits cajole. bold pinto beans x-ray fl|
-289|47|4|5|13|12311.52|0.10|0.03|N|O|1997-06-08|1997-04-06|1997-06-18|TAKE BACK RETURN|REG AIR|ts. quickly bold deposits alongside|
-290|6|1|1|35|31710.00|0.01|0.02|R|F|1994-04-01|1994-02-05|1994-04-27|NONE|MAIL|ove the final foxes detect slyly fluffily|
-290|129|4|2|2|2058.24|0.05|0.04|A|F|1994-01-30|1994-02-13|1994-02-21|TAKE BACK RETURN|TRUCK|. permanently furious reques|
-290|2|5|3|5|4510.00|0.03|0.05|A|F|1994-01-19|1994-02-24|1994-01-27|NONE|MAIL|ans integrate. requests sleep. fur|
-290|124|9|4|23|23554.76|0.05|0.08|R|F|1994-03-14|1994-02-21|1994-04-09|NONE|AIR|refully unusual packages. |
-291|123|6|1|21|21485.52|0.05|0.07|A|F|1994-05-26|1994-05-10|1994-06-23|COLLECT COD|TRUCK|y quickly regular theodolites. final t|
-291|138|9|2|19|19724.47|0.08|0.02|R|F|1994-06-14|1994-04-25|1994-06-19|NONE|REG AIR|e. ruthlessly final accounts after the|
-291|61|8|3|30|28831.80|0.10|0.02|R|F|1994-03-22|1994-04-30|1994-03-24|DELIVER IN PERSON|FOB| fluffily regular deposits. quickl|
-292|154|5|1|8|8433.20|0.10|0.03|R|F|1992-02-18|1992-03-30|1992-03-18|DELIVER IN PERSON|RAIL|sily bold deposits alongside of the ex|
-292|100|1|2|24|24002.40|0.08|0.04|R|F|1992-03-24|1992-03-06|1992-04-20|COLLECT COD|TRUCK| bold, pending theodolites u|
-293|9|6|1|14|12726.00|0.02|0.05|R|F|1992-10-19|1992-12-23|1992-11-10|DELIVER IN PERSON|SHIP|es. packages above the|
-293|187|8|2|11|11958.98|0.10|0.04|R|F|1992-12-24|1992-12-01|1993-01-12|COLLECT COD|MAIL| affix carefully quickly special idea|
-293|118|8|3|13|13235.43|0.04|0.02|A|F|1992-12-17|1992-12-26|1992-12-22|COLLECT COD|RAIL| wake after the quickly even deposits. bli|
-294|60|2|1|31|29761.86|0.00|0.01|R|F|1993-08-06|1993-08-19|1993-08-13|TAKE BACK RETURN|AIR|le fluffily along the quick|
-295|198|10|1|29|31847.51|0.02|0.07|A|F|1994-11-09|1994-12-08|1994-12-07|COLLECT COD|MAIL|inst the carefully ironic pinto beans. blit|
-295|92|6|2|26|25794.34|0.04|0.03|R|F|1994-12-13|1994-11-30|1995-01-06|DELIVER IN PERSON|AIR|ts above the slyly regular requests x-ray q|
-295|16|10|3|8|7328.08|0.10|0.07|R|F|1995-01-13|1994-11-17|1995-01-25|NONE|TRUCK| final instructions h|
-295|61|10|4|26|24987.56|0.10|0.04|A|F|1995-01-12|1994-11-22|1995-01-22|DELIVER IN PERSON|MAIL| carefully iron|
-320|5|2|1|30|27150.00|0.05|0.01|N|O|1997-12-04|1998-01-21|1997-12-13|NONE|RAIL| ironic, final accounts wake quick de|
-320|193|5|2|13|14211.47|0.03|0.00|N|O|1997-12-16|1997-12-26|1997-12-17|TAKE BACK RETURN|AIR|he furiously regular pinto beans. car|
-321|1|8|1|21|18921.00|0.01|0.08|A|F|1993-07-18|1993-04-24|1993-08-13|TAKE BACK RETURN|REG AIR|hockey players sleep slyly sl|
-321|141|4|2|41|42686.74|0.08|0.07|R|F|1993-06-21|1993-06-07|1993-07-09|NONE|REG AIR|special packages shall have to doze blit|
-322|153|8|1|12|12637.80|0.08|0.07|A|F|1992-06-29|1992-05-30|1992-07-11|NONE|AIR|ular theodolites promise qu|
-322|44|5|2|48|45313.92|0.02|0.07|A|F|1992-06-11|1992-06-16|1992-06-26|COLLECT COD|RAIL|dolites detect qu|
-322|13|3|3|20|18260.20|0.04|0.01|R|F|1992-04-26|1992-05-04|1992-05-22|DELIVER IN PERSON|MAIL|ckly toward |
-322|184|5|4|10|10841.80|0.06|0.03|R|F|1992-04-12|1992-05-13|1992-04-14|DELIVER IN PERSON|AIR| deposits grow slyly according to th|
-322|12|2|5|35|31920.35|0.07|0.06|A|F|1992-07-17|1992-05-03|1992-08-14|TAKE BACK RETURN|RAIL|egular accounts cajole carefully. even d|
-322|34|5|6|3|2802.09|0.08|0.05|A|F|1992-07-03|1992-05-10|1992-07-28|NONE|AIR|ending, ironic deposits along the blith|
-322|38|4|7|5|4690.15|0.01|0.02|A|F|1992-04-15|1992-05-12|1992-04-26|COLLECT COD|REG AIR| special grouches sleep quickly instructio|
-323|164|9|1|50|53208.00|0.05|0.04|A|F|1994-04-20|1994-04-25|1994-05-12|DELIVER IN PERSON|REG AIR|cial requests |
-323|96|8|2|18|17929.62|0.06|0.07|R|F|1994-04-13|1994-06-02|1994-05-10|DELIVER IN PERSON|TRUCK|posits cajole furiously pinto beans. |
-323|143|4|3|9|9388.26|0.07|0.04|A|F|1994-06-26|1994-06-10|1994-07-13|COLLECT COD|TRUCK|nic accounts. regular, regular pack|
-324|200|3|1|26|28605.20|0.07|0.01|R|F|1992-04-19|1992-05-28|1992-05-12|DELIVER IN PERSON|RAIL|ross the slyly regular s|
-325|159|1|1|34|36011.10|0.09|0.04|A|F|1993-10-28|1993-12-13|1993-11-17|TAKE BACK RETURN|MAIL|ly bold deposits. always iron|
-325|186|7|2|5|5430.90|0.07|0.08|A|F|1994-01-02|1994-01-05|1994-01-04|TAKE BACK RETURN|MAIL| theodolites. |
-325|19|3|3|35|32165.35|0.07|0.07|A|F|1993-12-06|1994-01-03|1993-12-26|DELIVER IN PERSON|REG AIR|packages wa|
-326|180|9|1|41|44287.38|0.06|0.03|N|O|1995-08-30|1995-07-09|1995-09-12|DELIVER IN PERSON|TRUCK|ily quickly bold ideas.|
-326|20|4|2|38|34960.76|0.02|0.08|N|O|1995-09-12|1995-08-23|1995-09-14|COLLECT COD|RAIL|es sleep slyly. carefully regular inst|
-326|184|5|3|25|27104.50|0.03|0.04|N|O|1995-08-03|1995-07-27|1995-08-16|NONE|AIR|ily furiously unusual accounts. |
-326|85|6|4|5|4925.40|0.03|0.08|N|O|1995-07-29|1995-07-13|1995-08-12|NONE|REG AIR|deas sleep according to the sometimes spe|
-326|35|6|5|31|28985.93|0.04|0.08|N|O|1995-09-27|1995-07-06|1995-10-22|NONE|TRUCK|cies sleep quick|
-326|157|9|6|41|43343.15|0.02|0.00|N|O|1995-07-05|1995-07-23|1995-07-20|TAKE BACK RETURN|REG AIR|to beans wake before the furiously re|
-326|43|10|7|47|44322.88|0.04|0.04|N|O|1995-09-16|1995-07-04|1995-10-04|NONE|REG AIR| special accounts sleep |
-327|144|3|1|16|16706.24|0.03|0.01|N|O|1995-07-05|1995-06-07|1995-07-09|TAKE BACK RETURN|TRUCK|cial ideas sleep af|
-327|42|9|2|9|8478.36|0.09|0.05|A|F|1995-05-24|1995-07-11|1995-06-05|NONE|AIR| asymptotes are fu|
-352|64|5|1|17|16389.02|0.07|0.05|R|F|1994-06-02|1994-05-31|1994-06-29|NONE|FOB|pending deposits sleep furiously |
-353|120|7|1|41|41824.92|0.00|0.06|A|F|1994-03-25|1994-03-31|1994-03-30|DELIVER IN PERSON|AIR|refully final theodoli|
-353|148|9|2|29|30396.06|0.09|0.00|A|F|1994-01-11|1994-03-19|1994-02-09|COLLECT COD|FOB|ctions impr|
-353|135|1|3|12|12421.56|0.06|0.01|R|F|1994-01-02|1994-03-26|1994-01-19|DELIVER IN PERSON|RAIL|g deposits cajole |
-353|78|7|4|46|44991.22|0.00|0.04|A|F|1994-04-14|1994-01-31|1994-05-05|DELIVER IN PERSON|FOB| ironic dolphins |
-353|117|4|5|9|9153.99|0.02|0.02|A|F|1994-03-15|1994-03-20|1994-03-18|TAKE BACK RETURN|RAIL|ual accounts! carefu|
-353|103|4|6|39|39120.90|0.02|0.05|A|F|1994-01-15|1994-03-30|1994-02-01|NONE|MAIL|losely quickly even accounts. c|
-354|50|7|1|14|13300.70|0.08|0.04|N|O|1996-04-12|1996-06-03|1996-05-08|NONE|SHIP|quickly regular grouches will eat. careful|
-354|194|8|2|24|26260.56|0.01|0.01|N|O|1996-05-08|1996-05-17|1996-06-07|DELIVER IN PERSON|AIR|y silent requests. regular, even accounts|
-354|59|10|3|50|47952.50|0.08|0.05|N|O|1996-03-21|1996-05-20|1996-04-04|COLLECT COD|TRUCK|to beans s|
-354|107|4|4|7|7049.70|0.06|0.01|N|O|1996-05-07|1996-04-18|1996-05-24|NONE|MAIL|ously idly ironic accounts-- quickl|
-354|31|2|5|18|16758.54|0.04|0.08|N|O|1996-03-31|1996-05-13|1996-04-27|DELIVER IN PERSON|RAIL| about the carefully unusual |
-354|62|1|6|36|34634.16|0.03|0.02|N|O|1996-03-19|1996-05-29|1996-03-30|NONE|AIR|onic requests thrash bold g|
-354|5|10|7|14|12670.00|0.01|0.07|N|O|1996-07-06|1996-06-08|1996-07-10|TAKE BACK RETURN|MAIL|t thinly above the ironic, |
-355|114|1|1|31|31437.41|0.09|0.07|A|F|1994-07-13|1994-08-18|1994-07-18|DELIVER IN PERSON|FOB|y unusual, ironic|
-355|97|1|2|41|40880.69|0.05|0.00|A|F|1994-08-15|1994-07-19|1994-09-06|DELIVER IN PERSON|TRUCK| deposits. carefully r|
-356|46|7|1|4|3784.16|0.10|0.01|A|F|1994-07-28|1994-08-01|1994-08-04|DELIVER IN PERSON|REG AIR| the dependencies nod unusual, final ac|
-356|108|3|2|48|48388.80|0.02|0.03|R|F|1994-08-12|1994-07-31|1994-08-26|NONE|FOB|unusual packages. furiously |
-356|119|3|3|35|35668.85|0.08|0.07|R|F|1994-10-14|1994-07-31|1994-10-23|COLLECT COD|TRUCK|s. unusual, final|
-356|56|1|4|41|39198.05|0.07|0.05|A|F|1994-09-28|1994-09-20|1994-10-07|COLLECT COD|SHIP| according to the express foxes will|
-356|125|8|5|37|37929.44|0.05|0.03|A|F|1994-07-15|1994-08-24|1994-08-09|DELIVER IN PERSON|FOB|ndencies are since the packag|
-357|114|5|1|26|26366.86|0.06|0.03|N|O|1996-12-28|1996-11-26|1997-01-13|NONE|FOB| carefully pending accounts use a|
-357|186|7|2|36|39102.48|0.07|0.06|N|O|1996-12-28|1996-11-13|1997-01-24|DELIVER IN PERSON|AIR|d the carefully even requests. |
-357|165|2|3|32|34085.12|0.05|0.07|N|O|1997-01-28|1996-12-29|1997-02-14|NONE|MAIL|y above the carefully final accounts|
-358|191|3|1|41|44738.79|0.06|0.01|A|F|1993-11-18|1993-11-14|1993-11-28|NONE|TRUCK|ely frets. furious deposits sleep |
-358|190|1|2|32|34886.08|0.05|0.08|A|F|1993-10-18|1993-12-12|1993-10-31|NONE|TRUCK|y final foxes sleep blithely sl|
-358|169|6|3|40|42766.40|0.09|0.01|A|F|1993-12-05|1993-11-04|1994-01-01|COLLECT COD|MAIL|ng the ironic theo|
-358|97|10|4|15|14956.35|0.08|0.08|A|F|1993-10-04|1993-12-17|1993-10-23|TAKE BACK RETURN|MAIL|out the blithely ironic deposits slee|
-358|29|2|5|18|16722.36|0.01|0.02|R|F|1993-10-07|1993-11-01|1993-10-26|COLLECT COD|SHIP|olphins haggle ironic accounts. f|
-358|162|3|6|32|33989.12|0.03|0.05|R|F|1993-12-21|1993-11-06|1994-01-17|DELIVER IN PERSON|RAIL|lyly express deposits |
-358|83|4|7|45|44238.60|0.05|0.02|A|F|1993-12-08|1993-10-29|1993-12-30|NONE|REG AIR|to beans. regular, unusual deposits sl|
-359|166|7|1|30|31984.80|0.00|0.08|A|F|1995-01-06|1995-02-20|1995-01-20|TAKE BACK RETURN|AIR|uses detect spec|
-359|12|9|2|18|16416.18|0.00|0.03|A|F|1995-01-27|1995-03-18|1995-01-31|DELIVER IN PERSON|RAIL|unusual warthogs. ironically sp|
-359|132|8|3|17|17546.21|0.07|0.06|A|F|1995-01-31|1995-03-18|1995-02-10|COLLECT COD|SHIP|sts according to the blithely|
-359|90|1|4|38|37623.42|0.10|0.08|R|F|1995-03-30|1995-01-20|1995-04-25|DELIVER IN PERSON|RAIL|g furiously. regular, sile|
-359|168|5|5|11|11749.76|0.01|0.03|A|F|1995-02-15|1995-01-27|1995-02-18|NONE|FOB|rets wake blithely. slyly final dep|
-359|183|4|6|23|24913.14|0.04|0.07|R|F|1995-01-31|1995-03-11|1995-02-16|DELIVER IN PERSON|REG AIR|ic courts snooze quickly furiously final fo|
-384|179|8|1|38|41008.46|0.07|0.01|R|F|1992-06-02|1992-04-18|1992-06-10|DELIVER IN PERSON|TRUCK|totes cajole blithely against the even|
-384|64|3|2|49|47238.94|0.09|0.07|A|F|1992-04-01|1992-04-25|1992-04-18|COLLECT COD|AIR|refully carefully ironic instructions. bl|
-384|182|3|3|11|11903.98|0.02|0.08|A|F|1992-04-02|1992-04-21|1992-04-15|COLLECT COD|MAIL|ash carefully|
-384|93|6|4|11|10923.99|0.00|0.06|R|F|1992-06-24|1992-05-29|1992-07-22|COLLECT COD|TRUCK|nic excuses are furiously above the blith|
-384|132|8|5|14|14449.82|0.08|0.06|R|F|1992-06-14|1992-05-29|1992-07-05|DELIVER IN PERSON|TRUCK|ckages are slyly after the slyly specia|
-385|167|6|1|7|7470.12|0.05|0.06|N|O|1996-05-23|1996-05-09|1996-06-06|DELIVER IN PERSON|REG AIR| special asymptote|
-385|54|9|2|46|43886.30|0.08|0.07|N|O|1996-03-29|1996-05-17|1996-04-18|NONE|REG AIR|lthily ironic f|
-386|153|5|1|39|41072.85|0.10|0.07|A|F|1995-05-10|1995-02-28|1995-05-25|NONE|SHIP|hely. carefully regular accounts hag|
-386|69|4|2|16|15504.96|0.06|0.01|A|F|1995-04-12|1995-04-18|1995-05-11|DELIVER IN PERSON|MAIL|lithely fluffi|
-386|131|2|3|37|38151.81|0.09|0.04|A|F|1995-05-23|1995-03-01|1995-05-25|TAKE BACK RETURN|MAIL|ending pearls breach fluffily. slyly pen|
-387|137|8|1|1|1037.13|0.08|0.03|N|O|1997-05-06|1997-04-23|1997-05-10|NONE|SHIP| pinto beans wake furiously carefu|
-387|153|4|2|42|44232.30|0.07|0.05|N|O|1997-05-25|1997-02-25|1997-05-29|DELIVER IN PERSON|RAIL|lithely final theodolites.|
-387|97|10|3|40|39883.60|0.09|0.02|N|O|1997-03-08|1997-04-18|1997-03-31|COLLECT COD|TRUCK| quickly ironic platelets are slyly. fluff|
-387|56|7|4|19|18164.95|0.08|0.00|N|O|1997-03-14|1997-04-21|1997-04-04|NONE|REG AIR|gular dependencies|
-387|149|6|5|32|33572.48|0.08|0.06|N|O|1997-05-02|1997-04-11|1997-05-11|DELIVER IN PERSON|TRUCK|gle. silent, fur|
-388|33|9|1|42|39187.26|0.05|0.06|R|F|1993-02-21|1993-02-26|1993-03-15|COLLECT COD|FOB|accounts sleep furiously|
-388|128|9|2|46|47293.52|0.07|0.01|A|F|1993-03-22|1993-01-26|1993-03-24|COLLECT COD|FOB|to beans nag about the careful reque|
-388|65|2|3|40|38602.40|0.06|0.01|A|F|1992-12-24|1993-01-28|1993-01-19|TAKE BACK RETURN|REG AIR|quests against the carefully unusual epi|
-389|190|1|1|2|2180.38|0.09|0.00|R|F|1994-04-13|1994-04-10|1994-04-25|TAKE BACK RETURN|RAIL|fts. courts eat blithely even dependenc|
-390|107|10|1|10|10071.00|0.02|0.05|N|O|1998-05-26|1998-07-06|1998-06-23|TAKE BACK RETURN|SHIP| requests. final accounts x-ray beside the|
-390|124|7|2|17|17410.04|0.09|0.06|N|O|1998-06-07|1998-06-14|1998-07-07|COLLECT COD|SHIP|ending, pending pinto beans wake slyl|
-390|184|5|3|46|49872.28|0.07|0.04|N|O|1998-06-06|1998-05-20|1998-06-14|DELIVER IN PERSON|SHIP|cial excuses. bold, pending packages|
-390|142|3|4|42|43769.88|0.01|0.05|N|O|1998-06-06|1998-06-22|1998-07-05|COLLECT COD|SHIP|counts nag across the sly, sil|
-390|128|3|5|13|13365.56|0.02|0.06|N|O|1998-07-08|1998-05-10|1998-07-18|DELIVER IN PERSON|SHIP|sleep carefully idle packages. blithely |
-390|125|4|6|11|11276.32|0.09|0.06|N|O|1998-05-05|1998-05-15|1998-06-01|DELIVER IN PERSON|SHIP|according to the foxes are furiously |
-390|85|6|7|24|23641.92|0.05|0.02|N|O|1998-04-18|1998-05-19|1998-04-28|TAKE BACK RETURN|AIR|y. enticingly final depos|
-391|122|1|1|14|14309.68|0.09|0.02|R|F|1995-02-11|1995-02-03|1995-02-13|TAKE BACK RETURN|TRUCK| escapades sleep furiously about |
-416|94|6|1|25|24852.25|0.00|0.05|A|F|1993-10-11|1993-11-26|1993-10-21|DELIVER IN PERSON|TRUCK|y final theodolites about|
-416|111|1|2|22|22244.42|0.10|0.00|R|F|1993-12-27|1993-12-17|1994-01-09|COLLECT COD|RAIL|rint blithely above the pending sentim|
-416|175|5|3|25|26879.25|0.07|0.01|R|F|1993-10-16|1993-12-03|1993-10-29|NONE|AIR|ses boost after the bold requests.|
-417|40|1|1|39|36661.56|0.01|0.02|A|F|1994-05-31|1994-05-02|1994-06-06|NONE|SHIP|y regular requests wake along |
-417|70|7|2|18|17461.26|0.00|0.01|R|F|1994-03-29|1994-04-10|1994-04-26|TAKE BACK RETURN|FOB|- final requests sle|
-417|45|2|3|41|38746.64|0.10|0.01|R|F|1994-04-11|1994-03-08|1994-05-06|COLLECT COD|RAIL|tes. regular requests across the |
-417|132|3|4|2|2064.26|0.01|0.03|R|F|1994-02-13|1994-04-19|1994-03-15|DELIVER IN PERSON|SHIP|uriously bol|
-418|19|3|1|31|28489.31|0.00|0.03|N|F|1995-06-05|1995-06-18|1995-06-26|COLLECT COD|FOB|final theodolites. fluffil|
-418|2|5|2|1|902.00|0.04|0.07|N|O|1995-06-23|1995-06-16|1995-07-23|DELIVER IN PERSON|AIR|regular, silent pinto|
-418|35|1|3|3|2805.09|0.04|0.06|N|O|1995-06-29|1995-07-12|1995-07-01|COLLECT COD|AIR|ly furiously regular w|
-419|153|8|1|33|34753.95|0.05|0.02|N|O|1996-11-06|1996-12-25|1996-11-20|TAKE BACK RETURN|TRUCK|y above the bli|
-419|65|2|2|32|30881.92|0.01|0.06|N|O|1996-12-04|1996-12-04|1996-12-24|COLLECT COD|SHIP|blithely regular requests. special pinto|
-419|71|1|3|15|14566.05|0.07|0.04|N|O|1996-12-17|1996-11-28|1996-12-19|TAKE BACK RETURN|REG AIR| sleep final, regular theodolites. fluffi|
-419|9|6|4|15|13635.00|0.01|0.02|N|O|1997-01-09|1996-12-22|1997-01-25|COLLECT COD|FOB|of the careful, thin theodolites. quickly s|
-419|149|2|5|17|17835.38|0.01|0.00|N|O|1997-01-13|1996-12-20|1997-02-01|COLLECT COD|REG AIR|lar dependencies: carefully regu|
-420|101|6|1|5|5005.50|0.04|0.03|N|O|1995-11-04|1996-01-02|1995-11-30|NONE|REG AIR|cajole blit|
-420|162|7|2|22|23367.52|0.05|0.04|N|O|1996-01-25|1995-12-16|1996-02-03|TAKE BACK RETURN|AIR|ly against the blithely re|
-420|48|1|3|45|42661.80|0.09|0.08|N|O|1996-01-14|1996-01-01|1996-01-26|COLLECT COD|FOB| final accounts. furiously express forges|
-420|75|6|4|12|11700.84|0.08|0.08|N|O|1996-02-05|1996-01-03|1996-02-12|TAKE BACK RETURN|REG AIR|c instructions are |
-420|73|2|5|37|36003.59|0.02|0.00|N|O|1995-11-16|1995-12-13|1995-11-19|DELIVER IN PERSON|SHIP|rbits. bold requests along the quickl|
-420|124|7|6|40|40964.80|0.01|0.05|N|O|1995-11-26|1995-12-26|1995-12-20|TAKE BACK RETURN|FOB| after the special|
-420|16|7|7|39|35724.39|0.00|0.08|N|O|1995-12-09|1995-12-16|1995-12-31|DELIVER IN PERSON|REG AIR|s. ironic waters about the car|
-421|134|5|1|1|1034.13|0.02|0.07|R|F|1992-05-29|1992-04-27|1992-06-09|NONE|TRUCK|oldly busy deposit|
-422|152|10|1|25|26303.75|0.10|0.07|N|O|1997-07-01|1997-08-17|1997-07-09|DELIVER IN PERSON|SHIP|carefully bold theodolit|
-422|171|1|2|10|10711.70|0.02|0.03|N|O|1997-06-15|1997-08-04|1997-07-08|TAKE BACK RETURN|AIR|he furiously ironic theodolite|
-422|176|4|3|46|49503.82|0.09|0.00|N|O|1997-06-21|1997-07-14|1997-06-27|DELIVER IN PERSON|RAIL| ideas. qu|
-422|162|7|4|25|26554.00|0.10|0.04|N|O|1997-08-24|1997-07-09|1997-09-22|NONE|FOB|ep along the furiousl|
-423|132|3|1|27|27867.51|0.06|0.03|N|O|1996-08-20|1996-08-01|1996-08-23|TAKE BACK RETURN|SHIP|ccounts. blithely regular pack|
-448|126|7|1|4|4104.48|0.00|0.04|N|O|1995-11-25|1995-10-20|1995-11-26|TAKE BACK RETURN|MAIL|nts thrash quickly among the b|
-448|173|1|2|46|49365.82|0.05|0.00|N|O|1995-08-31|1995-09-30|1995-09-09|COLLECT COD|SHIP| to the fluffily ironic packages.|
-448|27|6|3|35|32445.70|0.10|0.08|N|O|1995-09-27|1995-11-19|1995-10-20|COLLECT COD|REG AIR|ses nag quickly quickly ir|
-448|170|1|4|8|8561.36|0.10|0.00|N|O|1995-11-02|1995-10-16|1995-11-15|COLLECT COD|TRUCK|ounts wake blithely. furiously pending|
-448|138|9|5|23|23876.99|0.02|0.05|N|O|1995-09-26|1995-11-02|1995-10-17|NONE|SHIP|ious, final gifts|
-449|152|7|1|12|12625.80|0.02|0.08|N|O|1995-11-06|1995-08-25|1995-11-18|TAKE BACK RETURN|SHIP|ly. blithely ironic |
-449|109|6|2|4|4036.40|0.10|0.06|N|O|1995-10-27|1995-09-14|1995-11-21|DELIVER IN PERSON|FOB|are fluffily. requests are furiously|
-449|10|1|3|3|2730.03|0.07|0.08|N|O|1995-07-28|1995-09-11|1995-08-01|NONE|RAIL| bold deposits. express theodolites haggle|
-449|158|3|4|22|23279.30|0.07|0.00|N|O|1995-08-17|1995-09-04|1995-09-10|COLLECT COD|FOB|furiously final theodolites eat careful|
-450|162|7|1|42|44610.72|0.03|0.00|N|F|1995-06-07|1995-05-29|1995-06-23|TAKE BACK RETURN|SHIP|y asymptotes. regular depen|
-450|107|8|2|5|5035.50|0.03|0.02|A|F|1995-04-02|1995-05-06|1995-04-13|TAKE BACK RETURN|TRUCK|the pinto bea|
-450|143|6|3|32|33380.48|0.06|0.03|N|O|1995-07-02|1995-04-25|1995-07-30|TAKE BACK RETURN|SHIP| accounts nod fluffily even, pending|
-450|57|9|4|40|38282.00|0.05|0.03|R|F|1995-03-20|1995-05-25|1995-04-14|NONE|RAIL|ve. asymptote|
-450|79|10|5|2|1958.14|0.09|0.00|A|F|1995-03-11|1995-05-21|1995-03-16|COLLECT COD|AIR|y even pinto beans; qui|
-450|153|1|6|33|34753.95|0.08|0.05|R|F|1995-05-18|1995-05-22|1995-05-23|TAKE BACK RETURN|REG AIR|ily carefully final depo|
-451|130|9|1|36|37084.68|0.02|0.06|N|O|1998-06-18|1998-08-14|1998-06-20|TAKE BACK RETURN|AIR|rges can haggle carefully ironic, dogged |
-451|33|4|2|42|39187.26|0.05|0.01|N|O|1998-08-01|1998-08-05|1998-08-30|DELIVER IN PERSON|TRUCK|express excuses. blithely ironic pin|
-451|87|8|3|1|987.08|0.07|0.05|N|O|1998-07-13|1998-07-03|1998-08-04|DELIVER IN PERSON|AIR| carefully ironic packages solve furiously |
-451|77|5|4|28|27357.96|0.04|0.05|N|O|1998-06-16|1998-07-09|1998-06-17|DELIVER IN PERSON|SHIP| theodolites. even cou|
-452|115|6|1|2|2030.22|0.04|0.03|N|O|1997-12-26|1998-01-03|1998-01-12|COLLECT COD|FOB|y express instru|
-453|198|1|1|45|49418.55|0.01|0.00|N|O|1997-06-30|1997-08-20|1997-07-19|COLLECT COD|REG AIR|ifts wake carefully.|
-453|176|4|2|38|40894.46|0.08|0.04|N|O|1997-06-30|1997-07-08|1997-07-16|DELIVER IN PERSON|REG AIR| furiously f|
-453|14|1|3|38|34732.38|0.10|0.01|N|O|1997-08-10|1997-07-24|1997-09-07|NONE|SHIP|sts cajole. furiously un|
-453|96|7|4|45|44824.05|0.10|0.01|N|O|1997-09-18|1997-06-29|1997-10-14|TAKE BACK RETURN|AIR|ironic foxes. slyly pending depos|
-453|26|1|5|32|29632.64|0.04|0.01|N|O|1997-07-15|1997-06-27|1997-07-18|NONE|REG AIR|s. fluffily bold packages cajole. unu|
-453|95|7|6|28|27862.52|0.07|0.07|N|O|1997-08-16|1997-08-12|1997-08-27|NONE|MAIL|final dependencies. slyly special pl|
-454|118|8|1|24|24434.64|0.06|0.01|N|O|1996-04-26|1996-03-23|1996-05-20|NONE|TRUCK|le. deposits after the ideas nag unusual pa|
-455|157|9|1|42|44400.30|0.10|0.02|N|O|1997-01-26|1997-01-10|1997-02-22|DELIVER IN PERSON|REG AIR|around the quickly blit|
-455|28|9|2|44|40832.88|0.05|0.08|N|O|1997-01-17|1997-02-22|1997-02-12|TAKE BACK RETURN|TRUCK| accounts sleep slyly ironic asymptote|
-455|49|2|3|45|42706.80|0.04|0.06|N|O|1996-12-20|1997-01-31|1997-01-07|TAKE BACK RETURN|SHIP|thrash ironically regular packages. qui|
-455|171|9|4|11|11782.87|0.01|0.02|N|O|1997-03-15|1997-02-14|1997-03-26|DELIVER IN PERSON|MAIL|g deposits against the slyly idle foxes u|
-480|53|4|1|22|20967.10|0.04|0.02|A|F|1993-06-16|1993-07-28|1993-07-09|NONE|MAIL|into beans cajole furiously. accounts s|
-481|19|9|1|17|15623.17|0.07|0.05|A|F|1992-10-21|1992-12-09|1992-11-19|DELIVER IN PERSON|MAIL|. quickly final accounts among the |
-481|21|2|2|19|17499.38|0.08|0.01|R|F|1993-01-09|1992-11-27|1993-01-14|TAKE BACK RETURN|AIR|p blithely after t|
-481|186|7|3|42|45619.56|0.08|0.08|A|F|1992-11-27|1992-11-11|1992-12-08|COLLECT COD|RAIL|mptotes are furiously among the iron|
-481|82|3|4|11|10802.88|0.05|0.06|A|F|1993-01-12|1992-11-17|1993-02-05|NONE|FOB|eful attai|
-481|112|9|5|31|31375.41|0.05|0.01|A|F|1993-01-15|1992-12-31|1993-01-21|DELIVER IN PERSON|AIR|usly final packages believe. quick|
-482|138|9|1|32|33220.16|0.00|0.02|N|O|1996-05-22|1996-05-14|1996-05-29|NONE|SHIP|usual deposits affix against |
-482|122|5|2|1|1022.12|0.05|0.08|N|O|1996-05-29|1996-05-20|1996-05-31|COLLECT COD|AIR|es. quickly ironic escapades sleep furious|
-482|62|9|3|31|29823.86|0.04|0.03|N|O|1996-06-01|1996-05-06|1996-06-17|NONE|MAIL| blithe pin|
-482|196|7|4|8|8769.52|0.02|0.05|N|O|1996-04-19|1996-05-05|1996-04-21|NONE|TRUCK|tructions near the final, regular ideas de|
-482|39|10|5|46|43195.38|0.01|0.06|N|O|1996-07-19|1996-06-05|1996-08-10|NONE|MAIL|furiously thin realms. final, fina|
-482|79|10|6|19|18602.33|0.04|0.00|N|O|1996-03-27|1996-04-25|1996-04-15|NONE|FOB|ts hinder carefully silent requests|
-483|33|9|1|8|7464.24|0.00|0.08|N|O|1995-08-22|1995-08-23|1995-09-18|COLLECT COD|RAIL|osits. carefully fin|
-483|80|1|2|23|22541.84|0.04|0.06|N|O|1995-07-20|1995-08-11|1995-08-04|DELIVER IN PERSON|MAIL|requests was quickly against th|
-483|88|9|3|9|8892.72|0.04|0.03|N|O|1995-09-10|1995-09-02|1995-09-13|NONE|AIR| carefully express ins|
-484|31|2|1|49|45620.47|0.10|0.02|N|O|1997-03-06|1997-02-28|1997-03-23|COLLECT COD|TRUCK|ven accounts|
-484|32|8|2|45|41941.35|0.06|0.07|N|O|1997-04-09|1997-03-20|1997-04-19|DELIVER IN PERSON|TRUCK|usly final excuses boost slyly blithe|
-484|184|5|3|50|54209.00|0.06|0.05|N|O|1997-01-24|1997-03-27|1997-02-22|DELIVER IN PERSON|MAIL|uctions wake. final, silent requests haggle|
-484|165|6|4|22|23433.52|0.07|0.03|N|O|1997-04-29|1997-03-26|1997-05-17|TAKE BACK RETURN|SHIP|es are pending instructions. furiously unu|
-484|77|6|5|48|46899.36|0.00|0.05|N|O|1997-03-05|1997-02-08|1997-03-22|TAKE BACK RETURN|MAIL|l, bold packages? even mult|
-484|97|9|6|10|9970.90|0.01|0.08|N|O|1997-04-06|1997-02-14|1997-04-16|COLLECT COD|FOB|x fluffily carefully regular|
-485|150|1|1|50|52507.50|0.01|0.00|N|O|1997-03-28|1997-05-26|1997-04-18|TAKE BACK RETURN|MAIL|iously quick excuses. carefully final f|
-485|28|7|2|40|37120.80|0.08|0.01|N|O|1997-04-29|1997-05-08|1997-04-30|TAKE BACK RETURN|TRUCK|al escapades|
-485|137|3|3|22|22816.86|0.00|0.05|N|O|1997-04-06|1997-04-27|1997-05-01|DELIVER IN PERSON|TRUCK|refully final notornis haggle according |
-486|76|7|1|36|35138.52|0.00|0.01|N|O|1996-06-25|1996-05-06|1996-07-07|COLLECT COD|AIR|deposits around the quickly regular packa|
-486|68|9|2|40|38722.40|0.03|0.08|N|O|1996-05-21|1996-06-06|1996-06-07|COLLECT COD|SHIP|ts nag quickly among the slyl|
-486|136|2|3|26|26939.38|0.04|0.03|N|O|1996-03-16|1996-05-25|1996-03-31|NONE|RAIL|forges along the |
-486|72|1|4|38|36938.66|0.08|0.05|N|O|1996-05-07|1996-04-26|1996-05-26|TAKE BACK RETURN|TRUCK| blithely final pinto |
-486|29|2|5|3|2787.06|0.07|0.05|N|O|1996-07-07|1996-04-20|1996-07-23|DELIVER IN PERSON|RAIL|ccounts ha|
-486|47|4|6|46|43563.84|0.00|0.03|N|O|1996-04-18|1996-05-02|1996-04-20|COLLECT COD|AIR|theodolites eat carefully furious|
-487|92|3|1|47|46628.23|0.06|0.06|R|F|1992-09-30|1992-10-08|1992-10-24|NONE|TRUCK|tions. blithely reg|
-487|83|4|2|2|1966.16|0.02|0.06|R|F|1992-10-19|1992-11-04|1992-11-11|COLLECT COD|TRUCK|oss the unusual pinto beans. reg|
-512|189|10|1|19|20694.42|0.08|0.05|N|O|1995-07-12|1995-07-11|1995-08-04|COLLECT COD|MAIL| sleep. requests alongside of the fluff|
-512|23|2|2|37|34151.74|0.01|0.04|N|O|1995-06-20|1995-07-05|1995-07-16|NONE|RAIL|nic depths cajole? blithely b|
-512|180|1|3|40|43207.20|0.05|0.02|N|O|1995-07-06|1995-07-08|1995-07-08|COLLECT COD|TRUCK|quests are da|
-512|83|4|4|10|9830.80|0.09|0.02|N|O|1995-09-16|1995-07-29|1995-10-07|NONE|AIR|xes. pinto beans cajole carefully; |
-512|65|6|5|6|5790.36|0.03|0.05|R|F|1995-06-10|1995-06-21|1995-06-16|DELIVER IN PERSON|FOB|en ideas haggle |
-512|33|9|6|12|11196.36|0.04|0.00|R|F|1995-05-21|1995-08-03|1995-06-09|COLLECT COD|FOB|old furiously express deposits. specia|
-512|51|9|7|2|1902.10|0.09|0.08|N|O|1995-06-19|1995-08-13|1995-06-24|NONE|TRUCK|e slyly silent accounts serve with|
-513|62|7|1|20|19241.20|0.09|0.07|N|O|1995-07-12|1995-05-31|1995-07-31|NONE|AIR|efully ironic ideas doze slyl|
-513|122|5|2|44|44973.28|0.01|0.01|N|O|1995-07-14|1995-07-14|1995-08-12|NONE|MAIL|kages sleep boldly ironic theodolites. acco|
-514|79|9|1|21|20560.47|0.06|0.02|N|O|1996-06-09|1996-05-15|1996-07-07|DELIVER IN PERSON|RAIL|s sleep quickly blithely|
-514|118|2|2|34|34615.74|0.08|0.02|N|O|1996-04-14|1996-06-03|1996-04-23|COLLECT COD|REG AIR|ily even patterns. bold, silent instruc|
-514|13|7|3|6|5478.06|0.06|0.01|N|O|1996-05-30|1996-06-04|1996-06-28|COLLECT COD|SHIP|as haggle blithely; quickly s|
-514|116|7|4|43|43692.73|0.00|0.08|N|O|1996-06-07|1996-05-14|1996-07-01|TAKE BACK RETURN|FOB|thely regular |
-515|105|8|1|10|10051.00|0.03|0.02|A|F|1993-10-04|1993-11-03|1993-10-08|NONE|FOB|ar deposits th|
-515|148|1|2|38|39829.32|0.10|0.07|A|F|1993-09-19|1993-11-12|1993-10-03|DELIVER IN PERSON|SHIP|ays. furiously express requests haggle furi|
-515|183|4|3|11|11914.98|0.00|0.02|R|F|1993-09-04|1993-10-02|1993-09-05|DELIVER IN PERSON|FOB|ly pending accounts haggle blithel|
-515|109|10|4|34|34309.40|0.09|0.03|R|F|1993-10-03|1993-10-26|1993-10-15|DELIVER IN PERSON|REG AIR|ic dependencie|
-515|131|7|5|32|32996.16|0.01|0.07|R|F|1993-10-10|1993-10-08|1993-11-02|TAKE BACK RETURN|FOB|r sauternes boost. final theodolites wake a|
-515|109|4|6|25|25227.50|0.04|0.08|R|F|1993-11-14|1993-11-07|1993-12-03|DELIVER IN PERSON|MAIL|e packages engag|
-516|25|4|1|11|10175.22|0.01|0.06|N|O|1998-05-02|1998-05-23|1998-05-12|DELIVER IN PERSON|FOB|ongside of the blithely final reque|
-517|45|6|1|28|26461.12|0.03|0.02|N|O|1997-04-30|1997-05-18|1997-05-17|COLLECT COD|MAIL| requests. special, fi|
-517|156|4|2|15|15842.25|0.02|0.00|N|O|1997-04-09|1997-06-26|1997-05-01|NONE|TRUCK| slyly. express requests ar|
-517|41|8|3|9|8469.36|0.04|0.00|N|O|1997-05-03|1997-06-16|1997-05-24|COLLECT COD|SHIP| slyly stealthily express instructions. |
-517|133|4|4|11|11364.43|0.06|0.02|N|O|1997-06-20|1997-06-01|1997-06-27|NONE|REG AIR|ly throughout the fu|
-517|24|3|5|23|21252.46|0.00|0.01|N|O|1997-04-19|1997-05-07|1997-05-12|COLLECT COD|RAIL| kindle. furiously bold requests mus|
-518|165|6|1|30|31954.80|0.07|0.05|N|O|1998-02-18|1998-03-27|1998-03-16|COLLECT COD|TRUCK|slyly by the packages. carefull|
-518|84|5|2|23|22633.84|0.05|0.07|N|O|1998-02-20|1998-05-05|1998-03-11|COLLECT COD|TRUCK| special requests. fluffily ironic re|
-518|134|5|3|12|12409.56|0.01|0.06|N|O|1998-03-08|1998-03-31|1998-04-06|NONE|AIR| packages thrash slyly|
-518|122|3|4|46|47017.52|0.07|0.02|N|O|1998-04-07|1998-04-17|1998-04-29|NONE|MAIL|. blithely even ideas cajole furiously. b|
-518|71|2|5|16|15537.12|0.01|0.01|N|O|1998-03-15|1998-03-24|1998-04-08|NONE|MAIL|use quickly expre|
-518|197|10|6|39|42790.41|0.09|0.08|N|O|1998-02-26|1998-03-17|1998-03-21|DELIVER IN PERSON|FOB| the bold, special deposits are carefully |
-518|186|7|7|48|52136.64|0.03|0.07|N|O|1998-03-06|1998-04-22|1998-03-14|NONE|FOB| slyly final platelets; quickly even deposi|
-519|159|4|1|1|1059.15|0.07|0.07|N|O|1997-12-01|1998-01-26|1997-12-23|COLLECT COD|REG AIR|bold requests believe furiou|
-519|3|4|2|38|34314.00|0.05|0.08|N|O|1998-02-19|1997-12-15|1998-03-19|DELIVER IN PERSON|FOB|gular excuses detect quickly furiously |
-519|106|1|3|19|19115.90|0.00|0.02|N|O|1998-01-09|1998-01-03|1998-02-06|COLLECT COD|AIR|asymptotes. p|
-519|47|6|4|27|25570.08|0.08|0.06|N|O|1997-11-20|1997-12-06|1997-12-16|DELIVER IN PERSON|REG AIR|le. even, final dependencies|
-519|10|5|5|13|11830.13|0.06|0.08|N|O|1998-02-06|1997-12-02|1998-03-03|TAKE BACK RETURN|TRUCK|c accounts wake along the ironic so|
-519|151|6|6|3|3153.45|0.04|0.00|N|O|1998-02-01|1998-01-25|1998-02-27|TAKE BACK RETURN|FOB|erve blithely blithely ironic asymp|
-544|139|10|1|47|48839.11|0.08|0.06|R|F|1993-03-14|1993-03-27|1993-03-27|COLLECT COD|SHIP|ecial pains. deposits grow foxes. |
-545|170|1|1|4|4280.68|0.02|0.00|N|O|1996-02-23|1995-12-16|1996-03-21|DELIVER IN PERSON|FOB|, ironic grouches cajole over|
-545|171|10|2|18|19281.06|0.00|0.00|N|O|1996-02-21|1996-01-17|1996-02-26|NONE|RAIL|al, final packages affix. even a|
-546|85|6|1|16|15761.28|0.08|0.02|N|O|1997-02-04|1996-12-30|1997-02-25|DELIVER IN PERSON|TRUCK|de of the orbits. sometimes regula|
-547|71|10|1|44|42727.08|0.08|0.08|N|O|1996-10-18|1996-08-17|1996-10-27|TAKE BACK RETURN|FOB|thely express dependencies. qu|
-547|137|8|2|48|49782.24|0.01|0.04|N|O|1996-10-21|1996-08-04|1996-11-20|COLLECT COD|SHIP|thely specia|
-547|182|3|3|3|3246.54|0.05|0.02|N|O|1996-09-04|1996-08-01|1996-09-21|COLLECT COD|SHIP|pinto beans. ironi|
-548|197|8|1|2|2194.38|0.06|0.05|A|F|1994-11-26|1994-11-06|1994-12-06|COLLECT COD|MAIL|ests haggle quickly eve|
-548|5|6|2|6|5430.00|0.00|0.08|A|F|1995-01-18|1994-12-08|1995-02-10|NONE|TRUCK|sits wake furiously regular|
-548|1|8|3|21|18921.00|0.03|0.08|A|F|1995-01-13|1994-12-18|1995-01-25|NONE|AIR|ideas. special accounts above the furiou|
-548|57|9|4|21|20098.05|0.08|0.03|A|F|1994-10-27|1994-12-04|1994-11-21|DELIVER IN PERSON|AIR| engage quickly. regular theo|
-548|93|7|5|19|18868.71|0.00|0.02|A|F|1994-09-24|1994-11-24|1994-10-01|DELIVER IN PERSON|MAIL|courts boost care|
-548|153|8|6|32|33700.80|0.06|0.04|A|F|1994-12-16|1994-11-20|1994-12-29|NONE|REG AIR|c instruction|
-549|196|9|1|18|19731.42|0.07|0.04|R|F|1992-10-19|1992-08-12|1992-11-13|COLLECT COD|REG AIR|furiously according to the ironic, regular |
-549|189|10|2|38|41388.84|0.07|0.05|A|F|1992-08-17|1992-08-28|1992-09-05|COLLECT COD|RAIL|the regular, furious excuses. carefu|
-549|66|7|3|36|34778.16|0.08|0.04|R|F|1992-09-11|1992-10-11|1992-09-12|DELIVER IN PERSON|AIR|ts against the ironic, even theodolites eng|
-549|21|4|4|18|16578.36|0.09|0.01|A|F|1992-07-31|1992-09-11|1992-08-08|NONE|RAIL|ely regular accounts above the |
-549|24|7|5|38|35112.76|0.06|0.02|R|F|1992-08-23|1992-08-12|1992-08-25|COLLECT COD|REG AIR|eposits. carefully regular depos|
-550|191|3|1|31|33826.89|0.04|0.02|N|O|1995-10-24|1995-09-27|1995-11-04|COLLECT COD|AIR|thely silent packages. unusual|
-551|24|9|1|8|7392.16|0.08|0.02|N|O|1995-07-29|1995-07-18|1995-08-02|NONE|REG AIR| wake quickly slyly pending platel|
-551|159|4|2|20|21183.00|0.00|0.07|N|O|1995-09-18|1995-08-25|1995-10-11|COLLECT COD|TRUCK|r ideas. final, even ideas hinder alongside|
-551|162|9|3|16|16994.56|0.07|0.06|N|O|1995-07-29|1995-08-19|1995-08-10|COLLECT COD|MAIL|y along the carefully ex|
-576|87|8|1|2|1974.16|0.07|0.01|N|O|1997-05-15|1997-06-30|1997-05-28|NONE|RAIL|ccounts along the ac|
-576|34|5|2|6|5604.18|0.06|0.05|N|O|1997-05-15|1997-07-26|1997-06-03|DELIVER IN PERSON|TRUCK|al deposits. slyly even sauternes a|
-576|37|3|3|6|5622.18|0.08|0.07|N|O|1997-08-28|1997-06-16|1997-09-25|DELIVER IN PERSON|FOB|ts. ironic multipliers |
-576|138|9|4|5|5190.65|0.03|0.07|N|O|1997-06-11|1997-06-17|1997-07-05|NONE|REG AIR|l foxes boost slyly. accounts af|
-577|26|5|1|25|23150.50|0.06|0.01|A|F|1995-04-09|1995-02-20|1995-05-09|TAKE BACK RETURN|AIR|ve slyly of the frets. careful|
-577|64|1|2|14|13496.84|0.08|0.03|R|F|1995-03-19|1995-02-25|1995-04-09|DELIVER IN PERSON|RAIL|l accounts wake deposits. ironic packa|
-578|156|7|1|40|42246.00|0.02|0.08|N|O|1997-02-10|1997-03-18|1997-02-11|NONE|SHIP|usly even platel|
-578|188|9|2|23|25028.14|0.05|0.08|N|O|1997-03-06|1997-03-03|1997-03-20|TAKE BACK RETURN|FOB|nstructions. ironic deposits|
-579|151|6|1|9|9460.35|0.00|0.05|N|O|1998-06-20|1998-04-28|1998-07-19|DELIVER IN PERSON|RAIL|e ironic, express deposits are furiously|
-579|33|4|2|39|36388.17|0.02|0.01|N|O|1998-06-21|1998-06-03|1998-06-26|COLLECT COD|REG AIR|ncies. furiously final r|
-579|60|5|3|6|5760.36|0.03|0.00|N|O|1998-04-24|1998-05-03|1998-05-08|TAKE BACK RETURN|TRUCK|ickly final requests-- bold accou|
-579|7|10|4|41|37187.00|0.04|0.05|N|O|1998-05-28|1998-05-01|1998-06-04|COLLECT COD|REG AIR|bold, express requests sublate slyly. blith|
-579|13|7|5|28|25564.28|0.00|0.03|N|O|1998-07-10|1998-05-24|1998-07-19|NONE|RAIL|ic ideas until th|
-579|167|6|6|5|5335.80|0.05|0.08|N|O|1998-05-02|1998-04-25|1998-05-05|COLLECT COD|REG AIR|refully silent ideas cajole furious|
-580|85|6|1|33|32507.64|0.03|0.05|N|O|1997-10-11|1997-09-19|1997-10-16|TAKE BACK RETURN|FOB|y express theodolites cajole carefully |
-580|174|5|2|31|33299.27|0.04|0.08|N|O|1997-10-04|1997-09-08|1997-10-15|COLLECT COD|FOB|ose alongside of the sl|
-580|185|6|3|19|20618.42|0.04|0.04|N|O|1997-07-23|1997-09-21|1997-08-15|NONE|FOB|mong the special packag|
-581|64|1|1|41|39526.46|0.09|0.07|N|O|1997-05-26|1997-04-06|1997-06-10|TAKE BACK RETURN|MAIL|nts. quickly|
-581|93|5|2|14|13903.26|0.06|0.08|N|O|1997-05-17|1997-04-14|1997-06-08|NONE|MAIL|. deposits s|
-581|101|6|3|49|49053.90|0.10|0.02|N|O|1997-02-27|1997-04-24|1997-03-10|TAKE BACK RETURN|MAIL|. slyly regular pinto beans acr|
-581|75|4|4|30|29252.10|0.10|0.08|N|O|1997-06-19|1997-05-21|1997-06-22|TAKE BACK RETURN|TRUCK| regular ideas grow furio|
-582|57|9|1|7|6699.35|0.07|0.00|N|O|1997-11-16|1997-11-29|1997-12-10|TAKE BACK RETURN|FOB|ithely unusual t|
-582|51|2|2|49|46601.45|0.05|0.03|N|O|1997-12-17|1998-01-12|1997-12-31|COLLECT COD|REG AIR|nts according to the furiously regular pin|
-582|141|4|3|42|43727.88|0.07|0.00|N|O|1997-11-15|1997-12-21|1997-12-03|COLLECT COD|SHIP|iously beside the silent de|
-582|168|9|4|36|38453.76|0.06|0.01|N|O|1997-12-09|1997-11-27|1997-12-26|TAKE BACK RETURN|SHIP|lar requests. quickly |
-583|145|6|1|1|1045.14|0.07|0.07|N|O|1997-06-17|1997-04-29|1997-06-28|NONE|TRUCK| regular, regular ideas. even, bra|
-583|120|4|2|47|47945.64|0.10|0.06|N|O|1997-07-14|1997-05-12|1997-08-11|DELIVER IN PERSON|AIR|nts are fluffily. furiously even re|
-583|130|5|3|34|35024.42|0.01|0.02|N|O|1997-05-11|1997-04-24|1997-06-03|DELIVER IN PERSON|MAIL|express req|
-583|142|1|4|33|34390.62|0.10|0.01|N|O|1997-05-28|1997-04-25|1997-06-24|NONE|AIR|kages cajole slyly across the|
-583|189|10|5|13|14159.34|0.04|0.06|N|O|1997-06-23|1997-05-29|1997-07-08|COLLECT COD|TRUCK|y sly theodolites. ironi|
-608|154|6|1|19|20028.85|0.08|0.06|N|O|1996-04-19|1996-05-02|1996-05-03|DELIVER IN PERSON|RAIL|ideas. the|
-608|198|1|2|40|43927.60|0.03|0.01|N|O|1996-05-21|1996-04-11|1996-06-02|NONE|AIR| alongside of the regular tithes. sly|
-609|66|5|1|21|20287.26|0.01|0.05|R|F|1994-08-24|1994-08-23|1994-08-27|DELIVER IN PERSON|FOB|de of the special warthogs. excu|
-610|111|8|1|49|49544.39|0.10|0.07|N|O|1995-08-29|1995-10-26|1995-09-12|TAKE BACK RETURN|SHIP|ular instruc|
-610|68|3|2|11|10648.66|0.07|0.08|N|O|1995-10-31|1995-10-25|1995-11-18|NONE|MAIL|blithely final |
-610|118|9|3|26|26470.86|0.09|0.04|N|O|1995-11-22|1995-09-09|1995-12-04|TAKE BACK RETURN|AIR|cross the furiously even theodolites sl|
-610|186|7|4|17|18465.06|0.03|0.03|N|O|1995-11-01|1995-10-30|1995-11-04|COLLECT COD|FOB|p quickly instead of the slyly pending foxe|
-610|146|7|5|39|40799.46|0.08|0.05|N|O|1995-10-30|1995-10-21|1995-11-11|TAKE BACK RETURN|REG AIR|counts. ironic warhorses are |
-610|95|7|6|5|4975.45|0.00|0.07|N|O|1995-08-11|1995-10-22|1995-08-26|TAKE BACK RETURN|FOB|n pinto beans. iro|
-610|190|1|7|27|29435.13|0.06|0.03|N|O|1995-09-02|1995-09-19|1995-09-15|NONE|REG AIR| ironic pinto beans haggle. blithe|
-611|17|7|1|39|35763.39|0.05|0.06|R|F|1993-05-06|1993-04-09|1993-05-22|TAKE BACK RETURN|SHIP|nto beans |
-611|81|2|2|1|981.08|0.08|0.07|R|F|1993-05-17|1993-02-26|1993-06-15|DELIVER IN PERSON|MAIL|ts. pending platelets aff|
-611|120|4|3|39|39784.68|0.09|0.02|A|F|1993-03-10|1993-03-10|1993-03-17|TAKE BACK RETURN|TRUCK|the evenly bold requests. furious|
-612|185|6|1|5|5425.90|0.07|0.00|R|F|1992-11-08|1992-11-20|1992-12-03|TAKE BACK RETURN|RAIL|structions. q|
-612|195|7|2|28|30665.32|0.07|0.06|R|F|1993-01-02|1992-12-11|1993-01-30|DELIVER IN PERSON|TRUCK|regular instructions affix bl|
-612|67|4|3|49|47385.94|0.00|0.08|A|F|1993-01-08|1992-11-25|1993-01-17|TAKE BACK RETURN|REG AIR|theodolite|
-612|39|5|4|28|26292.84|0.05|0.00|A|F|1992-11-12|1992-12-05|1992-12-02|TAKE BACK RETURN|REG AIR|lyly regular asym|
-612|88|9|5|1|988.08|0.08|0.04|R|F|1992-12-18|1992-12-13|1992-12-20|TAKE BACK RETURN|FOB| requests.|
-612|189|10|6|33|35942.94|0.10|0.03|R|F|1992-11-30|1992-12-01|1992-12-12|COLLECT COD|MAIL|bove the blithely even ideas. careful|
-613|91|5|1|17|16848.53|0.06|0.06|N|O|1995-09-23|1995-08-04|1995-10-15|NONE|SHIP|ar dependencie|
-613|79|7|2|6|5874.42|0.05|0.05|N|O|1995-08-05|1995-08-09|1995-08-08|TAKE BACK RETURN|MAIL|y ironic deposits eat |
-613|186|7|3|3|3258.54|0.03|0.01|N|O|1995-09-27|1995-09-11|1995-10-05|NONE|TRUCK|ccounts cajole. |
-613|159|10|4|7|7414.05|0.02|0.04|N|O|1995-09-07|1995-08-02|1995-09-16|DELIVER IN PERSON|MAIL|ously blithely final pinto beans. regula|
-614|195|8|1|21|22998.99|0.00|0.03|R|F|1993-03-29|1993-01-06|1993-04-16|TAKE BACK RETURN|TRUCK|arefully. slyly express packag|
-614|187|8|2|48|52184.64|0.07|0.07|A|F|1993-03-09|1993-01-19|1993-03-19|DELIVER IN PERSON|SHIP|riously special excuses haggle along the|
-614|167|2|3|43|45887.88|0.05|0.00|A|F|1993-03-07|1993-02-22|1993-03-18|DELIVER IN PERSON|SHIP| express accounts wake. slyly ironic ins|
-614|147|6|4|14|14659.96|0.04|0.06|A|F|1992-12-03|1993-02-14|1992-12-27|DELIVER IN PERSON|SHIP|ular packages haggle about the pack|
-614|196|8|5|30|32885.70|0.08|0.07|R|F|1993-01-16|1993-02-08|1993-02-12|TAKE BACK RETURN|FOB|tructions are f|
-614|137|8|6|48|49782.24|0.04|0.08|A|F|1992-12-14|1993-01-22|1993-01-11|NONE|TRUCK| regular platelets cajole quickly eve|
-615|105|6|1|36|36183.60|0.10|0.01|A|F|1992-06-01|1992-07-14|1992-06-27|NONE|FOB| packages. carefully final pinto bea|
-640|93|7|1|49|48661.41|0.09|0.02|R|F|1993-03-27|1993-04-17|1993-04-15|NONE|RAIL|s haggle slyly|
-640|1|4|2|40|36040.00|0.09|0.05|A|F|1993-05-11|1993-04-11|1993-05-15|COLLECT COD|TRUCK|oach according to the bol|
-640|180|8|3|22|23763.96|0.05|0.07|A|F|1993-05-07|1993-04-14|1993-05-21|TAKE BACK RETURN|TRUCK|osits across the slyly regular theodo|
-640|32|3|4|45|41941.35|0.07|0.07|R|F|1993-04-15|1993-04-23|1993-04-21|DELIVER IN PERSON|REG AIR|ong the qui|
-641|126|9|1|18|18470.16|0.01|0.08|R|F|1993-10-17|1993-10-11|1993-10-29|DELIVER IN PERSON|AIR|p blithely bold packages. quick|
-641|100|2|2|1|1000.10|0.09|0.02|R|F|1993-12-03|1993-10-28|1993-12-26|TAKE BACK RETURN|RAIL| nag across the regular foxes.|
-641|95|7|3|40|39803.60|0.05|0.06|R|F|1993-11-22|1993-10-20|1993-12-11|DELIVER IN PERSON|REG AIR|lets. furiously regular requests cajo|
-641|71|10|4|25|24276.75|0.03|0.02|A|F|1993-12-04|1993-11-18|1993-12-18|TAKE BACK RETURN|FOB|d, regular d|
-641|4|9|5|41|37064.00|0.07|0.04|R|F|1993-11-29|1993-10-27|1993-12-04|TAKE BACK RETURN|FOB| asymptotes are quickly. bol|
-642|54|5|1|26|24805.30|0.10|0.03|A|F|1994-04-16|1994-02-01|1994-04-27|COLLECT COD|REG AIR|quests according to the unu|
-643|13|3|1|28|25564.28|0.00|0.08|A|F|1995-04-13|1995-05-12|1995-04-14|TAKE BACK RETURN|TRUCK|ly regular requests nag sly|
-643|51|2|2|48|45650.40|0.01|0.02|N|O|1995-07-10|1995-06-07|1995-08-01|NONE|FOB|ly ironic accounts|
-643|163|2|3|23|24452.68|0.05|0.03|N|O|1995-07-09|1995-05-18|1995-07-31|COLLECT COD|RAIL|sits are carefully according to the e|
-643|45|4|4|39|36856.56|0.08|0.04|A|F|1995-06-08|1995-06-16|1995-06-13|COLLECT COD|RAIL| the pains. carefully s|
-643|190|1|5|47|51238.93|0.10|0.03|R|F|1995-04-05|1995-06-14|1995-04-26|DELIVER IN PERSON|RAIL|y against |
-644|134|10|1|46|47569.98|0.02|0.01|A|F|1992-05-20|1992-06-14|1992-06-14|DELIVER IN PERSON|RAIL| special requests was sometimes expre|
-644|130|3|2|11|11331.43|0.05|0.02|A|F|1992-08-20|1992-07-21|1992-09-11|TAKE BACK RETURN|TRUCK|ealthy pinto beans use carefu|
-644|101|6|3|44|44048.40|0.04|0.04|R|F|1992-08-17|1992-07-26|1992-08-20|COLLECT COD|REG AIR|iously ironic pinto beans. bold packa|
-644|80|8|4|7|6860.56|0.01|0.02|A|F|1992-05-18|1992-07-01|1992-06-07|COLLECT COD|RAIL| regular requests are blithely. slyly|
-644|50|1|5|23|21851.15|0.02|0.04|R|F|1992-07-31|1992-07-28|1992-08-13|DELIVER IN PERSON|TRUCK|uctions nag quickly alongside of t|
-644|85|6|6|33|32507.64|0.00|0.07|R|F|1992-08-26|1992-07-27|1992-08-28|NONE|AIR|ages sleep. bold, bo|
-644|51|9|7|38|36139.90|0.08|0.06|R|F|1992-05-17|1992-07-10|1992-06-06|TAKE BACK RETURN|MAIL| packages. blithely slow accounts nag quic|
-645|160|8|1|33|34985.28|0.01|0.02|A|F|1994-12-09|1995-02-21|1995-01-03|NONE|TRUCK|heodolites b|
-645|170|1|2|47|50297.99|0.07|0.05|R|F|1995-02-16|1995-02-15|1995-02-25|COLLECT COD|TRUCK|hely regular instructions alon|
-645|70|7|3|46|44623.22|0.10|0.01|A|F|1995-01-04|1995-02-21|1995-01-21|COLLECT COD|REG AIR| regular dependencies across the speci|
-645|96|9|4|49|48808.41|0.05|0.03|R|F|1995-01-24|1995-01-06|1995-02-17|NONE|TRUCK|y. slyly iron|
-645|5|8|5|43|38915.00|0.06|0.02|A|F|1995-02-12|1995-02-27|1995-03-06|TAKE BACK RETURN|REG AIR| furiously accounts. slyly|
-645|34|5|6|18|16812.54|0.10|0.08|A|F|1995-03-02|1995-02-08|1995-03-03|COLLECT COD|RAIL|ep. slyly even |
-645|28|9|7|9|8352.18|0.03|0.03|A|F|1994-12-25|1995-01-04|1995-01-15|COLLECT COD|REG AIR|special deposits. regular, final th|
-646|109|6|1|31|31282.10|0.00|0.05|R|F|1994-12-17|1995-02-16|1995-01-04|COLLECT COD|MAIL|ag furiousl|
-646|127|8|2|1|1027.12|0.07|0.01|A|F|1994-12-05|1995-01-07|1994-12-31|TAKE BACK RETURN|MAIL|t blithely regular deposits. quic|
-646|30|9|3|24|22320.72|0.06|0.02|A|F|1995-02-20|1994-12-30|1995-03-16|TAKE BACK RETURN|TRUCK|regular accounts haggle dog|
-646|99|2|4|34|33969.06|0.01|0.00|R|F|1994-12-28|1994-12-27|1994-12-31|COLLECT COD|SHIP|slow accounts. fluffily idle instructions|
-646|90|1|5|17|16831.53|0.04|0.01|A|F|1994-12-31|1994-12-26|1995-01-01|DELIVER IN PERSON|REG AIR|inal packages haggle carefully |
-646|115|2|6|40|40604.40|0.10|0.01|R|F|1995-01-01|1995-01-13|1995-01-11|COLLECT COD|TRUCK|ronic packages sleep across th|
-647|17|1|1|41|37597.41|0.08|0.08|N|O|1997-11-19|1997-09-24|1997-12-15|COLLECT COD|REG AIR|r instructions. quickly unusu|
-647|113|10|2|5|5065.55|0.10|0.00|N|O|1997-09-25|1997-09-22|1997-10-25|TAKE BACK RETURN|AIR|ly express packages haggle caref|
-647|153|8|3|15|15797.25|0.08|0.00|N|O|1997-09-23|1997-10-09|1997-10-21|NONE|MAIL|ve the even, bold foxes sleep |
-672|173|4|1|41|43999.97|0.06|0.06|R|F|1994-06-20|1994-07-03|1994-06-22|COLLECT COD|REG AIR| dependencies in|
-672|190|1|2|9|9811.71|0.03|0.04|R|F|1994-06-25|1994-06-06|1994-07-19|TAKE BACK RETURN|TRUCK|haggle carefully carefully reg|
-672|143|2|3|35|36509.90|0.02|0.01|R|F|1994-07-13|1994-06-04|1994-07-14|COLLECT COD|RAIL| dependencies haggle quickly. theo|
-673|71|10|1|22|21363.54|0.03|0.02|R|F|1994-03-15|1994-04-27|1994-03-29|TAKE BACK RETURN|TRUCK| the regular, even requests. carefully fin|
-674|102|5|1|23|23048.30|0.06|0.07|A|F|1992-10-25|1992-10-15|1992-11-03|COLLECT COD|SHIP|ve the quickly even deposits. blithe|
-674|59|4|2|4|3836.20|0.02|0.07|R|F|1992-10-05|1992-11-22|1992-10-22|NONE|RAIL|ly express pinto beans sleep car|
-675|157|9|1|1|1057.15|0.04|0.08|N|O|1997-11-27|1997-09-30|1997-12-12|DELIVER IN PERSON|REG AIR|ide of the slyly regular packages. unus|
-675|137|3|2|35|36299.55|0.08|0.07|N|O|1997-08-19|1997-10-16|1997-09-17|DELIVER IN PERSON|REG AIR|s. furiously expre|
-675|176|6|3|34|36589.78|0.10|0.04|N|O|1997-11-17|1997-10-07|1997-11-27|NONE|FOB|y final accounts unwind around the |
-675|100|4|4|15|15001.50|0.09|0.05|N|O|1997-10-18|1997-09-28|1997-11-13|COLLECT COD|TRUCK|posits after the furio|
-675|5|8|5|46|41630.00|0.09|0.05|N|O|1997-09-18|1997-10-14|1997-10-01|DELIVER IN PERSON|AIR| deposits along the express foxes |
-676|51|3|1|9|8559.45|0.09|0.02|N|O|1997-04-03|1997-02-02|1997-04-08|COLLECT COD|REG AIR|aintain sl|
-676|78|6|2|20|19561.40|0.07|0.07|N|O|1997-02-02|1997-02-01|1997-02-11|NONE|REG AIR|riously around the blithely |
-676|163|4|3|35|37210.60|0.05|0.01|N|O|1996-12-30|1997-01-13|1997-01-19|DELIVER IN PERSON|RAIL|into beans. blithe|
-676|73|1|4|24|23353.68|0.01|0.06|N|O|1997-02-05|1997-01-16|1997-03-07|TAKE BACK RETURN|TRUCK|ress, regular dep|
-676|166|1|5|31|33050.96|0.01|0.06|N|O|1997-02-06|1997-02-28|1997-03-08|COLLECT COD|TRUCK|ial deposits cajo|
-676|76|7|6|33|32210.31|0.09|0.05|N|O|1997-03-02|1997-02-22|1997-03-19|TAKE BACK RETURN|TRUCK|as wake slyly furiously close pinto b|
-676|143|6|7|11|11474.54|0.07|0.02|N|O|1997-03-09|1997-03-06|1997-03-31|TAKE BACK RETURN|MAIL|he final acco|
-677|59|7|1|32|30689.60|0.04|0.08|R|F|1994-01-06|1994-01-31|1994-02-02|NONE|RAIL|slyly final|
-677|168|9|2|39|41658.24|0.00|0.07|R|F|1993-12-19|1994-02-11|1994-01-05|TAKE BACK RETURN|SHIP|ges. furiously regular packages use |
-677|24|5|3|46|42504.92|0.01|0.02|R|F|1993-12-02|1994-02-12|1993-12-06|COLLECT COD|RAIL|ng theodolites. furiously unusual theodo|
-677|148|7|4|1|1048.14|0.06|0.05|R|F|1993-12-01|1994-01-14|1993-12-26|DELIVER IN PERSON|MAIL|ly. regular |
-677|150|9|5|25|26253.75|0.00|0.05|A|F|1994-03-12|1994-02-02|1994-03-28|DELIVER IN PERSON|AIR| packages integrate blithely|
-678|146|7|1|20|20922.80|0.05|0.08|R|F|1993-06-21|1993-04-07|1993-07-10|TAKE BACK RETURN|MAIL|furiously express excuses. foxes eat fu|
-678|37|3|2|22|20614.66|0.01|0.02|A|F|1993-05-10|1993-04-29|1993-06-08|NONE|REG AIR|de of the carefully even requests. bl|
-678|143|10|3|16|16690.24|0.06|0.02|R|F|1993-03-20|1993-04-13|1993-04-16|DELIVER IN PERSON|REG AIR|equests cajole around the carefully regular|
-678|199|10|4|48|52761.12|0.08|0.08|R|F|1993-02-28|1993-04-04|1993-03-24|NONE|REG AIR|ithely. slyly express foxes|
-678|98|9|5|16|15969.44|0.06|0.04|R|F|1993-03-09|1993-04-18|1993-04-07|NONE|AIR| about the |
-678|43|4|6|11|10373.44|0.09|0.00|R|F|1993-04-28|1993-05-16|1993-05-11|COLLECT COD|TRUCK|ess deposits dazzle f|
-679|192|3|1|9|9829.71|0.09|0.00|N|O|1995-12-20|1996-01-27|1996-01-07|COLLECT COD|REG AIR|leep slyly. entici|
-704|190|1|1|40|43607.60|0.05|0.05|N|O|1997-01-30|1997-01-10|1997-02-20|COLLECT COD|AIR|ggle quickly. r|
-704|4|5|2|14|12656.00|0.07|0.08|N|O|1997-02-02|1996-12-26|1997-02-19|DELIVER IN PERSON|REG AIR|ve the quickly final forges. furiously p|
-705|189|10|1|46|50102.28|0.05|0.06|N|O|1997-04-18|1997-05-06|1997-05-05|DELIVER IN PERSON|SHIP|ss deposits. ironic packa|
-705|117|7|2|35|35598.85|0.10|0.04|N|O|1997-03-25|1997-03-20|1997-04-23|TAKE BACK RETURN|FOB|carefully ironic accounts|
-706|197|9|1|23|25235.37|0.05|0.00|N|O|1995-12-06|1995-12-02|1995-12-16|COLLECT COD|SHIP|ckey players. requests above the|
-707|155|6|1|34|35875.10|0.01|0.02|R|F|1994-12-08|1995-01-15|1995-01-02|NONE|RAIL| dependencies|
-707|43|10|2|22|20746.88|0.00|0.06|A|F|1995-01-12|1994-12-28|1995-01-16|DELIVER IN PERSON|REG AIR| kindle ironically|
-708|124|7|1|3|3072.36|0.05|0.02|N|O|1998-10-09|1998-09-22|1998-11-07|COLLECT COD|FOB|e slyly pending foxes. |
-708|180|1|2|19|20523.42|0.06|0.00|N|O|1998-10-28|1998-09-23|1998-11-25|COLLECT COD|SHIP| requests. even, thin ideas|
-708|122|5|3|33|33729.96|0.09|0.06|N|O|1998-09-10|1998-09-20|1998-09-22|COLLECT COD|RAIL|s boost carefully ruthless theodolites. f|
-708|56|7|4|5|4780.25|0.07|0.07|N|O|1998-07-22|1998-08-15|1998-07-28|TAKE BACK RETURN|REG AIR|c pinto beans nag after the account|
-708|143|2|5|36|37553.04|0.08|0.01|N|O|1998-07-16|1998-09-04|1998-08-11|NONE|SHIP|ests. even, regular hockey p|
-708|23|6|6|7|6461.14|0.10|0.03|N|O|1998-08-16|1998-08-15|1998-09-10|COLLECT COD|REG AIR|lly express ac|
-709|87|8|1|7|6909.56|0.00|0.00|N|O|1998-06-14|1998-06-08|1998-06-18|TAKE BACK RETURN|RAIL| special orbits cajole |
-709|198|10|2|15|16472.85|0.08|0.00|N|O|1998-07-10|1998-06-26|1998-08-09|NONE|RAIL|ily regular deposits. sauternes was accor|
-709|169|8|3|10|10691.60|0.01|0.02|N|O|1998-06-04|1998-06-30|1998-06-11|NONE|REG AIR|ts cajole boldly |
-709|108|9|4|40|40324.00|0.10|0.08|N|O|1998-08-12|1998-06-20|1998-08-20|DELIVER IN PERSON|RAIL|ggle fluffily carefully ironic|
-710|163|8|1|47|49968.52|0.06|0.08|A|F|1993-01-18|1993-03-24|1993-01-24|TAKE BACK RETURN|MAIL|usual ideas into th|
-710|193|4|2|38|41541.22|0.07|0.02|R|F|1993-04-18|1993-03-12|1993-05-15|COLLECT COD|FOB|sts boost fluffily aft|
-710|139|5|3|7|7273.91|0.04|0.06|R|F|1993-01-20|1993-03-28|1993-02-15|TAKE BACK RETURN|REG AIR|xpress, special ideas. bl|
-710|90|1|4|25|24752.25|0.00|0.05|R|F|1993-03-31|1993-02-05|1993-04-22|COLLECT COD|FOB|eas detect do|
-710|186|7|5|12|13034.16|0.01|0.02|A|F|1993-02-18|1993-02-27|1993-03-07|DELIVER IN PERSON|MAIL|ions. slyly express theodolites al|
-710|114|4|6|21|21296.31|0.04|0.06|R|F|1993-03-22|1993-03-05|1993-03-27|DELIVER IN PERSON|SHIP|es. furiously p|
-710|160|2|7|46|48767.36|0.03|0.07|R|F|1993-04-16|1993-03-27|1993-05-05|COLLECT COD|MAIL|ges use; blithely pending excuses inte|
-711|146|3|1|2|2092.28|0.10|0.04|R|F|1993-12-01|1993-12-09|1993-12-16|DELIVER IN PERSON|REG AIR|ely across t|
-711|103|8|2|27|27083.70|0.00|0.08|A|F|1993-10-02|1993-10-26|1993-10-08|DELIVER IN PERSON|MAIL|slyly. ironic asy|
-711|128|7|3|46|47293.52|0.10|0.00|R|F|1993-12-26|1993-11-19|1994-01-21|TAKE BACK RETURN|MAIL|deposits. permanen|
-711|128|9|4|20|20562.40|0.09|0.00|A|F|1994-01-17|1993-11-10|1994-01-31|DELIVER IN PERSON|TRUCK|kly regular acco|
-736|158|9|1|46|48674.90|0.05|0.01|N|O|1998-07-16|1998-09-01|1998-08-09|NONE|AIR|uctions cajole|
-736|80|1|2|23|22541.84|0.02|0.05|N|O|1998-10-08|1998-08-27|1998-10-19|TAKE BACK RETURN|AIR|k accounts are carefully|
-736|57|9|3|13|12441.65|0.00|0.03|N|O|1998-08-16|1998-07-26|1998-08-19|DELIVER IN PERSON|FOB|st furiously among the |
-736|98|2|4|14|13973.26|0.06|0.04|N|O|1998-10-04|1998-08-14|1998-10-16|COLLECT COD|REG AIR|nstructions.|
-736|169|6|5|32|34213.12|0.04|0.03|N|O|1998-07-30|1998-08-22|1998-08-12|DELIVER IN PERSON|RAIL|iously final accoun|
-737|182|3|1|12|12986.16|0.01|0.01|R|F|1992-04-28|1992-06-30|1992-05-08|COLLECT COD|RAIL|posits after the slyly bold du|
-738|198|1|1|34|37338.46|0.00|0.06|R|F|1993-06-09|1993-04-15|1993-07-09|TAKE BACK RETURN|TRUCK|s against the ironic exc|
-738|188|9|2|4|4352.72|0.00|0.03|A|F|1993-06-20|1993-04-08|1993-07-09|NONE|AIR|ar packages. fluffily bo|
-738|170|1|3|23|24613.91|0.04|0.08|A|F|1993-03-17|1993-04-02|1993-04-05|TAKE BACK RETURN|SHIP|nic, final excuses promise quickly regula|
-738|141|10|4|12|12493.68|0.04|0.08|A|F|1993-06-16|1993-05-05|1993-06-22|NONE|SHIP|ove the slyly regular p|
-738|175|4|5|30|32255.10|0.02|0.00|A|F|1993-06-12|1993-05-29|1993-06-25|NONE|AIR|ecial instructions haggle blithely regula|
-739|85|6|1|28|27582.24|0.00|0.03|N|O|1998-06-03|1998-08-04|1998-06-29|TAKE BACK RETURN|RAIL|elets about the pe|
-739|4|7|2|50|45200.00|0.07|0.06|N|O|1998-08-26|1998-07-16|1998-09-02|COLLECT COD|MAIL|ndencies. blith|
-739|49|2|3|12|11388.48|0.05|0.00|N|O|1998-08-20|1998-07-24|1998-08-22|NONE|MAIL|le slyly along the close i|
-739|44|3|4|47|44369.88|0.09|0.07|N|O|1998-08-12|1998-07-09|1998-08-28|NONE|REG AIR|deas according to the theodolites sn|
-739|188|9|5|30|32645.40|0.07|0.06|N|O|1998-06-19|1998-08-26|1998-07-02|DELIVER IN PERSON|REG AIR|above the even deposits. ironic requests|
-740|2|9|1|22|19844.00|0.10|0.02|N|O|1995-07-24|1995-09-11|1995-08-11|TAKE BACK RETURN|FOB|odolites cajole ironic, pending instruc|
-740|66|1|2|35|33812.10|0.00|0.00|N|O|1995-09-06|1995-08-22|1995-10-02|NONE|TRUCK|p quickly. fu|
-740|199|10|3|29|31876.51|0.06|0.05|N|O|1995-10-26|1995-09-17|1995-10-29|DELIVER IN PERSON|FOB|ntly bold pinto beans sleep quickl|
-741|187|8|1|25|27179.50|0.03|0.06|N|O|1998-07-15|1998-08-27|1998-08-12|DELIVER IN PERSON|MAIL|accounts. blithely bold pa|
-741|91|4|2|22|21803.98|0.09|0.01|N|O|1998-09-07|1998-09-28|1998-09-12|COLLECT COD|AIR|ven deposits about the regular, ironi|
-742|102|3|1|46|46096.60|0.04|0.08|A|F|1995-03-12|1995-03-20|1995-03-16|TAKE BACK RETURN|SHIP|e slyly bold deposits cajole according to|
-742|96|8|2|15|14941.35|0.08|0.05|A|F|1995-02-26|1995-03-20|1995-03-03|NONE|SHIP|blithely unusual pinto|
-742|102|5|3|24|24050.40|0.08|0.08|A|F|1995-02-12|1995-03-12|1995-02-14|DELIVER IN PERSON|SHIP|affix slyly. furiously i|
-742|192|4|4|16|17475.04|0.01|0.05|A|F|1995-01-15|1995-02-25|1995-01-24|COLLECT COD|AIR|eodolites haggle carefully regul|
-742|101|4|5|48|48052.80|0.09|0.08|R|F|1995-03-24|1995-01-23|1995-04-08|TAKE BACK RETURN|TRUCK| platelets |
-742|192|6|6|49|53517.31|0.02|0.07|A|F|1995-01-13|1995-02-13|1995-01-26|TAKE BACK RETURN|RAIL| carefully bold foxes sle|
-743|192|5|1|21|22935.99|0.01|0.04|N|O|1996-10-26|1996-11-05|1996-11-11|COLLECT COD|MAIL|d requests. packages afte|
-768|196|7|1|39|42751.41|0.06|0.08|N|O|1996-09-25|1996-10-27|1996-10-20|NONE|SHIP|out the ironic|
-768|18|9|2|2|1836.02|0.00|0.04|N|O|1996-11-13|1996-10-03|1996-11-25|DELIVER IN PERSON|SHIP|ular courts. slyly dogged accou|
-768|6|1|3|30|27180.00|0.06|0.05|N|O|1996-09-22|1996-11-03|1996-10-13|NONE|MAIL| furiously fluffy pinto beans haggle along|
-768|25|8|4|37|34225.74|0.10|0.00|N|O|1996-10-02|1996-09-23|1996-10-14|TAKE BACK RETURN|REG AIR|ending requests across the quickly|
-768|47|10|5|47|44510.88|0.06|0.05|N|O|1996-11-28|1996-10-30|1996-12-12|NONE|TRUCK|foxes. slyly ironic deposits a|
-768|112|9|6|43|43520.73|0.10|0.06|N|O|1996-09-22|1996-11-03|1996-10-22|TAKE BACK RETURN|AIR|sual ideas wake quickly|
-768|49|10|7|33|31318.32|0.01|0.04|N|O|1996-09-06|1996-09-29|1996-10-01|COLLECT COD|RAIL|sly ironic instructions. excuses can hagg|
-769|176|6|1|36|38742.12|0.02|0.02|A|F|1993-10-01|1993-08-07|1993-10-15|NONE|AIR|es. furiously iro|
-769|160|8|2|4|4240.64|0.01|0.04|R|F|1993-06-25|1993-08-12|1993-07-15|DELIVER IN PERSON|FOB| ideas. even|
-770|181|2|1|39|42166.02|0.09|0.06|N|O|1998-07-19|1998-08-09|1998-08-04|NONE|REG AIR|osits. foxes cajole |
-770|54|2|2|25|23851.25|0.03|0.02|N|O|1998-05-26|1998-07-23|1998-06-04|TAKE BACK RETURN|AIR| deposits dazzle fluffily alongside of |
-771|7|4|1|12|10884.00|0.10|0.08|N|O|1995-07-18|1995-08-02|1995-08-07|COLLECT COD|TRUCK|carefully. pending in|
-771|161|10|2|38|40324.08|0.03|0.08|N|O|1995-07-22|1995-09-10|1995-07-29|TAKE BACK RETURN|REG AIR| quickly final requests are final packages.|
-771|7|8|3|14|12698.00|0.02|0.05|N|O|1995-07-31|1995-08-13|1995-08-07|DELIVER IN PERSON|AIR|r, final packages are slyly iro|
-771|42|3|4|7|6594.28|0.06|0.02|N|O|1995-06-18|1995-08-31|1995-06-20|NONE|REG AIR|theodolites after the fluffily express |
-771|78|6|5|13|12714.91|0.09|0.01|N|O|1995-08-10|1995-08-21|1995-08-30|NONE|FOB|packages affix slyly about the quickly |
-771|82|3|6|23|22587.84|0.08|0.03|N|O|1995-06-19|1995-09-07|1995-07-09|COLLECT COD|FOB|cajole besides the quickly ironic pin|
-772|53|5|1|35|33356.75|0.10|0.06|R|F|1993-07-05|1993-06-05|1993-08-02|NONE|SHIP|kly thin packages wake slowly|
-772|84|5|2|10|9840.80|0.05|0.01|R|F|1993-05-20|1993-05-19|1993-06-15|DELIVER IN PERSON|MAIL| deposits cajole carefully instructions. t|
-772|86|7|3|35|34512.80|0.03|0.04|R|F|1993-04-18|1993-06-13|1993-05-01|COLLECT COD|MAIL|ng ideas. special packages haggle alon|
-772|180|8|4|10|10801.80|0.08|0.02|A|F|1993-05-17|1993-06-09|1993-05-29|COLLECT COD|AIR|o the furiously final deposits. furi|
-772|54|5|5|42|40070.10|0.02|0.07|A|F|1993-06-09|1993-07-16|1993-06-12|DELIVER IN PERSON|MAIL| express foxes abo|
-773|100|1|1|5|5000.50|0.06|0.04|A|F|1993-11-21|1993-12-19|1993-12-21|COLLECT COD|MAIL|ar requests. regular, thin packages u|
-773|11|5|2|31|28241.31|0.02|0.06|A|F|1993-12-30|1993-11-02|1994-01-01|TAKE BACK RETURN|MAIL|e slyly unusual deposit|
-773|151|3|3|39|40994.85|0.06|0.05|A|F|1994-01-04|1993-12-23|1994-01-26|DELIVER IN PERSON|FOB|quickly eve|
-773|29|8|4|28|26012.56|0.10|0.06|R|F|1994-01-19|1993-11-05|1994-01-23|NONE|TRUCK|he furiously slow deposits.|
-773|134|5|5|9|9307.17|0.09|0.02|R|F|1993-10-09|1993-12-25|1993-11-04|TAKE BACK RETURN|FOB|ent orbits haggle fluffily after the |
-773|40|1|6|43|40421.72|0.07|0.03|A|F|1993-11-06|1993-11-20|1993-11-08|TAKE BACK RETURN|SHIP|furiously bold dependencies. blithel|
-774|183|4|1|49|53075.82|0.08|0.03|N|O|1995-12-06|1996-01-07|1995-12-14|DELIVER IN PERSON|SHIP|ess accounts are carefully |
-774|17|4|2|3|2751.03|0.10|0.06|N|O|1996-02-13|1996-01-14|1996-03-04|COLLECT COD|FOB| slyly even courts nag blith|
-774|148|7|3|34|35636.76|0.02|0.07|N|O|1996-03-16|1996-01-03|1996-03-22|COLLECT COD|FOB|lar excuses are furiously final instr|
-774|15|6|4|8|7320.08|0.00|0.02|N|O|1996-01-24|1996-01-15|1996-02-13|COLLECT COD|RAIL|ully ironic requests c|
-774|177|5|5|44|47395.48|0.09|0.07|N|O|1996-02-29|1996-01-16|1996-03-06|NONE|REG AIR|s according to the deposits unwind ca|
-774|120|1|6|2|2040.24|0.07|0.03|N|O|1995-12-11|1996-02-10|1995-12-14|TAKE BACK RETURN|SHIP|accounts; slyly regular|
-775|32|3|1|16|14912.48|0.10|0.06|N|F|1995-05-23|1995-05-07|1995-06-19|NONE|TRUCK|un quickly slyly|
-775|174|2|2|21|22557.57|0.01|0.06|R|F|1995-05-01|1995-06-02|1995-05-13|DELIVER IN PERSON|FOB| quickly sile|
-775|108|5|3|20|20162.00|0.01|0.08|N|F|1995-06-17|1995-05-22|1995-07-13|COLLECT COD|AIR|en dependencies nag slowly |
-800|72|1|1|38|36938.66|0.00|0.05|N|O|1998-07-21|1998-09-25|1998-08-07|TAKE BACK RETURN|TRUCK|according to the bold, final dependencies |
-800|85|6|2|21|20686.68|0.04|0.05|N|O|1998-07-23|1998-10-01|1998-08-20|TAKE BACK RETURN|RAIL|ckly even requests after the carefully r|
-800|176|5|3|26|27980.42|0.01|0.02|N|O|1998-07-23|1998-10-08|1998-07-25|DELIVER IN PERSON|FOB|bove the pending requests.|
-801|6|3|1|13|11778.00|0.10|0.02|R|F|1992-04-25|1992-04-24|1992-05-16|COLLECT COD|RAIL|s are fluffily stealthily expres|
-801|95|8|2|21|20896.89|0.05|0.02|A|F|1992-03-14|1992-04-01|1992-04-05|COLLECT COD|AIR|wake silently furiously idle deposits. |
-801|3|4|3|21|18963.00|0.05|0.03|A|F|1992-04-25|1992-03-20|1992-05-04|COLLECT COD|REG AIR|cial, special packages.|
-801|164|9|4|12|12769.92|0.08|0.04|A|F|1992-06-06|1992-04-14|1992-06-12|TAKE BACK RETURN|RAIL|s. ironic pinto b|
-801|74|2|5|45|43833.15|0.01|0.06|R|F|1992-03-22|1992-03-22|1992-03-25|COLLECT COD|REG AIR| even asymptotes|
-801|122|7|6|10|10221.20|0.08|0.01|A|F|1992-06-05|1992-05-15|1992-06-21|DELIVER IN PERSON|MAIL|al accounts. carefully regular foxes wake|
-801|26|5|7|11|10186.22|0.01|0.03|A|F|1992-05-09|1992-04-19|1992-05-15|DELIVER IN PERSON|REG AIR|y special pinto beans cajole |
-802|143|6|1|40|41725.60|0.08|0.08|A|F|1995-01-07|1995-04-03|1995-01-23|DELIVER IN PERSON|RAIL|y bold accou|
-802|133|4|2|34|35126.42|0.08|0.06|A|F|1995-03-01|1995-03-15|1995-03-12|COLLECT COD|AIR|instructions cajole carefully. quietl|
-802|131|2|3|44|45369.72|0.07|0.04|R|F|1995-01-09|1995-02-04|1995-01-18|TAKE BACK RETURN|SHIP|rmanently idly special requ|
-802|157|2|4|18|19028.70|0.09|0.02|R|F|1995-03-06|1995-02-07|1995-03-19|TAKE BACK RETURN|RAIL|y regular requests engage furiously final d|
-802|132|3|5|19|19610.47|0.08|0.06|A|F|1995-04-01|1995-02-20|1995-04-23|DELIVER IN PERSON|REG AIR|old, furious|
-803|54|9|1|8|7632.40|0.07|0.01|N|O|1997-08-04|1997-06-19|1997-08-12|NONE|SHIP|ronic theodo|
-803|99|10|2|21|20980.89|0.08|0.06|N|O|1997-08-25|1997-06-30|1997-09-10|TAKE BACK RETURN|AIR|ironic packages cajole slyly. un|
-804|126|7|1|30|30783.60|0.08|0.04|A|F|1993-03-29|1993-05-07|1993-04-14|COLLECT COD|REG AIR|ehind the quietly regular pac|
-804|199|3|2|2|2198.38|0.02|0.00|A|F|1993-06-23|1993-04-30|1993-06-25|NONE|TRUCK|slyly silent |
-804|76|5|3|44|42947.08|0.04|0.05|R|F|1993-07-06|1993-04-13|1993-07-28|DELIVER IN PERSON|TRUCK|ly final deposits? special |
-804|38|9|4|21|19698.63|0.01|0.00|A|F|1993-04-12|1993-06-06|1993-04-20|DELIVER IN PERSON|RAIL|ular, ironic foxes. quickly even accounts|
-805|198|10|1|25|27454.75|0.07|0.06|N|O|1995-08-05|1995-09-30|1995-08-06|NONE|AIR|ide of the pending, sly requests. quickly f|
-805|57|5|2|29|27754.45|0.07|0.01|N|O|1995-08-24|1995-08-15|1995-09-16|TAKE BACK RETURN|AIR|dolites according to the slyly f|
-805|47|8|3|12|11364.48|0.01|0.06|N|O|1995-07-13|1995-09-27|1995-08-02|TAKE BACK RETURN|REG AIR| regular foxes. furio|
-805|76|6|4|26|25377.82|0.08|0.07|N|O|1995-08-28|1995-09-24|1995-09-11|TAKE BACK RETURN|RAIL|. ironic deposits sleep across |
-806|105|2|1|1|1005.10|0.04|0.07|N|O|1996-07-14|1996-09-12|1996-07-25|COLLECT COD|RAIL|ar accounts? pending, pending foxes a|
-806|160|5|2|22|23323.52|0.08|0.02|N|O|1996-10-03|1996-08-11|1996-10-20|DELIVER IN PERSON|REG AIR|fily pending |
-806|91|3|3|4|3964.36|0.04|0.03|N|O|1996-08-09|1996-09-18|1996-08-13|COLLECT COD|TRUCK|eans. quickly ironic ideas |
-807|117|7|1|49|49838.39|0.00|0.00|R|F|1993-12-05|1994-01-13|1993-12-25|COLLECT COD|REG AIR| furiously according to the un|
-807|155|10|2|49|51702.35|0.01|0.06|A|F|1994-01-17|1994-01-24|1994-01-22|COLLECT COD|TRUCK|y regular requests haggle.|
-807|181|2|3|48|51896.64|0.07|0.07|A|F|1994-01-08|1994-02-02|1994-01-15|DELIVER IN PERSON|SHIP|kly across the f|
-807|80|1|4|10|9800.80|0.09|0.00|R|F|1994-01-19|1994-02-12|1994-01-28|NONE|TRUCK|furiously final depths sleep a|
-807|143|6|5|30|31294.20|0.02|0.01|R|F|1994-01-19|1994-01-09|1994-01-27|NONE|RAIL|cial accoun|
-807|12|2|6|11|10032.11|0.02|0.04|R|F|1994-03-25|1994-01-26|1994-04-14|NONE|FOB|unts above the slyly final ex|
-807|1|6|7|19|17119.00|0.08|0.05|A|F|1994-02-10|1994-02-20|1994-03-06|NONE|SHIP|ns haggle quickly across the furi|
-832|103|6|1|45|45139.50|0.01|0.02|A|F|1992-05-08|1992-06-06|1992-06-04|COLLECT COD|MAIL|foxes engage slyly alon|
-832|48|1|2|24|22752.96|0.05|0.06|A|F|1992-06-15|1992-07-14|1992-06-17|NONE|TRUCK|ully. carefully speci|
-833|54|5|1|1|954.05|0.04|0.04|R|F|1994-04-26|1994-04-05|1994-04-29|COLLECT COD|MAIL|ffily ironic theodolites|
-833|112|6|2|38|38460.18|0.05|0.05|A|F|1994-04-05|1994-04-21|1994-05-01|COLLECT COD|TRUCK| platelets promise furiously. |
-833|162|7|3|9|9559.44|0.05|0.07|A|F|1994-02-28|1994-04-26|1994-03-20|TAKE BACK RETURN|FOB|ecial, even requests. even, bold instructi|
-834|145|2|1|36|37625.04|0.06|0.04|R|F|1994-06-28|1994-07-25|1994-07-07|TAKE BACK RETURN|SHIP|ccounts haggle after the furiously |
-834|7|2|2|11|9977.00|0.03|0.00|A|F|1994-09-18|1994-08-03|1994-10-02|DELIVER IN PERSON|TRUCK|inst the regular packa|
-835|107|2|1|33|33234.30|0.09|0.06|N|O|1995-11-01|1995-12-02|1995-11-24|DELIVER IN PERSON|RAIL|onic instructions among the carefully iro|
-835|185|6|2|28|30385.04|0.02|0.02|N|O|1995-12-27|1995-12-11|1996-01-21|NONE|SHIP| fluffily furious pinto beans|
-836|188|9|1|6|6529.08|0.09|0.03|N|O|1996-12-09|1997-01-31|1996-12-29|COLLECT COD|TRUCK|fully bold theodolites are daringly across|
-836|84|5|2|18|17713.44|0.03|0.05|N|O|1997-02-27|1997-02-11|1997-03-22|NONE|REG AIR|y pending packages use alon|
-836|141|8|3|46|47892.44|0.05|0.07|N|O|1997-03-21|1997-02-06|1997-04-05|NONE|REG AIR|boldly final pinto beans haggle furiously|
-837|57|5|1|39|37324.95|0.03|0.08|A|F|1994-07-22|1994-08-10|1994-08-11|NONE|RAIL|ecial pinto bea|
-837|88|9|2|24|23713.92|0.08|0.00|R|F|1994-06-27|1994-09-02|1994-07-27|DELIVER IN PERSON|FOB|p carefully. theodolites use. bold courts a|
-838|134|10|1|20|20682.60|0.10|0.07|N|O|1998-04-11|1998-03-25|1998-04-19|COLLECT COD|TRUCK| furiously final ideas. slow, bold |
-838|29|10|2|27|25083.54|0.05|0.07|N|O|1998-02-15|1998-04-03|1998-02-20|DELIVER IN PERSON|SHIP| pending pinto beans haggle about t|
-838|95|7|3|23|22887.07|0.10|0.07|N|O|1998-03-26|1998-04-17|1998-04-02|COLLECT COD|AIR|ets haggle furiously furiously regular r|
-838|44|5|4|18|16992.72|0.09|0.00|N|O|1998-03-28|1998-04-06|1998-03-31|TAKE BACK RETURN|AIR|hely unusual foxes. furio|
-839|158|10|1|23|24337.45|0.07|0.02|N|O|1995-10-17|1995-11-03|1995-11-04|COLLECT COD|AIR|ng ideas haggle accord|
-839|189|10|2|47|51191.46|0.08|0.00|N|O|1995-10-17|1995-11-06|1995-11-10|NONE|AIR|refully final excuses about |
-864|130|5|1|34|35024.42|0.03|0.04|N|O|1997-12-16|1997-10-23|1998-01-12|TAKE BACK RETURN|SHIP|gside of the furiously special|
-864|98|1|2|7|6986.63|0.01|0.02|N|O|1997-11-13|1997-10-07|1997-12-13|TAKE BACK RETURN|MAIL|ven requests should sleep along |
-864|80|10|3|34|33322.72|0.03|0.00|N|O|1997-09-14|1997-11-04|1997-09-21|TAKE BACK RETURN|REG AIR|to the furiously ironic platelets! |
-865|198|10|1|16|17571.04|0.07|0.03|R|F|1993-08-24|1993-06-26|1993-08-28|TAKE BACK RETURN|TRUCK|y even accounts. quickly bold decoys|
-865|20|7|2|3|2760.06|0.02|0.05|A|F|1993-07-17|1993-07-14|1993-08-01|NONE|MAIL|fully regular the|
-865|87|8|3|15|14806.20|0.00|0.06|R|F|1993-07-05|1993-06-25|1993-07-26|NONE|SHIP| deposits sleep quickl|
-865|169|4|4|34|36351.44|0.09|0.06|A|F|1993-05-09|1993-07-28|1993-05-18|DELIVER IN PERSON|REG AIR|furiously fluffily unusual account|
-866|136|7|1|5|5180.65|0.08|0.00|R|F|1993-01-22|1993-01-14|1993-02-07|TAKE BACK RETURN|AIR|tegrate fluffily. carefully f|
-867|139|10|1|7|7273.91|0.04|0.07|A|F|1994-02-19|1993-12-25|1994-02-25|DELIVER IN PERSON|TRUCK|pendencies-- slyly unusual packages hagg|
-868|168|9|1|8|8545.28|0.06|0.03|R|F|1992-10-07|1992-08-01|1992-10-16|NONE|MAIL|l deposits. blithely regular pint|
-868|29|8|2|13|12077.26|0.05|0.07|R|F|1992-07-25|1992-08-26|1992-08-04|NONE|AIR|gged instructi|
-868|68|5|3|19|18393.14|0.09|0.06|R|F|1992-06-22|1992-08-27|1992-07-04|COLLECT COD|SHIP|lyly ironic platelets wake. rut|
-868|122|1|4|43|43951.16|0.02|0.04|A|F|1992-07-02|1992-07-22|1992-07-21|COLLECT COD|SHIP|kly silent deposits wake dar|
-868|25|8|5|27|24975.54|0.04|0.01|R|F|1992-08-01|1992-08-25|1992-08-12|TAKE BACK RETURN|RAIL|oss the fluffily unusual pinto |
-868|125|6|6|19|19477.28|0.02|0.05|R|F|1992-09-20|1992-07-18|1992-10-04|NONE|FOB|ely even deposits lose blithe|
-869|63|2|1|27|26002.62|0.07|0.07|N|O|1997-01-30|1997-02-17|1997-02-26|TAKE BACK RETURN|TRUCK|uffily even excuses? slyly even deposits |
-869|47|4|2|36|34093.44|0.04|0.01|N|O|1997-05-03|1997-03-17|1997-05-24|NONE|RAIL|ong the furiously bold instructi|
-870|50|9|1|36|34201.80|0.04|0.07|A|F|1993-10-18|1993-09-16|1993-11-15|COLLECT COD|MAIL|fily. furiously final accounts are |
-870|186|7|2|5|5430.90|0.06|0.05|A|F|1993-08-13|1993-09-11|1993-08-24|COLLECT COD|FOB|e slyly excuses. ironi|
-871|97|8|1|48|47860.32|0.10|0.03|N|O|1996-02-25|1996-02-09|1996-03-18|NONE|AIR|coys dazzle slyly slow notornis. f|
-871|55|10|2|47|44887.35|0.07|0.03|N|O|1995-12-25|1996-02-01|1996-01-24|TAKE BACK RETURN|RAIL|ss, final dep|
-871|108|5|3|13|13105.30|0.09|0.01|N|O|1996-01-25|1996-01-24|1996-02-03|NONE|REG AIR| haggle furiou|
-871|190|1|4|29|31615.51|0.06|0.07|N|O|1995-11-16|1996-01-27|1995-12-16|DELIVER IN PERSON|RAIL|ests are carefu|
-871|128|7|5|8|8224.96|0.00|0.01|N|O|1995-11-25|1996-01-12|1995-12-12|DELIVER IN PERSON|AIR|lar ideas-- slyly even accou|
-871|143|2|6|26|27121.64|0.00|0.06|N|O|1996-02-07|1996-01-05|1996-02-25|COLLECT COD|AIR|symptotes use quickly near the |
-871|174|3|7|4|4296.68|0.00|0.07|N|O|1996-03-09|1996-01-20|1996-03-26|COLLECT COD|FOB|l, regular dependencies w|
-896|39|10|1|47|44134.41|0.07|0.08|R|F|1993-05-28|1993-05-15|1993-06-15|DELIVER IN PERSON|TRUCK|ly even pinto beans integrate. b|
-896|198|2|2|10|10981.90|0.03|0.07|A|F|1993-07-07|1993-06-03|1993-07-24|COLLECT COD|SHIP| quickly even theodolites. carefully regu|
-896|2|9|3|7|6314.00|0.09|0.02|A|F|1993-05-02|1993-05-24|1993-05-31|DELIVER IN PERSON|MAIL| requests |
-896|152|3|4|11|11573.65|0.08|0.04|A|F|1993-05-19|1993-05-22|1993-06-08|COLLECT COD|MAIL|the multipliers sleep|
-896|188|9|5|34|36998.12|0.00|0.05|R|F|1993-05-21|1993-06-01|1993-05-23|NONE|TRUCK|ular, close requests cajo|
-896|177|6|6|44|47395.48|0.09|0.08|R|F|1993-05-19|1993-04-14|1993-06-02|DELIVER IN PERSON|FOB|lar, pending packages. deposits are q|
-896|109|2|7|11|11100.10|0.01|0.07|A|F|1993-05-01|1993-04-09|1993-05-06|TAKE BACK RETURN|FOB|rding to the pinto beans wa|
-897|91|4|1|15|14866.35|0.07|0.04|R|F|1995-05-25|1995-05-09|1995-06-07|COLLECT COD|REG AIR|r ideas. slyly spec|
-897|184|5|2|26|28188.68|0.05|0.08|N|O|1995-07-01|1995-06-10|1995-07-14|COLLECT COD|MAIL|tions sleep according to the special|
-897|126|1|3|13|13339.56|0.07|0.00|A|F|1995-03-30|1995-05-17|1995-04-21|TAKE BACK RETURN|MAIL|bold accounts mold carefully! braids|
-897|102|7|4|2|2004.20|0.08|0.08|R|F|1995-05-22|1995-05-07|1995-06-16|COLLECT COD|RAIL|into beans. slyly special fox|
-898|161|2|1|9|9550.44|0.07|0.08|A|F|1993-07-04|1993-07-09|1993-07-25|NONE|AIR|e slyly across the blithe|
-898|179|7|2|37|39929.29|0.03|0.05|A|F|1993-08-17|1993-08-04|1993-09-01|DELIVER IN PERSON|REG AIR|packages sleep furiously|
-898|49|8|3|11|10439.44|0.01|0.00|A|F|1993-09-13|1993-08-31|1993-09-25|TAKE BACK RETURN|MAIL|etly bold accounts |
-898|193|6|4|36|39354.84|0.04|0.07|R|F|1993-08-04|1993-07-25|1993-08-23|DELIVER IN PERSON|REG AIR| after the carefully |
-899|61|10|1|18|17299.08|0.04|0.05|N|O|1998-08-06|1998-05-09|1998-09-05|DELIVER IN PERSON|AIR|re daring, pending deposits. blit|
-899|47|4|2|25|23676.00|0.00|0.07|N|O|1998-07-21|1998-05-12|1998-08-16|NONE|REG AIR|rly final sentiments. bold pinto beans |
-899|85|6|3|4|3940.32|0.09|0.05|N|O|1998-06-02|1998-06-28|1998-06-14|TAKE BACK RETURN|REG AIR|ter the carefully regular deposits are agai|
-899|180|9|4|14|15122.52|0.05|0.03|N|O|1998-05-21|1998-05-28|1998-06-03|TAKE BACK RETURN|FOB|ades impress carefully|
-899|71|10|5|4|3884.28|0.06|0.02|N|O|1998-04-11|1998-05-14|1998-04-27|NONE|TRUCK|ges. blithe, ironic waters cajole care|
-899|120|4|6|47|47945.64|0.00|0.04|N|O|1998-04-14|1998-05-30|1998-05-13|DELIVER IN PERSON|TRUCK|furiously final foxes after the s|
-899|14|1|7|11|10054.11|0.02|0.08|N|O|1998-06-03|1998-06-15|1998-06-20|COLLECT COD|REG AIR|t the ironic|
-900|199|1|1|44|48364.36|0.01|0.06|R|F|1994-12-15|1994-12-03|1994-12-27|COLLECT COD|MAIL| detect quick|
-900|115|6|2|48|48725.28|0.08|0.04|A|F|1994-12-22|1994-11-08|1995-01-19|COLLECT COD|TRUCK|cial pinto beans nag |
-900|75|6|3|24|23401.68|0.03|0.00|R|F|1994-10-21|1994-12-25|1994-10-22|TAKE BACK RETURN|SHIP|-ray furiously un|
-901|22|7|1|36|33192.72|0.01|0.01|N|O|1998-08-11|1998-10-09|1998-08-27|DELIVER IN PERSON|REG AIR|. accounts are care|
-901|46|7|2|2|1892.08|0.09|0.02|N|O|1998-10-25|1998-09-27|1998-11-01|DELIVER IN PERSON|AIR|d foxes use slyly|
-901|43|10|3|37|34892.48|0.04|0.08|N|O|1998-11-01|1998-09-13|1998-11-05|NONE|AIR|ickly final deposits |
-901|18|9|4|11|10098.11|0.00|0.06|N|O|1998-11-13|1998-10-19|1998-11-14|TAKE BACK RETURN|TRUCK|ourts among the quickly expre|
-902|111|2|1|3|3033.33|0.06|0.00|R|F|1994-10-01|1994-10-25|1994-10-28|COLLECT COD|MAIL|into beans thrash blithely about the flu|
-902|118|2|2|8|8144.88|0.06|0.07|R|F|1994-10-25|1994-09-20|1994-11-07|COLLECT COD|RAIL| orbits al|
-902|165|2|3|24|25563.84|0.02|0.05|R|F|1994-11-08|1994-10-12|1994-11-26|NONE|FOB|. blithely even accounts poach furiously i|
-903|65|10|1|27|26056.62|0.04|0.03|N|O|1995-09-18|1995-09-20|1995-10-02|TAKE BACK RETURN|SHIP|lly pending foxes. furiously|
-903|9|2|2|35|31815.00|0.06|0.05|N|O|1995-09-18|1995-08-21|1995-10-12|TAKE BACK RETURN|TRUCK|rets wake fin|
-903|9|2|3|33|29997.00|0.02|0.03|N|O|1995-09-24|1995-09-01|1995-10-12|COLLECT COD|MAIL|ely ironic packages wake blithely|
-903|56|1|4|9|8604.45|0.09|0.00|N|O|1995-10-06|1995-09-14|1995-10-24|NONE|TRUCK|he slyly ev|
-903|42|3|5|1|942.04|0.04|0.00|N|O|1995-10-22|1995-09-13|1995-11-03|NONE|AIR|y final platelets sublate among the |
-903|168|9|6|13|13886.08|0.07|0.02|N|O|1995-09-11|1995-10-04|1995-10-03|COLLECT COD|SHIP|sleep along the final|
-928|169|10|1|29|31005.64|0.07|0.02|R|F|1995-05-17|1995-05-12|1995-05-21|NONE|REG AIR|ly alongside of the s|
-928|48|7|2|24|22752.96|0.05|0.08|A|F|1995-04-06|1995-05-08|1995-04-24|DELIVER IN PERSON|AIR|s the furiously regular warthogs im|
-928|152|10|3|46|48398.90|0.08|0.00|A|F|1995-05-09|1995-04-09|1995-06-01|DELIVER IN PERSON|REG AIR| beans sleep against the carefully ir|
-928|52|4|4|43|40938.15|0.10|0.05|A|F|1995-04-14|1995-04-21|1995-05-09|NONE|REG AIR|blithely. express, silent requests doze at|
-928|12|3|5|38|34656.38|0.02|0.08|N|F|1995-06-08|1995-04-15|1995-06-30|TAKE BACK RETURN|SHIP|xpress grouc|
-928|55|6|6|50|47752.50|0.05|0.00|N|F|1995-06-07|1995-04-15|1995-07-01|DELIVER IN PERSON|TRUCK| slyly slyly special request|
-928|11|5|7|11|10021.11|0.00|0.01|A|F|1995-04-29|1995-04-16|1995-04-30|NONE|AIR|longside of|
-929|129|8|1|45|46310.40|0.09|0.01|R|F|1993-01-24|1992-12-06|1993-02-16|DELIVER IN PERSON|REG AIR|ges haggle careful|
-929|175|5|2|44|47307.48|0.02|0.00|A|F|1992-10-09|1992-11-20|1992-10-22|DELIVER IN PERSON|SHIP|s. excuses cajole. carefully regu|
-929|74|5|3|14|13636.98|0.06|0.07|A|F|1992-10-21|1992-11-17|1992-11-15|NONE|FOB|gainst the|
-929|102|5|4|7|7014.70|0.06|0.01|A|F|1992-12-24|1992-12-19|1993-01-08|TAKE BACK RETURN|TRUCK|ithely. slyly c|
-930|45|4|1|36|34021.44|0.10|0.04|R|F|1994-12-21|1995-02-20|1994-12-24|COLLECT COD|RAIL|quickly regular pinto beans sle|
-930|18|8|2|47|43146.47|0.08|0.00|A|F|1995-03-20|1995-02-04|1995-04-04|DELIVER IN PERSON|AIR|ackages. fluffily e|
-930|65|10|3|10|9650.60|0.07|0.08|A|F|1994-12-18|1995-01-27|1995-01-16|COLLECT COD|AIR|ckly regular requests: regular instructions|
-930|100|2|4|21|21002.10|0.06|0.02|A|F|1995-02-16|1995-03-03|1995-03-13|DELIVER IN PERSON|SHIP|foxes. regular deposits integrate carefu|
-930|164|9|5|50|53208.00|0.03|0.06|A|F|1995-04-03|1995-01-29|1995-04-22|COLLECT COD|MAIL| excuses among the furiously express ideas |
-930|145|4|6|10|10451.40|0.00|0.04|A|F|1995-02-09|1995-02-17|1995-02-16|NONE|SHIP|blithely bold i|
-930|167|4|7|30|32014.80|0.07|0.08|R|F|1995-01-20|1995-02-28|1995-02-04|TAKE BACK RETURN|RAIL|g accounts sleep along the platelets.|
-931|40|1|1|18|16920.72|0.00|0.05|A|F|1993-04-04|1993-01-11|1993-04-13|NONE|RAIL|slyly ironic re|
-931|17|7|2|10|9170.10|0.05|0.07|A|F|1993-03-01|1993-01-09|1993-03-07|TAKE BACK RETURN|SHIP|ajole quickly. slyly sil|
-931|147|6|3|48|50262.72|0.01|0.08|A|F|1993-02-03|1993-03-02|1993-02-09|TAKE BACK RETURN|FOB|ep alongside of the fluffy |
-931|82|3|4|38|37319.04|0.08|0.08|A|F|1993-03-06|1993-02-24|1993-03-27|DELIVER IN PERSON|RAIL|usly final packages integrate carefully|
-932|44|1|1|41|38705.64|0.01|0.05|N|O|1997-06-05|1997-07-22|1997-06-26|COLLECT COD|RAIL|foxes. ironic pl|
-933|49|8|1|23|21827.92|0.02|0.04|R|F|1992-08-13|1992-09-18|1992-08-25|DELIVER IN PERSON|MAIL| the furiously bold dinos. sly|
-933|13|4|2|27|24651.27|0.02|0.01|R|F|1992-10-03|1992-10-02|1992-10-26|DELIVER IN PERSON|RAIL|ests. express|
-933|100|2|3|26|26002.60|0.05|0.00|A|F|1992-11-09|1992-11-03|1992-11-16|DELIVER IN PERSON|AIR| the deposits affix slyly after t|
-934|118|5|1|18|18325.98|0.07|0.01|N|O|1996-09-10|1996-09-20|1996-09-25|COLLECT COD|RAIL|y unusual requests dazzle above t|
-935|28|3|1|23|21344.46|0.05|0.00|N|O|1997-11-11|1997-11-22|1997-11-29|COLLECT COD|REG AIR|ular accounts about|
-935|65|10|2|23|22196.38|0.02|0.01|N|O|1998-01-11|1997-11-25|1998-02-05|COLLECT COD|TRUCK|hes haggle furiously dolphins. qu|
-935|135|1|3|36|37264.68|0.06|0.00|N|O|1997-11-05|1997-12-05|1997-11-25|TAKE BACK RETURN|AIR|leep about the exp|
-935|58|3|4|13|12454.65|0.08|0.04|N|O|1998-01-13|1997-11-30|1998-02-08|DELIVER IN PERSON|TRUCK|ld platelet|
-935|13|7|5|8|7304.08|0.02|0.05|N|O|1998-01-12|1997-11-02|1998-02-05|NONE|TRUCK|cept the quickly regular p|
-935|59|1|6|1|959.05|0.01|0.08|N|O|1997-12-14|1997-11-22|1998-01-08|DELIVER IN PERSON|TRUCK| instructions. ironic acc|
-960|107|10|1|1|1007.10|0.07|0.00|A|F|1994-12-24|1994-10-26|1995-01-20|DELIVER IN PERSON|AIR|y ironic packages. quickly even |
-960|117|7|2|25|25427.75|0.06|0.08|R|F|1994-12-01|1994-10-29|1994-12-27|DELIVER IN PERSON|RAIL|ts. fluffily regular requests |
-960|175|3|3|32|34405.44|0.01|0.08|R|F|1995-01-19|1994-12-17|1995-02-04|DELIVER IN PERSON|FOB|around the blithe, even pl|
-961|118|5|1|7|7126.77|0.10|0.00|N|O|1995-07-23|1995-07-20|1995-08-11|TAKE BACK RETURN|RAIL|usual dolphins. ironic pearls sleep blit|
-961|91|2|2|18|17839.62|0.09|0.05|N|O|1995-07-01|1995-08-14|1995-07-04|DELIVER IN PERSON|AIR|rmanent foxes haggle speci|
-961|97|8|3|42|41877.78|0.06|0.01|N|O|1995-08-24|1995-08-21|1995-09-10|TAKE BACK RETURN|SHIP|ests do cajole blithely. furiously bo|
-961|34|10|4|29|27086.87|0.00|0.07|N|F|1995-06-10|1995-08-20|1995-06-26|TAKE BACK RETURN|TRUCK|l accounts use blithely against the|
-961|26|7|5|38|35188.76|0.03|0.05|N|O|1995-08-21|1995-07-19|1995-08-27|NONE|RAIL|he blithely special requests. furiousl|
-961|197|8|6|30|32915.70|0.09|0.03|N|O|1995-07-06|1995-07-20|1995-07-26|DELIVER IN PERSON|MAIL|warhorses slee|
-962|57|8|1|36|34453.80|0.01|0.03|R|F|1994-08-09|1994-07-10|1994-09-02|COLLECT COD|TRUCK|al foxes. iron|
-962|36|2|2|27|25272.81|0.09|0.02|A|F|1994-05-11|1994-07-10|1994-06-03|TAKE BACK RETURN|SHIP|y slyly express deposits. final i|
-962|80|1|3|3|2940.24|0.07|0.08|A|F|1994-05-08|1994-07-06|1994-06-02|DELIVER IN PERSON|FOB|ag furiously. even pa|
-962|57|5|4|20|19141.00|0.04|0.02|R|F|1994-08-26|1994-06-27|1994-09-11|DELIVER IN PERSON|SHIP| deposits use fluffily according to |
-962|152|7|5|12|12625.80|0.02|0.00|A|F|1994-06-09|1994-06-07|1994-06-11|COLLECT COD|TRUCK|across the furiously regular escapades daz|
-962|188|9|6|5|5440.90|0.02|0.05|A|F|1994-08-29|1994-07-15|1994-09-19|COLLECT COD|TRUCK|efully bold packages run slyly caref|
-963|194|8|1|7|7659.33|0.01|0.00|R|F|1994-09-12|1994-07-18|1994-09-17|DELIVER IN PERSON|REG AIR|s. slyly regular depe|
-963|98|10|2|48|47908.32|0.10|0.06|R|F|1994-08-25|1994-08-12|1994-09-21|DELIVER IN PERSON|RAIL|ages. quickly express deposits cajole pe|
-964|199|10|1|39|42868.41|0.04|0.01|N|O|1995-06-21|1995-07-24|1995-06-24|NONE|AIR|se furiously regular instructions. blith|
-964|113|4|2|1|1013.11|0.02|0.05|N|O|1995-08-20|1995-07-29|1995-09-10|DELIVER IN PERSON|REG AIR|unts. quickly even platelets s|
-964|57|5|3|49|46895.45|0.01|0.03|N|O|1995-09-06|1995-08-10|1995-10-05|NONE|MAIL|ounts. blithely regular packag|
-964|55|3|4|44|42022.20|0.05|0.02|N|O|1995-09-18|1995-08-02|1995-10-17|TAKE BACK RETURN|TRUCK|ronic deposit|
-965|108|1|1|20|20162.00|0.04|0.05|N|F|1995-06-16|1995-07-20|1995-07-06|COLLECT COD|MAIL|kly. carefully pending requ|
-965|18|5|2|23|21114.23|0.06|0.08|N|O|1995-07-12|1995-07-08|1995-08-11|COLLECT COD|MAIL|ld kindle carefully across th|
-966|180|8|1|19|20523.42|0.07|0.01|N|O|1998-05-26|1998-07-15|1998-05-29|COLLECT COD|FOB|efully final pinto beans. quickly |
-966|117|4|2|42|42718.62|0.02|0.06|N|O|1998-06-28|1998-06-20|1998-07-05|NONE|TRUCK|tions boost furiously car|
-966|22|1|3|42|38724.84|0.06|0.08|N|O|1998-06-15|1998-06-08|1998-07-05|NONE|RAIL|sly ironic asymptotes hagg|
-966|5|2|4|20|18100.00|0.04|0.01|N|O|1998-07-19|1998-07-15|1998-07-27|NONE|TRUCK|pecial ins|
-967|59|4|1|41|39321.05|0.05|0.05|R|F|1992-09-21|1992-08-15|1992-10-21|NONE|MAIL|ld foxes wake closely special|
-967|85|6|2|4|3940.32|0.01|0.02|A|F|1992-07-15|1992-07-27|1992-07-18|DELIVER IN PERSON|REG AIR|platelets hang carefully along |
-967|132|8|3|10|10321.30|0.00|0.02|A|F|1992-09-18|1992-08-06|1992-09-19|DELIVER IN PERSON|MAIL|old pinto beans alongside of the exp|
-967|148|7|4|49|51358.86|0.01|0.04|A|F|1992-09-28|1992-09-15|1992-10-14|NONE|SHIP|the slyly even ideas. carefully even|
-967|17|1|5|41|37597.41|0.08|0.04|A|F|1992-07-23|1992-08-07|1992-08-13|TAKE BACK RETURN|FOB|efully special ide|
-967|106|9|6|17|17103.70|0.05|0.06|A|F|1992-10-02|1992-08-19|1992-10-25|NONE|MAIL|y ironic foxes caj|
-967|161|8|7|18|19100.88|0.00|0.02|A|F|1992-10-06|1992-08-05|1992-10-15|DELIVER IN PERSON|RAIL|ngage blith|
-992|60|2|1|14|13440.84|0.10|0.03|N|O|1998-01-29|1997-12-29|1998-02-18|TAKE BACK RETURN|MAIL|the unusual, even dependencies affix fluff|
-992|38|9|2|34|31893.02|0.02|0.00|N|O|1997-11-29|1998-01-21|1997-11-30|NONE|RAIL|s use silently. blithely regular ideas b|
-992|105|6|3|30|30153.00|0.10|0.00|N|O|1997-12-15|1998-02-02|1998-01-12|NONE|SHIP|nic instructions n|
-992|48|5|4|21|19908.84|0.06|0.06|N|O|1997-11-13|1997-12-28|1997-12-10|NONE|TRUCK|fily. quickly special deposit|
-992|92|4|5|7|6944.63|0.09|0.05|N|O|1997-11-30|1997-12-24|1997-12-16|DELIVER IN PERSON|TRUCK|ideas haggle. special theodolit|
-992|75|3|6|41|39977.87|0.10|0.01|N|O|1997-11-14|1998-02-04|1997-11-23|TAKE BACK RETURN|AIR|eodolites cajole across the accounts.|
-993|175|5|1|33|35480.61|0.01|0.05|N|O|1996-01-03|1995-11-28|1996-01-23|DELIVER IN PERSON|AIR| the deposits affix agains|
-993|3|6|2|28|25284.00|0.06|0.08|N|O|1995-10-24|1995-11-20|1995-11-06|DELIVER IN PERSON|RAIL|lites. even theodolite|
-993|40|1|3|10|9400.40|0.03|0.08|N|O|1995-12-17|1995-11-13|1995-12-20|NONE|RAIL|encies wake fur|
-993|191|4|4|40|43647.60|0.01|0.01|N|O|1995-11-16|1995-11-01|1995-12-05|TAKE BACK RETURN|RAIL|gle above the furiously |
-993|146|7|5|33|34522.62|0.09|0.08|N|O|1995-09-28|1995-10-24|1995-10-03|COLLECT COD|RAIL|fluffily. quiet excuses sleep furiously sly|
-993|137|3|6|35|36299.55|0.04|0.02|N|O|1995-10-26|1995-10-20|1995-11-05|DELIVER IN PERSON|FOB|es. ironic, ironic requests|
-993|5|2|7|15|13575.00|0.09|0.03|N|O|1995-09-27|1995-10-21|1995-10-17|DELIVER IN PERSON|MAIL|sits. pending pinto beans haggle? ca|
-994|65|6|1|4|3860.24|0.07|0.03|R|F|1994-07-05|1994-05-21|1994-07-20|COLLECT COD|SHIP|aggle carefully acc|
-994|10|3|2|11|10010.11|0.01|0.00|R|F|1994-05-03|1994-06-10|1994-05-22|NONE|AIR|ular accounts sleep |
-994|31|7|3|5|4655.15|0.08|0.08|A|F|1994-06-24|1994-06-14|1994-06-26|NONE|MAIL|ainst the pending requests. packages sl|
-994|131|7|4|25|25778.25|0.10|0.00|A|F|1994-06-03|1994-06-02|1994-06-06|COLLECT COD|RAIL|usual pinto beans.|
-995|173|1|1|15|16097.55|0.08|0.05|N|O|1995-06-30|1995-08-04|1995-07-27|NONE|REG AIR|uses. fluffily fina|
-995|129|4|2|28|28815.36|0.08|0.03|N|F|1995-06-12|1995-07-20|1995-06-19|DELIVER IN PERSON|SHIP|pades. quick, final frays use flu|
-995|166|3|3|45|47977.20|0.00|0.05|N|O|1995-08-02|1995-07-21|1995-08-03|DELIVER IN PERSON|SHIP|lar packages detect blithely above t|
-995|66|3|4|25|24151.50|0.01|0.08|N|O|1995-09-08|1995-08-05|1995-09-28|NONE|TRUCK|lyly even |
-995|24|5|5|18|16632.36|0.06|0.03|N|O|1995-07-03|1995-07-29|1995-07-22|TAKE BACK RETURN|AIR| even accounts unwind c|
-996|173|2|1|43|46146.31|0.03|0.06|N|O|1998-03-27|1998-03-25|1998-04-06|COLLECT COD|SHIP| the blithely ironic foxes. slyly silent d|
-997|163|4|1|11|11694.76|0.00|0.02|N|O|1997-06-16|1997-07-21|1997-07-14|DELIVER IN PERSON|TRUCK|p furiously according to t|
-997|48|9|2|17|16116.68|0.03|0.00|N|O|1997-07-28|1997-07-26|1997-08-20|DELIVER IN PERSON|SHIP|aggle quickly furiously|
-998|10|7|1|22|20020.22|0.04|0.05|A|F|1994-12-03|1995-02-17|1994-12-19|TAKE BACK RETURN|RAIL|lites. qui|
-998|181|2|2|7|7568.26|0.10|0.05|R|F|1995-03-24|1995-01-18|1995-04-03|NONE|MAIL|nic deposits. even asym|
-998|142|9|3|30|31264.20|0.05|0.07|A|F|1994-12-02|1995-01-23|1994-12-23|NONE|SHIP|lyly idle Tir|
-998|11|8|4|6|5466.06|0.09|0.05|R|F|1995-03-20|1994-12-27|1995-04-13|DELIVER IN PERSON|MAIL|refully accounts. carefully express ac|
-998|73|2|5|1|973.07|0.04|0.00|R|F|1995-01-05|1995-01-06|1995-01-13|NONE|SHIP|es sleep. regular dependencies use bl|
-999|61|6|1|34|32676.04|0.00|0.08|R|F|1993-10-30|1993-10-17|1993-10-31|TAKE BACK RETURN|SHIP|its. daringly final instruc|
-999|199|1|2|41|45066.79|0.08|0.01|A|F|1993-10-16|1993-12-04|1993-11-03|DELIVER IN PERSON|REG AIR|us depths. carefully ironic instruc|
-999|118|5|3|15|15271.65|0.07|0.06|A|F|1993-12-12|1993-10-18|1994-01-08|COLLECT COD|REG AIR|y ironic requests. carefully regu|
-999|3|4|4|10|9030.00|0.05|0.02|A|F|1993-11-23|1993-12-02|1993-11-29|NONE|MAIL|efully pending|
-999|19|10|5|3|2757.03|0.03|0.00|R|F|1993-09-17|1993-10-22|1993-10-13|NONE|FOB|nic, pending ideas. bl|
-999|181|2|6|37|40003.66|0.00|0.04|R|F|1994-01-03|1993-10-28|1994-01-12|DELIVER IN PERSON|TRUCK|ckly slyly unusual packages: packages hagg|
-1024|199|2|1|49|53860.31|0.03|0.05|N|O|1998-03-06|1998-01-26|1998-03-29|TAKE BACK RETURN|FOB|ts. asymptotes nag fur|
-1024|126|5|2|34|34888.08|0.00|0.01|N|O|1998-01-06|1998-02-05|1998-01-26|COLLECT COD|SHIP|des the slyly even|
-1024|44|3|3|28|26433.12|0.04|0.01|N|O|1998-03-04|1998-03-12|1998-03-15|TAKE BACK RETURN|TRUCK|e blithely regular pi|
-1024|184|5|4|13|14094.34|0.02|0.04|N|O|1998-04-11|1998-02-26|1998-04-18|NONE|FOB|e slyly around the slyly special instructi|
-1024|21|4|5|49|45129.98|0.02|0.04|N|O|1998-02-27|1998-03-10|1998-03-27|COLLECT COD|FOB| carefully bold |
-1025|150|1|1|36|37805.40|0.03|0.04|A|F|1995-05-15|1995-07-05|1995-06-10|COLLECT COD|FOB|e unusual, regular instr|
-1025|69|10|2|23|22288.38|0.08|0.03|N|F|1995-06-02|1995-07-29|1995-06-23|COLLECT COD|RAIL| regular platelets nag carefu|
-1025|23|2|3|25|23075.50|0.06|0.05|R|F|1995-05-29|1995-06-21|1995-06-13|DELIVER IN PERSON|REG AIR|xpress foxes. furiousl|
-1026|38|4|1|36|33769.08|0.10|0.02|N|O|1997-06-14|1997-07-20|1997-06-23|NONE|SHIP|st the ide|
-1026|37|8|2|6|5622.18|0.10|0.08|N|O|1997-07-07|1997-08-16|1997-07-14|TAKE BACK RETURN|TRUCK|to beans. special, regular packages hagg|
-1027|156|1|1|43|45414.45|0.07|0.08|R|F|1992-06-17|1992-08-28|1992-07-10|DELIVER IN PERSON|MAIL|oxes. carefully regular deposits|
-1027|113|10|2|20|20262.20|0.01|0.02|A|F|1992-06-08|1992-08-29|1992-06-14|NONE|TRUCK|ar excuses eat f|
-1027|126|9|3|2|2052.24|0.01|0.02|R|F|1992-08-28|1992-07-09|1992-09-10|NONE|FOB|s. quickly unusual waters inside |
-1027|100|4|4|13|13001.30|0.08|0.01|R|F|1992-08-22|1992-07-10|1992-09-12|DELIVER IN PERSON|RAIL|ily ironic ideas use|
-1027|136|2|5|22|22794.86|0.02|0.00|A|F|1992-09-03|1992-08-14|1992-10-01|DELIVER IN PERSON|FOB|the furiously express ex|
-1027|105|8|6|10|10051.00|0.06|0.08|R|F|1992-08-28|1992-08-06|1992-09-03|COLLECT COD|REG AIR|ilent, express foxes near the blithely sp|
-1028|128|3|1|2|2056.24|0.09|0.03|A|F|1994-01-10|1994-03-22|1994-01-26|COLLECT COD|FOB|s alongside of the regular asymptotes sleep|
-1028|112|9|2|39|39472.29|0.06|0.05|R|F|1994-02-18|1994-03-22|1994-03-06|TAKE BACK RETURN|MAIL| final dependencies affix a|
-1028|100|3|3|8|8000.80|0.03|0.07|A|F|1994-02-14|1994-03-28|1994-02-22|NONE|AIR|e carefully final packages. furiously fi|
-1028|32|8|4|26|24232.78|0.07|0.02|A|F|1994-03-18|1994-02-08|1994-03-19|TAKE BACK RETURN|RAIL|ronic platelets. carefully f|
-1028|29|2|5|27|25083.54|0.00|0.04|A|F|1994-04-03|1994-02-07|1994-04-26|NONE|REG AIR|ial accounts nag. slyly|
-1028|26|1|6|39|36114.78|0.03|0.02|A|F|1994-02-27|1994-02-16|1994-03-02|DELIVER IN PERSON|AIR|c theodoli|
-1028|31|2|7|22|20482.66|0.03|0.00|R|F|1994-04-24|1994-02-27|1994-05-08|NONE|REG AIR| Tiresias alongside of the carefully spec|
-1029|137|3|1|45|46670.85|0.05|0.07|R|F|1994-07-21|1994-08-30|1994-07-29|TAKE BACK RETURN|FOB|sits boost blithely|
-1030|65|10|1|17|16406.02|0.06|0.06|R|F|1994-10-13|1994-08-01|1994-11-10|DELIVER IN PERSON|RAIL|ly. carefully even packages dazz|
-1031|46|7|1|15|14190.60|0.10|0.08|A|F|1994-11-07|1994-10-29|1994-11-09|TAKE BACK RETURN|FOB|about the carefully bold a|
-1031|165|4|2|28|29824.48|0.05|0.01|A|F|1994-12-10|1994-10-29|1994-12-18|COLLECT COD|FOB|ly ironic accounts across the q|
-1031|187|8|3|27|29353.86|0.07|0.02|R|F|1994-09-20|1994-10-18|1994-10-10|DELIVER IN PERSON|SHIP|gular deposits cajole. blithely unus|
-1031|88|9|4|7|6916.56|0.03|0.03|R|F|1994-12-07|1994-11-11|1994-12-30|COLLECT COD|FOB|r instructions. car|
-1031|191|5|5|44|48012.36|0.01|0.07|R|F|1994-11-20|1994-11-24|1994-12-11|NONE|AIR|re slyly above the furio|
-1056|121|6|1|37|37781.44|0.04|0.06|R|F|1995-02-18|1995-04-01|1995-03-20|NONE|TRUCK| special packages. qui|
-1057|193|5|1|29|31702.51|0.10|0.01|A|F|1992-05-05|1992-05-05|1992-06-03|TAKE BACK RETURN|SHIP|es wake according to the q|
-1057|169|8|2|11|11760.76|0.00|0.02|R|F|1992-03-31|1992-04-18|1992-04-18|COLLECT COD|AIR|yly final theodolites. furi|
-1057|85|6|3|21|20686.68|0.03|0.04|A|F|1992-02-28|1992-05-01|1992-03-10|NONE|REG AIR|ar orbits boost bli|
-1057|182|3|4|20|21643.60|0.06|0.03|R|F|1992-03-02|1992-05-19|1992-03-13|DELIVER IN PERSON|TRUCK|s wake bol|
-1057|97|1|5|7|6979.63|0.06|0.05|R|F|1992-06-05|1992-04-30|1992-06-20|NONE|TRUCK|y slyly express theodolites. slyly bo|
-1057|52|7|6|19|18088.95|0.04|0.07|A|F|1992-05-31|1992-05-09|1992-06-02|DELIVER IN PERSON|FOB|r-- packages haggle alon|
-1058|140|6|1|24|24963.36|0.08|0.04|A|F|1993-07-09|1993-05-28|1993-07-22|DELIVER IN PERSON|TRUCK|fully ironic accounts. express accou|
-1058|89|10|2|5|4945.40|0.04|0.07|R|F|1993-05-11|1993-05-29|1993-05-27|COLLECT COD|TRUCK|refully even requests boost along|
-1058|90|1|3|44|43563.96|0.10|0.01|R|F|1993-06-26|1993-06-21|1993-07-20|COLLECT COD|TRUCK|uriously f|
-1058|5|2|4|25|22625.00|0.09|0.01|A|F|1993-05-27|1993-06-10|1993-06-20|TAKE BACK RETURN|MAIL| the final requests believe carefully |
-1059|178|9|1|16|17250.72|0.07|0.02|A|F|1994-04-24|1994-03-31|1994-04-28|DELIVER IN PERSON|SHIP|y ironic pinto |
-1059|29|2|2|7|6503.14|0.07|0.06|R|F|1994-03-30|1994-04-01|1994-04-24|DELIVER IN PERSON|MAIL|the furiously silent excuses are e|
-1059|88|9|3|45|44463.60|0.00|0.02|R|F|1994-06-10|1994-05-08|1994-06-21|COLLECT COD|RAIL|riously even theodolites. slyly regula|
-1059|110|7|4|26|26262.86|0.09|0.01|A|F|1994-03-17|1994-04-18|1994-03-26|DELIVER IN PERSON|TRUCK|ar pinto beans at the furiously |
-1059|139|5|5|37|38447.81|0.09|0.04|R|F|1994-03-31|1994-05-08|1994-04-06|COLLECT COD|RAIL| packages lose in place of the slyly unusu|
-1059|190|1|6|50|54509.50|0.00|0.03|A|F|1994-06-15|1994-05-11|1994-06-29|NONE|MAIL|s impress furiously about|
-1059|123|4|7|13|13300.56|0.01|0.03|R|F|1994-06-12|1994-05-11|1994-07-02|COLLECT COD|TRUCK|usly regular theodo|
-1060|196|10|1|8|8769.52|0.07|0.04|R|F|1993-05-21|1993-05-06|1993-06-10|DELIVER IN PERSON|FOB|iously. furiously regular in|
-1060|8|5|2|26|23608.00|0.06|0.08|R|F|1993-04-12|1993-04-01|1993-04-20|DELIVER IN PERSON|TRUCK|counts; even deposits are carefull|
-1060|164|3|3|11|11705.76|0.01|0.07|A|F|1993-05-13|1993-05-08|1993-05-17|TAKE BACK RETURN|MAIL|e regular deposits: re|
-1060|110|7|4|16|16161.76|0.03|0.06|A|F|1993-06-15|1993-04-18|1993-07-05|COLLECT COD|SHIP|ccounts. foxes maintain care|
-1060|53|8|5|1|953.05|0.04|0.06|A|F|1993-06-19|1993-05-10|1993-06-21|COLLECT COD|RAIL|posits detect carefully abo|
-1060|72|2|6|26|25273.82|0.01|0.03|A|F|1993-02-28|1993-04-01|1993-03-09|TAKE BACK RETURN|FOB|quickly abo|
-1060|121|10|7|36|36760.32|0.09|0.01|R|F|1993-03-14|1993-03-24|1993-04-02|TAKE BACK RETURN|FOB|r the quickly|
-1061|151|6|1|7|7358.05|0.04|0.04|N|O|1998-08-09|1998-08-12|1998-08-16|COLLECT COD|FOB|es are slyly expr|
-1061|119|3|2|2|2038.22|0.06|0.02|N|O|1998-08-15|1998-08-05|1998-08-24|COLLECT COD|MAIL|. regular accounts impre|
-1061|111|8|3|26|26288.86|0.08|0.02|N|O|1998-06-18|1998-07-25|1998-06-24|TAKE BACK RETURN|AIR|ave to slee|
-1061|136|7|4|41|42481.33|0.00|0.05|N|O|1998-06-29|1998-07-02|1998-07-27|NONE|MAIL|s are. ironic theodolites cajole. dep|
-1061|131|2|5|50|51556.50|0.04|0.08|N|O|1998-05-25|1998-07-22|1998-06-22|COLLECT COD|AIR|nding excuses are around the e|
-1061|144|1|6|35|36544.90|0.09|0.05|N|O|1998-07-05|1998-07-07|1998-07-30|TAKE BACK RETURN|MAIL|ending requests nag careful|
-1062|137|8|1|38|39410.94|0.00|0.01|N|O|1997-01-27|1997-03-07|1997-02-16|DELIVER IN PERSON|TRUCK|deas. pending acc|
-1063|96|9|1|42|41835.78|0.03|0.02|A|F|1994-07-10|1994-05-25|1994-07-26|NONE|RAIL|tructions about the blithely ex|
-1088|107|8|1|30|30213.00|0.07|0.03|A|F|1992-05-22|1992-06-25|1992-06-11|TAKE BACK RETURN|SHIP|long the packages snooze careful|
-1088|37|3|2|11|10307.33|0.06|0.00|A|F|1992-08-30|1992-07-25|1992-09-10|TAKE BACK RETURN|AIR|inal requests. fluffily express theod|
-1088|181|2|3|5|5405.90|0.03|0.07|A|F|1992-07-01|1992-07-25|1992-07-02|NONE|AIR|refully ironic packages. r|
-1088|124|5|4|3|3072.36|0.09|0.03|A|F|1992-06-15|1992-08-02|1992-06-18|DELIVER IN PERSON|MAIL|pecial theodolites |
-1089|151|3|1|47|49404.05|0.05|0.06|N|O|1996-06-26|1996-06-25|1996-07-11|NONE|TRUCK|aggle furiously among the bravely eve|
-1089|50|7|2|35|33251.75|0.03|0.00|N|O|1996-08-14|1996-07-10|1996-08-26|NONE|TRUCK|ly express deposits haggle|
-1089|26|7|3|23|21298.46|0.10|0.05|N|O|1996-06-24|1996-07-25|1996-07-20|DELIVER IN PERSON|AIR|g dolphins. deposits integrate. s|
-1089|141|10|4|1|1041.14|0.01|0.03|N|O|1996-07-08|1996-07-07|1996-07-17|COLLECT COD|RAIL|n courts among the caref|
-1090|22|3|1|5|4610.10|0.02|0.05|N|O|1998-02-19|1997-12-25|1998-02-24|DELIVER IN PERSON|AIR|s above the |
-1090|113|10|2|28|28367.08|0.08|0.08|N|O|1998-02-20|1998-01-03|1998-03-19|NONE|FOB|s cajole above the regular|
-1091|38|9|1|40|37521.20|0.10|0.06|N|O|1996-12-17|1996-10-14|1996-12-24|TAKE BACK RETURN|REG AIR|platelets. regular packag|
-1092|184|5|1|48|52040.64|0.04|0.04|N|O|1995-06-25|1995-04-06|1995-07-18|DELIVER IN PERSON|AIR|unusual accounts. fluffi|
-1092|153|5|2|1|1053.15|0.01|0.06|A|F|1995-03-10|1995-04-21|1995-04-06|COLLECT COD|RAIL|lent, pending requests-- requests nag accor|
-1092|161|8|3|28|29712.48|0.05|0.08|R|F|1995-04-08|1995-05-01|1995-05-02|DELIVER IN PERSON|FOB|affix carefully. u|
-1092|86|7|4|2|1972.16|0.05|0.07|R|F|1995-04-09|1995-05-12|1995-05-03|TAKE BACK RETURN|TRUCK|ans. slyly eve|
-1093|87|8|1|7|6909.56|0.04|0.02|N|O|1997-11-24|1997-09-23|1997-11-25|TAKE BACK RETURN|SHIP|bold deposits. blithely ironic depos|
-1093|177|5|2|37|39855.29|0.08|0.04|N|O|1997-11-06|1997-10-08|1997-11-22|COLLECT COD|FOB|le furiously across the carefully sp|
-1093|61|2|3|34|32676.04|0.01|0.06|N|O|1997-11-07|1997-09-06|1997-11-28|TAKE BACK RETURN|REG AIR|sits. express accounts play carefully. bol|
-1094|115|6|1|9|9135.99|0.07|0.06|N|O|1997-12-28|1998-03-16|1998-01-18|DELIVER IN PERSON|AIR|as. slyly pe|
-1095|137|3|1|33|34225.29|0.01|0.02|N|O|1995-10-03|1995-09-22|1995-10-13|NONE|MAIL|slyly around the iron|
-1095|136|2|2|24|24867.12|0.04|0.06|N|O|1995-08-24|1995-10-20|1995-09-09|COLLECT COD|TRUCK|packages nod furiously above the carefully |
-1095|156|4|3|13|13729.95|0.06|0.01|N|O|1995-08-24|1995-10-19|1995-09-02|TAKE BACK RETURN|REG AIR|ously even accounts. slyly bold a|
-1095|135|1|4|28|28983.64|0.08|0.03|N|O|1995-09-20|1995-11-18|1995-10-02|DELIVER IN PERSON|SHIP| regular pac|
-1095|112|2|5|40|40484.40|0.09|0.03|N|O|1995-10-18|1995-11-14|1995-11-09|NONE|MAIL| bold accounts haggle slyly furiously even|
-1095|181|2|6|37|40003.66|0.07|0.08|N|O|1995-10-04|1995-11-13|1995-10-12|NONE|SHIP|. quickly even dolphins sle|
-1120|178|8|1|10|10781.70|0.08|0.05|N|O|1997-12-17|1998-01-21|1997-12-23|DELIVER IN PERSON|MAIL|dependencies. blithel|
-1120|20|1|2|49|45080.98|0.01|0.07|N|O|1998-01-03|1998-02-02|1998-01-09|TAKE BACK RETURN|RAIL|heodolites. quick re|
-1120|76|6|3|21|20497.47|0.06|0.01|N|O|1998-01-11|1998-02-04|1998-01-19|COLLECT COD|REG AIR|s: fluffily even packages c|
-1120|46|9|4|22|20812.88|0.09|0.08|N|O|1997-11-15|1998-01-25|1997-12-07|TAKE BACK RETURN|REG AIR|ons. slyly silent requests sleep silent|
-1120|83|4|5|10|9830.80|0.07|0.08|N|O|1997-11-10|1998-02-01|1997-11-28|TAKE BACK RETURN|AIR|ages haggle furiously |
-1121|168|3|1|42|44862.72|0.04|0.05|N|O|1997-03-05|1997-03-18|1997-03-14|DELIVER IN PERSON|SHIP|nts are slyly special packages. f|
-1121|161|10|2|27|28651.32|0.08|0.00|N|O|1997-05-08|1997-03-28|1997-05-14|NONE|MAIL|ly ironic accounts cajole slyly abou|
-1121|157|5|3|10|10571.50|0.00|0.04|N|O|1997-04-17|1997-03-18|1997-05-02|TAKE BACK RETURN|RAIL|dencies. quickly regular theodolites n|
-1121|166|1|4|29|30918.64|0.02|0.01|N|O|1997-03-07|1997-04-02|1997-04-01|DELIVER IN PERSON|REG AIR| use furiously. quickly silent package|
-1121|30|9|5|47|43711.41|0.09|0.03|N|O|1997-04-27|1997-03-28|1997-05-14|COLLECT COD|FOB|ly idle, i|
-1121|200|1|6|50|55010.00|0.06|0.03|N|O|1997-04-21|1997-02-16|1997-04-25|NONE|TRUCK|odolites. slyly even accounts|
-1121|80|8|7|37|36262.96|0.06|0.01|N|O|1997-02-27|1997-03-04|1997-03-02|COLLECT COD|RAIL|special packages. fluffily final requests s|
-1122|92|6|1|8|7936.72|0.10|0.06|N|O|1997-02-02|1997-04-03|1997-02-22|TAKE BACK RETURN|RAIL|c foxes are along the slyly r|
-1122|182|3|2|29|31383.22|0.05|0.04|N|O|1997-05-07|1997-04-07|1997-05-15|COLLECT COD|SHIP|ptotes. quickl|
-1122|147|6|3|25|26178.50|0.09|0.01|N|O|1997-03-21|1997-03-03|1997-04-07|TAKE BACK RETURN|RAIL|d furiously. pinto |
-1122|106|9|4|40|40244.00|0.08|0.08|N|O|1997-02-07|1997-03-25|1997-02-25|NONE|REG AIR|packages sleep after the asym|
-1122|151|2|5|15|15767.25|0.05|0.03|N|O|1997-04-15|1997-03-15|1997-05-07|COLLECT COD|SHIP|olve blithely regular, |
-1122|162|7|6|24|25491.84|0.04|0.01|N|O|1997-03-08|1997-02-20|1997-04-05|NONE|RAIL|blithely requests. slyly pending r|
-1122|1|6|7|38|34238.00|0.00|0.08|N|O|1997-01-23|1997-04-02|1997-02-16|NONE|TRUCK|t theodolites sleep. even, ironic|
-1123|12|2|1|10|9120.10|0.05|0.08|N|O|1996-11-12|1996-10-04|1996-11-30|NONE|MAIL|ckages are above the depths. slyly ir|
-1123|178|8|2|39|42048.63|0.03|0.08|N|O|1996-08-25|1996-10-21|1996-09-04|DELIVER IN PERSON|REG AIR|rding to the furiously ironic requests: r|
-1123|101|4|3|38|38041.80|0.03|0.08|N|O|1996-09-23|1996-10-04|1996-09-27|DELIVER IN PERSON|FOB| blithely carefully unusual reques|
-1124|198|2|1|1|1098.19|0.09|0.08|N|O|1998-10-06|1998-10-02|1998-10-30|NONE|REG AIR| instructions cajole qu|
-1124|6|1|2|13|11778.00|0.05|0.04|N|O|1998-09-05|1998-10-03|1998-09-30|DELIVER IN PERSON|SHIP|t the slyly |
-1124|93|5|3|35|34758.15|0.10|0.05|N|O|1998-11-25|1998-10-08|1998-12-25|TAKE BACK RETURN|AIR|ut the slyly bold pinto beans; fi|
-1124|50|1|4|25|23751.25|0.08|0.05|N|O|1998-08-05|1998-10-14|1998-08-11|NONE|MAIL|ggle slyly according|
-1124|75|5|5|33|32177.31|0.05|0.04|N|O|1998-10-19|1998-09-17|1998-10-26|TAKE BACK RETURN|SHIP|eposits sleep slyly. stealthily f|
-1124|27|6|6|43|39861.86|0.01|0.03|N|O|1998-09-19|1998-10-28|1998-10-10|COLLECT COD|MAIL|across the |
-1124|95|6|7|1|995.09|0.09|0.01|N|O|1998-10-07|1998-08-31|1998-10-12|NONE|TRUCK|ly bold accou|
-1125|133|4|1|4|4132.52|0.08|0.02|A|F|1994-12-10|1994-12-28|1994-12-30|NONE|MAIL| quickly express packages a|
-1125|138|9|2|24|24915.12|0.10|0.03|R|F|1995-01-31|1994-12-02|1995-02-20|COLLECT COD|AIR|es about the slyly s|
-1125|122|7|3|26|26575.12|0.05|0.04|A|F|1995-02-24|1995-01-18|1995-03-05|COLLECT COD|TRUCK|l instruction|
-1125|98|1|4|29|28944.61|0.06|0.00|A|F|1994-11-29|1994-12-20|1994-12-10|DELIVER IN PERSON|RAIL| platelets wake against the carefully i|
-1126|36|2|1|44|41185.32|0.08|0.03|N|O|1998-05-07|1998-04-02|1998-05-29|NONE|TRUCK|es. carefully special|
-1126|58|3|2|7|6706.35|0.06|0.01|N|O|1998-05-02|1998-03-22|1998-05-21|COLLECT COD|MAIL|ons. final, unusual|
-1126|147|10|3|14|14659.96|0.07|0.07|N|O|1998-04-17|1998-04-15|1998-05-12|DELIVER IN PERSON|TRUCK|nstructions. blithe|
-1127|43|10|1|35|33006.40|0.02|0.03|N|O|1995-11-25|1995-11-03|1995-12-17|NONE|TRUCK|l instructions boost blithely according |
-1127|110|5|2|38|38384.18|0.09|0.05|N|O|1995-11-07|1995-11-11|1995-11-26|DELIVER IN PERSON|RAIL|. never final packages boost acro|
-1127|20|1|3|29|26680.58|0.09|0.07|N|O|1995-09-20|1995-11-21|1995-10-11|DELIVER IN PERSON|REG AIR|y. blithely r|
-1127|175|6|4|7|7526.19|0.07|0.05|N|O|1995-11-05|1995-11-02|1995-11-11|DELIVER IN PERSON|FOB| idly pending pains |
-1152|9|10|1|23|20907.00|0.06|0.04|A|F|1994-10-14|1994-10-22|1994-10-21|DELIVER IN PERSON|MAIL|equests alongside of the unusual |
-1152|100|2|2|25|25002.50|0.04|0.08|R|F|1994-10-20|1994-09-18|1994-10-28|DELIVER IN PERSON|REG AIR|efully ironic accounts. sly instructions wa|
-1152|42|9|3|6|5652.24|0.07|0.03|A|F|1994-12-07|1994-11-05|1994-12-25|DELIVER IN PERSON|FOB|p furiously; packages above th|
-1153|86|7|1|15|14791.20|0.00|0.08|N|O|1996-04-24|1996-07-17|1996-04-29|TAKE BACK RETURN|SHIP|uctions boost fluffily according to|
-1153|169|8|2|50|53458.00|0.00|0.07|N|O|1996-06-27|1996-07-13|1996-07-05|COLLECT COD|REG AIR|ronic asymptotes nag slyly. |
-1153|44|5|3|25|23601.00|0.00|0.05|N|O|1996-06-18|1996-06-28|1996-07-09|NONE|TRUCK| theodolites|
-1153|92|3|4|43|42659.87|0.01|0.00|N|O|1996-06-09|1996-06-01|1996-07-04|DELIVER IN PERSON|MAIL|special instructions are. unusual, final du|
-1153|142|5|5|45|46896.30|0.00|0.02|N|O|1996-06-18|1996-06-20|1996-07-03|TAKE BACK RETURN|AIR|oss the ex|
-1153|136|7|6|26|26939.38|0.02|0.03|N|O|1996-08-16|1996-07-12|1996-09-08|NONE|MAIL|kages haggle carefully. f|
-1153|192|4|7|5|5460.95|0.02|0.03|N|O|1996-05-03|1996-06-12|1996-05-28|TAKE BACK RETURN|FOB|special excuses promi|
-1154|143|10|1|31|32337.34|0.06|0.06|A|F|1992-04-17|1992-04-26|1992-05-17|COLLECT COD|AIR|ithely. final, blithe |
-1154|148|7|2|50|52407.00|0.07|0.06|A|F|1992-04-22|1992-04-21|1992-05-01|NONE|TRUCK|ove the furiously bold Tires|
-1154|97|1|3|5|4985.45|0.09|0.04|A|F|1992-06-07|1992-05-07|1992-07-05|DELIVER IN PERSON|MAIL|the furiously |
-1154|1|2|4|35|31535.00|0.00|0.07|A|F|1992-03-30|1992-04-02|1992-04-21|DELIVER IN PERSON|TRUCK|the carefully regular pinto beans boost|
-1154|36|2|5|18|16848.54|0.02|0.03|A|F|1992-02-26|1992-03-24|1992-03-20|TAKE BACK RETURN|REG AIR|y regular excuses cajole blithely. fi|
-1154|196|8|6|50|54809.50|0.06|0.03|A|F|1992-03-04|1992-04-01|1992-04-01|TAKE BACK RETURN|TRUCK| even, special |
-1155|70|1|1|4|3880.28|0.09|0.05|N|O|1997-10-19|1997-12-09|1997-11-02|DELIVER IN PERSON|SHIP|ic foxes according to the carefully final |
-1155|196|9|2|39|42751.41|0.08|0.05|N|O|1998-01-29|1998-01-03|1998-02-01|COLLECT COD|TRUCK|ckly final pinto beans was.|
-1155|147|4|3|23|24084.22|0.08|0.03|N|O|1997-11-24|1997-11-28|1997-12-06|DELIVER IN PERSON|FOB|ly unusual packages. iro|
-1155|140|1|4|12|12481.68|0.01|0.06|N|O|1997-11-01|1998-01-03|1997-11-19|DELIVER IN PERSON|RAIL|packages do|
-1155|5|2|5|49|44345.00|0.04|0.08|N|O|1997-12-07|1997-12-30|1997-12-08|NONE|AIR|ccounts are alongside of t|
-1156|87|8|1|15|14806.20|0.07|0.06|N|O|1996-12-21|1997-01-03|1997-01-10|TAKE BACK RETURN|AIR|the furiously pen|
-1156|33|4|2|21|19593.63|0.02|0.08|N|O|1996-11-07|1997-01-14|1996-12-03|NONE|AIR|dolphins. fluffily ironic packages sleep re|
-1156|12|2|3|29|26448.29|0.09|0.06|N|O|1997-01-24|1996-12-26|1997-02-04|DELIVER IN PERSON|TRUCK|ts sleep sly|
-1156|172|3|4|42|45031.14|0.02|0.00|N|O|1997-01-18|1997-01-12|1997-02-13|NONE|REG AIR|s. quickly bold pains are|
-1156|74|4|5|49|47729.43|0.04|0.01|N|O|1996-11-16|1996-12-02|1996-12-05|COLLECT COD|AIR|ithely unusual in|
-1156|195|9|6|42|45997.98|0.02|0.06|N|O|1997-01-27|1997-01-09|1997-01-28|DELIVER IN PERSON|MAIL|even requests boost ironic deposits. pe|
-1156|47|6|7|20|18940.80|0.08|0.07|N|O|1997-01-01|1997-01-06|1997-01-16|COLLECT COD|MAIL|deposits sleep bravel|
-1157|49|2|1|16|15184.64|0.06|0.00|N|O|1998-04-12|1998-03-09|1998-04-23|DELIVER IN PERSON|MAIL|tions hang|
-1157|83|4|2|4|3932.32|0.10|0.05|N|O|1998-02-24|1998-03-30|1998-03-24|DELIVER IN PERSON|SHIP|ounts. ironic deposits|
-1157|48|7|3|8|7584.32|0.02|0.00|N|O|1998-03-25|1998-03-16|1998-03-29|NONE|REG AIR|blithely even pa|
-1157|77|8|4|46|44945.22|0.07|0.08|N|O|1998-04-19|1998-03-13|1998-04-23|NONE|FOB|slyly regular excuses. accounts|
-1157|160|5|5|14|14842.24|0.03|0.03|N|O|1998-04-17|1998-03-03|1998-05-01|NONE|FOB|theodolites. fluffily re|
-1158|45|2|1|5|4725.20|0.02|0.04|N|O|1996-10-20|1996-07-30|1996-11-14|COLLECT COD|AIR|symptotes along the care|
-1158|157|9|2|23|24314.45|0.00|0.08|N|O|1996-10-21|1996-08-19|1996-10-31|COLLECT COD|MAIL|ularly ironic requests use care|
-1159|109|10|1|39|39354.90|0.01|0.00|A|F|1992-11-20|1992-10-28|1992-12-18|TAKE BACK RETURN|FOB| blithely express reques|
-1159|96|9|2|7|6972.63|0.08|0.00|A|F|1992-11-25|1992-10-27|1992-12-20|NONE|AIR|olve somet|
-1159|98|10|3|11|10978.99|0.10|0.03|R|F|1992-12-09|1992-12-07|1992-12-18|DELIVER IN PERSON|MAIL|h furiousl|
-1184|47|4|1|27|25570.08|0.01|0.00|N|O|1998-01-10|1997-12-02|1998-02-06|TAKE BACK RETURN|REG AIR|s wake fluffily. fl|
-1184|147|10|2|4|4188.56|0.04|0.03|N|O|1997-12-25|1998-01-24|1998-01-18|DELIVER IN PERSON|RAIL| express packages. slyly expres|
-1184|164|5|3|7|7449.12|0.05|0.00|N|O|1998-02-14|1998-01-06|1998-03-11|COLLECT COD|TRUCK|ckly warthogs. blithely bold foxes hag|
-1184|126|9|4|3|3078.36|0.02|0.05|N|O|1998-01-15|1997-12-19|1998-02-02|NONE|REG AIR|ar packages. final packages cajol|
-1185|72|1|1|8|7776.56|0.01|0.06|A|F|1992-12-05|1992-10-05|1992-12-28|DELIVER IN PERSON|MAIL|ely according to the furiously regular r|
-1185|31|2|2|28|26068.84|0.07|0.06|A|F|1992-09-24|1992-10-07|1992-10-10|DELIVER IN PERSON|REG AIR|ke. slyly regular t|
-1185|190|1|3|12|13082.28|0.05|0.06|R|F|1992-10-12|1992-09-26|1992-11-11|NONE|REG AIR|instructions. daringly pend|
-1186|3|4|1|28|25284.00|0.08|0.07|N|O|1996-12-08|1996-10-17|1996-12-15|TAKE BACK RETURN|TRUCK|ffily spec|
-1186|92|5|2|11|10912.99|0.07|0.05|N|O|1996-10-03|1996-10-21|1996-10-17|DELIVER IN PERSON|AIR|s haggle furiously; slyl|
-1186|101|2|3|20|20022.00|0.07|0.07|N|O|1996-08-20|1996-10-23|1996-09-05|COLLECT COD|FOB|ely alongside of the blithel|
-1186|106|7|4|27|27164.70|0.06|0.04|N|O|1996-10-08|1996-11-06|1996-10-09|TAKE BACK RETURN|SHIP|accounts. express, e|
-1187|178|6|1|29|31266.93|0.01|0.04|R|F|1992-12-10|1993-02-09|1992-12-29|TAKE BACK RETURN|RAIL|riously express ac|
-1187|131|7|2|15|15466.95|0.03|0.04|A|F|1992-12-22|1993-01-13|1993-01-01|NONE|TRUCK|ests. foxes wake. carefu|
-1187|78|8|3|40|39122.80|0.08|0.06|R|F|1993-03-05|1992-12-31|1993-03-12|NONE|TRUCK|ar, brave deposits nag blithe|
-1188|115|9|1|2|2030.22|0.00|0.04|N|O|1996-05-22|1996-05-23|1996-06-06|COLLECT COD|RAIL|its breach blit|
-1188|113|4|2|9|9117.99|0.01|0.08|N|O|1996-08-04|1996-06-04|1996-08-19|NONE|REG AIR|ow carefully ironic d|
-1188|179|10|3|41|44245.97|0.07|0.04|N|O|1996-06-29|1996-05-21|1996-07-21|TAKE BACK RETURN|TRUCK|althy packages. fluffily unusual ideas h|
-1189|51|2|1|23|21874.15|0.06|0.00|R|F|1994-07-25|1994-06-07|1994-08-02|COLLECT COD|FOB|s. fluffy Tiresias run quickly. bra|
-1189|105|2|2|32|32163.20|0.09|0.02|R|F|1994-05-06|1994-07-03|1994-05-15|TAKE BACK RETURN|FOB|e regular deposits. quickly quiet deposi|
-1189|57|5|3|22|21055.10|0.05|0.03|R|F|1994-06-09|1994-06-29|1994-06-23|DELIVER IN PERSON|TRUCK|quickly unusual platelets lose forges. ca|
-1190|84|5|1|32|31490.56|0.07|0.06|N|O|1997-05-08|1997-04-17|1997-06-01|COLLECT COD|FOB|y final packages? slyly even|
-1191|49|6|1|29|27522.16|0.00|0.04|N|O|1996-01-24|1996-01-28|1996-02-17|COLLECT COD|AIR| regular pin|
-1216|97|1|1|8|7976.72|0.03|0.04|R|F|1993-02-01|1993-03-06|1993-02-08|TAKE BACK RETURN|TRUCK| of the carefully express|
-1216|75|3|2|48|46803.36|0.10|0.01|R|F|1993-01-17|1993-02-01|1993-02-13|COLLECT COD|SHIP|symptotes use against th|
-1216|42|3|3|18|16956.72|0.00|0.03|A|F|1993-01-20|1993-01-28|1993-02-02|COLLECT COD|MAIL|y final packages nod |
-1217|60|5|1|45|43202.70|0.07|0.02|A|F|1992-07-01|1992-06-23|1992-07-06|COLLECT COD|AIR|riously close ideas|
-1218|140|6|1|16|16642.24|0.04|0.07|A|F|1994-06-26|1994-08-07|1994-06-30|TAKE BACK RETURN|FOB|ven realms be|
-1218|94|6|2|41|40757.69|0.06|0.06|R|F|1994-08-04|1994-08-05|1994-08-11|TAKE BACK RETURN|SHIP|dolphins. theodolites beyond th|
-1218|48|7|3|44|41713.76|0.07|0.06|A|F|1994-10-05|1994-09-03|1994-10-30|COLLECT COD|TRUCK|thely ironic accounts wake slyly|
-1218|42|9|4|1|942.04|0.01|0.08|R|F|1994-09-15|1994-09-07|1994-10-03|COLLECT COD|TRUCK|press furio|
-1219|132|3|1|6|6192.78|0.08|0.04|N|O|1995-11-13|1995-12-24|1995-11-18|NONE|MAIL|pecial, ironic requ|
-1219|129|4|2|4|4116.48|0.01|0.04|N|O|1995-11-24|1995-11-22|1995-12-07|TAKE BACK RETURN|SHIP|lly quick requests. blithely even h|
-1220|169|4|1|25|26729.00|0.10|0.03|N|O|1996-10-15|1996-11-07|1996-11-06|COLLECT COD|REG AIR| regular orbi|
-1220|160|5|2|36|38165.76|0.01|0.02|N|O|1996-12-10|1996-11-14|1997-01-07|COLLECT COD|SHIP|ar packages. blithely final acc|
-1220|37|8|3|3|2811.09|0.08|0.06|N|O|1996-09-06|1996-11-03|1996-09-10|COLLECT COD|REG AIR| final theodolites. blithely silent |
-1220|6|1|4|36|32616.00|0.07|0.03|N|O|1996-12-12|1996-10-03|1996-12-15|TAKE BACK RETURN|TRUCK|unusual, silent pinto beans aga|
-1220|49|2|5|25|23726.00|0.03|0.08|N|O|1996-09-11|1996-10-09|1996-09-25|DELIVER IN PERSON|RAIL|packages affi|
-1221|81|2|1|43|42186.44|0.05|0.05|R|F|1992-06-22|1992-07-15|1992-07-20|DELIVER IN PERSON|FOB|y slyly above the slyly unusual ideas|
-1221|170|1|2|12|12842.04|0.00|0.08|R|F|1992-08-07|1992-06-24|1992-08-13|COLLECT COD|AIR|yly ironic |
-1221|69|6|3|3|2907.18|0.10|0.08|R|F|1992-07-01|1992-06-04|1992-07-27|COLLECT COD|TRUCK|ing to the fluffily|
-1221|120|10|4|41|41824.92|0.06|0.02|A|F|1992-04-28|1992-07-02|1992-05-19|NONE|RAIL|ns. bold deposit|
-1221|108|1|5|13|13105.30|0.10|0.00|R|F|1992-08-01|1992-06-29|1992-08-27|TAKE BACK RETURN|AIR|ajole furiously. blithely expres|
-1221|85|6|6|7|6895.56|0.08|0.06|A|F|1992-06-27|1992-06-16|1992-07-23|TAKE BACK RETURN|RAIL|xpress accounts |
-1222|72|10|1|12|11664.84|0.09|0.02|A|F|1993-02-12|1993-03-14|1993-03-12|TAKE BACK RETURN|RAIL|s print permanently unusual packages. |
-1222|159|7|2|12|12709.80|0.08|0.01|A|F|1993-05-05|1993-03-27|1993-05-18|TAKE BACK RETURN|REG AIR| furiously bold instructions|
-1222|8|1|3|26|23608.00|0.02|0.08|R|F|1993-02-13|1993-03-20|1993-02-22|TAKE BACK RETURN|MAIL|, even accounts are ironic|
-1223|100|1|1|28|28002.80|0.10|0.06|N|O|1996-08-07|1996-07-24|1996-08-13|TAKE BACK RETURN|MAIL| quickly ironic requests. furious|
-1248|164|5|1|45|47887.20|0.00|0.08|A|F|1992-04-17|1992-03-31|1992-05-13|NONE|RAIL|ter the pending pl|
-1248|151|9|2|37|38892.55|0.06|0.06|R|F|1992-01-26|1992-02-05|1992-02-13|COLLECT COD|TRUCK|. final requests integrate quickly. blit|
-1248|56|8|3|26|24857.30|0.09|0.06|A|F|1992-01-16|1992-03-01|1992-02-06|TAKE BACK RETURN|AIR| ironic dependen|
-1248|156|7|4|49|51751.35|0.02|0.01|A|F|1992-04-24|1992-02-18|1992-05-03|TAKE BACK RETURN|AIR|beans run quickly according to the carefu|
-1248|122|7|5|20|20442.40|0.08|0.00|A|F|1992-03-12|1992-03-23|1992-04-07|TAKE BACK RETURN|AIR|nal foxes cajole carefully slyl|
-1248|62|9|6|30|28861.80|0.10|0.01|R|F|1992-02-01|1992-03-24|1992-02-08|TAKE BACK RETURN|MAIL|fily special foxes kindle am|
-1249|59|4|1|49|46993.45|0.07|0.05|A|F|1994-03-03|1994-02-28|1994-03-08|NONE|RAIL|ffily express theodo|
-1250|2|3|1|15|13530.00|0.10|0.06|A|F|1992-11-05|1992-12-17|1992-12-03|TAKE BACK RETURN|SHIP| regular, i|
-1251|4|5|1|37|33448.00|0.08|0.08|N|O|1997-12-21|1998-01-12|1997-12-26|COLLECT COD|AIR|. furiously|
-1251|78|9|2|36|35210.52|0.07|0.04|N|O|1997-11-29|1998-01-07|1997-12-03|TAKE BACK RETURN|RAIL|y ironic Tiresias are slyly furio|
-1251|99|3|3|37|36966.33|0.09|0.02|N|O|1998-01-11|1997-12-01|1998-01-23|DELIVER IN PERSON|RAIL|finally bold requests|
-1251|150|9|4|7|7351.05|0.07|0.00|N|O|1998-01-08|1997-12-27|1998-01-18|COLLECT COD|MAIL|riously pe|
-1251|188|9|5|1|1088.18|0.02|0.03|N|O|1997-12-08|1998-01-06|1998-01-01|DELIVER IN PERSON|REG AIR| use quickly final packages. iron|
-1252|87|8|1|13|12832.04|0.10|0.01|N|O|1997-09-07|1997-09-12|1997-10-01|COLLECT COD|REG AIR|sts dazzle|
-1252|111|8|2|27|27299.97|0.00|0.08|N|O|1997-10-22|1997-10-10|1997-11-10|TAKE BACK RETURN|REG AIR|packages hag|
-1252|40|1|3|19|17860.76|0.07|0.02|N|O|1997-10-13|1997-10-23|1997-10-18|NONE|AIR|ts wake carefully-- packages sleep. quick |
-1252|92|4|4|11|10912.99|0.10|0.01|N|O|1997-10-16|1997-09-22|1997-10-28|COLLECT COD|AIR|s are. slyly final requests among the|
-1252|79|10|5|26|25455.82|0.05|0.05|N|O|1997-08-05|1997-10-24|1997-08-07|DELIVER IN PERSON|SHIP|onic pinto beans haggle furiously |
-1253|180|8|1|14|15122.52|0.00|0.06|R|F|1993-04-03|1993-04-16|1993-04-27|TAKE BACK RETURN|MAIL|lar foxes sleep furiously final, final pack|
-1253|54|9|2|13|12402.65|0.01|0.06|A|F|1993-03-05|1993-04-26|1993-03-08|DELIVER IN PERSON|FOB|al packages|
-1253|70|1|3|22|21341.54|0.05|0.06|A|F|1993-02-23|1993-04-06|1993-03-07|TAKE BACK RETURN|SHIP|telets cajole alongside of the final reques|
-1253|176|5|4|23|24751.91|0.09|0.02|R|F|1993-04-18|1993-04-18|1993-05-07|COLLECT COD|FOB| the slyly silent re|
-1253|114|8|5|19|19268.09|0.05|0.05|A|F|1993-04-01|1993-04-22|1993-04-14|TAKE BACK RETURN|AIR|al pinto bea|
-1254|193|5|1|6|6559.14|0.08|0.01|N|O|1996-02-02|1996-03-21|1996-02-29|NONE|REG AIR|lithely even deposits eat!|
-1254|200|3|2|47|51709.40|0.05|0.06|N|O|1996-03-07|1996-02-20|1996-04-05|COLLECT COD|MAIL| platelets cajol|
-1254|135|6|3|35|36229.55|0.05|0.06|N|O|1996-04-08|1996-02-29|1996-04-18|DELIVER IN PERSON|FOB|ckages boost. furious warhorses cajole|
-1255|192|4|1|12|13106.28|0.00|0.02|A|F|1994-08-17|1994-06-29|1994-09-04|TAKE BACK RETURN|REG AIR| regular, express accounts are |
-1255|194|8|2|46|50332.74|0.07|0.05|R|F|1994-07-06|1994-07-14|1994-08-05|NONE|MAIL|ons nag qui|
-1280|129|8|1|17|17495.04|0.01|0.01|A|F|1993-02-04|1993-04-10|1993-02-07|NONE|FOB|ructions integrate across the th|
-1280|189|10|2|6|6535.08|0.05|0.06|R|F|1993-03-30|1993-02-16|1993-04-18|DELIVER IN PERSON|AIR|gular deposits |
-1280|33|4|3|13|12129.39|0.03|0.02|R|F|1993-03-06|1993-03-11|1993-03-18|DELIVER IN PERSON|TRUCK|blithely final accounts use evenly |
-1280|175|3|4|5|5375.85|0.06|0.03|R|F|1993-02-03|1993-02-11|1993-02-23|DELIVER IN PERSON|AIR|beans haggle. quickly bold instructions h|
-1280|52|10|5|24|22849.20|0.07|0.02|R|F|1993-03-20|1993-03-01|1993-04-09|COLLECT COD|RAIL|y pending orbits boost after the slyly|
-1280|66|3|6|9|8694.54|0.00|0.05|R|F|1993-04-18|1993-03-28|1993-05-04|DELIVER IN PERSON|FOB|usual accou|
-1280|92|6|7|19|18849.71|0.02|0.06|A|F|1993-02-07|1993-02-28|1993-02-12|NONE|TRUCK|lyly along the furiously regular |
-1281|138|4|1|33|34258.29|0.07|0.08|R|F|1995-02-01|1995-01-18|1995-03-03|NONE|REG AIR|dencies. thinly final pinto beans wake|
-1281|7|2|2|37|33559.00|0.08|0.03|A|F|1995-03-19|1995-02-02|1995-03-27|NONE|AIR|ounts detect|
-1281|94|7|3|2|1988.18|0.05|0.06|A|F|1994-12-27|1995-01-26|1995-01-21|TAKE BACK RETURN|FOB|ly unusual requests. final reques|
-1281|154|2|4|38|40057.70|0.04|0.06|R|F|1995-03-28|1995-01-11|1995-04-14|TAKE BACK RETURN|MAIL| ideas-- blithely regular|
-1281|152|10|5|13|13677.95|0.03|0.07|A|F|1995-02-06|1995-02-13|1995-02-18|DELIVER IN PERSON|TRUCK|fully final platelets wa|
-1281|50|9|6|4|3800.20|0.07|0.04|R|F|1995-03-15|1995-02-21|1995-03-20|NONE|SHIP|ggle against the even requests. requests |
-1281|78|6|7|43|42057.01|0.10|0.02|R|F|1995-01-28|1995-02-08|1995-02-10|DELIVER IN PERSON|AIR|final accounts. final packages slee|
-1282|23|4|1|14|12922.28|0.04|0.02|R|F|1992-06-29|1992-04-05|1992-07-21|TAKE BACK RETURN|REG AIR|ecial deposit|
-1282|30|9|2|10|9300.30|0.09|0.06|R|F|1992-04-10|1992-04-16|1992-05-01|DELIVER IN PERSON|SHIP|r theodolite|
-1282|160|1|3|19|20143.04|0.01|0.03|R|F|1992-05-07|1992-04-07|1992-05-13|NONE|RAIL|ts x-ray across the furi|
-1282|59|10|4|19|18221.95|0.00|0.05|A|F|1992-06-20|1992-04-17|1992-07-05|DELIVER IN PERSON|REG AIR|nto beans. carefully close theodo|
-1283|93|7|1|47|46675.23|0.05|0.03|N|O|1996-10-21|1996-10-29|1996-11-12|DELIVER IN PERSON|TRUCK|even instructions boost slyly blithely |
-1283|106|1|2|1|1006.10|0.00|0.08|N|O|1996-10-07|1996-10-12|1996-10-08|NONE|RAIL|d the sauternes. slyly ev|
-1283|138|4|3|18|18686.34|0.02|0.01|N|O|1996-10-14|1996-11-07|1996-10-22|DELIVER IN PERSON|AIR|equests use along the fluff|
-1283|192|4|4|40|43687.60|0.07|0.03|N|O|1996-11-09|1996-11-23|1996-11-28|NONE|MAIL|riously. even, ironic instructions after|
-1283|124|9|5|43|44037.16|0.01|0.04|N|O|1996-09-29|1996-11-19|1996-10-26|TAKE BACK RETURN|RAIL|requests sleep slyly about the |
-1283|8|5|6|30|27240.00|0.06|0.07|N|O|1996-11-22|1996-11-22|1996-12-15|COLLECT COD|TRUCK|t the fluffily|
-1283|197|8|7|21|23040.99|0.04|0.03|N|O|1996-09-12|1996-10-02|1996-10-12|NONE|REG AIR|fully regular |
-1284|178|7|1|49|52830.33|0.00|0.06|N|O|1996-04-11|1996-03-04|1996-04-16|NONE|MAIL|lar packages. special packages ac|
-1284|6|7|2|4|3624.00|0.07|0.06|N|O|1996-02-29|1996-02-11|1996-03-01|TAKE BACK RETURN|TRUCK| regular asymptotes. |
-1284|133|4|3|39|40292.07|0.08|0.00|N|O|1996-01-11|1996-02-07|1996-02-05|COLLECT COD|MAIL|even accoun|
-1284|59|10|4|1|959.05|0.01|0.07|N|O|1996-04-28|1996-04-02|1996-05-08|DELIVER IN PERSON|SHIP|al packages use carefully express de|
-1284|34|5|5|9|8406.27|0.05|0.06|N|O|1996-03-03|1996-03-19|1996-04-01|DELIVER IN PERSON|REG AIR|after the pending|
-1285|22|3|1|12|11064.24|0.00|0.06|A|F|1992-06-21|1992-08-16|1992-07-12|COLLECT COD|MAIL|ss foxes. blithe theodolites cajole slyly|
-1285|143|10|2|45|46941.30|0.01|0.02|R|F|1992-09-05|1992-08-08|1992-10-02|COLLECT COD|REG AIR| special requests haggle blithely.|
-1285|189|10|3|4|4356.72|0.09|0.06|A|F|1992-07-20|1992-08-17|1992-07-26|DELIVER IN PERSON|FOB|l packages sleep slyly quiet i|
-1285|188|9|4|39|42439.02|0.05|0.01|A|F|1992-09-15|1992-08-05|1992-10-05|DELIVER IN PERSON|TRUCK|uctions. car|
-1285|84|5|5|33|32474.64|0.00|0.08|R|F|1992-09-08|1992-08-25|1992-09-16|NONE|SHIP|ites affix|
-1286|178|9|1|49|52830.33|0.08|0.01|R|F|1993-06-24|1993-08-12|1993-06-26|DELIVER IN PERSON|SHIP|gged accoun|
-1286|49|6|2|48|45553.92|0.01|0.04|A|F|1993-07-11|1993-07-11|1993-08-01|COLLECT COD|TRUCK|unts alongs|
-1286|189|10|3|11|11980.98|0.03|0.04|R|F|1993-08-08|1993-07-30|1993-09-05|DELIVER IN PERSON|FOB| slyly even packages. requ|
-1286|184|5|4|37|40114.66|0.00|0.02|R|F|1993-05-27|1993-07-11|1993-06-01|COLLECT COD|SHIP|lyly ironic pinto beans cajole furiously s|
-1286|165|10|5|14|14912.24|0.00|0.01|R|F|1993-05-23|1993-08-09|1993-06-01|NONE|REG AIR|blithely bo|
-1286|146|5|6|41|42891.74|0.04|0.05|R|F|1993-08-02|1993-08-06|1993-08-07|TAKE BACK RETURN|FOB| the furiously expre|
-1287|174|3|1|35|37595.95|0.09|0.06|A|F|1994-09-07|1994-09-12|1994-09-30|TAKE BACK RETURN|FOB|s wake unusual grou|
-1287|95|8|2|10|9950.90|0.08|0.03|R|F|1994-07-08|1994-08-28|1994-07-10|TAKE BACK RETURN|RAIL|thely alongside of the unusual, ironic pa|
-1287|1|2|3|30|27030.00|0.00|0.07|R|F|1994-07-12|1994-09-23|1994-08-07|NONE|RAIL|ar packages. even, even|
-1287|62|7|4|10|9620.60|0.01|0.05|A|F|1994-09-03|1994-08-12|1994-09-16|TAKE BACK RETURN|REG AIR|ding, regular accounts|
-1287|179|8|5|21|22662.57|0.06|0.02|A|F|1994-10-06|1994-09-25|1994-10-16|TAKE BACK RETURN|TRUCK|y quickly bold theodoli|
-1287|21|10|6|26|23946.52|0.03|0.08|R|F|1994-10-03|1994-09-27|1994-10-30|DELIVER IN PERSON|RAIL|egular foxes. theodolites nag along t|
-1312|81|2|1|9|8829.72|0.04|0.08|R|F|1994-07-19|1994-06-29|1994-07-24|TAKE BACK RETURN|MAIL|. furiously |
-1312|136|7|2|28|29011.64|0.06|0.06|A|F|1994-09-09|1994-08-01|1994-10-02|TAKE BACK RETURN|FOB|uriously final frays should use quick|
-1312|173|1|3|18|19317.06|0.03|0.07|A|F|1994-09-13|1994-07-08|1994-09-22|TAKE BACK RETURN|MAIL|. slyly ironic|
-1313|52|4|1|48|45698.40|0.01|0.03|A|F|1994-12-20|1994-10-29|1995-01-07|COLLECT COD|MAIL|s are quick|
-1314|198|10|1|5|5490.95|0.03|0.01|A|F|1994-05-26|1994-08-06|1994-05-31|TAKE BACK RETURN|AIR|equests nag across the furious|
-1314|110|5|2|39|39394.29|0.01|0.03|R|F|1994-08-09|1994-06-14|1994-08-31|TAKE BACK RETURN|TRUCK| unusual accounts slee|
-1314|41|2|3|11|10351.44|0.01|0.04|A|F|1994-05-16|1994-07-30|1994-05-31|COLLECT COD|REG AIR|tegrate furious|
-1315|96|8|1|27|26894.43|0.01|0.03|N|O|1998-07-04|1998-06-13|1998-07-28|NONE|SHIP|latelets. fluffily ironic account|
-1315|16|6|2|15|13740.15|0.05|0.01|N|O|1998-07-12|1998-06-10|1998-08-07|COLLECT COD|AIR|. foxes integrate carefully special|
-1315|168|3|3|25|26704.00|0.01|0.08|N|O|1998-06-26|1998-06-10|1998-07-06|TAKE BACK RETURN|FOB|lites. unusual foxes affi|
-1315|161|6|4|19|20162.04|0.02|0.05|N|O|1998-07-05|1998-05-23|1998-08-04|TAKE BACK RETURN|SHIP|nal, regular warhorses about the fu|
-1315|159|7|5|32|33892.80|0.10|0.05|N|O|1998-03-30|1998-06-12|1998-04-25|NONE|SHIP|neath the final p|
-1316|127|6|1|46|47247.52|0.05|0.04|A|F|1994-01-13|1994-01-24|1994-02-03|COLLECT COD|TRUCK|ges haggle of the|
-1316|79|9|2|15|14686.05|0.02|0.01|R|F|1994-03-12|1994-03-02|1994-03-14|COLLECT COD|FOB|se. furiously final depo|
-1316|198|9|3|33|36240.27|0.10|0.06|R|F|1994-03-31|1994-01-23|1994-04-20|TAKE BACK RETURN|AIR|manently; blithely special deposits|
-1316|66|3|4|15|14490.90|0.00|0.06|R|F|1993-12-17|1994-02-04|1993-12-20|NONE|RAIL|fully express dugouts. furiously silent ide|
-1316|41|2|5|40|37641.60|0.01|0.03|R|F|1994-02-04|1994-02-09|1994-02-27|NONE|REG AIR|l dugouts. co|
-1316|4|7|6|7|6328.00|0.05|0.04|A|F|1993-12-09|1994-01-12|1993-12-30|TAKE BACK RETURN|MAIL|. furiously even accounts a|
-1316|163|8|7|8|8505.28|0.10|0.04|A|F|1994-03-26|1994-02-08|1994-04-19|NONE|SHIP|packages against the express requests wa|
-1317|134|5|1|34|35160.42|0.08|0.04|N|O|1995-08-13|1995-08-08|1995-09-10|COLLECT COD|RAIL|deposits boost thinly blithely final id|
-1317|160|2|2|7|7421.12|0.05|0.01|A|F|1995-06-08|1995-08-03|1995-06-16|TAKE BACK RETURN|SHIP| pinto beans according to the final, pend|
-1317|158|9|3|26|27511.90|0.01|0.02|N|O|1995-07-13|1995-06-26|1995-08-06|COLLECT COD|RAIL|leep along th|
-1317|106|3|4|35|35213.50|0.05|0.02|N|O|1995-07-16|1995-07-07|1995-07-22|TAKE BACK RETURN|FOB|r packages impress blithely car|
-1317|150|9|5|36|37805.40|0.02|0.00|N|O|1995-09-03|1995-07-06|1995-09-04|DELIVER IN PERSON|AIR| deposits. quic|
-1318|114|4|1|24|24338.64|0.08|0.06|N|O|1998-09-27|1998-09-15|1998-10-12|TAKE BACK RETURN|AIR|ual, unusual packages. fluffy, iro|
-1318|46|3|2|26|24597.04|0.01|0.03|N|O|1998-09-26|1998-08-09|1998-10-07|DELIVER IN PERSON|FOB|ly. regular, u|
-1318|129|4|3|31|31902.72|0.01|0.04|N|O|1998-08-25|1998-07-31|1998-08-31|COLLECT COD|AIR|ve the carefully expr|
-1319|61|8|1|21|20182.26|0.03|0.04|N|O|1996-10-05|1996-12-02|1996-10-28|COLLECT COD|FOB|s: carefully express |
-1319|37|8|2|12|11244.36|0.09|0.05|N|O|1996-11-05|1996-12-12|1996-11-29|DELIVER IN PERSON|TRUCK|packages integrate furiously. expres|
-1344|141|4|1|15|15617.10|0.10|0.07|A|F|1992-06-22|1992-06-24|1992-06-23|TAKE BACK RETURN|MAIL|rding to the blithely ironic theodolite|
-1344|190|1|2|29|31615.51|0.09|0.00|A|F|1992-07-17|1992-06-07|1992-07-21|NONE|REG AIR|ffily quiet foxes wake blithely. slyly |
-1345|198|9|1|49|53811.31|0.08|0.00|A|F|1992-12-27|1993-01-23|1993-01-06|NONE|FOB|sly. furiously final accounts are blithely |
-1345|12|9|2|37|33744.37|0.10|0.07|A|F|1992-11-27|1992-12-11|1992-12-07|COLLECT COD|FOB|e slyly express requests. ironic accounts c|
-1345|57|8|3|31|29668.55|0.08|0.07|R|F|1992-12-02|1992-12-29|1992-12-14|COLLECT COD|REG AIR|. slyly silent accounts sublat|
-1346|160|8|1|29|30744.64|0.07|0.05|A|F|1992-08-18|1992-09-15|1992-09-17|TAKE BACK RETURN|REG AIR|the pinto |
-1346|125|6|2|48|49205.76|0.06|0.03|A|F|1992-09-28|1992-07-22|1992-10-13|TAKE BACK RETURN|REG AIR| along the carefully spec|
-1346|54|5|3|13|12402.65|0.10|0.04|A|F|1992-07-22|1992-08-10|1992-08-06|NONE|SHIP|arefully brave deposits into the slyly iro|
-1346|124|5|4|6|6144.72|0.02|0.02|R|F|1992-09-13|1992-07-21|1992-09-27|TAKE BACK RETURN|AIR|inst the furiously final theodolites. caref|
-1346|187|8|5|30|32615.40|0.01|0.07|R|F|1992-10-01|1992-07-22|1992-10-24|NONE|SHIP| nag blithely. unusual, ru|
-1346|16|6|6|45|41220.45|0.02|0.04|A|F|1992-09-11|1992-08-06|1992-09-12|COLLECT COD|FOB|press deposits.|
-1347|81|2|1|45|44148.60|0.02|0.05|N|O|1997-08-24|1997-09-03|1997-09-08|COLLECT COD|AIR|ages wake around t|
-1347|143|6|2|34|35466.76|0.07|0.04|N|O|1997-06-25|1997-09-08|1997-07-24|COLLECT COD|FOB|r packages. f|
-1347|185|6|3|23|24959.14|0.03|0.04|N|O|1997-07-31|1997-08-25|1997-08-21|COLLECT COD|SHIP|ronic pinto beans. express reques|
-1347|113|7|4|28|28367.08|0.01|0.00|N|O|1997-07-30|1997-07-22|1997-08-18|TAKE BACK RETURN|FOB|foxes after the blithely special i|
-1347|65|6|5|9|8685.54|0.01|0.03|N|O|1997-08-28|1997-09-16|1997-09-26|DELIVER IN PERSON|AIR| detect blithely above the fina|
-1347|153|8|6|21|22116.15|0.06|0.04|N|O|1997-10-10|1997-08-16|1997-11-02|NONE|FOB|g pinto beans affix car|
-1347|51|3|7|10|9510.50|0.02|0.07|N|O|1997-07-04|1997-07-23|1997-07-05|DELIVER IN PERSON|SHIP|y ironic pin|
-1348|95|7|1|13|12936.17|0.01|0.01|N|O|1998-04-28|1998-06-05|1998-05-12|TAKE BACK RETURN|SHIP| blithely r|
-1348|22|5|2|41|37802.82|0.07|0.03|N|O|1998-05-02|1998-05-26|1998-05-09|COLLECT COD|RAIL|kages. platelets about the ca|
-1348|199|10|3|40|43967.60|0.07|0.05|N|O|1998-08-14|1998-07-10|1998-08-27|COLLECT COD|AIR|fter the regu|
-1348|98|1|4|2|1996.18|0.01|0.04|N|O|1998-05-30|1998-06-20|1998-06-05|COLLECT COD|MAIL|lly final packages use fluffily express ac|
-1349|181|2|1|1|1081.18|0.06|0.03|N|O|1998-01-07|1998-01-14|1998-02-03|COLLECT COD|REG AIR| express inst|
-1349|118|2|2|45|45814.95|0.03|0.02|N|O|1997-12-24|1998-01-17|1997-12-28|NONE|AIR| ironic, unusual deposits wake carefu|
-1350|54|9|1|21|20035.05|0.04|0.04|A|F|1993-12-17|1993-10-17|1993-12-25|COLLECT COD|REG AIR|lyly above the evenly |
-1350|44|5|2|32|30209.28|0.03|0.00|R|F|1993-11-18|1993-09-30|1993-12-16|COLLECT COD|MAIL|ic, final |
-1351|108|9|1|25|25202.50|0.06|0.04|N|O|1998-06-02|1998-05-25|1998-06-22|COLLECT COD|SHIP|iously regul|
-1376|169|8|1|22|23521.52|0.01|0.03|N|O|1997-08-05|1997-07-08|1997-09-03|NONE|REG AIR|inst the final, pending |
-1377|154|6|1|5|5270.75|0.06|0.05|N|O|1998-05-06|1998-07-08|1998-06-01|TAKE BACK RETURN|FOB| final, final grouches. accoun|
-1377|33|9|2|3|2799.09|0.10|0.04|N|O|1998-04-30|1998-07-02|1998-05-14|DELIVER IN PERSON|REG AIR|yly enticing requ|
-1377|84|5|3|26|25586.08|0.07|0.07|N|O|1998-05-28|1998-06-11|1998-06-25|COLLECT COD|SHIP|egular deposits. quickly regular acco|
-1377|121|4|4|39|39823.68|0.00|0.03|N|O|1998-07-27|1998-07-18|1998-08-13|DELIVER IN PERSON|SHIP|e ironic, regular requests. carefully |
-1377|33|9|5|19|17727.57|0.10|0.00|N|O|1998-06-20|1998-06-27|1998-07-20|NONE|AIR|ught to are bold foxes|
-1377|154|6|6|17|17920.55|0.03|0.04|N|O|1998-06-19|1998-07-20|1998-07-14|NONE|REG AIR|s must have to mold b|
-1378|197|10|1|34|37304.46|0.09|0.07|N|O|1996-07-08|1996-04-23|1996-07-09|COLLECT COD|RAIL|le furiously slyly final accounts. careful|
-1378|124|9|2|18|18434.16|0.05|0.02|N|O|1996-06-19|1996-05-16|1996-06-21|DELIVER IN PERSON|RAIL| theodolites. i|
-1378|73|4|3|11|10703.77|0.10|0.03|N|O|1996-06-07|1996-05-09|1996-07-05|COLLECT COD|TRUCK| blithely express hoc|
-1378|171|2|4|12|12854.04|0.02|0.06|N|O|1996-06-16|1996-05-23|1996-07-09|COLLECT COD|SHIP|notornis. b|
-1378|156|7|5|9|9505.35|0.06|0.05|N|O|1996-04-20|1996-04-13|1996-05-09|COLLECT COD|REG AIR|e carefully. carefully iron|
-1378|194|6|6|29|31731.51|0.05|0.05|N|O|1996-04-15|1996-04-23|1996-05-14|NONE|REG AIR|ual packages are furiously blith|
-1379|73|3|1|13|12649.91|0.04|0.01|N|O|1998-06-08|1998-07-13|1998-06-16|NONE|AIR|ully across the furiously iron|
-1379|118|2|2|50|50905.50|0.07|0.08|N|O|1998-08-31|1998-07-13|1998-09-02|TAKE BACK RETURN|FOB|olphins. ca|
-1379|13|7|3|24|21912.24|0.05|0.02|N|O|1998-07-06|1998-07-09|1998-07-29|DELIVER IN PERSON|MAIL|ages cajole carefully idly express re|
-1380|149|2|1|6|6294.84|0.00|0.04|N|O|1996-08-06|1996-10-01|1996-08-14|NONE|RAIL|e foxes. slyly specia|
-1380|141|4|2|40|41645.60|0.02|0.02|N|O|1996-10-01|1996-08-14|1996-10-20|COLLECT COD|RAIL|ly final frets. ironic,|
-1380|78|9|3|15|14671.05|0.05|0.02|N|O|1996-07-14|1996-08-12|1996-08-03|NONE|FOB|riously ironic foxes aff|
-1380|61|10|4|33|31714.98|0.04|0.07|N|O|1996-08-23|1996-10-01|1996-09-18|TAKE BACK RETURN|SHIP|e ironic, even excuses haggle |
-1381|144|1|1|47|49074.58|0.08|0.04|N|O|1998-09-22|1998-08-12|1998-10-12|DELIVER IN PERSON|AIR|ly ironic deposits|
-1381|34|10|2|12|11208.36|0.07|0.08|N|O|1998-08-13|1998-08-12|1998-08-28|TAKE BACK RETURN|AIR| furiously regular package|
-1382|162|3|1|18|19118.88|0.08|0.03|R|F|1993-08-30|1993-10-19|1993-09-03|DELIVER IN PERSON|AIR|hely regular deposits. fluffy s|
-1382|181|2|2|29|31354.22|0.08|0.04|A|F|1993-10-08|1993-11-11|1993-10-10|COLLECT COD|FOB| haggle: closely even asymptot|
-1382|178|7|3|43|46361.31|0.10|0.04|A|F|1993-09-02|1993-10-06|1993-09-15|DELIVER IN PERSON|AIR|ress deposits. slyly ironic foxes are blit|
-1382|181|2|4|11|11892.98|0.04|0.04|R|F|1993-09-17|1993-09-29|1993-09-21|NONE|SHIP|furiously unusual packages play quickly |
-1382|157|8|5|31|32771.65|0.07|0.03|R|F|1993-10-26|1993-10-15|1993-11-09|TAKE BACK RETURN|FOB|hely regular dependencies. f|
-1382|10|5|6|38|34580.38|0.07|0.07|R|F|1993-11-17|1993-09-28|1993-11-20|COLLECT COD|SHIP|ake pending pinto beans. s|
-1382|23|4|7|5|4615.10|0.07|0.01|R|F|1993-10-02|1993-09-29|1993-10-12|DELIVER IN PERSON|REG AIR|ter the carefully final excuses. blit|
-1383|193|7|1|14|15304.66|0.07|0.06|A|F|1993-08-25|1993-07-09|1993-09-12|DELIVER IN PERSON|RAIL|ole carefully silent requests. car|
-1383|161|10|2|19|20162.04|0.06|0.04|R|F|1993-05-24|1993-07-07|1993-06-14|NONE|AIR|lyly unusual accounts sle|
-1408|148|7|1|29|30396.06|0.03|0.04|N|O|1998-03-12|1998-02-14|1998-03-17|COLLECT COD|MAIL|en accounts grow furiousl|
-1408|173|2|2|7|7512.19|0.05|0.06|N|O|1998-01-14|1998-03-21|1998-01-29|COLLECT COD|AIR|fully final instructions. theodolites ca|
-1408|76|6|3|11|10736.77|0.00|0.03|N|O|1998-04-04|1998-01-29|1998-04-18|NONE|REG AIR|y even accounts thrash care|
-1408|148|5|4|20|20962.80|0.06|0.00|N|O|1998-04-21|1998-01-25|1998-05-12|DELIVER IN PERSON|TRUCK| blithely fluffi|
-1408|170|1|5|41|43876.97|0.02|0.06|N|O|1998-02-25|1998-02-03|1998-03-13|COLLECT COD|REG AIR|ep along the fina|
-1408|134|10|6|42|43433.46|0.05|0.08|N|O|1998-01-30|1998-02-07|1998-02-18|TAKE BACK RETURN|REG AIR|even packages. even accounts cajole|
-1408|55|6|7|26|24831.30|0.00|0.00|N|O|1998-03-19|1998-03-14|1998-04-01|COLLECT COD|RAIL|ic foxes ca|
-1409|99|1|1|23|22979.07|0.01|0.03|A|F|1993-04-18|1993-02-25|1993-05-06|DELIVER IN PERSON|FOB|ions. slyly ironic packages wake quick|
-1409|65|2|2|36|34742.16|0.09|0.02|A|F|1993-01-27|1993-01-31|1993-02-07|COLLECT COD|FOB|ncies sleep carefully r|
-1409|160|1|3|17|18022.72|0.07|0.00|R|F|1993-04-15|1993-03-01|1993-04-29|NONE|REG AIR|pending accounts poach. care|
-1410|121|10|1|15|15316.80|0.06|0.05|N|O|1997-05-25|1997-07-08|1997-06-15|NONE|SHIP| bold packages are fluf|
-1410|179|9|2|18|19425.06|0.03|0.00|N|O|1997-06-03|1997-05-17|1997-06-07|TAKE BACK RETURN|RAIL|gle furiously fluffily regular requests|
-1410|109|4|3|37|37336.70|0.02|0.01|N|O|1997-04-17|1997-06-18|1997-04-19|COLLECT COD|TRUCK|to beans b|
-1410|188|9|4|22|23939.96|0.10|0.00|N|O|1997-07-31|1997-05-17|1997-08-19|TAKE BACK RETURN|RAIL|gular account|
-1410|66|1|5|25|24151.50|0.09|0.02|N|O|1997-05-07|1997-07-10|1997-05-16|NONE|REG AIR|unts haggle against the furiously fina|
-1411|17|7|1|9|8253.09|0.06|0.04|A|F|1995-03-08|1995-03-04|1995-03-11|DELIVER IN PERSON|AIR|accounts. furiou|
-1411|107|8|2|26|26184.60|0.02|0.02|A|F|1995-04-12|1995-01-24|1995-05-03|TAKE BACK RETURN|TRUCK|c packages. |
-1411|27|6|3|37|34299.74|0.00|0.06|A|F|1995-02-27|1995-03-02|1995-03-24|NONE|MAIL|d excuses. furiously final pear|
-1411|200|3|4|20|22004.00|0.01|0.03|R|F|1995-04-06|1995-03-16|1995-04-17|COLLECT COD|FOB|s against the|
-1411|83|4|5|46|45221.68|0.08|0.05|A|F|1995-04-03|1995-01-20|1995-04-05|DELIVER IN PERSON|REG AIR|ly daring instructions|
-1411|77|6|6|30|29312.10|0.09|0.04|A|F|1995-01-12|1995-02-01|1995-01-23|DELIVER IN PERSON|MAIL|ious foxes wake courts. caref|
-1412|58|3|1|37|35447.85|0.06|0.01|A|F|1993-04-10|1993-04-19|1993-04-12|DELIVER IN PERSON|RAIL|hely express excuses are |
-1412|156|1|2|20|21123.00|0.10|0.05|A|F|1993-07-04|1993-05-18|1993-07-22|DELIVER IN PERSON|REG AIR|odolites sleep ironically|
-1412|23|2|3|2|1846.04|0.10|0.07|R|F|1993-04-01|1993-05-03|1993-04-12|DELIVER IN PERSON|REG AIR|s among the requests are a|
-1412|167|8|4|11|11738.76|0.05|0.07|R|F|1993-05-27|1993-05-30|1993-06-07|DELIVER IN PERSON|MAIL|en packages. regular packages dete|
-1412|158|6|5|11|11639.65|0.08|0.06|A|F|1993-03-30|1993-05-25|1993-04-21|NONE|FOB|se slyly. special, unusual accounts nag bl|
-1413|178|9|1|18|19407.06|0.08|0.05|N|O|1997-10-11|1997-08-17|1997-10-25|NONE|FOB|yly bold packages haggle quickly acr|
-1413|165|10|2|49|52192.84|0.07|0.06|N|O|1997-08-28|1997-08-23|1997-09-12|DELIVER IN PERSON|MAIL|nstructions br|
-1413|42|9|3|6|5652.24|0.04|0.02|N|O|1997-09-07|1997-07-30|1997-09-21|TAKE BACK RETURN|MAIL|lithely excuses. f|
-1414|38|4|1|39|36583.17|0.10|0.03|N|O|1995-09-22|1995-09-30|1995-10-07|NONE|MAIL|quickly aro|
-1414|107|8|2|4|4028.40|0.02|0.05|N|O|1995-09-16|1995-11-01|1995-10-02|COLLECT COD|AIR| haggle quickly|
-1415|149|10|1|25|26228.50|0.06|0.00|A|F|1994-09-03|1994-07-12|1994-09-13|DELIVER IN PERSON|RAIL|ect never fluff|
-1440|193|6|1|3|3279.57|0.06|0.01|N|O|1995-10-30|1995-10-17|1995-11-08|COLLECT COD|SHIP|instructions boost. fluffily regul|
-1440|114|4|2|46|46649.06|0.02|0.03|N|O|1995-09-21|1995-10-19|1995-10-19|NONE|RAIL|blithely even instructions. |
-1441|144|7|1|5|5220.70|0.04|0.01|N|O|1997-05-17|1997-05-11|1997-05-30|COLLECT COD|MAIL|egular courts. fluffily even grouches |
-1441|177|7|2|5|5385.85|0.02|0.05|N|O|1997-04-25|1997-04-16|1997-05-23|COLLECT COD|FOB|he quickly enticing pac|
-1441|118|5|3|14|14253.54|0.01|0.03|N|O|1997-06-30|1997-04-29|1997-07-24|DELIVER IN PERSON|REG AIR|special requests ha|
-1441|160|8|4|37|39225.92|0.01|0.00|N|O|1997-04-26|1997-04-27|1997-04-29|NONE|REG AIR|accounts. slyly special dolphins b|
-1441|72|10|5|34|33050.38|0.09|0.00|N|O|1997-06-12|1997-05-11|1997-06-29|TAKE BACK RETURN|RAIL|e carefully. blithely ironic dep|
-1441|25|4|6|15|13875.30|0.09|0.08|N|O|1997-05-21|1997-05-06|1997-06-04|NONE|REG AIR| dependencies-- cour|
-1441|96|10|7|50|49804.50|0.03|0.01|N|O|1997-06-07|1997-05-12|1997-06-08|NONE|SHIP| requests. blithely e|
-1442|26|5|1|8|7408.16|0.05|0.01|A|F|1994-10-31|1994-09-04|1994-11-25|COLLECT COD|AIR|c deposits haggle after the even|
-1443|34|10|1|47|43899.41|0.04|0.06|N|O|1997-02-05|1997-02-02|1997-03-03|NONE|RAIL|carefully ironic requests sl|
-1444|170|5|1|42|44947.14|0.01|0.02|R|F|1994-12-22|1995-03-03|1994-12-31|NONE|SHIP|ly bold packages boost regular ideas. spe|
-1444|57|2|2|34|32539.70|0.04|0.08|A|F|1995-02-22|1995-02-15|1995-03-19|TAKE BACK RETURN|AIR|y. doggedly pend|
-1444|155|3|3|34|35875.10|0.02|0.07|R|F|1994-12-17|1995-01-12|1995-01-03|COLLECT COD|AIR|ular accounts |
-1444|119|6|4|6|6114.66|0.06|0.03|A|F|1995-01-07|1995-03-05|1995-01-17|COLLECT COD|RAIL|al accounts. br|
-1444|20|1|5|35|32200.70|0.02|0.05|A|F|1995-02-25|1995-03-05|1995-03-24|DELIVER IN PERSON|SHIP|aggle furiou|
-1444|33|4|6|42|39187.26|0.00|0.02|A|F|1994-12-16|1995-02-18|1994-12-22|DELIVER IN PERSON|RAIL|ss requests. ironic ideas wake above|
-1444|82|3|7|12|11784.96|0.00|0.03|R|F|1994-12-23|1995-01-15|1995-01-13|COLLECT COD|TRUCK|ly among the bol|
-1445|100|1|1|24|24002.40|0.01|0.00|A|F|1995-02-21|1995-02-22|1995-03-18|DELIVER IN PERSON|SHIP|al accounts use furiously a|
-1445|67|8|2|48|46418.88|0.10|0.02|A|F|1995-02-28|1995-03-16|1995-03-12|COLLECT COD|MAIL|. final ideas are carefully dar|
-1445|192|4|3|7|7645.33|0.10|0.04|A|F|1995-04-25|1995-02-25|1995-05-10|NONE|SHIP|structions: slyly regular re|
-1445|28|1|4|17|15776.34|0.04|0.07|A|F|1995-04-02|1995-04-04|1995-05-01|COLLECT COD|FOB|ges. furiously regular pint|
-1445|135|1|5|24|24843.12|0.10|0.06|R|F|1995-04-23|1995-02-16|1995-05-18|NONE|REG AIR|rate after the carefully reg|
-1445|168|9|6|39|41658.24|0.03|0.02|A|F|1995-02-05|1995-02-20|1995-02-06|NONE|MAIL|ully unusual reques|
-1446|72|3|1|31|30134.17|0.10|0.02|N|O|1998-05-01|1998-05-17|1998-05-30|NONE|REG AIR|. slyly reg|
-1447|167|4|1|19|20276.04|0.06|0.04|A|F|1993-01-31|1992-12-07|1993-02-04|COLLECT COD|MAIL|. quickly ironic |
-1447|32|3|2|6|5592.18|0.01|0.05|A|F|1992-10-24|1992-12-10|1992-11-05|DELIVER IN PERSON|AIR|as! regular packages poach above the|
-1447|39|5|3|9|8451.27|0.04|0.00|R|F|1992-11-15|1993-01-07|1992-11-29|DELIVER IN PERSON|MAIL|counts wake s|
-1447|22|5|4|8|7376.16|0.09|0.08|R|F|1992-11-20|1993-01-12|1992-12-14|COLLECT COD|FOB|ost carefully |
-1447|130|1|5|23|23692.99|0.02|0.07|A|F|1992-12-07|1992-12-25|1993-01-06|TAKE BACK RETURN|AIR| dazzle quickly deposits. f|
-1447|200|3|6|41|45108.20|0.08|0.02|R|F|1993-01-06|1993-01-05|1993-01-13|TAKE BACK RETURN|MAIL|rts boost s|
-1472|8|5|1|36|32688.00|0.04|0.05|N|O|1996-11-06|1996-11-13|1996-11-12|COLLECT COD|SHIP|riously silent deposits to the pending d|
-1472|133|4|2|26|26861.38|0.03|0.05|N|O|1996-11-08|1996-11-13|1996-12-02|DELIVER IN PERSON|FOB|ic packages w|
-1472|1|8|3|6|5406.00|0.08|0.01|N|O|1996-10-24|1996-11-19|1996-11-23|COLLECT COD|FOB|onic theodolites hinder slyly slyly r|
-1473|54|9|1|50|47702.50|0.04|0.03|N|O|1997-05-05|1997-05-20|1997-05-09|NONE|TRUCK|requests wake express deposits. special, ir|
-1473|68|3|2|32|30977.92|0.00|0.08|N|O|1997-04-18|1997-05-12|1997-05-10|DELIVER IN PERSON|REG AIR|out the packages lose furiously ab|
-1474|15|5|1|5|4575.05|0.05|0.04|A|F|1995-04-22|1995-02-20|1995-05-06|COLLECT COD|SHIP|ully final a|
-1474|123|8|2|30|30693.60|0.04|0.02|A|F|1995-03-23|1995-02-11|1995-04-17|DELIVER IN PERSON|TRUCK|usly. evenly express |
-1474|92|5|3|18|17857.62|0.06|0.02|A|F|1995-01-23|1995-03-28|1995-02-03|NONE|RAIL|after the special|
-1475|168|3|1|15|16022.40|0.08|0.06|N|O|1998-02-12|1997-12-17|1998-03-02|TAKE BACK RETURN|SHIP|xpress requests haggle after the final, fi|
-1475|118|9|2|18|18325.98|0.07|0.00|N|O|1998-03-08|1998-01-18|1998-03-10|TAKE BACK RETURN|AIR|al deposits use. ironic packages along the |
-1475|144|1|3|30|31324.20|0.03|0.02|N|O|1998-03-11|1997-12-30|1998-03-15|COLLECT COD|REG AIR| regular theodolites mold across th|
-1475|187|8|4|50|54359.00|0.03|0.05|N|O|1997-12-14|1997-12-13|1997-12-21|COLLECT COD|AIR|. slyly bold re|
-1475|32|3|5|33|30756.99|0.01|0.06|N|O|1998-01-02|1998-01-27|1998-01-11|NONE|FOB|quickly fluffy|
-1475|50|7|6|12|11400.60|0.04|0.04|N|O|1998-01-09|1997-12-30|1998-01-23|NONE|TRUCK|arefully-- excuses sublate|
-1475|112|3|7|23|23278.53|0.02|0.00|N|O|1998-02-13|1998-02-05|1998-03-08|NONE|TRUCK|hely regular hocke|
-1476|31|7|1|20|18620.60|0.02|0.03|N|O|1996-08-11|1996-09-18|1996-08-26|TAKE BACK RETURN|AIR|. bold deposits are carefully amo|
-1477|72|1|1|31|30134.17|0.00|0.06|N|O|1997-12-16|1997-09-30|1997-12-17|COLLECT COD|RAIL| requests. fluffily final |
-1477|110|7|2|8|8080.88|0.09|0.05|N|O|1997-10-25|1997-10-18|1997-11-16|COLLECT COD|MAIL|ironic realms wake unusual, even ac|
-1477|125|6|3|42|43055.04|0.06|0.00|N|O|1997-11-02|1997-11-02|1997-11-20|DELIVER IN PERSON|SHIP|lithely after the ir|
-1477|107|8|4|32|32227.20|0.05|0.08|N|O|1997-09-12|1997-10-26|1997-10-12|TAKE BACK RETURN|AIR|; quickly regula|
-1477|115|6|5|41|41619.51|0.04|0.06|N|O|1997-12-16|1997-10-31|1998-01-12|DELIVER IN PERSON|REG AIR|y. final pearls kindle. accounts |
-1477|69|6|6|49|47483.94|0.06|0.00|N|O|1997-11-18|1997-11-06|1997-11-27|COLLECT COD|FOB|ise according to the sly, bold p|
-1477|120|4|7|33|33663.96|0.06|0.00|N|O|1997-11-12|1997-11-06|1997-11-24|DELIVER IN PERSON|TRUCK|yly regular p|
-1478|34|5|1|21|19614.63|0.00|0.06|N|O|1997-09-20|1997-10-25|1997-10-06|TAKE BACK RETURN|MAIL| fluffily pending acc|
-1479|149|6|1|33|34621.62|0.10|0.01|N|O|1996-03-12|1996-02-28|1996-03-31|DELIVER IN PERSON|FOB| carefully special courts affix. fluff|
-1504|82|3|1|42|41247.36|0.02|0.03|R|F|1992-10-18|1992-10-14|1992-11-10|TAKE BACK RETURN|FOB|ep. carefully ironic excuses haggle quickl|
-1504|103|10|2|22|22068.20|0.04|0.03|A|F|1992-09-09|1992-10-29|1992-09-10|NONE|REG AIR| accounts sleep. furiou|
-1504|178|8|3|9|9703.53|0.07|0.02|R|F|1992-11-02|1992-10-12|1992-11-15|TAKE BACK RETURN|RAIL|y slyly regular courts.|
-1504|115|2|4|10|10151.10|0.04|0.07|A|F|1992-09-22|1992-10-22|1992-10-13|TAKE BACK RETURN|TRUCK|final theodolites. furiously e|
-1504|20|10|5|7|6440.14|0.02|0.00|R|F|1992-11-20|1992-11-23|1992-12-13|COLLECT COD|MAIL|y final packa|
-1505|120|7|1|4|4080.48|0.09|0.00|A|F|1992-12-14|1992-11-11|1993-01-02|COLLECT COD|SHIP|side of the s|
-1505|123|8|2|50|51156.00|0.00|0.02|R|F|1992-11-22|1992-09-24|1992-11-26|TAKE BACK RETURN|FOB|lyly special platelets. requests ar|
-1506|133|4|1|46|47523.98|0.04|0.05|R|F|1993-01-18|1992-11-11|1993-02-09|COLLECT COD|REG AIR|sits whithout the blithely ironic packages|
-1506|114|4|2|30|30423.30|0.07|0.02|A|F|1992-11-22|1992-10-25|1992-12-04|DELIVER IN PERSON|FOB|deposits cajole |
-1506|191|3|3|28|30553.32|0.10|0.06|A|F|1992-09-22|1992-11-19|1992-10-09|TAKE BACK RETURN|AIR| unwind carefully: theodolit|
-1506|28|7|4|37|34336.74|0.00|0.03|R|F|1992-11-04|1992-12-01|1992-11-23|TAKE BACK RETURN|TRUCK|carefully bold dolphins. accounts su|
-1506|195|8|5|15|16427.85|0.05|0.00|R|F|1992-09-24|1992-11-11|1992-10-05|NONE|REG AIR| carefully fluffy packages-- caref|
-1506|50|3|6|38|36101.90|0.05|0.02|R|F|1992-12-02|1992-12-19|1992-12-29|NONE|REG AIR|xpress, regular excuse|
-1506|169|6|7|4|4276.64|0.07|0.00|R|F|1993-01-03|1992-12-06|1993-01-05|COLLECT COD|REG AIR|posits. furiou|
-1507|68|5|1|25|24201.50|0.01|0.08|R|F|1994-01-07|1994-01-06|1994-01-11|NONE|RAIL|xes. slyly busy de|
-1507|40|6|2|33|31021.32|0.04|0.02|A|F|1993-10-29|1993-12-23|1993-11-14|DELIVER IN PERSON|REG AIR| asymptotes nag furiously above t|
-1507|86|7|3|39|38457.12|0.03|0.07|R|F|1993-11-04|1993-12-16|1993-12-03|TAKE BACK RETURN|REG AIR|ly even instructions.|
-1508|51|3|1|16|15216.80|0.02|0.06|N|O|1998-06-21|1998-05-30|1998-07-11|COLLECT COD|MAIL|riously across the ironic, unusua|
-1508|25|4|2|20|18500.40|0.06|0.01|N|O|1998-04-17|1998-06-11|1998-05-17|DELIVER IN PERSON|MAIL|nic platelets. carefully final fra|
-1508|93|7|3|43|42702.87|0.01|0.02|N|O|1998-06-01|1998-06-24|1998-06-03|TAKE BACK RETURN|TRUCK|ndencies h|
-1508|148|7|4|1|1048.14|0.02|0.02|N|O|1998-07-13|1998-06-03|1998-07-17|TAKE BACK RETURN|AIR|s the blithely bold instruction|
-1508|135|6|5|29|30018.77|0.02|0.00|N|O|1998-08-03|1998-07-08|1998-08-22|COLLECT COD|RAIL|r instructions. carefully|
-1508|3|10|6|5|4515.00|0.06|0.08|N|O|1998-05-22|1998-07-06|1998-06-04|COLLECT COD|REG AIR|cording to the furiously ironic depe|
-1508|117|8|7|38|38650.18|0.03|0.06|N|O|1998-04-30|1998-06-23|1998-05-18|DELIVER IN PERSON|RAIL|tes wake furiously regular w|
-1509|28|7|1|14|12992.28|0.04|0.01|A|F|1993-10-04|1993-09-25|1993-10-21|NONE|TRUCK|nal realms|
-1509|11|2|2|46|41906.46|0.08|0.02|A|F|1993-10-15|1993-10-04|1993-11-01|TAKE BACK RETURN|FOB|uriously regula|
-1509|107|8|3|17|17120.70|0.06|0.05|A|F|1993-07-25|1993-08-28|1993-08-19|DELIVER IN PERSON|AIR| furiously. blithely regular ideas haggle c|
-1509|20|4|4|11|10120.22|0.03|0.08|R|F|1993-11-04|1993-10-03|1993-11-14|TAKE BACK RETURN|FOB|ily ironic packages nod carefully.|
-1509|90|1|5|37|36633.33|0.01|0.08|A|F|1993-08-31|1993-09-10|1993-09-24|NONE|FOB|he slyly even deposits wake a|
-1509|187|8|6|31|33702.58|0.04|0.03|A|F|1993-07-14|1993-08-21|1993-08-06|COLLECT COD|SHIP|ic deposits cajole carefully. quickly bold |
-1509|157|2|7|27|28543.05|0.01|0.01|A|F|1993-09-29|1993-09-08|1993-10-04|TAKE BACK RETURN|FOB|lithely after the |
-1510|98|2|1|11|10978.99|0.09|0.04|N|O|1996-09-23|1996-12-03|1996-10-01|DELIVER IN PERSON|RAIL|e of the unusual accounts. stealthy deposit|
-1510|84|5|2|24|23617.92|0.05|0.04|N|O|1996-10-07|1996-10-22|1996-11-03|DELIVER IN PERSON|REG AIR|yly brave theod|
-1510|190|1|3|36|39246.84|0.07|0.02|N|O|1996-10-02|1996-11-23|1996-10-05|NONE|SHIP|old deposits along the carefully|
-1510|182|3|4|8|8657.44|0.01|0.08|N|O|1996-10-26|1996-11-07|1996-10-30|TAKE BACK RETURN|RAIL|blithely express|
-1510|59|10|5|27|25894.35|0.08|0.06|N|O|1996-10-20|1996-12-05|1996-11-02|NONE|MAIL|he blithely regular req|
-1510|14|5|6|3|2742.03|0.05|0.02|N|O|1996-10-31|1996-12-03|1996-11-13|COLLECT COD|RAIL|along the slyly regular pin|
-1510|22|1|7|50|46101.00|0.04|0.05|N|O|1996-11-01|1996-10-17|1996-11-28|NONE|MAIL|even packages. carefully regular fo|
-1511|98|2|1|29|28944.61|0.01|0.04|N|O|1997-03-17|1997-02-11|1997-03-27|DELIVER IN PERSON|AIR|s cajole furiously against |
-1511|62|9|2|32|30785.92|0.04|0.01|N|O|1997-01-06|1997-03-21|1997-01-26|TAKE BACK RETURN|REG AIR| deposits. carefully ironi|
-1536|194|5|1|5|5470.95|0.08|0.03|N|O|1997-02-08|1997-03-11|1997-03-02|COLLECT COD|MAIL|requests sleep pe|
-1537|18|2|1|17|15606.17|0.01|0.03|A|F|1992-04-12|1992-04-19|1992-04-13|NONE|TRUCK|he regular pack|
-1537|179|8|2|50|53958.50|0.08|0.00|R|F|1992-05-30|1992-05-14|1992-06-23|TAKE BACK RETURN|MAIL|special packages haggle slyly at the silent|
-1537|13|4|3|44|40172.44|0.05|0.04|R|F|1992-04-01|1992-03-31|1992-04-21|NONE|TRUCK|lar courts.|
-1537|140|6|4|3|3120.42|0.08|0.07|R|F|1992-03-20|1992-04-14|1992-03-21|TAKE BACK RETURN|SHIP|s, final ideas detect sl|
-1538|102|5|1|32|32067.20|0.05|0.05|N|O|1995-07-08|1995-07-29|1995-08-01|TAKE BACK RETURN|RAIL|uses maintain blithely. fluffily|
-1538|192|3|2|27|29489.13|0.05|0.01|N|O|1995-09-19|1995-08-03|1995-09-24|DELIVER IN PERSON|TRUCK|ngly even packag|
-1538|130|3|3|36|37084.68|0.08|0.04|N|O|1995-07-11|1995-09-10|1995-07-26|DELIVER IN PERSON|MAIL|al deposits mo|
-1538|104|1|4|28|28114.80|0.10|0.04|N|O|1995-09-19|1995-08-27|1995-10-10|COLLECT COD|RAIL|bout the fluffily unusual|
-1538|178|7|5|13|14016.21|0.01|0.05|N|O|1995-06-26|1995-07-30|1995-07-25|NONE|SHIP|ly. packages sleep f|
-1538|128|3|6|42|43181.04|0.08|0.08|N|O|1995-10-10|1995-09-12|1995-11-08|DELIVER IN PERSON|TRUCK|equests cajole blithely |
-1539|196|9|1|21|23019.99|0.08|0.02|R|F|1995-04-19|1995-05-10|1995-04-27|COLLECT COD|TRUCK|ounts haggle. busy|
-1539|86|7|2|11|10846.88|0.01|0.08|A|F|1995-05-27|1995-04-13|1995-06-10|TAKE BACK RETURN|TRUCK|ly express requests. furiously |
-1539|68|5|3|7|6776.42|0.09|0.04|R|F|1995-05-14|1995-04-16|1995-05-30|DELIVER IN PERSON|AIR|. fluffily reg|
-1540|173|1|1|38|40780.46|0.03|0.01|R|F|1992-09-30|1992-10-27|1992-10-12|TAKE BACK RETURN|SHIP| final grouches bo|
-1540|60|2|2|35|33602.10|0.02|0.07|R|F|1992-10-31|1992-09-04|1992-11-05|TAKE BACK RETURN|SHIP|e blithely a|
-1540|8|3|3|25|22700.00|0.08|0.04|R|F|1992-11-15|1992-10-24|1992-12-14|DELIVER IN PERSON|SHIP|ironic deposits amo|
-1540|25|8|4|6|5550.12|0.09|0.03|R|F|1992-08-28|1992-09-17|1992-09-14|COLLECT COD|MAIL|ing to the slyly express asymptote|
-1540|87|8|5|27|26651.16|0.10|0.08|R|F|1992-12-02|1992-10-18|1992-12-31|NONE|SHIP|carefully final packages; b|
-1541|64|3|1|44|42418.64|0.10|0.05|N|O|1995-08-24|1995-07-13|1995-08-26|TAKE BACK RETURN|MAIL|o beans boost fluffily abou|
-1541|26|7|2|8|7408.16|0.10|0.08|N|F|1995-06-05|1995-08-07|1995-06-21|TAKE BACK RETURN|TRUCK|y pending packages. blithely fi|
-1542|58|9|1|37|35447.85|0.07|0.06|A|F|1993-12-15|1993-10-17|1994-01-07|TAKE BACK RETURN|REG AIR|e blithely unusual accounts. quic|
-1542|3|6|2|12|10836.00|0.09|0.06|R|F|1993-10-29|1993-11-02|1993-11-09|TAKE BACK RETURN|RAIL|carefully |
-1542|6|7|3|18|16308.00|0.05|0.05|R|F|1993-10-17|1993-11-15|1993-10-26|TAKE BACK RETURN|FOB|pending instr|
-1542|143|10|4|21|21905.94|0.01|0.05|R|F|1993-10-13|1993-12-13|1993-11-12|NONE|RAIL|y pending foxes nag blithely |
-1542|155|7|5|46|48536.90|0.00|0.00|R|F|1993-09-28|1993-11-03|1993-10-15|COLLECT COD|FOB|ial instructions. ironically|
-1543|71|10|1|34|33016.38|0.02|0.08|N|O|1997-05-25|1997-03-30|1997-06-04|NONE|AIR|ic requests are ac|
-1543|115|9|2|6|6090.66|0.09|0.01|N|O|1997-04-16|1997-05-20|1997-05-16|DELIVER IN PERSON|MAIL| among the carefully bold or|
-1543|67|8|3|42|40616.52|0.06|0.01|N|O|1997-05-26|1997-03-30|1997-06-12|DELIVER IN PERSON|FOB|its sleep until the fur|
-1543|189|10|4|42|45745.56|0.05|0.06|N|O|1997-04-11|1997-04-11|1997-04-23|TAKE BACK RETURN|MAIL|xpress instructions. regular acc|
-1543|40|1|5|9|8460.36|0.08|0.06|N|O|1997-03-14|1997-05-19|1997-03-26|DELIVER IN PERSON|FOB|ravely special requests |
-1543|49|8|6|3|2847.12|0.10|0.04|N|O|1997-03-29|1997-05-10|1997-04-22|COLLECT COD|MAIL|sleep along the furiou|
-1543|68|7|7|3|2904.18|0.00|0.02|N|O|1997-03-22|1997-04-06|1997-03-30|NONE|AIR|quickly. final accounts haggle slyl|
-1568|90|1|1|36|35643.24|0.02|0.03|N|O|1997-05-31|1997-04-22|1997-06-21|TAKE BACK RETURN|RAIL|platelets-- furiously sly excu|
-1568|9|2|2|46|41814.00|0.04|0.00|N|O|1997-04-06|1997-04-08|1997-04-23|TAKE BACK RETURN|MAIL|g the blithely even acco|
-1569|75|3|1|5|4875.35|0.07|0.00|N|O|1998-04-16|1998-06-21|1998-04-18|COLLECT COD|REG AIR| packages. ironic, even excuses a|
-1569|39|10|2|16|15024.48|0.01|0.08|N|O|1998-04-26|1998-06-16|1998-05-26|COLLECT COD|MAIL|deposits. blithely final asymptotes ac|
-1569|49|10|3|43|40808.72|0.10|0.03|N|O|1998-06-05|1998-05-31|1998-06-28|DELIVER IN PERSON|FOB| instructions.|
-1569|70|1|4|30|29102.10|0.02|0.03|N|O|1998-07-19|1998-06-04|1998-08-10|NONE|SHIP|packages. excuses lose evenly carefully reg|
-1570|183|4|1|25|27079.50|0.00|0.06|N|O|1998-05-03|1998-06-02|1998-06-02|DELIVER IN PERSON|REG AIR|its. slyly regular sentiments|
-1570|86|7|2|7|6902.56|0.05|0.05|N|O|1998-07-10|1998-06-01|1998-07-23|TAKE BACK RETURN|MAIL|requests boost quickly re|
-1571|52|3|1|47|44746.35|0.00|0.05|R|F|1992-12-07|1993-02-24|1993-01-01|TAKE BACK RETURN|REG AIR|ng to the fluffily unusual |
-1571|183|4|2|6|6499.08|0.03|0.00|A|F|1993-01-08|1993-02-13|1993-02-07|COLLECT COD|SHIP| special, ironic depo|
-1571|59|7|3|18|17262.90|0.05|0.08|A|F|1993-01-09|1993-01-12|1993-01-31|COLLECT COD|AIR| pending grouches |
-1571|101|4|4|48|48052.80|0.05|0.05|A|F|1992-12-28|1993-01-04|1993-01-04|DELIVER IN PERSON|RAIL|slyly pending p|
-1571|42|5|5|10|9420.40|0.03|0.06|R|F|1992-12-12|1993-02-13|1992-12-29|DELIVER IN PERSON|AIR|lets. carefully regular ideas wake|
-1571|34|10|6|24|22416.72|0.05|0.07|A|F|1993-03-22|1993-01-31|1993-04-09|NONE|TRUCK|warthogs wake carefully acro|
-1572|24|5|1|41|37884.82|0.02|0.00|N|O|1996-05-16|1996-04-09|1996-05-28|TAKE BACK RETURN|REG AIR|. pinto beans alongside|
-1572|93|7|2|10|9930.90|0.04|0.06|N|O|1996-05-17|1996-03-26|1996-05-19|NONE|AIR| accounts affix slyly. |
-1573|186|7|1|5|5430.90|0.05|0.01|A|F|1993-04-24|1993-03-13|1993-05-17|TAKE BACK RETURN|MAIL|ymptotes could u|
-1573|31|2|2|17|15827.51|0.00|0.06|R|F|1993-02-24|1993-02-16|1993-03-08|TAKE BACK RETURN|TRUCK|carefully regular deposits. |
-1573|83|4|3|16|15729.28|0.04|0.03|A|F|1993-03-15|1993-03-16|1993-03-31|COLLECT COD|AIR|ely. furiously final requests wake slyl|
-1573|194|7|4|11|12036.09|0.09|0.01|R|F|1993-03-23|1993-03-24|1993-04-12|TAKE BACK RETURN|RAIL|nently pending|
-1573|137|8|5|7|7259.91|0.00|0.01|R|F|1993-01-30|1993-03-14|1993-02-27|DELIVER IN PERSON|SHIP|eodolites sleep slyly. slyly f|
-1573|154|6|6|30|31624.50|0.03|0.01|A|F|1992-12-29|1993-03-06|1993-01-02|DELIVER IN PERSON|TRUCK|. blithely even theodolites boos|
-1574|48|7|1|41|38869.64|0.06|0.02|N|O|1997-03-08|1997-02-09|1997-04-01|COLLECT COD|AIR|s. slyly regular depen|
-1574|191|5|2|50|54559.50|0.00|0.05|N|O|1996-12-14|1997-02-14|1996-12-16|TAKE BACK RETURN|FOB|le regular, regular foxes. blithely e|
-1574|55|3|3|25|23876.25|0.06|0.02|N|O|1997-01-16|1997-02-14|1997-02-12|DELIVER IN PERSON|TRUCK|ly silent accounts.|
-1574|191|4|4|6|6547.14|0.03|0.05|N|O|1997-02-24|1997-02-03|1997-03-01|NONE|AIR|e silent, final packages. speci|
-1574|109|4|5|6|6054.60|0.05|0.05|N|O|1997-02-09|1997-03-02|1997-02-14|COLLECT COD|MAIL|nic, final ideas snooze. |
-1574|5|2|6|42|38010.00|0.07|0.01|N|O|1996-12-19|1997-01-13|1996-12-28|NONE|FOB|o beans according t|
-1574|136|7|7|14|14505.82|0.04|0.01|N|O|1996-12-30|1997-01-19|1997-01-20|NONE|AIR|ily bold a|
-1575|29|10|1|42|39018.84|0.05|0.08|N|O|1995-10-21|1995-11-25|1995-10-24|DELIVER IN PERSON|RAIL|ly pending pinto beans.|
-1575|36|7|2|39|36505.17|0.00|0.06|N|O|1995-10-30|1995-10-15|1995-11-10|COLLECT COD|TRUCK| ironic requests snooze ironic, regular acc|
-1575|2|5|3|12|10824.00|0.01|0.05|N|O|1995-12-27|1995-11-11|1996-01-23|TAKE BACK RETURN|AIR| bold accounts. furi|
-1575|111|1|4|39|39433.29|0.07|0.00|N|O|1995-09-23|1995-11-05|1995-09-25|TAKE BACK RETURN|TRUCK| after the unusual asym|
-1575|83|4|5|10|9830.80|0.09|0.00|N|O|1996-01-10|1995-11-20|1996-01-13|DELIVER IN PERSON|RAIL|k excuses. pinto beans wake a|
-1575|178|6|6|14|15094.38|0.08|0.06|N|O|1995-10-31|1995-12-06|1995-11-30|NONE|AIR|beans breach among the furiously specia|
-1575|117|1|7|48|48821.28|0.08|0.04|N|O|1995-11-19|1995-10-25|1995-12-07|DELIVER IN PERSON|TRUCK|cies. regu|
-1600|172|10|1|20|21443.40|0.02|0.01|R|F|1993-06-16|1993-04-23|1993-07-02|COLLECT COD|FOB|pths sleep blithely about the|
-1600|44|3|2|48|45313.92|0.07|0.02|R|F|1993-04-17|1993-04-14|1993-05-03|DELIVER IN PERSON|FOB|furiously silent foxes could wake. car|
-1600|39|10|3|8|7512.24|0.04|0.07|R|F|1993-03-07|1993-04-22|1993-03-26|TAKE BACK RETURN|FOB|cajole furiously fluf|
-1600|69|8|4|25|24226.50|0.00|0.06|A|F|1993-05-25|1993-04-07|1993-06-05|TAKE BACK RETURN|REG AIR|press packages. ironic excuses bo|
-1600|147|8|5|30|31414.20|0.03|0.08|R|F|1993-06-03|1993-05-03|1993-06-07|DELIVER IN PERSON|RAIL|al escapades alongside of the depo|
-1601|167|8|1|6|6402.96|0.00|0.00|A|F|1994-10-19|1994-09-28|1994-10-23|COLLECT COD|SHIP| bold sheaves. furiously per|
-1601|175|3|2|50|53758.50|0.03|0.02|R|F|1994-12-24|1994-10-23|1995-01-11|COLLECT COD|FOB|ideas doubt|
-1601|90|1|3|14|13861.26|0.04|0.08|R|F|1994-09-17|1994-11-22|1994-10-03|DELIVER IN PERSON|RAIL|he special, fin|
-1602|183|4|1|4|4332.72|0.08|0.06|R|F|1993-10-31|1993-09-05|1993-11-21|NONE|RAIL|y. even excuses|
-1603|39|5|1|1|939.03|0.08|0.00|R|F|1993-08-17|1993-09-04|1993-08-22|TAKE BACK RETURN|REG AIR|d accounts. special warthogs use fur|
-1603|66|5|2|29|28015.74|0.06|0.08|A|F|1993-09-28|1993-09-20|1993-10-28|NONE|SHIP|ses wake furiously. theodolite|
-1604|42|3|1|15|14130.60|0.09|0.08|R|F|1993-09-22|1993-09-03|1993-09-29|TAKE BACK RETURN|MAIL| instructions haggle|
-1604|141|4|2|37|38522.18|0.06|0.06|A|F|1993-08-22|1993-09-21|1993-09-10|COLLECT COD|SHIP|requests. blithely ironic somas s|
-1604|114|8|3|19|19268.09|0.09|0.07|A|F|1993-10-15|1993-10-04|1993-11-09|COLLECT COD|RAIL| ideas. bol|
-1604|175|4|4|15|16127.55|0.03|0.00|R|F|1993-09-10|1993-08-31|1993-09-30|TAKE BACK RETURN|RAIL|ending realms along the special, p|
-1604|21|4|5|23|21183.46|0.08|0.05|A|F|1993-10-11|1993-08-30|1993-10-18|DELIVER IN PERSON|RAIL|en requests. blithely fin|
-1605|142|1|1|47|48980.58|0.00|0.01|N|O|1998-04-29|1998-06-12|1998-05-20|DELIVER IN PERSON|AIR|. carefully r|
-1605|180|8|2|18|19443.24|0.10|0.00|N|O|1998-05-13|1998-06-17|1998-06-03|COLLECT COD|REG AIR|ly regular foxes wake carefully. bol|
-1605|59|10|3|39|37402.95|0.02|0.03|N|O|1998-07-12|1998-06-05|1998-08-09|DELIVER IN PERSON|MAIL|nal dependencies-- quickly final frets acc|
-1605|183|4|4|25|27079.50|0.06|0.02|N|O|1998-05-26|1998-06-14|1998-06-05|COLLECT COD|AIR|ole carefully car|
-1606|115|6|1|21|21317.31|0.04|0.00|N|O|1997-06-02|1997-07-02|1997-06-27|DELIVER IN PERSON|RAIL| pending theodolites prom|
-1606|174|3|2|35|37595.95|0.00|0.02|N|O|1997-06-20|1997-06-19|1997-06-22|COLLECT COD|TRUCK|carefully sil|
-1606|100|4|3|23|23002.30|0.00|0.06|N|O|1997-04-19|1997-06-26|1997-04-30|NONE|MAIL|ously final requests. slowly ironic ex|
-1606|97|9|4|20|19941.80|0.02|0.04|N|O|1997-05-01|1997-05-26|1997-05-28|TAKE BACK RETURN|TRUCK|fily carefu|
-1606|71|10|5|14|13594.98|0.10|0.01|N|O|1997-05-19|1997-07-05|1997-06-10|COLLECT COD|FOB|structions haggle f|
-1607|190|1|1|2|2180.38|0.02|0.00|N|O|1996-01-11|1996-02-15|1996-01-19|DELIVER IN PERSON|MAIL|packages haggle. regular requests boost s|
-1607|119|3|2|37|37707.07|0.05|0.02|N|O|1996-02-27|1996-02-18|1996-03-16|NONE|AIR|alongside |
-1607|123|4|3|39|39901.68|0.00|0.00|N|O|1996-02-01|1996-02-12|1996-02-16|NONE|FOB|uches cajole. accounts ar|
-1607|76|6|4|34|33186.38|0.05|0.06|N|O|1996-01-06|1996-02-24|1996-01-10|DELIVER IN PERSON|SHIP| quickly above the |
-1607|178|8|5|48|51752.16|0.00|0.05|N|O|1996-02-22|1996-02-13|1996-03-09|TAKE BACK RETURN|MAIL|ular forges. deposits a|
-1632|191|5|1|47|51285.93|0.08|0.00|N|O|1997-01-25|1997-02-09|1997-02-19|TAKE BACK RETURN|RAIL|g to the closely special no|
-1632|148|7|2|14|14673.96|0.08|0.05|N|O|1997-01-15|1997-02-25|1997-01-28|NONE|RAIL|oxes. deposits nag slyly along the slyly |
-1632|177|6|3|47|50626.99|0.03|0.04|N|O|1997-01-29|1997-03-03|1997-02-21|NONE|MAIL|sts. blithely regular |
-1632|57|9|4|33|31582.65|0.09|0.02|N|O|1997-04-01|1997-02-24|1997-04-29|TAKE BACK RETURN|REG AIR|ructions! slyly|
-1632|142|1|5|43|44812.02|0.10|0.03|N|O|1997-02-24|1997-02-19|1997-03-25|DELIVER IN PERSON|FOB|ts. blithe, bold ideas cajo|
-1633|178|7|1|35|37735.95|0.01|0.02|N|O|1996-01-09|1995-12-02|1996-01-21|COLLECT COD|REG AIR|ly against the dolph|
-1633|5|6|2|15|13575.00|0.00|0.05|N|O|1995-12-13|1995-11-13|1996-01-04|TAKE BACK RETURN|FOB|ges wake fluffil|
-1634|48|9|1|21|19908.84|0.00|0.00|N|O|1996-10-04|1996-10-22|1996-11-01|NONE|MAIL|counts alo|
-1634|172|3|2|44|47175.48|0.05|0.01|N|O|1996-09-17|1996-11-09|1996-10-03|COLLECT COD|SHIP|requests affix slyly. quickly even pack|
-1634|19|10|3|21|19299.21|0.06|0.07|N|O|1996-11-16|1996-10-21|1996-11-27|NONE|TRUCK|y along the excuses.|
-1634|68|3|4|17|16457.02|0.08|0.07|N|O|1996-10-29|1996-10-15|1996-11-02|TAKE BACK RETURN|SHIP|cial, bold platelets alongside of the f|
-1634|76|7|5|2|1952.14|0.07|0.04|N|O|1996-11-22|1996-10-28|1996-12-17|NONE|SHIP|ly. carefully regular asymptotes wake|
-1634|170|9|6|11|11771.87|0.01|0.08|N|O|1996-10-04|1996-12-06|1996-10-14|DELIVER IN PERSON|SHIP|final requests |
-1634|13|7|7|35|31955.35|0.06|0.02|N|O|1996-11-25|1996-11-25|1996-12-12|TAKE BACK RETURN|RAIL|cies. regular, special de|
-1635|71|1|1|3|2913.21|0.06|0.08|N|O|1997-03-13|1997-03-25|1997-03-27|COLLECT COD|FOB| quickly ironic r|
-1635|90|1|2|8|7920.72|0.04|0.05|N|O|1997-04-30|1997-04-21|1997-05-09|DELIVER IN PERSON|AIR|ravely carefully express |
-1635|114|5|3|20|20282.20|0.07|0.01|N|O|1997-05-19|1997-04-01|1997-06-17|TAKE BACK RETURN|FOB|oost according to the carefully even accou|
-1635|77|5|4|40|39082.80|0.01|0.04|N|O|1997-02-25|1997-03-20|1997-03-12|TAKE BACK RETURN|RAIL|uriously up the ironic deposits. slyly i|
-1636|85|6|1|2|1970.16|0.09|0.03|N|O|1997-09-26|1997-08-22|1997-10-05|NONE|TRUCK|nal foxes cajole above the blithely reg|
-1636|169|10|2|45|48112.20|0.03|0.01|N|O|1997-07-14|1997-08-08|1997-07-27|COLLECT COD|RAIL|ely express reque|
-1636|108|1|3|24|24194.40|0.07|0.08|N|O|1997-10-07|1997-08-12|1997-11-04|TAKE BACK RETURN|MAIL|e carefully unusual ideas are f|
-1636|153|1|4|43|45285.45|0.06|0.00|N|O|1997-08-23|1997-08-10|1997-09-17|NONE|REG AIR|blithely special r|
-1636|19|6|5|22|20218.22|0.05|0.02|N|O|1997-07-22|1997-08-18|1997-08-03|COLLECT COD|AIR|ular, regu|
-1636|63|2|6|34|32744.04|0.10|0.01|N|O|1997-08-11|1997-09-09|1997-08-23|NONE|TRUCK|ular depos|
-1636|114|1|7|7|7098.77|0.04|0.00|N|O|1997-07-28|1997-09-10|1997-07-31|NONE|MAIL|ronic instructions. final|
-1637|86|7|1|49|48317.92|0.02|0.03|N|F|1995-06-08|1995-04-19|1995-07-01|COLLECT COD|REG AIR|. blithely i|
-1637|73|2|2|1|973.07|0.10|0.02|A|F|1995-02-14|1995-03-26|1995-03-09|TAKE BACK RETURN|AIR|ly final pinto beans. furiously|
-1637|22|1|3|10|9220.20|0.02|0.05|R|F|1995-02-21|1995-03-17|1995-03-11|NONE|AIR|uriously? blithely even sauternes wake. |
-1637|93|5|4|42|41709.78|0.06|0.01|A|F|1995-03-18|1995-04-24|1995-03-31|COLLECT COD|SHIP|blithely a|
-1637|5|8|5|25|22625.00|0.05|0.00|R|F|1995-06-07|1995-03-26|1995-06-08|COLLECT COD|RAIL| haggle carefully silent accou|
-1637|109|4|6|38|38345.80|0.02|0.08|R|F|1995-03-20|1995-05-05|1995-04-14|DELIVER IN PERSON|SHIP|even, pending foxes nod regular|
-1637|52|10|7|21|19993.05|0.07|0.08|A|F|1995-04-30|1995-04-30|1995-05-05|COLLECT COD|SHIP|ly ironic theodolites use b|
-1638|6|7|1|46|41676.00|0.03|0.02|N|O|1997-10-16|1997-10-28|1997-11-09|COLLECT COD|MAIL|otes haggle before the slyly bold instructi|
-1638|149|10|2|30|31474.20|0.00|0.04|N|O|1997-12-05|1997-09-17|1997-12-06|NONE|REG AIR|s cajole boldly bold requests. closely |
-1638|31|7|3|5|4655.15|0.08|0.07|N|O|1997-10-15|1997-11-01|1997-11-08|DELIVER IN PERSON|FOB|xcuses sleep furiou|
-1638|56|8|4|19|18164.95|0.00|0.08|N|O|1997-10-15|1997-10-27|1997-11-03|DELIVER IN PERSON|MAIL| quickly expres|
-1638|143|6|5|25|26078.50|0.05|0.03|N|O|1997-10-06|1997-09-30|1997-11-02|DELIVER IN PERSON|REG AIR|gle final, ironic pinto beans. |
-1638|155|10|6|46|48536.90|0.07|0.08|N|O|1997-08-20|1997-10-10|1997-09-09|COLLECT COD|AIR|ckages are carefully even instru|
-1639|187|8|1|24|26092.32|0.07|0.00|N|O|1995-08-24|1995-10-06|1995-08-31|COLLECT COD|REG AIR| the regular packages. courts dou|
-1639|43|6|2|38|35835.52|0.01|0.04|N|O|1995-08-23|1995-11-09|1995-08-29|TAKE BACK RETURN|FOB|y regular packages. b|
-1639|171|10|3|41|43917.97|0.04|0.02|N|O|1995-12-19|1995-11-11|1996-01-12|DELIVER IN PERSON|FOB|structions w|
-1664|118|5|1|48|48869.28|0.04|0.02|N|O|1996-06-21|1996-05-01|1996-07-19|TAKE BACK RETURN|RAIL| use. ironic deposits integrate. slyly unu|
-1664|173|2|2|30|32195.10|0.06|0.05|N|O|1996-04-04|1996-05-04|1996-05-03|COLLECT COD|FOB|ess multip|
-1664|151|2|3|10|10511.50|0.00|0.06|N|O|1996-04-10|1996-05-13|1996-05-07|TAKE BACK RETURN|RAIL|instructions up the acc|
-1664|155|3|4|35|36930.25|0.00|0.04|N|O|1996-03-06|1996-05-16|1996-03-09|DELIVER IN PERSON|REG AIR|y regular ide|
-1664|57|8|5|9|8613.45|0.07|0.04|N|O|1996-04-15|1996-05-14|1996-05-11|DELIVER IN PERSON|TRUCK|ges. fluffil|
-1664|141|8|6|40|41645.60|0.09|0.07|N|O|1996-04-02|1996-04-22|1996-04-17|COLLECT COD|REG AIR|se blithely unusual pains. carefully|
-1665|47|6|1|4|3788.16|0.02|0.03|A|F|1994-09-01|1994-06-07|1994-09-12|DELIVER IN PERSON|TRUCK|ely final requests. requests|
-1665|78|6|2|1|978.07|0.03|0.05|R|F|1994-05-22|1994-07-06|1994-05-24|TAKE BACK RETURN|TRUCK|sly final p|
-1666|185|6|1|30|32555.40|0.04|0.03|N|O|1995-10-28|1995-11-30|1995-11-18|TAKE BACK RETURN|AIR| breach evenly final accounts. r|
-1666|64|1|2|20|19281.20|0.01|0.00|N|O|1996-01-27|1995-12-12|1996-01-31|NONE|REG AIR|uietly regular foxes wake quick|
-1666|134|10|3|31|32058.03|0.05|0.07|N|O|1996-02-11|1996-01-11|1996-02-28|COLLECT COD|RAIL|ding to the express, bold accounts. fu|
-1666|169|8|4|41|43835.56|0.06|0.08|N|O|1995-11-29|1996-01-04|1995-12-24|NONE|TRUCK|ly regular excuses; regular ac|
-1667|21|4|1|6|5526.12|0.04|0.02|N|O|1997-12-07|1997-11-16|1998-01-02|COLLECT COD|FOB|riously busy requests. blithely final a|
-1667|22|1|2|29|26738.58|0.06|0.07|N|O|1997-10-15|1997-11-09|1997-11-11|TAKE BACK RETURN|MAIL|l accounts. furiously final courts h|
-1667|95|8|3|48|47764.32|0.05|0.01|N|O|1998-01-27|1998-01-06|1998-02-09|TAKE BACK RETURN|SHIP|tes sleep furiously. carefully eve|
-1667|59|1|4|24|23017.20|0.04|0.01|N|O|1997-10-14|1997-12-01|1997-11-09|TAKE BACK RETURN|MAIL|hrash final requests. care|
-1667|195|9|5|2|2190.38|0.07|0.00|N|O|1997-12-17|1997-11-22|1998-01-16|NONE|SHIP|pecial requests hag|
-1667|48|7|6|6|5688.24|0.01|0.03|N|O|1998-01-21|1997-12-19|1998-01-28|NONE|TRUCK| nag quickly above th|
-1667|40|6|7|19|17860.76|0.09|0.03|N|O|1998-01-23|1997-11-24|1998-01-26|DELIVER IN PERSON|SHIP|around the pinto beans. express, special|
-1668|132|8|1|8|8257.04|0.06|0.01|N|O|1997-07-23|1997-10-09|1997-08-06|DELIVER IN PERSON|FOB|arefully regular tithes! slyl|
-1668|1|8|2|25|22525.00|0.01|0.06|N|O|1997-08-08|1997-09-28|1997-09-01|NONE|TRUCK|y ironic requests. bold, final ideas a|
-1668|75|5|3|42|40952.94|0.08|0.01|N|O|1997-08-09|1997-09-08|1997-08-31|NONE|FOB|ole carefully excuses. final|
-1668|191|5|4|9|9820.71|0.05|0.03|N|O|1997-10-17|1997-09-05|1997-11-01|COLLECT COD|RAIL|wake furiously even instructions. sil|
-1668|128|9|5|25|25703.00|0.01|0.02|N|O|1997-10-08|1997-09-20|1997-10-11|DELIVER IN PERSON|REG AIR|even platelets across the silent |
-1668|10|3|6|38|34580.38|0.07|0.01|N|O|1997-08-26|1997-09-17|1997-09-05|DELIVER IN PERSON|TRUCK|ep slyly across the furi|
-1669|79|10|1|24|23497.68|0.04|0.08|N|O|1997-09-04|1997-07-30|1997-09-20|DELIVER IN PERSON|RAIL| regular, final deposits use quick|
-1670|32|3|1|41|38213.23|0.07|0.01|N|O|1997-07-19|1997-08-20|1997-07-23|DELIVER IN PERSON|TRUCK|thely according to the sly|
-1670|122|3|2|10|10221.20|0.07|0.03|N|O|1997-09-14|1997-08-16|1997-09-23|NONE|SHIP|fily special ideas |
-1670|186|7|3|41|44533.38|0.07|0.07|N|O|1997-07-19|1997-08-05|1997-07-26|COLLECT COD|SHIP|al gifts. speci|
-1671|149|2|1|21|22031.94|0.02|0.07|N|O|1996-07-28|1996-09-28|1996-08-08|TAKE BACK RETURN|AIR|s accounts slee|
-1671|96|10|2|4|3984.36|0.05|0.00|N|O|1996-08-30|1996-09-19|1996-09-23|DELIVER IN PERSON|TRUCK|lyly regular ac|
-1671|124|3|3|11|11265.32|0.06|0.08|N|O|1996-09-16|1996-10-21|1996-09-18|NONE|SHIP|tes sleep blithely|
-1671|178|7|4|5|5390.85|0.00|0.00|N|O|1996-11-14|1996-10-20|1996-11-25|TAKE BACK RETURN|FOB|luffily regular deposits|
-1671|127|8|5|12|12325.44|0.07|0.04|N|O|1996-11-17|1996-09-02|1996-12-17|COLLECT COD|RAIL|special, ironic|
-1671|197|9|6|46|50470.74|0.08|0.05|N|O|1996-09-13|1996-10-14|1996-09-28|TAKE BACK RETURN|REG AIR|. slyly bold instructions boost. furiousl|
-1696|16|3|1|8|7328.08|0.04|0.02|N|O|1998-04-28|1998-02-07|1998-05-10|NONE|TRUCK|the blithely|
-1696|139|5|2|13|13508.69|0.08|0.06|N|O|1998-03-01|1998-03-25|1998-03-24|TAKE BACK RETURN|TRUCK|tructions play slyly q|
-1696|2|5|3|19|17138.00|0.08|0.05|N|O|1998-05-03|1998-03-13|1998-05-28|TAKE BACK RETURN|REG AIR|its maintain alongside of the f|
-1696|193|4|4|21|22956.99|0.05|0.00|N|O|1998-05-04|1998-02-18|1998-05-07|NONE|MAIL|y players sleep along the final, pending |
-1696|94|7|5|43|42745.87|0.03|0.06|N|O|1998-02-14|1998-03-29|1998-02-20|COLLECT COD|FOB|arefully regular dep|
-1697|75|5|1|6|5850.42|0.05|0.00|N|O|1997-01-28|1996-11-27|1997-01-31|NONE|FOB|accounts breach slyly even de|
-1697|104|7|2|24|24098.40|0.00|0.08|N|O|1996-12-29|1996-12-19|1997-01-10|NONE|SHIP|ts cajole carefully above the carefully|
-1697|124|9|3|27|27651.24|0.06|0.00|N|O|1997-01-20|1996-12-02|1997-02-05|COLLECT COD|MAIL|ly regular packages across the silent, b|
-1697|94|5|4|49|48710.41|0.08|0.04|N|O|1996-12-07|1997-01-02|1996-12-31|COLLECT COD|TRUCK|lar foxes. fluffily furious ideas doubt qu|
-1697|35|1|5|19|17765.57|0.03|0.07|N|O|1997-01-08|1996-11-12|1997-01-11|DELIVER IN PERSON|FOB|ons? special, special accounts after|
-1698|97|8|1|44|43871.96|0.05|0.05|N|O|1997-05-16|1997-07-05|1997-05-27|NONE|RAIL|ts wake slyly after t|
-1698|93|5|2|6|5958.54|0.08|0.00|N|O|1997-08-21|1997-06-08|1997-09-03|DELIVER IN PERSON|RAIL| pending packages affix ne|
-1698|21|6|3|22|20262.44|0.03|0.04|N|O|1997-08-07|1997-05-28|1997-08-24|DELIVER IN PERSON|TRUCK|oward the furiously iro|
-1698|112|6|4|19|19230.09|0.00|0.07|N|O|1997-07-04|1997-06-21|1997-08-01|NONE|RAIL| fluffily e|
-1698|53|4|5|37|35262.85|0.00|0.03|N|O|1997-05-16|1997-05-29|1997-05-27|NONE|AIR|ly regular ideas. deposit|
-1698|166|7|6|15|15992.40|0.10|0.01|N|O|1997-07-20|1997-06-07|1997-07-21|TAKE BACK RETURN|RAIL|final ideas. even, ironic |
-1699|38|9|1|50|46901.50|0.00|0.06|A|F|1994-03-26|1994-03-23|1994-04-20|NONE|FOB|to the final requests are carefully silent |
-1699|135|6|2|17|17597.21|0.07|0.02|R|F|1994-01-12|1994-03-12|1994-02-08|NONE|AIR|haggle blithely slyly|
-1700|140|1|1|38|39525.32|0.04|0.04|N|O|1996-10-03|1996-07-27|1996-10-22|NONE|RAIL|ular dependencies engage slyly |
-1700|156|7|2|49|51751.35|0.04|0.00|N|O|1996-09-26|1996-07-28|1996-10-16|NONE|TRUCK|kly even dependencies haggle fluffi|
-1701|150|9|1|47|49357.05|0.08|0.05|R|F|1992-05-25|1992-06-29|1992-06-15|NONE|RAIL|slyly final requests cajole requests. f|
-1701|54|5|2|2|1908.10|0.01|0.04|R|F|1992-06-24|1992-07-12|1992-06-29|COLLECT COD|SHIP|ween the pending, final accounts. |
-1701|35|1|3|26|24310.78|0.10|0.06|R|F|1992-06-04|1992-07-11|1992-07-04|DELIVER IN PERSON|FOB| accounts. blithely pending pinto be|
-1702|67|2|1|19|18374.14|0.02|0.01|N|F|1995-06-02|1995-06-30|1995-06-29|NONE|REG AIR|ies haggle blith|
-1702|30|5|2|38|35341.14|0.00|0.00|N|O|1995-09-01|1995-06-10|1995-09-10|DELIVER IN PERSON|REG AIR|as believe blithely. bo|
-1702|195|6|3|46|50378.74|0.00|0.08|N|O|1995-07-14|1995-06-30|1995-07-20|NONE|FOB|y even foxes. carefully final dependencies |
-1702|93|4|4|28|27806.52|0.07|0.05|R|F|1995-06-10|1995-07-26|1995-06-16|TAKE BACK RETURN|AIR|nts haggle along the packa|
-1702|89|10|5|34|33628.72|0.01|0.06|N|O|1995-07-04|1995-06-08|1995-07-28|DELIVER IN PERSON|AIR|y careful packages; dogged acco|
-1702|42|9|6|28|26377.12|0.10|0.00|N|O|1995-08-14|1995-07-31|1995-09-08|COLLECT COD|RAIL|ackages sleep. furiously even excuses snooz|
-1703|166|5|1|36|38381.76|0.09|0.01|R|F|1993-04-22|1993-03-05|1993-04-24|DELIVER IN PERSON|SHIP|riously express |
-1703|137|8|2|35|36299.55|0.01|0.08|R|F|1993-04-14|1993-03-31|1993-04-27|NONE|RAIL|he carefully|
-1703|124|5|3|48|49157.76|0.06|0.02|R|F|1993-02-07|1993-04-20|1993-02-24|TAKE BACK RETURN|AIR|ggle slyly furiously regular theodol|
-1728|126|5|1|1|1026.12|0.07|0.04|N|O|1996-09-16|1996-08-19|1996-09-18|COLLECT COD|FOB|lly. carefully ex|
-1728|105|8|2|23|23117.30|0.05|0.02|N|O|1996-09-08|1996-07-24|1996-09-20|NONE|FOB|ns. pending, final ac|
-1728|165|10|3|44|46867.04|0.08|0.07|N|O|1996-07-31|1996-06-22|1996-08-06|COLLECT COD|FOB|ide of the slyly blithe|
-1728|27|8|4|34|31518.68|0.08|0.05|N|O|1996-08-28|1996-07-20|1996-09-12|DELIVER IN PERSON|MAIL|special req|
-1728|199|2|5|31|34074.89|0.09|0.02|N|O|1996-07-26|1996-06-28|1996-08-14|NONE|REG AIR|kly sly theodolites.|
-1729|157|8|1|12|12685.80|0.08|0.04|A|F|1992-08-11|1992-07-24|1992-08-16|COLLECT COD|RAIL|y pending packages detect. carefully re|
-1730|166|5|1|41|43712.56|0.01|0.03|N|O|1998-08-11|1998-08-29|1998-09-02|TAKE BACK RETURN|TRUCK| instructions. unusual, even Tiresi|
-1730|162|3|2|15|15932.40|0.07|0.04|N|O|1998-09-07|1998-09-12|1998-09-30|TAKE BACK RETURN|AIR|pinto beans cajole. bravely bold|
-1730|162|1|3|9|9559.44|0.10|0.00|N|O|1998-09-18|1998-09-15|1998-09-21|DELIVER IN PERSON|FOB|gular dependencies wake. blithely final e|
-1730|10|7|4|40|36400.40|0.02|0.03|N|O|1998-10-02|1998-10-06|1998-10-03|NONE|SHIP|ven dinos slee|
-1730|141|4|5|43|44769.02|0.04|0.06|N|O|1998-10-26|1998-10-22|1998-11-02|DELIVER IN PERSON|TRUCK|ng deposits cajo|
-1731|184|5|1|36|39030.48|0.10|0.00|N|O|1996-04-18|1996-04-03|1996-04-29|TAKE BACK RETURN|MAIL|ngside of the even instruct|
-1731|139|10|2|7|7273.91|0.04|0.07|N|O|1996-04-11|1996-02-13|1996-04-30|DELIVER IN PERSON|REG AIR|fily quick asymptotes|
-1731|51|9|3|50|47552.50|0.05|0.04|N|O|1996-01-14|1996-03-13|1996-01-29|COLLECT COD|RAIL|ly slyly speci|
-1731|196|10|4|23|25212.37|0.10|0.04|N|O|1996-04-22|1996-02-25|1996-05-16|TAKE BACK RETURN|RAIL|rays? bold, express pac|
-1731|53|4|5|37|35262.85|0.10|0.05|N|O|1996-04-30|1996-03-17|1996-05-27|TAKE BACK RETURN|RAIL| beans use furiously slyly b|
-1731|124|7|6|41|41988.92|0.03|0.08|N|O|1996-04-05|1996-02-28|1996-05-01|TAKE BACK RETURN|RAIL|haggle across the blithely ironi|
-1732|5|6|1|50|45250.00|0.02|0.01|R|F|1993-12-05|1994-01-23|1993-12-20|TAKE BACK RETURN|FOB|fily final asymptotes according |
-1732|99|10|2|36|35967.24|0.01|0.03|A|F|1994-03-15|1994-02-09|1994-04-02|DELIVER IN PERSON|TRUCK|ve the accounts. slowly ironic multip|
-1732|161|8|3|41|43507.56|0.00|0.04|R|F|1994-02-20|1994-01-07|1994-02-27|TAKE BACK RETURN|AIR|quests sublate against the silent |
-1732|152|3|4|9|9469.35|0.04|0.04|A|F|1994-02-25|1994-01-29|1994-03-16|TAKE BACK RETURN|FOB|ular platelets. deposits wak|
-1732|169|8|5|25|26729.00|0.02|0.05|A|F|1994-02-15|1994-01-07|1994-02-21|COLLECT COD|REG AIR|nag slyly. even, special de|
-1732|73|1|6|16|15569.12|0.01|0.05|R|F|1994-01-07|1994-01-02|1994-01-25|COLLECT COD|SHIP|ix carefully at the furiously regular pac|
-1733|111|5|1|41|41455.51|0.08|0.01|N|O|1996-06-13|1996-07-08|1996-07-07|TAKE BACK RETURN|AIR|ess notornis. fur|
-1733|24|7|2|16|14784.32|0.00|0.04|N|O|1996-08-28|1996-07-25|1996-09-27|COLLECT COD|MAIL|slyly express deposits sleep abo|
-1733|120|10|3|29|29583.48|0.10|0.06|N|O|1996-07-16|1996-08-08|1996-07-28|NONE|TRUCK|ns detect among the special accounts. qu|
-1733|136|7|4|38|39372.94|0.01|0.03|N|O|1996-08-26|1996-07-23|1996-08-28|NONE|FOB| deposits |
-1733|34|5|5|22|20548.66|0.06|0.07|N|O|1996-07-16|1996-07-24|1996-07-30|COLLECT COD|AIR|gainst the final deposits. carefully final |
-1733|66|7|6|9|8694.54|0.06|0.08|N|O|1996-05-25|1996-07-23|1996-06-10|COLLECT COD|TRUCK|ven foxes was according to t|
-1733|146|9|7|13|13599.82|0.02|0.03|N|O|1996-08-03|1996-08-02|1996-08-18|NONE|MAIL|olites sleep furious|
-1734|155|3|1|38|40095.70|0.03|0.03|R|F|1994-08-09|1994-09-07|1994-08-12|COLLECT COD|FOB|ts doubt b|
-1734|118|2|2|4|4072.44|0.06|0.03|A|F|1994-08-20|1994-07-17|1994-08-25|DELIVER IN PERSON|AIR|final warhorses.|
-1735|156|7|1|43|45414.45|0.02|0.06|A|F|1993-01-14|1993-03-25|1993-02-02|DELIVER IN PERSON|FOB|iously after the |
-1735|139|5|2|49|50917.37|0.03|0.04|A|F|1992-12-31|1993-02-03|1993-01-25|TAKE BACK RETURN|TRUCK|y express accounts above the exp|
-1760|96|9|1|38|37851.42|0.09|0.03|N|O|1996-06-15|1996-06-29|1996-07-11|NONE|MAIL|tions. blithely regular orbits against the |
-1760|8|9|2|3|2724.00|0.00|0.06|N|O|1996-07-18|1996-07-01|1996-08-01|NONE|RAIL|lyly bold dolphins haggle carefully. sl|
-1760|137|8|3|44|45633.72|0.05|0.01|N|O|1996-06-11|1996-06-16|1996-07-02|COLLECT COD|REG AIR|instructions poach slyly ironic theodolites|
-1761|52|4|1|33|31417.65|0.09|0.03|R|F|1994-01-03|1994-01-23|1994-01-31|NONE|FOB|s. excuses a|
-1761|52|3|2|37|35225.85|0.02|0.07|R|F|1994-02-17|1994-03-08|1994-03-16|NONE|RAIL| integrate. quickly unusual|
-1761|49|6|3|37|35114.48|0.06|0.04|R|F|1994-01-02|1994-03-12|1994-01-25|DELIVER IN PERSON|TRUCK|regular packages wake after|
-1761|73|1|4|49|47680.43|0.06|0.07|R|F|1994-01-08|1994-03-03|1994-02-05|TAKE BACK RETURN|FOB|y even packages promise|
-1761|157|5|5|37|39114.55|0.03|0.04|R|F|1994-04-24|1994-03-14|1994-04-29|TAKE BACK RETURN|MAIL|express requests print blithely around the|
-1761|24|7|6|12|11088.24|0.01|0.05|A|F|1994-04-16|1994-03-08|1994-04-21|DELIVER IN PERSON|AIR| sleep furiously. deposits are acco|
-1761|1|6|7|13|11713.00|0.03|0.08|R|F|1994-03-06|1994-03-18|1994-03-22|DELIVER IN PERSON|TRUCK|ons boost fu|
-1762|26|5|1|15|13890.30|0.04|0.08|A|F|1994-12-18|1994-10-29|1995-01-17|TAKE BACK RETURN|REG AIR|old packages thrash. care|
-1762|50|3|2|39|37051.95|0.10|0.02|A|F|1994-09-12|1994-11-09|1994-10-08|DELIVER IN PERSON|MAIL| ironic platelets sleep along t|
-1762|32|8|3|7|6524.21|0.05|0.01|R|F|1994-09-03|1994-10-02|1994-09-10|NONE|REG AIR|uickly express packages wake slyly-- regul|
-1762|145|2|4|24|25083.36|0.03|0.03|A|F|1994-11-30|1994-11-02|1994-12-20|NONE|REG AIR|accounts solve alongside of the fluffily |
-1762|8|9|5|49|44492.00|0.08|0.05|A|F|1994-10-20|1994-11-02|1994-11-10|TAKE BACK RETURN|SHIP| packages sleep fluffily pen|
-1762|94|7|6|35|34793.15|0.05|0.05|A|F|1994-11-25|1994-10-21|1994-11-28|COLLECT COD|AIR|ind quickly. accounts ca|
-1762|73|3|7|47|45734.29|0.03|0.01|A|F|1994-11-02|1994-10-07|1994-11-08|NONE|SHIP| blithely brave|
-1763|12|9|1|22|20064.22|0.09|0.06|N|O|1997-01-17|1997-01-15|1997-02-03|TAKE BACK RETURN|SHIP|ld. fluffily final ideas boos|
-1763|157|5|2|43|45457.45|0.04|0.04|N|O|1996-11-04|1996-12-09|1996-11-28|DELIVER IN PERSON|FOB|r deposits integrate blithely pending, quic|
-1763|25|10|3|16|14800.32|0.06|0.02|N|O|1996-12-12|1996-12-04|1996-12-25|DELIVER IN PERSON|RAIL|ously pending asymptotes a|
-1763|61|6|4|44|42286.64|0.04|0.05|N|O|1996-12-04|1997-01-06|1996-12-25|DELIVER IN PERSON|REG AIR| instructions need to integrate deposits. |
-1763|147|4|5|13|13612.82|0.03|0.05|N|O|1996-11-23|1997-01-24|1996-12-05|TAKE BACK RETURN|SHIP|s sleep carefully. fluffily unusua|
-1763|143|4|6|3|3129.42|0.05|0.03|N|O|1996-12-10|1996-12-06|1997-01-04|TAKE BACK RETURN|FOB|ut the slyly pending deposi|
-1763|184|5|7|2|2168.36|0.05|0.07|N|O|1997-02-27|1996-12-04|1997-03-27|COLLECT COD|FOB|even pinto beans snooze fluffi|
-1764|121|2|1|20|20422.40|0.09|0.02|A|F|1992-06-09|1992-05-22|1992-07-06|COLLECT COD|MAIL|y quickly regular packages. car|
-1764|67|4|2|3|2901.18|0.07|0.07|R|F|1992-05-13|1992-06-07|1992-05-26|COLLECT COD|RAIL|es wake slowly. |
-1764|78|6|3|27|26407.89|0.07|0.04|A|F|1992-05-06|1992-05-11|1992-05-23|COLLECT COD|TRUCK|ly final foxes wake blithely even requests|
-1765|161|2|1|36|38201.76|0.08|0.04|N|O|1996-03-02|1996-02-17|1996-03-14|DELIVER IN PERSON|SHIP|he blithely pending accou|
-1766|87|8|1|32|31586.56|0.08|0.01|N|O|1997-01-08|1996-11-11|1997-01-31|TAKE BACK RETURN|AIR|ess accounts. stealthily ironic accou|
-1766|34|10|2|12|11208.36|0.05|0.01|N|O|1996-10-28|1996-12-18|1996-11-15|DELIVER IN PERSON|AIR|heodolites above the final, regular acc|
-1766|111|1|3|1|1011.11|0.10|0.02|N|O|1997-01-21|1997-01-07|1997-02-19|NONE|TRUCK|ly blithely pending accounts. reg|
-1767|25|4|1|32|29600.64|0.08|0.04|A|F|1995-05-22|1995-05-14|1995-05-23|COLLECT COD|SHIP|to the bravely ironic requests i|
-1767|42|1|2|1|942.04|0.09|0.05|N|O|1995-06-23|1995-05-25|1995-07-03|TAKE BACK RETURN|RAIL|ing to the slyly fin|
-1767|174|5|3|24|25780.08|0.06|0.03|R|F|1995-03-16|1995-04-29|1995-04-11|DELIVER IN PERSON|RAIL|luffy theodolites need to detect furi|
-1767|23|8|4|50|46151.00|0.01|0.02|R|F|1995-05-29|1995-04-14|1995-06-15|NONE|REG AIR|y unusual foxe|
-1767|52|10|5|40|38082.00|0.06|0.00|R|F|1995-04-16|1995-05-06|1995-04-21|TAKE BACK RETURN|AIR|ep. accounts nag blithely fu|
-1792|88|9|1|9|8892.72|0.09|0.04|R|F|1994-02-28|1993-12-11|1994-03-12|TAKE BACK RETURN|AIR|final packages s|
-1792|9|6|2|5|4545.00|0.04|0.02|R|F|1994-02-13|1994-01-03|1994-02-28|DELIVER IN PERSON|TRUCK|ely regular accounts are slyly. pending, bo|
-1792|9|2|3|8|7272.00|0.01|0.04|A|F|1994-02-21|1994-01-26|1994-02-27|DELIVER IN PERSON|RAIL|nts. fluffily special instructions integr|
-1792|191|3|4|45|49103.55|0.00|0.01|A|F|1994-02-27|1993-12-24|1994-03-07|DELIVER IN PERSON|MAIL|ests are. ironic, regular asy|
-1792|199|2|5|35|38471.65|0.06|0.05|R|F|1994-01-31|1994-01-20|1994-02-17|NONE|FOB|e against the quic|
-1793|48|5|1|29|27493.16|0.01|0.06|R|F|1992-10-24|1992-09-20|1992-11-23|NONE|MAIL|ar excuses. |
-1793|126|9|2|4|4104.48|0.07|0.05|A|F|1992-07-28|1992-08-26|1992-08-21|COLLECT COD|RAIL|nic foxes along the even|
-1793|131|7|3|6|6186.78|0.01|0.05|R|F|1992-09-21|1992-09-05|1992-10-01|DELIVER IN PERSON|REG AIR|uctions; depo|
-1793|118|8|4|4|4072.44|0.00|0.08|R|F|1992-09-27|1992-09-21|1992-10-07|DELIVER IN PERSON|AIR|equests nod ac|
-1793|25|6|5|42|38850.84|0.03|0.03|A|F|1992-10-13|1992-10-02|1992-11-06|NONE|RAIL|uctions sleep carefully special, fl|
-1794|168|9|1|36|38453.76|0.09|0.08|N|O|1997-11-07|1997-11-01|1997-11-18|TAKE BACK RETURN|FOB|ely fluffily ironi|
-1794|95|8|2|3|2985.27|0.02|0.03|N|O|1997-11-15|1997-12-16|1997-11-20|DELIVER IN PERSON|FOB| sentiments according to the q|
-1794|117|8|3|23|23393.53|0.08|0.04|N|O|1997-10-13|1997-11-30|1997-10-28|TAKE BACK RETURN|AIR|usly unusual theodolites doze about |
-1794|85|6|4|34|33492.72|0.06|0.08|N|O|1997-09-29|1997-11-13|1997-10-07|TAKE BACK RETURN|SHIP|rs above the accoun|
-1794|117|4|5|47|47804.17|0.10|0.06|N|O|1998-01-15|1997-11-30|1998-02-14|DELIVER IN PERSON|TRUCK| haggle slyly. furiously express orbit|
-1794|91|3|6|37|36670.33|0.01|0.01|N|O|1998-01-12|1997-12-21|1998-01-17|DELIVER IN PERSON|MAIL|ackages. pinto|
-1795|137|8|1|44|45633.72|0.08|0.08|A|F|1994-04-28|1994-05-24|1994-05-27|NONE|AIR|ites sleep carefully slyly p|
-1795|114|5|2|34|34479.74|0.08|0.00|A|F|1994-04-24|1994-06-01|1994-05-08|DELIVER IN PERSON|SHIP|closely regular instructions wake. |
-1795|168|3|3|25|26704.00|0.07|0.01|A|F|1994-05-18|1994-05-22|1994-05-20|TAKE BACK RETURN|RAIL|he always express accounts ca|
-1795|125|8|4|32|32803.84|0.03|0.06|R|F|1994-05-10|1994-04-21|1994-05-17|DELIVER IN PERSON|SHIP| asymptotes across the bold,|
-1795|163|8|5|11|11694.76|0.08|0.02|R|F|1994-06-19|1994-04-24|1994-07-02|TAKE BACK RETURN|TRUCK|slyly. special pa|
-1796|10|1|1|28|25480.28|0.08|0.04|A|F|1992-12-01|1993-01-01|1992-12-24|DELIVER IN PERSON|FOB|y quickly ironic accounts.|
-1796|185|6|2|8|8681.44|0.00|0.08|R|F|1993-01-07|1993-01-04|1993-01-10|NONE|SHIP|slyly bold accounts are furiously agains|
-1797|31|7|1|17|15827.51|0.01|0.02|N|O|1996-08-06|1996-07-11|1996-08-29|NONE|TRUCK| cajole carefully. unusual Tiresias e|
-1797|145|2|2|16|16722.24|0.01|0.00|N|O|1996-06-03|1996-07-21|1996-06-07|NONE|FOB|o beans wake regular accounts. blit|
-1797|12|9|3|21|19152.21|0.02|0.01|N|O|1996-08-05|1996-08-05|1996-08-06|DELIVER IN PERSON|AIR|ns. regular, regular deposit|
-1798|109|10|1|43|43391.30|0.01|0.08|N|O|1997-08-27|1997-10-23|1997-09-09|DELIVER IN PERSON|MAIL|ld packages sleep furiously. depend|
-1799|52|10|1|8|7616.40|0.04|0.08|R|F|1994-06-14|1994-05-27|1994-06-27|TAKE BACK RETURN|MAIL|ealms upon the special, ironic waters|
-1799|27|10|2|42|38934.84|0.02|0.02|R|F|1994-04-05|1994-04-28|1994-04-09|DELIVER IN PERSON|FOB|es pending |
-1824|120|10|1|45|45905.40|0.03|0.02|R|F|1994-08-21|1994-06-21|1994-09-19|NONE|RAIL|ent Tiresias. quickly express |
-1824|69|4|2|40|38762.40|0.10|0.03|A|F|1994-05-08|1994-07-24|1994-06-06|NONE|FOB|es mold furiously final instructions. s|
-1825|156|1|1|43|45414.45|0.05|0.05|A|F|1994-02-18|1994-02-19|1994-03-02|TAKE BACK RETURN|RAIL| accounts breach fluffily spe|
-1825|148|5|2|39|40877.46|0.00|0.00|R|F|1994-04-01|1994-01-12|1994-04-21|DELIVER IN PERSON|REG AIR|ual, bold ideas haggle above the quickly ir|
-1825|17|4|3|7|6419.07|0.04|0.03|A|F|1994-01-02|1994-01-30|1994-01-30|TAKE BACK RETURN|REG AIR|fully ironic requests. requests cajole ex|
-1825|121|10|4|23|23485.76|0.05|0.01|R|F|1994-01-08|1994-02-08|1994-01-19|NONE|MAIL| wake express, even r|
-1825|178|9|5|33|35579.61|0.04|0.04|A|F|1993-12-07|1994-03-01|1993-12-16|TAKE BACK RETURN|RAIL|about the ne|
-1826|27|10|1|4|3708.08|0.06|0.00|R|F|1992-07-05|1992-06-12|1992-08-04|DELIVER IN PERSON|MAIL|alongside of the quickly unusual re|
-1826|68|3|2|9|8712.54|0.07|0.07|R|F|1992-07-12|1992-07-11|1992-07-15|DELIVER IN PERSON|TRUCK| blithely special|
-1826|176|4|3|14|15066.38|0.05|0.01|A|F|1992-04-28|1992-05-31|1992-05-25|COLLECT COD|TRUCK|uriously bold pinto beans are carefully ag|
-1826|180|9|4|6|6481.08|0.05|0.04|R|F|1992-06-30|1992-05-17|1992-07-30|DELIVER IN PERSON|RAIL|kages. blithely silent|
-1826|135|1|5|46|47615.98|0.05|0.06|R|F|1992-05-02|1992-06-25|1992-05-26|TAKE BACK RETURN|FOB|ously? quickly pe|
-1826|108|3|6|43|43348.30|0.02|0.03|A|F|1992-07-28|1992-06-14|1992-08-03|NONE|MAIL|ss tithes use even ideas. fluffily final t|
-1827|90|1|1|47|46534.23|0.00|0.01|N|O|1996-08-01|1996-08-07|1996-08-23|TAKE BACK RETURN|RAIL|. pending courts about the even e|
-1827|154|9|2|48|50599.20|0.03|0.05|N|O|1996-08-28|1996-09-15|1996-09-01|COLLECT COD|RAIL|oxes. special, final asymptote|
-1827|200|1|3|37|40707.40|0.01|0.07|N|O|1996-07-20|1996-08-18|1996-08-08|DELIVER IN PERSON|REG AIR|ously ironic theodolites serve quickly af|
-1827|127|10|4|4|4108.48|0.04|0.04|N|O|1996-07-22|1996-09-10|1996-08-11|DELIVER IN PERSON|RAIL|special requests. blithely|
-1827|80|10|5|24|23521.92|0.00|0.08|N|O|1996-08-07|1996-09-01|1996-09-04|DELIVER IN PERSON|SHIP|al gifts! re|
-1827|21|2|6|7|6447.14|0.10|0.02|N|O|1996-08-28|1996-08-07|1996-08-31|DELIVER IN PERSON|AIR|egular foxes|
-1827|6|7|7|38|34428.00|0.05|0.01|N|O|1996-10-17|1996-08-29|1996-11-07|TAKE BACK RETURN|SHIP| blithely. express, bo|
-1828|100|4|1|33|33003.30|0.05|0.04|R|F|1994-06-27|1994-06-10|1994-07-24|COLLECT COD|FOB|s boost carefully. pending d|
-1828|13|3|2|40|36520.40|0.08|0.07|R|F|1994-05-05|1994-07-02|1994-05-19|COLLECT COD|REG AIR|s use above the quietly fin|
-1828|196|7|3|11|12058.09|0.07|0.08|R|F|1994-07-21|1994-05-28|1994-08-13|DELIVER IN PERSON|FOB| wake blithely |
-1828|8|3|4|45|40860.00|0.02|0.05|R|F|1994-05-15|1994-05-29|1994-05-28|COLLECT COD|RAIL| accounts run slyly |
-1828|79|7|5|14|13706.98|0.01|0.08|A|F|1994-05-20|1994-06-02|1994-05-25|TAKE BACK RETURN|SHIP|. final packages along the carefully bold|
-1829|150|7|1|12|12601.80|0.05|0.06|A|F|1994-08-23|1994-07-13|1994-09-04|DELIVER IN PERSON|FOB|ges wake furiously express pinto|
-1829|5|6|2|11|9955.00|0.04|0.05|A|F|1994-05-18|1994-06-13|1994-06-07|COLLECT COD|MAIL|ding orbits|
-1829|104|9|3|49|49200.90|0.09|0.08|A|F|1994-08-26|1994-08-01|1994-09-16|NONE|TRUCK|ound the quickly |
-1829|153|4|4|14|14744.10|0.03|0.06|A|F|1994-08-15|1994-06-08|1994-08-30|TAKE BACK RETURN|AIR|regular deposits alongside of the flu|
-1829|166|5|5|6|6396.96|0.02|0.07|A|F|1994-08-09|1994-08-05|1994-09-05|DELIVER IN PERSON|MAIL|s haggle! slyl|
-1829|115|5|6|36|36543.96|0.09|0.04|R|F|1994-06-10|1994-06-23|1994-06-22|NONE|FOB|ackages-- express requests sleep; pen|
-1830|120|4|1|38|38764.56|0.00|0.07|R|F|1995-04-20|1995-05-22|1995-04-24|TAKE BACK RETURN|TRUCK|ely even a|
-1830|25|10|2|9|8325.18|0.05|0.07|R|F|1995-03-09|1995-05-24|1995-03-14|NONE|SHIP|st furiously among |
-1830|82|3|3|36|35354.88|0.07|0.07|R|F|1995-04-21|1995-04-14|1995-05-10|DELIVER IN PERSON|SHIP| slowly unusual orbits. carefull|
-1831|136|2|1|9|9325.17|0.02|0.03|A|F|1993-12-17|1994-01-27|1993-12-26|NONE|TRUCK|mptotes. furiously regular dolphins al|
-1831|48|9|2|9|8532.36|0.07|0.06|R|F|1994-03-22|1994-01-07|1994-04-06|COLLECT COD|MAIL|ent deposits. regular saute|
-1831|115|5|3|17|17256.87|0.02|0.08|R|F|1994-01-18|1994-02-12|1994-01-30|TAKE BACK RETURN|MAIL|s boost ironic foxe|
-1831|95|8|4|23|22887.07|0.06|0.02|R|F|1993-12-21|1994-02-08|1994-01-04|NONE|SHIP|ests. express pinto beans abou|
-1856|55|10|1|10|9550.50|0.05|0.07|R|F|1992-05-11|1992-05-20|1992-06-02|TAKE BACK RETURN|FOB|he furiously even theodolites. account|
-1856|97|10|2|47|46863.23|0.07|0.07|R|F|1992-03-22|1992-06-09|1992-04-17|DELIVER IN PERSON|FOB|ingly blithe theodolites. slyly pending |
-1856|117|7|3|20|20342.20|0.04|0.06|R|F|1992-05-04|1992-05-06|1992-05-11|DELIVER IN PERSON|MAIL|ost carefully. slyly bold accounts|
-1856|150|1|4|22|23103.30|0.08|0.02|A|F|1992-05-02|1992-05-26|1992-05-20|TAKE BACK RETURN|REG AIR|platelets detect slyly regular packages. ca|
-1856|190|1|5|14|15262.66|0.01|0.01|A|F|1992-04-14|1992-05-02|1992-05-11|COLLECT COD|SHIP|ans are even requests. deposits caj|
-1856|23|6|6|36|33228.72|0.03|0.05|A|F|1992-06-19|1992-05-12|1992-06-28|TAKE BACK RETURN|TRUCK|ly even foxes kindle blithely even realm|
-1856|130|3|7|42|43265.46|0.04|0.00|R|F|1992-05-23|1992-06-06|1992-06-19|COLLECT COD|RAIL|usly final deposits|
-1857|174|5|1|15|16112.55|0.10|0.03|R|F|1993-04-05|1993-02-28|1993-04-13|COLLECT COD|RAIL|egular, regular inst|
-1857|167|6|2|40|42686.40|0.10|0.00|R|F|1993-02-15|1993-03-08|1993-02-21|NONE|AIR|slyly close d|
-1857|119|3|3|8|8152.88|0.01|0.07|R|F|1993-01-27|1993-04-04|1993-02-20|TAKE BACK RETURN|AIR|slyly about the fluffily silent req|
-1857|100|3|4|41|41004.10|0.07|0.07|A|F|1993-04-16|1993-02-16|1993-04-18|NONE|REG AIR| the slyly|
-1858|14|8|1|33|30162.33|0.01|0.02|N|O|1997-12-28|1998-02-03|1998-01-13|NONE|RAIL|tect along the slyly final|
-1859|75|6|1|18|17551.26|0.10|0.00|N|O|1997-08-08|1997-06-30|1997-08-26|TAKE BACK RETURN|SHIP|e carefully a|
-1859|188|9|2|36|39174.48|0.02|0.01|N|O|1997-05-05|1997-07-08|1997-05-25|TAKE BACK RETURN|REG AIR|regular requests. carefully unusual theo|
-1859|158|10|3|5|5290.75|0.06|0.03|N|O|1997-06-20|1997-05-20|1997-07-19|TAKE BACK RETURN|AIR|across the p|
-1859|191|2|4|21|22914.99|0.00|0.03|N|O|1997-08-06|1997-05-29|1997-08-26|TAKE BACK RETURN|REG AIR|lar packages wake quickly exp|
-1859|46|3|5|11|10406.44|0.06|0.06|N|O|1997-07-15|1997-06-05|1997-07-29|TAKE BACK RETURN|SHIP|ffily ironic pac|
-1859|105|8|6|12|12061.20|0.08|0.03|N|O|1997-05-22|1997-06-08|1997-06-07|COLLECT COD|TRUCK|es. unusual, silent request|
-1860|113|4|1|9|9117.99|0.04|0.04|N|O|1996-08-03|1996-05-31|1996-08-04|DELIVER IN PERSON|TRUCK|c realms print carefully car|
-1861|68|5|1|7|6776.42|0.08|0.05|A|F|1994-01-14|1994-04-03|1994-01-16|COLLECT COD|RAIL|s foxes. slyly|
-1861|27|8|2|31|28737.62|0.10|0.05|R|F|1994-01-29|1994-03-07|1994-02-15|TAKE BACK RETURN|RAIL|arefully unusual|
-1861|24|9|3|23|21252.46|0.00|0.08|A|F|1994-04-09|1994-03-04|1994-04-11|DELIVER IN PERSON|MAIL|in packages sleep silent dolphins; sly|
-1861|116|6|4|38|38612.18|0.10|0.05|R|F|1994-02-26|1994-02-05|1994-03-01|NONE|RAIL|pending deposits cajole quic|
-1861|16|3|5|2|1832.02|0.03|0.08|R|F|1994-04-26|1994-03-15|1994-05-15|TAKE BACK RETURN|MAIL|e final, regular requests. carefully |
-1862|30|5|1|41|38131.23|0.10|0.00|N|O|1998-06-05|1998-05-17|1998-07-04|COLLECT COD|FOB| carefully along|
-1862|166|7|2|37|39447.92|0.06|0.02|N|O|1998-04-15|1998-05-15|1998-05-14|TAKE BACK RETURN|MAIL|l deposits. carefully even dep|
-1862|104|1|3|26|26106.60|0.02|0.01|N|O|1998-03-25|1998-05-17|1998-04-17|TAKE BACK RETURN|TRUCK|g carefully: thinly ironic deposits af|
-1863|63|2|1|48|46226.88|0.09|0.04|A|F|1993-10-10|1993-12-09|1993-10-19|NONE|FOB|ans hinder furiou|
-1863|157|2|2|48|50743.20|0.04|0.08|A|F|1993-11-08|1993-11-05|1993-12-08|COLLECT COD|AIR|onic theodolites alongside of the pending a|
-1888|98|10|1|27|26948.43|0.03|0.06|R|F|1994-02-13|1994-01-16|1994-02-25|NONE|REG AIR|. carefully special dolphins sle|
-1888|74|5|2|38|37014.66|0.03|0.03|R|F|1993-11-29|1994-01-16|1993-12-08|TAKE BACK RETURN|TRUCK|dazzle carefull|
-1888|80|1|3|49|48023.92|0.07|0.05|A|F|1994-02-27|1994-01-14|1994-03-28|DELIVER IN PERSON|FOB|lar accounts haggle carefu|
-1888|19|10|4|9|8271.09|0.01|0.04|A|F|1994-02-09|1994-01-22|1994-02-19|NONE|AIR| packages are blithely. carefu|
-1888|160|1|5|4|4240.64|0.03|0.06|R|F|1993-12-28|1993-12-19|1994-01-11|COLLECT COD|FOB|lphins. ironically special theodolit|
-1888|53|8|6|48|45746.40|0.08|0.08|R|F|1994-02-28|1993-12-16|1994-03-15|COLLECT COD|TRUCK|ar ideas cajole. regular p|
-1888|167|6|7|50|53358.00|0.04|0.07|R|F|1993-12-22|1994-01-10|1994-01-06|DELIVER IN PERSON|FOB|ependencies affix blithely regular warhors|
-1889|152|4|1|41|43138.15|0.10|0.02|N|O|1997-06-15|1997-05-10|1997-07-08|NONE|AIR|s! furiously pending r|
-1889|172|3|2|13|13938.21|0.05|0.00|N|O|1997-06-12|1997-04-28|1997-06-23|NONE|REG AIR|to the regular accounts. carefully express|
-1889|138|9|3|36|37372.68|0.05|0.07|N|O|1997-05-19|1997-06-14|1997-05-23|NONE|SHIP|l pinto beans kindle |
-1889|168|5|4|5|5340.80|0.02|0.07|N|O|1997-06-26|1997-06-09|1997-07-21|COLLECT COD|AIR|ording to the blithely silent r|
-1890|141|8|1|26|27069.64|0.03|0.07|N|O|1997-04-02|1997-03-13|1997-04-22|DELIVER IN PERSON|FOB|ngage. slyly ironic |
-1890|100|1|2|43|43004.30|0.07|0.03|N|O|1996-12-30|1997-01-31|1997-01-19|DELIVER IN PERSON|FOB|p ironic, express accounts. fu|
-1890|59|1|3|24|23017.20|0.06|0.04|N|O|1997-02-09|1997-02-10|1997-02-12|COLLECT COD|MAIL|is wake carefully above the even id|
-1890|68|9|4|43|41626.58|0.09|0.04|N|O|1997-04-08|1997-02-19|1997-04-30|TAKE BACK RETURN|FOB|lyly. instructions across the furiously|
-1890|122|3|5|45|45995.40|0.08|0.05|N|O|1997-04-15|1997-03-16|1997-04-19|COLLECT COD|FOB|he carefully regular sauternes. ironic fret|
-1890|181|2|6|16|17298.88|0.08|0.02|N|O|1997-02-13|1997-02-18|1997-03-12|TAKE BACK RETURN|TRUCK|ged pinto beans. regular, regular id|
-1890|121|4|7|10|10211.20|0.01|0.04|N|O|1996-12-24|1997-02-19|1997-01-01|DELIVER IN PERSON|AIR|. even, unusual inst|
-1891|77|8|1|45|43968.15|0.07|0.04|A|F|1994-12-20|1995-01-16|1995-01-05|NONE|RAIL|ests along|
-1891|184|5|2|18|19515.24|0.06|0.00|A|F|1995-01-24|1995-01-29|1995-02-14|NONE|RAIL| foxes above the carefu|
-1891|198|9|3|15|16472.85|0.03|0.00|R|F|1995-03-11|1995-03-05|1995-03-18|TAKE BACK RETURN|MAIL| accounts are furiou|
-1892|113|7|1|48|48629.28|0.02|0.01|A|F|1994-06-16|1994-06-16|1994-06-28|NONE|RAIL|tornis detect regul|
-1892|43|2|2|35|33006.40|0.04|0.08|R|F|1994-04-05|1994-05-09|1994-05-03|NONE|MAIL|hes nod furiously around the instruc|
-1892|134|5|3|37|38262.81|0.10|0.03|R|F|1994-04-11|1994-06-04|1994-04-24|TAKE BACK RETURN|SHIP|nts. slyly regular asymptot|
-1892|197|9|4|14|15360.66|0.06|0.07|R|F|1994-04-08|1994-06-12|1994-04-27|DELIVER IN PERSON|FOB|furiously about the furiously|
-1893|99|1|1|43|42960.87|0.10|0.00|N|O|1998-01-25|1998-01-06|1998-02-14|COLLECT COD|SHIP|he carefully regular |
-1893|148|9|2|49|51358.86|0.03|0.05|N|O|1998-01-19|1998-01-28|1998-02-02|TAKE BACK RETURN|FOB|y final foxes bo|
-1893|45|6|3|3|2835.12|0.03|0.02|N|O|1998-02-10|1998-01-18|1998-02-25|DELIVER IN PERSON|MAIL|gular, even ideas. fluffily bol|
-1893|101|6|4|18|18019.80|0.07|0.06|N|O|1998-01-24|1998-01-12|1998-02-13|TAKE BACK RETURN|RAIL|g packages. fluffily final reques|
-1893|53|4|5|6|5718.30|0.10|0.02|N|O|1998-01-23|1997-12-22|1998-02-09|DELIVER IN PERSON|TRUCK|ar accounts use. daringly ironic packag|
-1894|169|10|1|40|42766.40|0.03|0.07|R|F|1992-06-07|1992-05-11|1992-07-01|DELIVER IN PERSON|FOB|ily furiously bold packages. flu|
-1895|161|6|1|43|45629.88|0.09|0.07|R|F|1994-07-26|1994-07-19|1994-08-11|NONE|AIR| carefully eve|
-1920|96|7|1|24|23906.16|0.04|0.05|N|O|1998-09-27|1998-08-23|1998-10-15|DELIVER IN PERSON|AIR|thely. bold, pend|
-1920|51|6|2|31|29482.55|0.05|0.06|N|O|1998-08-01|1998-08-30|1998-08-17|COLLECT COD|SHIP|lly. ideas wa|
-1920|18|2|3|6|5508.06|0.01|0.05|N|O|1998-10-01|1998-08-20|1998-10-24|COLLECT COD|SHIP|l ideas boost slyly pl|
-1920|84|5|4|50|49204.00|0.09|0.06|N|O|1998-10-03|1998-08-04|1998-10-29|DELIVER IN PERSON|MAIL|e blithely unusual foxes. brave packages|
-1920|34|10|5|14|13076.42|0.08|0.05|N|O|1998-10-22|1998-08-10|1998-10-27|DELIVER IN PERSON|AIR|ickly ironic d|
-1921|21|10|1|9|8289.18|0.08|0.00|R|F|1994-02-01|1994-03-20|1994-03-01|DELIVER IN PERSON|FOB|to beans. even excuses integrate specia|
-1921|140|6|2|21|21842.94|0.02|0.06|R|F|1994-02-08|1994-03-28|1994-02-15|COLLECT COD|FOB|ckly regula|
-1921|71|2|3|27|26218.89|0.00|0.04|A|F|1994-04-26|1994-04-07|1994-04-30|TAKE BACK RETURN|FOB|ing pinto beans above the pend|
-1922|10|5|1|13|11830.13|0.05|0.03|N|O|1996-10-24|1996-09-21|1996-11-15|NONE|SHIP|quests. furiously|
-1923|37|8|1|9|8433.27|0.01|0.08|N|O|1997-08-29|1997-09-13|1997-09-07|NONE|FOB|lites. ironic instructions integrate bravel|
-1923|178|8|2|23|24797.91|0.07|0.05|N|O|1997-09-08|1997-08-11|1997-09-14|TAKE BACK RETURN|MAIL|aggle carefully. furiously permanent|
-1923|180|1|3|11|11881.98|0.03|0.03|N|O|1997-07-12|1997-09-04|1997-08-01|TAKE BACK RETURN|REG AIR|ages wake slyly about the furiously regular|
-1923|193|5|4|49|53566.31|0.06|0.05|N|O|1997-07-21|1997-08-08|1997-07-26|NONE|AIR|de of the carefully expre|
-1923|184|5|5|25|27104.50|0.10|0.08|N|O|1997-08-18|1997-08-20|1997-09-12|DELIVER IN PERSON|TRUCK|the ideas: slyly pendin|
-1923|37|3|6|50|46851.50|0.03|0.03|N|O|1997-11-04|1997-08-08|1997-11-25|NONE|TRUCK|uickly along the bold courts. bold the|
-1924|73|1|1|7|6811.49|0.06|0.07|N|O|1997-01-01|1996-12-02|1997-01-08|COLLECT COD|SHIP|osits. even accounts nag furious|
-1924|18|8|2|47|43146.47|0.02|0.06|N|O|1996-11-24|1996-10-18|1996-12-13|COLLECT COD|REG AIR|silent requests cajole blithely final pack|
-1924|57|8|3|40|38282.00|0.04|0.08|N|O|1996-10-31|1996-11-30|1996-11-21|NONE|REG AIR|ains sleep carefully|
-1924|34|5|4|31|28954.93|0.03|0.03|N|O|1996-09-20|1996-10-19|1996-10-19|DELIVER IN PERSON|SHIP| the slyly regular foxes. ruthle|
-1924|36|7|5|17|15912.51|0.04|0.05|N|O|1996-12-31|1996-11-12|1997-01-25|COLLECT COD|TRUCK|e carefully theodolites. ironically ironic |
-1924|76|4|6|15|14641.05|0.02|0.04|N|O|1997-01-04|1996-11-13|1997-01-27|NONE|SHIP|he package|
-1924|40|1|7|21|19740.84|0.09|0.03|N|O|1996-09-21|1996-11-12|1996-10-02|TAKE BACK RETURN|AIR| blithely reg|
-1925|184|5|1|50|54209.00|0.01|0.02|R|F|1992-04-12|1992-04-23|1992-05-08|TAKE BACK RETURN|TRUCK|usual pinto|
-1925|135|1|2|35|36229.55|0.06|0.06|R|F|1992-05-11|1992-04-10|1992-05-14|TAKE BACK RETURN|AIR|counts. carefully ironic packages boost ab|
-1925|116|10|3|40|40644.40|0.08|0.08|A|F|1992-05-17|1992-05-20|1992-06-08|TAKE BACK RETURN|AIR|e carefully regul|
-1925|30|5|4|17|15810.51|0.06|0.02|R|F|1992-05-18|1992-04-06|1992-06-16|TAKE BACK RETURN|MAIL|instructions sleep. pinto bea|
-1926|51|9|1|24|22825.20|0.06|0.05|N|O|1996-05-04|1996-03-14|1996-06-01|DELIVER IN PERSON|RAIL|e theodolites.|
-1926|106|9|2|29|29176.90|0.09|0.08|N|O|1996-02-26|1996-03-14|1996-03-14|TAKE BACK RETURN|TRUCK|es. dependencies according to the fl|
-1926|178|6|3|10|10781.70|0.02|0.03|N|O|1996-05-23|1996-03-02|1996-06-04|NONE|AIR|usly bold accounts. express accounts|
-1926|68|9|4|13|12584.78|0.04|0.02|N|O|1996-04-26|1996-04-13|1996-05-08|DELIVER IN PERSON|MAIL|eans wake bli|
-1926|40|1|5|29|27261.16|0.06|0.00|N|O|1996-02-29|1996-03-13|1996-03-24|DELIVER IN PERSON|MAIL|hily unusual packages are fluffily am|
-1927|68|5|1|3|2904.18|0.00|0.05|N|O|1995-10-06|1995-12-08|1995-11-05|COLLECT COD|FOB|ccounts affi|
-1927|73|2|2|15|14596.05|0.08|0.08|N|O|1995-12-25|1995-12-26|1995-12-31|COLLECT COD|RAIL| carefully regular requests sleep car|
-1927|65|10|3|6|5790.36|0.05|0.05|N|O|1995-11-29|1995-11-20|1995-12-08|TAKE BACK RETURN|TRUCK|furiously even wat|
-1952|53|8|1|7|6671.35|0.04|0.05|A|F|1994-05-06|1994-06-11|1994-05-12|NONE|RAIL|about the express, even requ|
-1952|142|5|2|6|6252.84|0.06|0.05|A|F|1994-05-09|1994-05-21|1994-05-26|DELIVER IN PERSON|AIR|packages haggle. |
-1953|128|1|1|25|25703.00|0.07|0.06|A|F|1994-01-07|1994-01-28|1994-01-29|TAKE BACK RETURN|RAIL|ular, regular i|
-1953|14|5|2|35|31990.35|0.06|0.06|R|F|1994-02-03|1994-02-25|1994-02-14|DELIVER IN PERSON|FOB|among the fur|
-1954|152|7|1|31|32616.65|0.06|0.06|N|O|1997-08-18|1997-07-07|1997-09-03|DELIVER IN PERSON|RAIL|against the packages. bold, ironic e|
-1954|182|3|2|1|1082.18|0.03|0.01|N|O|1997-09-16|1997-07-08|1997-10-07|COLLECT COD|MAIL|te. furiously final deposits hag|
-1954|199|2|3|11|12091.09|0.07|0.07|N|O|1997-08-07|1997-07-23|1997-08-25|DELIVER IN PERSON|TRUCK|y carefully ironi|
-1954|159|4|4|12|12709.80|0.02|0.08|N|O|1997-07-19|1997-07-04|1997-08-06|COLLECT COD|AIR|ongside of the slyly unusual requests. reg|
-1954|170|7|5|29|31034.93|0.08|0.08|N|O|1997-08-25|1997-07-15|1997-09-02|DELIVER IN PERSON|RAIL|use thinly furiously regular asy|
-1954|177|8|6|13|14003.21|0.00|0.07|N|O|1997-06-15|1997-08-22|1997-06-20|TAKE BACK RETURN|MAIL|y ironic instructions cajole|
-1954|194|5|7|49|53615.31|0.05|0.06|N|O|1997-06-04|1997-08-29|1997-06-14|COLLECT COD|TRUCK|eans. final pinto beans sleep furiousl|
-1955|137|3|1|32|33188.16|0.02|0.02|A|F|1992-07-05|1992-06-29|1992-08-03|TAKE BACK RETURN|TRUCK|g to the carefully sile|
-1955|18|8|2|2|1836.02|0.03|0.01|R|F|1992-07-06|1992-07-06|1992-08-01|COLLECT COD|TRUCK|ickly aroun|
-1955|158|6|3|41|43384.15|0.08|0.06|A|F|1992-08-01|1992-06-04|1992-08-07|COLLECT COD|AIR| carefully against the furiously reg|
-1955|9|4|4|16|14544.00|0.03|0.07|A|F|1992-04-30|1992-06-23|1992-05-23|TAKE BACK RETURN|FOB|odolites eat s|
-1955|159|10|5|11|11650.65|0.09|0.01|A|F|1992-06-03|1992-07-04|1992-06-07|NONE|REG AIR|ously quickly pendi|
-1956|177|8|1|8|8617.36|0.02|0.04|A|F|1992-12-25|1992-11-24|1993-01-12|TAKE BACK RETURN|AIR|efully about the ironic, ironic de|
-1956|103|6|2|16|16049.60|0.00|0.05|R|F|1992-11-11|1992-11-11|1992-11-30|NONE|FOB|es cajole blithely. pen|
-1956|139|5|3|39|40526.07|0.08|0.02|A|F|1992-09-24|1992-11-26|1992-10-15|DELIVER IN PERSON|REG AIR|r theodolites sleep above the b|
-1956|29|10|4|11|10219.22|0.10|0.00|A|F|1992-12-19|1992-10-29|1993-01-07|TAKE BACK RETURN|AIR| the braids slee|
-1956|155|10|5|16|16882.40|0.08|0.02|R|F|1992-09-28|1992-10-21|1992-09-30|TAKE BACK RETURN|FOB| wake after the |
-1957|79|9|1|50|48953.50|0.09|0.05|N|O|1998-08-08|1998-09-28|1998-08-27|COLLECT COD|FOB|gainst the re|
-1957|119|3|2|31|31592.41|0.10|0.08|N|O|1998-08-13|1998-08-31|1998-08-16|NONE|REG AIR|express packages maintain fluffi|
-1958|73|2|1|9|8757.63|0.01|0.05|N|O|1995-12-08|1995-12-17|1995-12-18|DELIVER IN PERSON|REG AIR|ickly. slyly bold |
-1958|176|7|2|29|31208.93|0.05|0.06|N|O|1996-01-19|1995-12-05|1996-02-14|COLLECT COD|SHIP|d pinto beans|
-1958|102|3|3|4|4008.40|0.04|0.02|N|O|1995-10-24|1995-12-09|1995-10-28|DELIVER IN PERSON|AIR|he slyly even dependencies |
-1958|83|4|4|38|37357.04|0.09|0.07|N|O|1995-10-09|1995-11-26|1995-11-05|COLLECT COD|TRUCK|yly. slyly regular courts use silentl|
-1958|101|8|5|31|31034.10|0.08|0.01|N|O|1995-10-31|1995-11-12|1995-11-07|TAKE BACK RETURN|TRUCK|r deposits c|
-1958|17|4|6|44|40348.44|0.08|0.04|N|O|1995-12-17|1995-11-30|1996-01-15|TAKE BACK RETURN|RAIL|c theodolites after the unusual deposit|
-1958|39|5|7|29|27231.87|0.02|0.05|N|O|1995-10-14|1995-11-06|1995-11-01|NONE|REG AIR|final requests nag according to the |
-1959|169|10|1|46|49181.36|0.04|0.00|N|O|1997-05-05|1997-03-03|1997-05-24|TAKE BACK RETURN|AIR| furiously ex|
-1959|120|7|2|15|15301.80|0.08|0.07|N|O|1997-01-20|1997-02-18|1997-02-08|DELIVER IN PERSON|MAIL| quickly sp|
-1984|53|5|1|45|42887.25|0.03|0.04|N|O|1998-04-09|1998-06-11|1998-05-01|COLLECT COD|AIR|p. quickly final ideas sle|
-1984|70|7|2|35|33952.45|0.01|0.07|N|O|1998-05-18|1998-05-04|1998-06-01|COLLECT COD|RAIL|tes. quickly pending packages haggle boldl|
-1985|28|1|1|33|30624.66|0.10|0.03|R|F|1994-12-04|1994-11-01|1994-12-05|DELIVER IN PERSON|FOB|s are express packages. pendin|
-1985|21|6|2|50|46051.00|0.04|0.02|R|F|1994-09-30|1994-10-18|1994-10-12|COLLECT COD|AIR|ate carefully. carefully|
-1985|134|10|3|20|20682.60|0.07|0.03|R|F|1994-10-29|1994-11-12|1994-11-27|NONE|TRUCK|regular requests. furiously express|
-1985|199|10|4|30|32975.70|0.05|0.07|R|F|1994-09-06|1994-10-10|1994-09-26|NONE|RAIL|uickly. instr|
-1985|124|9|5|42|43013.04|0.05|0.05|R|F|1994-10-25|1994-11-03|1994-11-19|DELIVER IN PERSON|SHIP| patterns? final requests after the sp|
-1985|20|7|6|2|1840.04|0.02|0.00|A|F|1994-11-25|1994-10-09|1994-12-25|TAKE BACK RETURN|FOB| silent inst|
-1986|92|3|1|12|11905.08|0.06|0.05|A|F|1994-08-17|1994-06-28|1994-09-02|COLLECT COD|RAIL|sleep furiously fluffily final|
-1986|105|8|2|10|10051.00|0.10|0.03|R|F|1994-05-14|1994-06-21|1994-06-02|COLLECT COD|REG AIR|yly into the carefully even |
-1986|63|2|3|14|13482.84|0.04|0.02|R|F|1994-07-14|1994-06-19|1994-08-08|NONE|SHIP|the packages. pending, unusual|
-1987|16|6|1|7|6412.07|0.03|0.03|A|F|1994-07-30|1994-07-06|1994-08-29|NONE|REG AIR| regular a|
-1988|72|1|1|36|34994.52|0.09|0.04|N|O|1996-01-21|1995-11-24|1996-01-27|NONE|RAIL|gular theodolites. |
-1988|199|3|2|19|20884.61|0.08|0.08|N|O|1996-02-03|1995-12-10|1996-02-14|COLLECT COD|FOB|lly about the slyly thin instructions. f|
-1988|54|6|3|8|7632.40|0.06|0.01|N|O|1995-10-20|1995-11-11|1995-11-18|DELIVER IN PERSON|AIR|le quickly ac|
-1988|36|2|4|27|25272.81|0.08|0.00|N|O|1996-01-27|1995-12-24|1996-02-24|TAKE BACK RETURN|TRUCK|uests. regular requests are according to t|
-1988|79|8|5|26|25455.82|0.08|0.04|N|O|1996-01-25|1995-12-15|1996-01-26|COLLECT COD|SHIP| ironic dolphins haggl|
-1988|86|7|6|9|8874.72|0.08|0.03|N|O|1995-12-26|1996-01-02|1996-01-25|DELIVER IN PERSON|MAIL|lar platelets. slyly ironic packa|
-1989|10|7|1|47|42770.47|0.10|0.02|R|F|1994-06-21|1994-05-27|1994-06-22|TAKE BACK RETURN|REG AIR|final deposits s|
-1990|101|2|1|46|46050.60|0.01|0.07|R|F|1994-12-29|1995-03-14|1995-01-13|NONE|TRUCK|ar sentiments.|
-1991|110|3|1|39|39394.29|0.06|0.02|A|F|1993-01-01|1992-11-29|1993-01-10|TAKE BACK RETURN|TRUCK|ckages? carefully bold depos|
-1991|53|1|2|49|46699.45|0.08|0.06|R|F|1992-10-19|1992-11-29|1992-10-25|NONE|SHIP|nd the ideas affi|
-1991|174|5|3|6|6445.02|0.02|0.01|A|F|1992-11-02|1992-10-08|1992-11-14|TAKE BACK RETURN|REG AIR|hes nag slyly|
-1991|138|9|4|6|6228.78|0.10|0.06|A|F|1992-11-21|1992-11-03|1992-11-27|NONE|RAIL|uickly blithely final de|
-1991|60|8|5|49|47042.94|0.06|0.00|R|F|1992-09-10|1992-11-30|1992-10-07|NONE|AIR|quests cajole blithely|
-2016|147|4|1|2|2094.28|0.02|0.07|N|O|1996-10-12|1996-11-09|1996-10-31|DELIVER IN PERSON|TRUCK|carefully according to the |
-2016|63|8|2|15|14445.90|0.04|0.05|N|O|1996-09-24|1996-10-05|1996-10-21|TAKE BACK RETURN|MAIL|uests haggle carefully furiously regul|
-2016|122|7|3|8|8176.96|0.09|0.02|N|O|1996-09-19|1996-10-21|1996-10-13|TAKE BACK RETURN|SHIP|mptotes haggle ideas. packages wake flu|
-2017|103|4|1|49|49151.90|0.10|0.06|N|O|1998-05-26|1998-07-01|1998-06-06|COLLECT COD|TRUCK| after the unusual instructions. sly|
-2017|71|2|2|14|13594.98|0.07|0.04|N|O|1998-06-28|1998-06-15|1998-07-11|NONE|TRUCK|ily final w|
-2017|84|5|3|11|10824.88|0.05|0.02|N|O|1998-05-22|1998-07-13|1998-05-26|TAKE BACK RETURN|TRUCK|gside of the slyly dogged dolp|
-2018|195|6|1|2|2190.38|0.02|0.07|N|O|1995-06-25|1995-06-20|1995-07-04|NONE|TRUCK|ly ironic accounts against the slyly sly|
-2018|129|10|2|23|23669.76|0.05|0.01|R|F|1995-05-05|1995-05-12|1995-05-22|TAKE BACK RETURN|RAIL|ingly even theodolites s|
-2019|4|9|1|31|28024.00|0.07|0.03|R|F|1992-11-18|1992-12-26|1992-11-24|DELIVER IN PERSON|FOB|l ideas across the slowl|
-2019|52|7|2|18|17136.90|0.04|0.03|R|F|1993-01-24|1992-12-22|1993-02-02|NONE|MAIL|are carefully furiously regular requ|
-2020|34|10|1|50|46701.50|0.06|0.01|R|F|1993-07-12|1993-08-28|1993-08-02|COLLECT COD|TRUCK|ts against the pending ideas serve along|
-2020|176|4|2|40|43046.80|0.09|0.00|A|F|1993-10-17|1993-09-14|1993-10-29|TAKE BACK RETURN|RAIL|ently across the|
-2020|14|4|3|30|27420.30|0.07|0.04|A|F|1993-09-08|1993-08-11|1993-09-29|TAKE BACK RETURN|AIR|ly about the blithely ironic foxes. bold|
-2020|61|8|4|27|25948.62|0.05|0.06|A|F|1993-07-14|1993-09-02|1993-08-03|NONE|FOB|e of the bold foxes haggle |
-2021|85|6|1|7|6895.56|0.08|0.04|N|O|1995-10-17|1995-09-29|1995-10-20|NONE|MAIL| accounts boost blithely. blithely reg|
-2021|166|3|2|19|20257.04|0.04|0.05|N|O|1995-08-14|1995-09-05|1995-08-23|NONE|RAIL| above the slyly fl|
-2022|169|8|1|38|40628.08|0.00|0.08|R|F|1992-07-05|1992-04-20|1992-07-13|TAKE BACK RETURN|REG AIR| against the express accounts wake ca|
-2022|55|3|2|38|36291.90|0.05|0.04|R|F|1992-06-17|1992-05-15|1992-06-28|COLLECT COD|SHIP|instructions dazzle carefull|
-2022|49|10|3|48|45553.92|0.10|0.02|A|F|1992-06-14|1992-06-04|1992-07-12|DELIVER IN PERSON|SHIP|counts. slyly enticing accounts are during |
-2022|182|3|4|16|17314.88|0.05|0.03|R|F|1992-06-23|1992-05-22|1992-07-07|NONE|TRUCK|ages wake slyly care|
-2022|100|1|5|36|36003.60|0.05|0.02|R|F|1992-03-24|1992-05-07|1992-04-13|NONE|MAIL|ly after the foxes. regular, final inst|
-2022|129|2|6|20|20582.40|0.08|0.08|A|F|1992-03-31|1992-04-17|1992-04-02|NONE|SHIP|r deposits kindle |
-2022|78|9|7|13|12714.91|0.06|0.08|R|F|1992-04-04|1992-05-30|1992-04-21|NONE|FOB| orbits haggle fluffily fl|
-2023|127|10|1|9|9244.08|0.05|0.04|R|F|1992-06-04|1992-06-30|1992-06-10|NONE|AIR|ly regular pinto beans poa|
-2023|38|4|2|2|1876.06|0.01|0.00|R|F|1992-08-27|1992-07-16|1992-08-29|DELIVER IN PERSON|RAIL|ing packages. fluffily silen|
-2023|19|6|3|25|22975.25|0.10|0.03|A|F|1992-07-19|1992-07-07|1992-08-15|NONE|REG AIR| wake furiously among the slyly final|
-2023|185|6|4|9|9766.62|0.02|0.00|A|F|1992-07-23|1992-07-04|1992-08-20|TAKE BACK RETURN|AIR|nts maintain blithely alongside of the|
-2023|20|10|5|22|20240.44|0.04|0.06|A|F|1992-06-15|1992-07-13|1992-06-21|TAKE BACK RETURN|SHIP|ronic attainments. |
-2023|43|2|6|29|27348.16|0.02|0.06|A|F|1992-08-29|1992-07-28|1992-09-18|COLLECT COD|RAIL|usual instructions. bli|
-2023|134|10|7|50|51706.50|0.00|0.03|R|F|1992-06-20|1992-07-04|1992-06-23|DELIVER IN PERSON|FOB|its! carefully ex|
-2048|35|1|1|7|6545.21|0.06|0.01|R|F|1993-12-07|1994-01-31|1994-01-05|TAKE BACK RETURN|REG AIR|lent platelets boost deposits. carefully sp|
-2048|8|5|2|5|4540.00|0.04|0.04|A|F|1994-01-18|1994-02-01|1994-01-29|TAKE BACK RETURN|TRUCK|affix carefully against |
-2048|101|2|3|12|12013.20|0.01|0.05|R|F|1994-01-28|1994-01-19|1994-02-08|NONE|AIR| even theodoli|
-2048|97|1|4|11|10967.99|0.10|0.03|R|F|1993-12-20|1994-01-19|1994-01-04|TAKE BACK RETURN|MAIL|totes. idly ironic packages nag|
-2049|189|10|1|25|27229.50|0.08|0.00|N|O|1996-03-31|1996-02-29|1996-04-15|DELIVER IN PERSON|MAIL| excuses above the |
-2049|35|1|2|31|28985.93|0.10|0.05|N|O|1995-12-25|1996-02-25|1995-12-29|TAKE BACK RETURN|MAIL| packages are slyly alongside|
-2049|67|6|3|18|17407.08|0.05|0.05|N|O|1996-01-09|1996-01-22|1996-01-25|TAKE BACK RETURN|AIR| sleep fluffily. dependencies use never|
-2049|6|7|4|39|35334.00|0.02|0.05|N|O|1996-01-17|1996-01-21|1996-02-03|TAKE BACK RETURN|MAIL|the even pinto beans |
-2049|126|1|5|30|30783.60|0.04|0.06|N|O|1995-12-16|1996-02-04|1995-12-22|NONE|TRUCK|ial accounts are among the furiously perma|
-2049|84|5|6|17|16729.36|0.07|0.00|N|O|1996-02-04|1996-03-01|1996-02-24|NONE|FOB|al, regular foxes. pending, |
-2050|73|2|1|47|45734.29|0.05|0.03|A|F|1994-08-25|1994-07-18|1994-09-15|DELIVER IN PERSON|TRUCK|tside the blithely pending packages eat f|
-2050|152|3|2|48|50503.20|0.05|0.01|A|F|1994-09-30|1994-08-23|1994-10-29|COLLECT COD|AIR| final packages. pinto|
-2050|113|4|3|41|41537.51|0.10|0.04|A|F|1994-06-08|1994-08-27|1994-06-23|NONE|AIR| final theodolites. depende|
-2050|32|8|4|11|10252.33|0.02|0.01|A|F|1994-07-27|1994-08-18|1994-08-02|DELIVER IN PERSON|REG AIR|ns. bold, final ideas cajole among the fi|
-2050|168|9|5|16|17090.56|0.07|0.01|R|F|1994-08-17|1994-07-28|1994-09-05|DELIVER IN PERSON|REG AIR|al accounts. closely even |
-2050|49|2|6|29|27522.16|0.00|0.05|A|F|1994-09-23|1994-08-01|1994-10-23|TAKE BACK RETURN|MAIL|oxes alongsid|
-2050|48|5|7|25|23701.00|0.10|0.00|R|F|1994-08-18|1994-07-04|1994-09-04|TAKE BACK RETURN|RAIL|y according to |
-2051|25|6|1|43|39775.86|0.08|0.04|N|O|1996-04-22|1996-06-16|1996-04-28|COLLECT COD|RAIL|ounts sleep fluffily even requ|
-2051|130|1|2|48|49446.24|0.01|0.02|N|O|1996-05-04|1996-06-14|1996-05-19|NONE|TRUCK|unts. pending platelets believe about|
-2052|68|7|1|50|48403.00|0.09|0.08|R|F|1992-06-22|1992-06-03|1992-07-19|DELIVER IN PERSON|AIR|wake after the decoy|
-2052|135|1|2|35|36229.55|0.09|0.05|A|F|1992-05-29|1992-05-24|1992-06-11|NONE|TRUCK|ts according t|
-2052|43|2|3|16|15088.64|0.01|0.08|A|F|1992-06-30|1992-07-09|1992-07-12|NONE|SHIP|y final deposits cajole according |
-2052|96|7|4|47|46816.23|0.08|0.01|A|F|1992-06-18|1992-05-16|1992-07-02|TAKE BACK RETURN|REG AIR|final requests. stealt|
-2053|101|4|1|20|20022.00|0.09|0.00|A|F|1995-04-25|1995-04-12|1995-05-13|NONE|TRUCK|ly ironic foxes haggle slyly speci|
-2053|33|4|2|34|31723.02|0.07|0.00|A|F|1995-03-15|1995-03-20|1995-04-09|TAKE BACK RETURN|TRUCK|ions. unusual dependencies|
-2053|65|2|3|46|44392.76|0.01|0.03|R|F|1995-04-01|1995-04-02|1995-04-18|NONE|RAIL|tions. furiously even requests hagg|
-2053|121|6|4|31|31654.72|0.06|0.08|R|F|1995-03-23|1995-03-13|1995-04-16|DELIVER IN PERSON|SHIP|ts. fluffily final mul|
-2054|113|4|1|11|11144.21|0.03|0.05|R|F|1992-08-13|1992-08-26|1992-08-22|NONE|AIR|ular accou|
-2054|120|7|2|31|31623.72|0.05|0.08|A|F|1992-08-18|1992-09-04|1992-08-24|NONE|FOB|se bold, regular accounts. unusual depos|
-2054|121|2|3|32|32675.84|0.06|0.00|A|F|1992-06-23|1992-07-08|1992-07-22|NONE|FOB| packages thrash. carefully final|
-2054|174|3|4|14|15038.38|0.10|0.05|R|F|1992-06-25|1992-09-05|1992-07-14|DELIVER IN PERSON|SHIP|uickly final|
-2054|6|1|5|40|36240.00|0.08|0.06|R|F|1992-06-23|1992-08-09|1992-07-04|TAKE BACK RETURN|RAIL|n pinto beans. ironic courts are iro|
-2054|134|10|6|17|17580.21|0.08|0.01|A|F|1992-06-09|1992-08-28|1992-06-16|NONE|AIR|ges nag acc|
-2054|11|1|7|4|3644.04|0.00|0.08|R|F|1992-08-12|1992-08-31|1992-08-15|DELIVER IN PERSON|AIR|lyly careful requests wake fl|
-2055|45|6|1|15|14175.60|0.04|0.06|A|F|1993-09-15|1993-10-06|1993-10-07|NONE|REG AIR|furiously bold |
-2055|9|10|2|15|13635.00|0.06|0.05|R|F|1993-10-30|1993-11-21|1993-11-22|COLLECT COD|RAIL|gular foxes. b|
-2055|135|1|3|12|12421.56|0.00|0.02|A|F|1993-10-26|1993-11-23|1993-11-22|COLLECT COD|TRUCK|al pains. acco|
-2055|134|10|4|16|16546.08|0.02|0.02|A|F|1993-11-16|1993-11-12|1993-11-28|NONE|TRUCK|arefully daringly regular accounts.|
-2080|7|4|1|5|4535.00|0.08|0.05|R|F|1993-08-26|1993-08-07|1993-09-02|DELIVER IN PERSON|TRUCK|refully unusual theo|
-2080|197|9|2|39|42790.41|0.07|0.04|A|F|1993-08-22|1993-09-09|1993-08-23|COLLECT COD|FOB|ic deposits haggle slyly carefully eve|
-2081|89|10|1|26|25716.08|0.03|0.08|N|O|1997-10-21|1997-10-03|1997-11-10|NONE|FOB|among the slyly express accounts. silen|
-2081|149|2|2|13|13638.82|0.07|0.05|N|O|1997-08-23|1997-08-22|1997-09-09|TAKE BACK RETURN|MAIL|fter the even deposi|
-2081|13|10|3|32|29216.32|0.09|0.07|N|O|1997-09-05|1997-09-26|1997-10-03|TAKE BACK RETURN|SHIP|e. final, regular dependencies sleep slyly!|
-2081|85|6|4|23|22656.84|0.03|0.08|N|O|1997-07-06|1997-09-11|1997-07-21|TAKE BACK RETURN|MAIL|ual requests wake blithely above the|
-2081|113|7|5|19|19249.09|0.02|0.06|N|O|1997-10-01|1997-08-12|1997-10-18|COLLECT COD|SHIP|s affix sometimes express requests. quickly|
-2081|142|9|6|31|32306.34|0.03|0.06|N|O|1997-09-19|1997-09-13|1997-09-27|NONE|AIR| silent, spe|
-2082|75|3|1|36|35102.52|0.00|0.00|R|F|1995-01-20|1995-03-18|1995-01-31|COLLECT COD|MAIL|haggle furiously silent pinto beans|
-2082|105|10|2|12|12061.20|0.08|0.05|A|F|1995-01-27|1995-02-11|1995-02-07|NONE|FOB| ironic instructions. carefull|
-2083|24|3|1|37|34188.74|0.07|0.00|R|F|1993-09-07|1993-09-30|1993-09-18|TAKE BACK RETURN|MAIL|ng the special foxes wake packages. f|
-2084|182|3|1|42|45451.56|0.03|0.05|A|F|1993-03-29|1993-05-05|1993-04-22|COLLECT COD|REG AIR|y fluffily even foxes. |
-2084|180|10|2|23|24844.14|0.09|0.08|A|F|1993-06-05|1993-05-26|1993-06-06|DELIVER IN PERSON|AIR|es against |
-2084|136|2|3|37|38336.81|0.07|0.05|A|F|1993-07-16|1993-04-20|1993-08-06|NONE|AIR|y careful courts.|
-2084|94|8|4|9|8946.81|0.02|0.02|A|F|1993-03-18|1993-06-08|1993-03-30|NONE|TRUCK|heaves boost slyly after the pla|
-2084|27|10|5|28|25956.56|0.07|0.02|R|F|1993-05-04|1993-05-14|1993-05-31|COLLECT COD|TRUCK|cajole quickly carefu|
-2084|115|9|6|15|15226.65|0.09|0.04|A|F|1993-06-23|1993-04-25|1993-07-23|COLLECT COD|SHIP|tithes. bravely pendi|
-2084|194|6|7|34|37202.46|0.09|0.02|R|F|1993-06-20|1993-05-28|1993-06-25|DELIVER IN PERSON|RAIL| carefully ironic requests. fluffil|
-2085|41|8|1|45|42346.80|0.00|0.07|R|F|1994-02-27|1994-01-11|1994-03-29|TAKE BACK RETURN|MAIL|. carefully e|
-2086|60|1|1|22|21121.32|0.03|0.07|R|F|1994-12-04|1994-12-16|1994-12-20|DELIVER IN PERSON|RAIL|idly busy acc|
-2086|141|10|2|32|33316.48|0.04|0.06|A|F|1994-11-15|1995-01-05|1994-12-09|TAKE BACK RETURN|TRUCK|e carefully along th|
-2086|105|6|3|44|44224.40|0.02|0.01|A|F|1994-12-04|1994-11-30|1994-12-21|DELIVER IN PERSON|FOB|latelets s|
-2086|84|5|4|27|26570.16|0.02|0.00|A|F|1994-11-04|1995-01-14|1994-11-25|COLLECT COD|REG AIR|theodolites haggle blithely blithe p|
-2086|156|1|5|33|34852.95|0.04|0.00|A|F|1995-02-06|1994-11-25|1995-02-15|NONE|SHIP| slyly regular foxes. un|
-2086|200|3|6|20|22004.00|0.01|0.03|R|F|1994-11-30|1994-12-28|1994-12-07|COLLECT COD|FOB|lithely ironic acc|
-2086|156|8|7|7|7393.05|0.04|0.05|R|F|1994-12-27|1994-12-10|1995-01-05|COLLECT COD|RAIL| beans haggle car|
-2087|127|8|1|1|1027.12|0.05|0.04|N|O|1998-03-27|1998-03-24|1998-04-18|DELIVER IN PERSON|REG AIR|the quickly idle acco|
-2087|168|3|2|46|49135.36|0.10|0.03|N|O|1998-02-24|1998-04-02|1998-03-04|DELIVER IN PERSON|AIR|ter the dolphins.|
-2087|62|3|3|1|962.06|0.02|0.05|N|O|1998-05-27|1998-04-11|1998-06-12|COLLECT COD|REG AIR|hely final acc|
-2087|59|1|4|6|5754.30|0.03|0.08|N|O|1998-04-23|1998-03-27|1998-05-18|DELIVER IN PERSON|REG AIR|dazzle after the slyly si|
-2112|71|2|1|18|17479.26|0.02|0.05|N|O|1997-05-02|1997-03-16|1997-05-25|TAKE BACK RETURN|TRUCK|lphins solve ideas. even, special reque|
-2113|123|8|1|40|40924.80|0.04|0.06|N|O|1998-01-16|1997-12-11|1998-02-06|TAKE BACK RETURN|TRUCK|bout the quickly ironic t|
-2113|112|2|2|24|24290.64|0.03|0.02|N|O|1998-02-19|1998-01-08|1998-03-16|COLLECT COD|MAIL|kly regular accounts hinder about the|
-2114|168|9|1|50|53408.00|0.05|0.05|A|F|1995-02-05|1995-03-18|1995-02-13|COLLECT COD|RAIL|pecial pinto bean|
-2114|186|7|2|26|28240.68|0.02|0.02|A|F|1995-04-30|1995-04-16|1995-05-28|NONE|SHIP|ar asymptotes sleep |
-2114|162|1|3|25|26554.00|0.07|0.01|A|F|1995-02-15|1995-03-13|1995-02-22|COLLECT COD|AIR|unts. regular, express accounts wake. b|
-2115|196|8|1|27|29597.13|0.06|0.03|N|O|1998-09-01|1998-07-29|1998-09-04|NONE|AIR|de of the carefully bold accounts |
-2115|184|5|2|43|46619.74|0.06|0.02|N|O|1998-07-14|1998-07-25|1998-07-24|COLLECT COD|FOB| carefully pending requests alongs|
-2115|51|3|3|3|2853.15|0.03|0.04|N|O|1998-07-23|1998-07-30|1998-08-14|DELIVER IN PERSON|FOB|quickly ironic dolphin|
-2115|49|10|4|47|44604.88|0.06|0.07|N|O|1998-08-29|1998-07-30|1998-09-05|TAKE BACK RETURN|REG AIR|regular accounts integrate brav|
-2115|199|3|5|13|14289.47|0.04|0.00|N|O|1998-08-07|1998-08-06|1998-08-13|DELIVER IN PERSON|REG AIR|into beans. even accounts abou|
-2116|131|2|1|2|2062.26|0.00|0.02|R|F|1994-10-16|1994-11-24|1994-11-09|DELIVER IN PERSON|TRUCK|r theodolites use blithely about the ir|
-2116|140|1|2|47|48886.58|0.10|0.06|R|F|1994-09-01|1994-11-18|1994-09-25|COLLECT COD|MAIL|iously ironic dependencies around the iro|
-2116|184|5|3|11|11925.98|0.03|0.05|R|F|1994-09-15|1994-10-21|1994-09-21|NONE|FOB| pinto beans. final, final sauternes play |
-2117|165|2|1|36|38345.76|0.10|0.01|N|O|1997-08-06|1997-07-15|1997-08-07|DELIVER IN PERSON|SHIP|ronic accounts wake|
-2117|61|6|2|19|18260.14|0.04|0.00|N|O|1997-07-30|1997-06-18|1997-08-13|DELIVER IN PERSON|REG AIR|s between the slyly regula|
-2117|58|3|3|43|41196.15|0.04|0.03|N|O|1997-06-27|1997-06-12|1997-07-22|DELIVER IN PERSON|SHIP| foxes sleep furiously |
-2117|91|4|4|24|23786.16|0.00|0.07|N|O|1997-06-15|1997-05-27|1997-06-18|COLLECT COD|SHIP|thely slyly pending platelets. ironic, |
-2117|147|8|5|3|3141.42|0.02|0.05|N|O|1997-05-05|1997-07-20|1997-05-26|TAKE BACK RETURN|TRUCK|tes cajole|
-2117|1|4|6|27|24327.00|0.09|0.08|N|O|1997-06-30|1997-06-27|1997-07-11|TAKE BACK RETURN|REG AIR| the carefully ironic ideas|
-2118|160|1|1|24|25443.84|0.10|0.03|N|O|1997-01-06|1996-12-14|1997-01-14|TAKE BACK RETURN|RAIL|about the slyly bold depende|
-2118|184|5|2|4|4336.72|0.08|0.01|N|O|1996-10-25|1996-11-10|1996-11-22|COLLECT COD|AIR|theodolites affix according |
-2118|145|4|3|11|11496.54|0.05|0.04|N|O|1996-12-23|1996-12-20|1997-01-01|COLLECT COD|RAIL|y ironic accounts sleep upon the packages. |
-2119|102|7|1|36|36075.60|0.04|0.00|N|O|1996-11-10|1996-10-25|1996-12-03|TAKE BACK RETURN|RAIL|ly bold foxes. ironic accoun|
-2144|92|6|1|33|32738.97|0.00|0.07|R|F|1994-04-04|1994-06-20|1994-04-23|NONE|AIR| ironic excuses haggle final dependencies. |
-2144|51|9|2|46|43748.30|0.03|0.08|R|F|1994-04-08|1994-04-29|1994-05-07|COLLECT COD|SHIP| foxes haggle blithel|
-2144|4|9|3|29|26216.00|0.00|0.07|R|F|1994-05-03|1994-05-16|1994-06-01|DELIVER IN PERSON|FOB|ns wake carefully carefully ironic|
-2144|158|9|4|10|10581.50|0.00|0.04|R|F|1994-06-16|1994-05-03|1994-07-05|COLLECT COD|AIR| furiously unusual ideas. carefull|
-2145|78|8|1|13|12714.91|0.04|0.05|A|F|1992-11-12|1992-12-13|1992-12-07|TAKE BACK RETURN|MAIL|alongside of the slyly final|
-2145|154|6|2|6|6324.90|0.05|0.01|A|F|1992-10-10|1992-11-29|1992-10-14|NONE|AIR|s. fluffily express accounts sleep. slyl|
-2146|57|5|1|42|40196.10|0.10|0.01|A|F|1992-09-21|1992-11-02|1992-09-23|NONE|AIR|ns according to the doggedly |
-2146|157|5|2|6|6342.90|0.07|0.05|A|F|1993-01-03|1992-10-24|1993-01-24|DELIVER IN PERSON|RAIL|ing to the requests. dependencies boost |
-2146|25|8|3|14|12950.28|0.03|0.01|R|F|1992-09-16|1992-10-16|1992-09-20|COLLECT COD|SHIP|ecial, express a|
-2146|26|9|4|31|28706.62|0.02|0.00|A|F|1993-01-04|1992-10-24|1993-01-15|DELIVER IN PERSON|TRUCK|lly even deposit|
-2146|169|4|5|28|29936.48|0.02|0.05|R|F|1993-01-03|1992-10-17|1993-01-08|COLLECT COD|MAIL|r accounts sleep furio|
-2146|71|9|6|32|31074.24|0.07|0.03|R|F|1993-01-10|1992-10-19|1993-02-05|COLLECT COD|TRUCK|y regular foxes wake among the final|
-2146|25|6|7|39|36075.78|0.07|0.06|R|F|1993-01-05|1992-11-06|1993-01-14|DELIVER IN PERSON|TRUCK|uickly regular excuses detect. regular c|
-2147|29|8|1|50|46451.00|0.04|0.06|R|F|1992-11-18|1992-11-30|1992-11-30|NONE|RAIL|al accounts. even, even foxes wake|
-2147|101|2|2|4|4004.40|0.01|0.04|A|F|1992-09-27|1992-11-15|1992-10-22|NONE|AIR|mong the blithely special|
-2147|44|7|3|34|32097.36|0.10|0.04|R|F|1992-11-29|1992-11-08|1992-12-22|TAKE BACK RETURN|REG AIR|egular deposits hang car|
-2147|11|8|4|11|10021.11|0.06|0.07|A|F|1992-09-27|1992-11-16|1992-10-16|NONE|AIR| the fluffily|
-2148|116|6|1|21|21338.31|0.09|0.01|R|F|1995-05-28|1995-05-26|1995-06-15|NONE|FOB|deposits ag|
-2149|19|9|1|12|11028.12|0.05|0.07|R|F|1993-06-01|1993-05-06|1993-06-11|TAKE BACK RETURN|TRUCK|riously bl|
-2149|99|10|2|10|9990.90|0.06|0.01|R|F|1993-06-09|1993-04-17|1993-06-16|DELIVER IN PERSON|TRUCK|eposits sleep above|
-2149|49|2|3|47|44604.88|0.00|0.04|R|F|1993-06-27|1993-05-12|1993-07-11|COLLECT COD|AIR|hely final depo|
-2149|129|8|4|18|18524.16|0.06|0.00|A|F|1993-04-05|1993-05-11|1993-04-23|DELIVER IN PERSON|REG AIR|uriously final pac|
-2149|60|5|5|22|21121.32|0.06|0.04|R|F|1993-05-24|1993-04-23|1993-06-20|TAKE BACK RETURN|SHIP|ptotes sleep along the blithely ir|
-2150|78|7|1|26|25429.82|0.00|0.03|A|F|1994-06-21|1994-08-05|1994-06-23|NONE|TRUCK|. always unusual packages|
-2150|18|8|2|29|26622.29|0.04|0.03|A|F|1994-09-02|1994-08-04|1994-10-02|TAKE BACK RETURN|RAIL|y ironic theodolites. foxes ca|
-2150|107|2|3|29|29205.90|0.04|0.08|R|F|1994-06-10|1994-07-31|1994-06-26|COLLECT COD|RAIL|arefully final att|
-2150|54|6|4|39|37207.95|0.05|0.02|R|F|1994-07-31|1994-08-17|1994-08-11|TAKE BACK RETURN|TRUCK|ess accounts nag. unusual asymptotes haggl|
-2150|183|4|5|35|37911.30|0.01|0.01|A|F|1994-09-27|1994-08-17|1994-10-13|COLLECT COD|RAIL|refully pending dependen|
-2150|7|10|6|12|10884.00|0.09|0.03|A|F|1994-08-27|1994-08-22|1994-09-18|COLLECT COD|AIR|press platelets haggle until the slyly fi|
-2151|167|2|1|23|24544.68|0.06|0.02|N|O|1996-11-20|1996-12-17|1996-11-30|DELIVER IN PERSON|AIR| silent dependencies about the slyl|
-2151|15|9|2|29|26535.29|0.00|0.02|N|O|1997-03-04|1996-12-27|1997-03-21|TAKE BACK RETURN|SHIP| bold packages acro|
-2151|165|2|3|49|52192.84|0.07|0.01|N|O|1997-01-20|1997-02-09|1997-02-18|NONE|FOB| packages. f|
-2151|18|5|4|28|25704.28|0.10|0.08|N|O|1996-12-11|1996-12-26|1996-12-12|DELIVER IN PERSON|AIR|y special packages. carefully ironic instru|
-2176|191|4|1|38|41465.22|0.02|0.08|R|F|1992-11-29|1993-01-14|1992-12-22|DELIVER IN PERSON|REG AIR|lithely ironic pinto beans. furious|
-2176|95|8|2|14|13931.26|0.00|0.06|A|F|1992-11-17|1993-01-07|1992-12-03|DELIVER IN PERSON|SHIP|ely ironic platelets |
-2176|160|1|3|25|26504.00|0.02|0.02|R|F|1993-02-23|1993-01-05|1993-03-07|COLLECT COD|RAIL| ruthless deposits according to the ent|
-2176|143|6|4|2|2086.28|0.05|0.06|A|F|1993-02-26|1993-01-08|1993-03-23|DELIVER IN PERSON|AIR|s pinto beans|
-2177|129|10|1|45|46310.40|0.02|0.01|N|O|1997-02-11|1997-02-27|1997-02-17|NONE|SHIP|. theodolites haggle carefu|
-2177|139|5|2|27|28056.51|0.04|0.08|N|O|1997-01-29|1997-03-20|1997-02-04|DELIVER IN PERSON|SHIP|even, regula|
-2177|81|2|3|23|22564.84|0.07|0.05|N|O|1997-01-28|1997-03-02|1997-02-13|DELIVER IN PERSON|AIR|he silent foxes. iro|
-2177|55|3|4|34|32471.70|0.05|0.07|N|O|1997-02-03|1997-04-10|1997-02-21|COLLECT COD|REG AIR|tes are doggedly quickly|
-2177|57|9|5|46|44024.30|0.09|0.05|N|O|1997-05-10|1997-02-23|1997-05-28|COLLECT COD|RAIL|ending asymptotes.|
-2177|122|7|6|11|11243.32|0.02|0.04|N|O|1997-03-20|1997-03-07|1997-04-09|DELIVER IN PERSON|MAIL|gainst the ca|
-2178|157|2|1|15|15857.25|0.10|0.01|N|O|1997-03-27|1997-03-10|1997-04-18|NONE|REG AIR|l accounts. quickly expr|
-2178|16|10|2|27|24732.27|0.01|0.02|N|O|1997-02-26|1997-02-19|1997-03-25|NONE|MAIL| across the ironic reques|
-2178|5|2|3|40|36200.00|0.00|0.03|N|O|1997-03-17|1997-02-09|1997-04-15|COLLECT COD|RAIL|foxes are slowly regularly specia|
-2178|78|6|4|3|2934.21|0.07|0.07|N|O|1997-04-07|1997-01-23|1997-04-18|COLLECT COD|MAIL| permanentl|
-2179|130|9|1|22|22662.86|0.05|0.08|N|O|1996-11-16|1996-11-03|1996-11-25|DELIVER IN PERSON|FOB|lphins cajole acr|
-2179|139|5|2|20|20782.60|0.03|0.01|N|O|1996-09-30|1996-11-10|1996-10-30|NONE|REG AIR|ncies. fin|
-2179|104|9|3|5|5020.50|0.03|0.02|N|O|1996-11-09|1996-10-08|1996-11-11|DELIVER IN PERSON|REG AIR|ts haggle blithely. ironic, careful theodol|
-2179|6|3|4|24|21744.00|0.04|0.04|N|O|1996-10-26|1996-11-05|1996-11-16|COLLECT COD|RAIL| cajole carefully. |
-2179|108|5|5|7|7056.70|0.00|0.02|N|O|1996-10-24|1996-11-14|1996-11-21|TAKE BACK RETURN|RAIL|gular dependencies. ironic packages haggle|
-2180|16|3|1|31|28396.31|0.06|0.04|N|O|1996-10-20|1996-11-21|1996-11-06|COLLECT COD|REG AIR|n requests are furiously at the quickly|
-2180|193|7|2|39|42634.41|0.01|0.00|N|O|1997-01-03|1996-10-29|1997-01-25|NONE|RAIL|ep furiously furiously final request|
-2180|197|9|3|24|26332.56|0.03|0.00|N|O|1997-01-03|1996-10-24|1997-01-19|NONE|SHIP|uriously f|
-2180|111|5|4|47|47522.17|0.07|0.02|N|O|1996-09-23|1996-12-08|1996-10-12|NONE|FOB|pending, regular ideas. iron|
-2180|143|2|5|23|23992.22|0.02|0.06|N|O|1996-11-08|1996-10-25|1996-11-28|NONE|TRUCK|ggle alongside of the fluffily speci|
-2180|55|6|6|48|45842.40|0.09|0.03|N|O|1996-12-30|1996-11-22|1997-01-16|DELIVER IN PERSON|RAIL|nic instructions haggle careful|
-2181|178|9|1|4|4312.68|0.05|0.04|N|O|1995-09-25|1995-11-12|1995-09-28|COLLECT COD|FOB|tes. slyly silent packages use along th|
-2181|88|9|2|46|45451.68|0.00|0.02|N|O|1995-11-28|1995-10-17|1995-12-26|COLLECT COD|AIR|osits. final packages sleep|
-2181|91|2|3|15|14866.35|0.08|0.05|N|O|1995-10-05|1995-10-27|1995-11-03|DELIVER IN PERSON|FOB|e above the fluffily regul|
-2181|55|10|4|28|26741.40|0.04|0.05|N|O|1995-12-21|1995-10-23|1996-01-04|TAKE BACK RETURN|AIR|s excuses sleep car|
-2181|96|7|5|9|8964.81|0.06|0.07|N|O|1996-01-05|1995-12-05|1996-01-08|COLLECT COD|TRUCK|ward the quietly even requests. ir|
-2182|132|8|1|27|27867.51|0.02|0.07|R|F|1994-05-10|1994-07-04|1994-06-04|DELIVER IN PERSON|SHIP|en platele|
-2182|190|1|2|3|3270.57|0.05|0.03|R|F|1994-04-20|1994-07-04|1994-04-24|TAKE BACK RETURN|SHIP|y bold theodolites wi|
-2182|94|6|3|34|33799.06|0.02|0.03|R|F|1994-05-28|1994-06-02|1994-06-10|COLLECT COD|MAIL| slow tithes. ironi|
-2182|7|4|4|12|10884.00|0.04|0.07|A|F|1994-05-08|1994-06-02|1994-05-09|COLLECT COD|REG AIR|ments are fu|
-2182|179|9|5|37|39929.29|0.06|0.02|A|F|1994-04-08|1994-06-29|1994-04-18|TAKE BACK RETURN|TRUCK|ges. blithely ironic|
-2183|71|1|1|29|28161.03|0.05|0.01|N|O|1996-07-21|1996-08-24|1996-08-15|TAKE BACK RETURN|RAIL|ly unusual deposits sleep carefully|
-2183|52|3|2|25|23801.25|0.06|0.02|N|O|1996-07-06|1996-08-21|1996-08-05|NONE|RAIL|he quickly f|
-2208|58|3|1|48|45986.40|0.08|0.07|A|F|1995-05-13|1995-06-30|1995-05-20|COLLECT COD|MAIL|sits. idly permanent request|
-2208|97|1|2|11|10967.99|0.08|0.01|A|F|1995-05-06|1995-07-19|1995-05-22|COLLECT COD|TRUCK|ding waters lose. furiously regu|
-2208|74|4|3|41|39936.87|0.08|0.02|N|O|1995-08-18|1995-06-19|1995-09-05|COLLECT COD|RAIL|nd the furious, express dependencies.|
-2208|43|2|4|50|47152.00|0.07|0.07|N|F|1995-06-11|1995-05-31|1995-06-29|TAKE BACK RETURN|FOB|al foxes will hav|
-2208|30|5|5|43|39991.29|0.03|0.06|A|F|1995-05-10|1995-06-02|1995-06-09|TAKE BACK RETURN|MAIL|es. accounts cajole. fi|
-2208|167|2|6|18|19208.88|0.02|0.08|R|F|1995-06-06|1995-06-10|1995-06-11|TAKE BACK RETURN|TRUCK|packages are quickly bold de|
-2208|7|2|7|45|40815.00|0.00|0.08|A|F|1995-05-05|1995-06-10|1995-05-11|NONE|SHIP|e fluffily regular theodolites caj|
-2209|23|2|1|40|36920.80|0.05|0.01|R|F|1992-11-01|1992-09-25|1992-11-08|DELIVER IN PERSON|SHIP|ully special sheaves serve|
-2209|103|4|2|10|10031.00|0.00|0.02|R|F|1992-09-02|1992-09-24|1992-09-21|DELIVER IN PERSON|AIR|players. carefully reg|
-2209|64|1|3|11|10604.66|0.01|0.01|A|F|1992-07-12|1992-08-24|1992-08-10|DELIVER IN PERSON|REG AIR|express, regular pinto be|
-2209|181|2|4|39|42166.02|0.08|0.07|R|F|1992-11-04|1992-09-02|1992-11-11|TAKE BACK RETURN|MAIL|ly around the final packages. deposits ca|
-2209|124|7|5|24|24578.88|0.08|0.06|R|F|1992-08-09|1992-08-18|1992-08-25|COLLECT COD|AIR| along the bol|
-2209|178|7|6|7|7547.19|0.09|0.07|A|F|1992-08-18|1992-09-09|1992-09-12|DELIVER IN PERSON|AIR| quickly regular pack|
-2210|78|7|1|36|35210.52|0.10|0.00|A|F|1992-03-04|1992-03-24|1992-03-21|DELIVER IN PERSON|AIR| requests wake enticingly final|
-2211|48|1|1|25|23701.00|0.04|0.01|A|F|1994-10-09|1994-08-04|1994-11-03|TAKE BACK RETURN|RAIL|deas. carefully special theodolites along|
-2211|140|6|2|40|41605.60|0.09|0.06|A|F|1994-09-30|1994-09-10|1994-10-26|NONE|MAIL|posits among the express dolphins|
-2211|160|2|3|25|26504.00|0.00|0.07|A|F|1994-08-13|1994-08-17|1994-08-16|NONE|AIR|ly regular, express|
-2211|85|6|4|23|22656.84|0.03|0.02|R|F|1994-10-05|1994-09-13|1994-10-17|DELIVER IN PERSON|AIR|ependencies |
-2211|135|1|5|3|3105.39|0.02|0.04|A|F|1994-08-28|1994-09-10|1994-09-06|TAKE BACK RETURN|SHIP|pendencies after the regular f|
-2211|187|8|6|18|19569.24|0.05|0.08|A|F|1994-08-31|1994-09-07|1994-09-22|NONE|TRUCK|c grouches. slyly express pinto |
-2211|79|9|7|3|2937.21|0.06|0.05|R|F|1994-09-21|1994-08-10|1994-10-19|TAKE BACK RETURN|RAIL|y slyly final|
-2212|71|10|1|18|17479.26|0.07|0.06|R|F|1994-06-22|1994-06-18|1994-06-25|TAKE BACK RETURN|FOB| cajole. final, pending ideas should are bl|
-2213|118|8|1|20|20362.20|0.01|0.00|A|F|1993-01-21|1993-04-14|1993-01-29|COLLECT COD|REG AIR|iously express accounts; |
-2213|60|1|2|4|3840.24|0.09|0.05|R|F|1993-04-15|1993-04-15|1993-05-05|COLLECT COD|SHIP| affix carefully furiously |
-2213|70|5|3|1|970.07|0.05|0.05|A|F|1993-04-25|1993-04-06|1993-04-28|TAKE BACK RETURN|AIR|s along the ironic reques|
-2213|174|3|4|39|41892.63|0.09|0.05|A|F|1993-05-12|1993-04-07|1993-05-23|TAKE BACK RETURN|SHIP|the blithely |
-2213|38|9|5|43|40335.29|0.04|0.03|A|F|1993-04-18|1993-03-11|1993-05-11|TAKE BACK RETURN|RAIL|r packages are along the carefully bol|
-2213|48|5|6|41|38869.64|0.01|0.00|R|F|1993-01-31|1993-03-31|1993-02-28|COLLECT COD|FOB| carefully pend|
-2213|64|9|7|3|2892.18|0.02|0.04|A|F|1993-03-09|1993-03-17|1993-04-07|TAKE BACK RETURN|AIR|o wake. ironic platel|
-2214|76|5|1|27|26353.89|0.04|0.04|N|O|1998-05-31|1998-06-07|1998-06-19|DELIVER IN PERSON|REG AIR|x fluffily along the even packages-- |
-2214|194|5|2|50|54709.50|0.00|0.02|N|O|1998-07-06|1998-06-16|1998-07-16|TAKE BACK RETURN|MAIL|accounts. blith|
-2214|113|7|3|42|42550.62|0.04|0.08|N|O|1998-05-26|1998-07-13|1998-06-22|COLLECT COD|FOB|ons. deposi|
-2214|196|9|4|22|24116.18|0.01|0.01|N|O|1998-05-30|1998-07-02|1998-06-09|DELIVER IN PERSON|RAIL|t the blithely|
-2215|73|1|1|33|32111.31|0.00|0.00|N|O|1996-07-19|1996-08-10|1996-07-30|COLLECT COD|RAIL|dolites cajole b|
-2215|33|9|2|30|27990.90|0.01|0.00|N|O|1996-08-15|1996-09-10|1996-08-25|NONE|FOB|ckages caj|
-2215|57|5|3|30|28711.50|0.07|0.03|N|O|1996-09-09|1996-07-20|1996-09-28|COLLECT COD|TRUCK|against the carefu|
-2215|146|3|4|20|20922.80|0.02|0.02|N|O|1996-09-09|1996-08-10|1996-09-19|NONE|MAIL| unusual deposits haggle carefully. ide|
-2240|164|3|1|6|6384.96|0.01|0.00|A|F|1992-06-23|1992-05-17|1992-07-20|COLLECT COD|AIR|ymptotes boost. furiously bold p|
-2240|28|1|2|37|34336.74|0.03|0.07|R|F|1992-03-16|1992-05-31|1992-04-05|COLLECT COD|FOB| quickly after the packages? blithely si|
-2240|53|5|3|39|37168.95|0.08|0.06|A|F|1992-05-22|1992-05-10|1992-06-08|NONE|FOB|y orbits. final depos|
-2240|86|7|4|10|9860.80|0.09|0.00|A|F|1992-05-25|1992-04-14|1992-06-23|DELIVER IN PERSON|REG AIR|are across the ironic packages.|
-2240|161|10|5|29|30773.64|0.02|0.06|A|F|1992-03-29|1992-05-08|1992-04-09|COLLECT COD|MAIL|lyly even ideas w|
-2240|81|2|6|32|31394.56|0.06|0.06|R|F|1992-04-11|1992-04-18|1992-04-22|NONE|MAIL|ss thinly deposits. blithely bold package|
-2240|78|7|7|24|23473.68|0.04|0.05|R|F|1992-05-13|1992-04-09|1992-05-14|DELIVER IN PERSON|FOB|ng the silent accounts. slyly ironic t|
-2241|5|6|1|25|22625.00|0.00|0.08|R|F|1993-08-11|1993-07-23|1993-09-01|DELIVER IN PERSON|MAIL| final deposits use fluffily. even f|
-2241|195|8|2|38|41617.22|0.04|0.06|A|F|1993-08-04|1993-07-31|1993-08-06|TAKE BACK RETURN|TRUCK| silent, unusual d|
-2241|97|10|3|48|47860.32|0.08|0.04|A|F|1993-05-14|1993-07-30|1993-05-26|TAKE BACK RETURN|RAIL|ss accounts engage furiously. slyly even re|
-2241|167|4|4|19|20276.04|0.10|0.00|A|F|1993-06-01|1993-08-05|1993-06-07|TAKE BACK RETURN|TRUCK| are furiously quickl|
-2241|82|3|5|2|1964.16|0.04|0.03|A|F|1993-08-16|1993-08-02|1993-08-24|NONE|REG AIR|, express deposits. pear|
-2241|116|3|6|22|22354.42|0.02|0.08|R|F|1993-08-13|1993-06-15|1993-08-16|DELIVER IN PERSON|TRUCK|, ironic depen|
-2241|142|3|7|9|9379.26|0.09|0.03|A|F|1993-05-14|1993-07-12|1993-05-29|NONE|AIR|lyly final |
-2242|123|4|1|15|15346.80|0.09|0.08|N|O|1997-08-04|1997-09-21|1997-08-11|COLLECT COD|FOB|its. carefully express packages cajole. bli|
-2243|127|8|1|10|10271.20|0.04|0.06|N|O|1995-07-26|1995-07-18|1995-08-03|NONE|RAIL|express, daring foxes affix fur|
-2244|51|6|1|3|2853.15|0.02|0.02|A|F|1993-04-30|1993-03-15|1993-05-19|TAKE BACK RETURN|FOB| beans for the regular platel|
-2244|193|6|2|16|17491.04|0.01|0.06|R|F|1993-02-12|1993-03-09|1993-02-28|COLLECT COD|FOB|rate around the reques|
-2245|76|7|1|44|42947.08|0.03|0.03|A|F|1993-06-12|1993-06-10|1993-06-16|NONE|TRUCK|refully even sheaves|
-2245|74|3|2|28|27273.96|0.05|0.03|R|F|1993-08-19|1993-07-27|1993-09-04|COLLECT COD|TRUCK|e requests sleep furiou|
-2245|86|7|3|33|32540.64|0.03|0.01|R|F|1993-06-26|1993-06-11|1993-07-17|TAKE BACK RETURN|AIR|ing to the carefully ruthless accounts|
-2245|189|10|4|14|15248.52|0.02|0.04|R|F|1993-05-06|1993-07-21|1993-05-19|DELIVER IN PERSON|RAIL|nts. always unusual dep|
-2245|80|8|5|33|32342.64|0.03|0.07|R|F|1993-06-16|1993-06-05|1993-07-07|NONE|MAIL| across the express reques|
-2246|53|4|1|22|20967.10|0.02|0.01|N|O|1996-07-25|1996-08-03|1996-08-24|DELIVER IN PERSON|SHIP|ructions wake carefully fina|
-2246|104|5|2|43|43176.30|0.07|0.06|N|O|1996-08-25|1996-08-23|1996-09-19|DELIVER IN PERSON|AIR|ainst the ironic theodolites haggle fi|
-2246|18|8|3|11|10098.11|0.10|0.00|N|O|1996-06-21|1996-07-24|1996-07-18|TAKE BACK RETURN|TRUCK|quests alongside o|
-2246|163|8|4|13|13821.08|0.08|0.05|N|O|1996-09-15|1996-07-21|1996-10-08|DELIVER IN PERSON|AIR|equests. fluffily special epitaphs use|
-2247|172|2|1|12|12866.04|0.02|0.07|A|F|1992-09-06|1992-09-18|1992-09-26|NONE|MAIL|final accounts. requests across the furiou|
-2272|90|1|1|18|17821.62|0.04|0.00|R|F|1993-08-01|1993-07-06|1993-08-25|NONE|MAIL|ons along the blithely e|
-2272|34|10|2|40|37361.20|0.07|0.00|A|F|1993-04-25|1993-07-12|1993-05-15|DELIVER IN PERSON|FOB|lithely ir|
-2272|56|4|3|36|34417.80|0.03|0.02|A|F|1993-05-25|1993-05-23|1993-06-09|TAKE BACK RETURN|RAIL|about the ironic packages; quickly iron|
-2272|138|4|4|30|31143.90|0.09|0.07|A|F|1993-07-27|1993-05-15|1993-08-13|NONE|RAIL|quests at the foxes haggle evenly pack|
-2272|76|4|5|12|11712.84|0.03|0.03|A|F|1993-04-19|1993-05-14|1993-04-23|NONE|RAIL| accounts cajole. quickly b|
-2273|184|5|1|34|36862.12|0.02|0.03|N|O|1997-01-08|1997-02-02|1997-01-23|COLLECT COD|MAIL| furiously carefully bold de|
-2273|85|6|2|35|34477.80|0.00|0.05|N|O|1997-01-02|1997-01-19|1997-01-14|NONE|REG AIR|arefully f|
-2273|95|8|3|8|7960.72|0.00|0.04|N|O|1996-12-15|1997-02-27|1997-01-10|NONE|FOB|dependencies. slyly ir|
-2273|161|6|4|20|21223.20|0.06|0.04|N|O|1997-03-05|1997-02-25|1997-04-01|NONE|RAIL|cuses. quickly enticing requests wake |
-2273|162|7|5|18|19118.88|0.07|0.00|N|O|1996-12-16|1997-01-21|1997-01-03|COLLECT COD|TRUCK| beans. doggedly final packages wake|
-2273|155|7|6|16|16882.40|0.10|0.03|N|O|1997-01-10|1997-02-03|1997-02-01|TAKE BACK RETURN|RAIL|furiously above the ironic requests. |
-2273|20|1|7|7|6440.14|0.05|0.05|N|O|1997-02-19|1997-01-22|1997-02-21|TAKE BACK RETURN|TRUCK|ts. furiou|
-2274|12|6|1|18|16416.18|0.04|0.03|R|F|1993-09-06|1993-12-03|1993-09-22|COLLECT COD|SHIP|usly final re|
-2274|111|8|2|23|23255.53|0.04|0.03|R|F|1993-10-28|1993-11-03|1993-11-05|NONE|MAIL|kly special warhorse|
-2274|129|10|3|18|18524.16|0.03|0.06|R|F|1993-09-28|1993-11-22|1993-10-12|DELIVER IN PERSON|SHIP| express packages. even accounts hagg|
-2275|34|5|1|30|28020.90|0.08|0.05|R|F|1993-01-10|1992-11-21|1993-01-22|NONE|REG AIR|re slyly slyly special idea|
-2275|91|4|2|11|10901.99|0.08|0.03|A|F|1993-01-16|1992-12-10|1993-01-25|COLLECT COD|REG AIR|ost across the never express instruction|
-2276|119|9|1|5|5095.55|0.07|0.08|N|O|1996-05-09|1996-06-18|1996-05-13|DELIVER IN PERSON|FOB|ias instea|
-2276|135|1|2|13|13456.69|0.08|0.04|N|O|1996-07-24|1996-06-18|1996-08-16|COLLECT COD|RAIL|arefully ironic foxes cajole q|
-2276|171|2|3|27|28921.59|0.07|0.08|N|O|1996-07-30|1996-06-10|1996-07-31|DELIVER IN PERSON|RAIL|the carefully unusual accoun|
-2276|109|6|4|38|38345.80|0.06|0.03|N|O|1996-07-07|1996-06-28|1996-07-17|COLLECT COD|RAIL|ans. pinto beans boost c|
-2276|153|5|5|50|52657.50|0.03|0.05|N|O|1996-07-13|1996-06-25|1996-07-22|DELIVER IN PERSON|REG AIR| accounts dete|
-2276|6|9|6|4|3624.00|0.10|0.03|N|O|1996-07-05|1996-06-30|1996-08-04|COLLECT COD|FOB|s. deposits |
-2277|137|8|1|38|39410.94|0.03|0.07|R|F|1995-04-23|1995-03-25|1995-05-20|TAKE BACK RETURN|TRUCK|fully bold|
-2277|8|1|2|2|1816.00|0.10|0.08|A|F|1995-02-01|1995-02-04|1995-03-02|TAKE BACK RETURN|AIR|endencies sleep idly pending p|
-2277|198|10|3|4|4392.76|0.05|0.06|R|F|1995-04-27|1995-03-16|1995-04-29|TAKE BACK RETURN|SHIP|. quickly unusual deposi|
-2277|159|4|4|31|32833.65|0.02|0.00|R|F|1995-03-07|1995-03-19|1995-03-26|TAKE BACK RETURN|MAIL|ic instructions detect ru|
-2278|45|2|1|36|34021.44|0.04|0.05|N|O|1998-06-04|1998-06-06|1998-06-30|NONE|TRUCK|y ironic pinto beans br|
-2278|45|2|2|50|47252.00|0.02|0.00|N|O|1998-08-09|1998-07-08|1998-09-05|DELIVER IN PERSON|RAIL|into beans. blit|
-2278|97|9|3|22|21935.98|0.03|0.00|N|O|1998-05-15|1998-07-14|1998-06-04|TAKE BACK RETURN|REG AIR|ep regular accounts. blithely even|
-2279|14|5|1|12|10968.12|0.07|0.08|A|F|1993-05-10|1993-03-25|1993-06-02|COLLECT COD|REG AIR|lets across the excuses nag quickl|
-2279|41|2|2|38|35759.52|0.08|0.07|R|F|1993-06-09|1993-04-06|1993-06-26|COLLECT COD|TRUCK|s above the furiously express dep|
-2279|4|7|3|3|2712.00|0.09|0.04|A|F|1993-05-31|1993-05-07|1993-06-05|COLLECT COD|REG AIR|ing foxes above the even accounts use slyly|
-2279|52|4|4|42|39986.10|0.02|0.00|R|F|1993-02-28|1993-04-25|1993-03-02|TAKE BACK RETURN|REG AIR| above the furiously ironic deposits. |
-2279|169|8|5|9|9622.44|0.05|0.04|R|F|1993-05-21|1993-03-29|1993-06-17|DELIVER IN PERSON|MAIL|ns cajole after the final platelets. s|
-2279|147|10|6|12|12565.68|0.02|0.00|R|F|1993-05-04|1993-04-26|1993-05-28|DELIVER IN PERSON|FOB|ccounts. slyl|
-2279|119|9|7|32|32611.52|0.05|0.05|A|F|1993-04-20|1993-05-22|1993-05-18|DELIVER IN PERSON|RAIL|re quickly. furiously ironic ide|
-2304|200|2|1|42|46208.40|0.00|0.01|A|F|1994-01-20|1994-03-04|1994-02-05|COLLECT COD|RAIL|quests are blithely alongside of|
-2304|19|9|2|48|44112.48|0.00|0.00|R|F|1994-02-12|1994-02-16|1994-03-10|COLLECT COD|REG AIR| deposits cajole blithely e|
-2304|48|9|3|3|2844.12|0.00|0.05|R|F|1994-03-19|1994-03-04|1994-03-20|DELIVER IN PERSON|AIR|l excuses after the ev|
-2305|174|4|1|3|3222.51|0.00|0.01|A|F|1993-03-24|1993-04-05|1993-03-29|NONE|AIR|kages haggle quickly across the blithely |
-2305|60|8|2|39|37442.34|0.07|0.00|R|F|1993-04-16|1993-04-17|1993-04-22|COLLECT COD|MAIL|ms after the foxes |
-2305|102|3|3|32|32067.20|0.03|0.06|A|F|1993-04-02|1993-03-18|1993-04-03|NONE|AIR| haggle caref|
-2305|112|3|4|17|17205.87|0.00|0.05|A|F|1993-02-21|1993-03-30|1993-03-19|TAKE BACK RETURN|MAIL| carefully alongside of |
-2305|155|7|5|26|27433.90|0.06|0.07|A|F|1993-05-14|1993-02-28|1993-06-04|NONE|SHIP|arefully final theodo|
-2305|51|3|6|7|6657.35|0.06|0.00|R|F|1993-05-15|1993-04-25|1993-06-09|DELIVER IN PERSON|RAIL|gular deposits boost about the foxe|
-2306|196|9|1|50|54809.50|0.09|0.01|N|O|1995-07-27|1995-09-26|1995-08-06|DELIVER IN PERSON|FOB|y quickly |
-2306|149|2|2|39|40916.46|0.04|0.00|N|O|1995-09-07|1995-09-13|1995-10-03|COLLECT COD|SHIP|f the slyly unusual accounts. furiousl|
-2306|178|6|3|35|37735.95|0.01|0.07|N|O|1995-08-18|1995-08-30|1995-08-20|TAKE BACK RETURN|RAIL|raids along the furiously unusual asympto|
-2306|119|3|4|21|21401.31|0.06|0.01|N|O|1995-10-07|1995-09-18|1995-10-17|COLLECT COD|MAIL| ironic pinto |
-2306|142|9|5|42|43769.88|0.04|0.07|N|O|1995-09-05|1995-08-25|1995-09-28|COLLECT COD|MAIL|furiously final acco|
-2306|124|5|6|29|29699.48|0.00|0.03|N|O|1995-11-01|1995-09-01|1995-11-22|DELIVER IN PERSON|REG AIR|uld have to mold. s|
-2306|176|4|7|19|20447.23|0.07|0.01|N|O|1995-11-17|1995-09-06|1995-11-30|DELIVER IN PERSON|AIR|tainments nag furiously carefull|
-2307|142|9|1|24|25011.36|0.10|0.05|R|F|1993-10-07|1993-08-05|1993-10-20|COLLECT COD|AIR|stealthily special packages nag a|
-2307|140|6|2|2|2080.28|0.01|0.00|A|F|1993-09-21|1993-08-22|1993-10-03|COLLECT COD|SHIP|ously. furiously furious requ|
-2307|34|10|3|7|6538.21|0.07|0.04|R|F|1993-08-03|1993-09-04|1993-08-28|DELIVER IN PERSON|AIR|ven instructions wake fluffily |
-2307|165|6|4|19|20238.04|0.08|0.06|R|F|1993-10-23|1993-09-09|1993-11-09|TAKE BACK RETURN|TRUCK|olites haggle furiously around the |
-2307|143|4|5|7|7301.98|0.01|0.06|R|F|1993-09-01|1993-08-08|1993-09-29|NONE|AIR| packages cajo|
-2308|118|9|1|24|24434.64|0.06|0.04|R|F|1993-02-23|1992-12-24|1993-03-10|NONE|MAIL|ts sleep. busy excuses along the s|
-2308|56|1|2|36|34417.80|0.05|0.06|A|F|1992-11-11|1992-11-27|1992-11-23|NONE|MAIL|ong the pending hockey players. blithe|
-2309|170|7|1|14|14982.38|0.10|0.03|N|O|1996-01-01|1995-10-22|1996-01-23|NONE|AIR|asymptotes. furiously pending acco|
-2309|169|8|2|1|1069.16|0.01|0.05|N|O|1995-12-08|1995-11-03|1995-12-31|COLLECT COD|RAIL|eposits alongside of the final re|
-2309|15|2|3|5|4575.05|0.01|0.00|N|O|1995-12-10|1995-10-29|1996-01-06|TAKE BACK RETURN|SHIP|s. requests wake blithely specia|
-2309|139|10|4|46|47799.98|0.08|0.04|N|O|1995-10-02|1995-10-30|1995-10-30|NONE|REG AIR|sly according to the carefully |
-2309|137|3|5|9|9334.17|0.00|0.07|N|O|1995-12-21|1995-10-10|1996-01-20|COLLECT COD|AIR|ding, unusual instructions. dep|
-2309|195|8|6|21|22998.99|0.09|0.00|N|O|1995-11-05|1995-11-07|1995-11-22|NONE|AIR|unts around the dolphins ar|
-2309|138|4|7|48|49830.24|0.03|0.05|N|O|1995-10-21|1995-11-21|1995-11-09|NONE|MAIL|ccounts. id|
-2310|58|6|1|36|34489.80|0.03|0.03|N|O|1996-10-09|1996-10-28|1996-10-29|TAKE BACK RETURN|RAIL|iously against the slyly special accounts|
-2310|171|2|2|6|6427.02|0.07|0.01|N|O|1996-11-08|1996-12-09|1996-12-07|COLLECT COD|REG AIR|e slyly about the quickly ironic theodo|
-2310|42|1|3|48|45217.92|0.08|0.02|N|O|1996-10-04|1996-11-20|1996-10-25|TAKE BACK RETURN|FOB|ep slyly alongside of the |
-2311|141|8|1|18|18740.52|0.01|0.01|N|F|1995-06-11|1995-06-18|1995-07-02|NONE|FOB| fluffily even patterns haggle blithely. re|
-2311|122|1|2|49|50083.88|0.09|0.02|R|F|1995-05-14|1995-07-11|1995-05-20|COLLECT COD|FOB|ideas sleep|
-2311|54|5|3|15|14310.75|0.08|0.04|N|O|1995-06-23|1995-06-06|1995-07-09|COLLECT COD|AIR|ve the blithely pending accounts. furio|
-2311|90|1|4|42|41583.78|0.01|0.06|R|F|1995-06-03|1995-06-27|1995-06-11|DELIVER IN PERSON|MAIL|gle furiously. bold |
-2311|47|10|5|1|947.04|0.05|0.02|A|F|1995-06-07|1995-06-20|1995-06-10|NONE|AIR|ptotes. furiously regular theodolite|
-2311|12|9|6|32|29184.32|0.01|0.03|N|O|1995-07-19|1995-06-26|1995-07-26|NONE|RAIL|sts along the slyly|
-2336|193|5|1|20|21863.80|0.01|0.03|N|O|1996-03-12|1996-02-25|1996-03-18|NONE|REG AIR|across the fi|
-2337|45|2|1|49|46306.96|0.06|0.05|N|O|1997-08-08|1997-08-15|1997-08-31|TAKE BACK RETURN|FOB| along the packages. furiously p|
-2338|52|7|1|30|28561.50|0.07|0.06|N|O|1997-12-10|1997-10-15|1997-12-11|TAKE BACK RETURN|REG AIR|ould have to nag quickly|
-2339|192|3|1|22|24028.18|0.03|0.03|A|F|1994-01-06|1994-03-06|1994-01-10|NONE|FOB| furiously above |
-2339|30|5|2|28|26040.84|0.00|0.00|R|F|1994-01-25|1994-01-22|1994-01-28|DELIVER IN PERSON|RAIL|e bold, even packag|
-2339|117|4|3|13|13222.43|0.06|0.08|R|F|1994-03-10|1994-02-18|1994-03-20|TAKE BACK RETURN|REG AIR|ges. blithely special depend|
-2340|138|4|1|9|9343.17|0.08|0.02|N|O|1996-05-01|1996-02-24|1996-05-16|COLLECT COD|RAIL|. carefully ironic|
-2340|193|5|2|21|22956.99|0.06|0.02|N|O|1996-01-17|1996-03-04|1996-01-29|DELIVER IN PERSON|SHIP| asymptotes. unusual theo|
-2341|47|10|1|12|11364.48|0.08|0.03|R|F|1993-06-06|1993-07-08|1993-06-17|DELIVER IN PERSON|FOB|. quickly final deposits sl|
-2341|71|10|2|37|35929.59|0.07|0.08|A|F|1993-09-23|1993-07-25|1993-10-14|DELIVER IN PERSON|RAIL|was blithel|
-2341|195|8|3|8|8761.52|0.03|0.07|R|F|1993-06-08|1993-07-09|1993-06-10|COLLECT COD|FOB|ns affix above the iron|
-2342|42|1|1|12|11304.48|0.00|0.08|N|O|1996-07-31|1996-07-26|1996-08-14|NONE|TRUCK|print blithely even deposits. carefull|
-2342|117|1|2|24|24410.64|0.10|0.06|N|O|1996-09-30|1996-07-22|1996-10-28|TAKE BACK RETURN|AIR|nstructions c|
-2342|170|1|3|50|53508.50|0.10|0.01|N|O|1996-08-28|1996-07-18|1996-09-22|COLLECT COD|RAIL|cial asymptotes pr|
-2342|36|7|4|1|936.03|0.04|0.06|N|O|1996-08-31|1996-08-09|1996-09-07|DELIVER IN PERSON|REG AIR|ffily. unusual pinto beans wake c|
-2342|27|2|5|22|20394.44|0.08|0.01|N|O|1996-08-10|1996-08-02|1996-08-31|DELIVER IN PERSON|AIR|s. ironic |
-2343|110|1|1|27|27272.97|0.00|0.00|N|O|1995-11-10|1995-11-17|1995-12-10|TAKE BACK RETURN|SHIP|old theodolites.|
-2343|66|1|2|35|33812.10|0.03|0.06|N|O|1995-10-24|1995-11-09|1995-10-26|COLLECT COD|TRUCK|ges haggle furiously carefully regular req|
-2343|179|7|3|21|22662.57|0.00|0.03|N|O|1995-09-07|1995-10-26|1995-10-07|TAKE BACK RETURN|RAIL|osits. unusual theodolites boost furio|
-2368|152|3|1|16|16834.40|0.04|0.03|R|F|1993-10-31|1993-10-22|1993-11-06|NONE|REG AIR|telets wake carefully iro|
-2368|14|5|2|32|29248.32|0.03|0.00|R|F|1993-09-23|1993-10-07|1993-09-27|COLLECT COD|TRUCK|gular courts use blithely around the|
-2368|149|6|3|39|40916.46|0.08|0.03|R|F|1993-09-03|1993-09-20|1993-09-28|COLLECT COD|RAIL|ng the doggedly ironic requests are blithe|
-2368|156|8|4|17|17954.55|0.10|0.08|A|F|1993-10-03|1993-09-27|1993-10-05|NONE|FOB|fily. slyly final ideas alongside o|
-2369|24|7|1|30|27720.60|0.05|0.04|N|O|1997-04-23|1997-02-12|1997-05-21|COLLECT COD|REG AIR|pecial deposits sleep. blithely unusual w|
-2369|169|10|2|47|50250.52|0.10|0.02|N|O|1997-01-02|1997-02-18|1997-01-13|COLLECT COD|RAIL| to the regular dep|
-2370|46|3|1|3|2838.12|0.03|0.07|R|F|1994-03-24|1994-03-26|1994-04-15|COLLECT COD|SHIP|ly regular Tiresia|
-2370|2|5|2|24|21648.00|0.00|0.05|A|F|1994-05-15|1994-04-09|1994-06-12|NONE|REG AIR|final depen|
-2370|61|2|3|32|30753.92|0.05|0.02|A|F|1994-04-24|1994-03-03|1994-05-15|DELIVER IN PERSON|MAIL|ies since the final deposits|
-2370|6|3|4|21|19026.00|0.04|0.01|R|F|1994-02-01|1994-02-19|1994-02-09|TAKE BACK RETURN|MAIL|ecial dependencies must have to |
-2371|159|4|1|37|39188.55|0.05|0.05|N|O|1998-02-11|1998-03-24|1998-02-27|DELIVER IN PERSON|TRUCK|s boost fluffil|
-2371|35|1|2|21|19635.63|0.00|0.05|N|O|1998-04-14|1998-02-14|1998-04-18|COLLECT COD|AIR|gle furiously regu|
-2371|101|4|3|11|11012.10|0.05|0.02|N|O|1998-02-25|1998-04-06|1998-03-23|TAKE BACK RETURN|TRUCK|requests. regular pinto beans wake. car|
-2371|43|6|4|33|31120.32|0.05|0.08|N|O|1998-03-30|1998-02-06|1998-04-05|DELIVER IN PERSON|AIR|deas are. express r|
-2371|165|2|5|22|23433.52|0.02|0.05|N|O|1998-03-26|1998-03-19|1998-04-16|DELIVER IN PERSON|REG AIR|y daring accounts. regular ins|
-2371|86|7|6|39|38457.12|0.05|0.03|N|O|1998-04-01|1998-03-13|1998-04-27|NONE|REG AIR|tructions. regular, stealthy packages wak|
-2371|36|2|7|32|29952.96|0.07|0.07|N|O|1998-02-15|1998-04-03|1998-02-23|NONE|REG AIR|the ruthless accounts. |
-2372|43|4|1|42|39607.68|0.08|0.02|N|O|1998-01-04|1998-01-02|1998-02-02|COLLECT COD|REG AIR|lar packages. regular|
-2372|3|10|2|17|15351.00|0.07|0.01|N|O|1997-12-17|1998-01-17|1997-12-25|NONE|RAIL|xcuses. slyly ironic theod|
-2372|164|1|3|12|12769.92|0.04|0.04|N|O|1998-03-21|1997-12-21|1998-04-12|DELIVER IN PERSON|SHIP|lyly according to|
-2372|122|1|4|4|4088.48|0.00|0.07|N|O|1997-12-14|1997-12-28|1997-12-16|TAKE BACK RETURN|REG AIR|e carefully blithely even epitaphs. r|
-2372|20|7|5|5|4600.10|0.02|0.04|N|O|1998-02-08|1998-01-18|1998-03-02|TAKE BACK RETURN|RAIL|ets against the |
-2372|189|10|6|11|11980.98|0.02|0.06|N|O|1998-02-14|1998-01-18|1998-03-10|TAKE BACK RETURN|FOB| silent, pending de|
-2372|57|8|7|19|18183.95|0.01|0.06|N|O|1997-12-26|1998-02-19|1998-01-02|COLLECT COD|SHIP| beans haggle sometimes|
-2373|191|5|1|17|18550.23|0.02|0.01|R|F|1994-03-29|1994-05-19|1994-04-20|COLLECT COD|AIR|auternes. blithely even pinto bea|
-2373|136|2|2|3|3108.39|0.08|0.08|R|F|1994-05-15|1994-06-10|1994-06-04|COLLECT COD|TRUCK|dependencies wake ironical|
-2373|141|8|3|29|30193.06|0.05|0.02|A|F|1994-06-01|1994-05-14|1994-06-17|NONE|TRUCK|yly silent ideas affix furiousl|
-2373|91|5|4|5|4955.45|0.10|0.01|R|F|1994-06-02|1994-05-03|1994-06-21|NONE|REG AIR|uffily blithely ironic requests|
-2374|118|2|1|41|41742.51|0.07|0.00|A|F|1994-01-27|1993-12-11|1994-02-12|TAKE BACK RETURN|RAIL|heodolites. requests|
-2374|160|2|2|24|25443.84|0.07|0.08|A|F|1994-02-02|1994-01-12|1994-02-04|DELIVER IN PERSON|TRUCK|. requests are above t|
-2374|61|8|3|2|1922.12|0.06|0.02|R|F|1993-12-30|1994-01-24|1994-01-02|COLLECT COD|FOB|, unusual ideas. deposits cajole quietl|
-2374|74|5|4|28|27273.96|0.04|0.08|R|F|1994-02-19|1993-12-16|1994-03-15|COLLECT COD|MAIL|ets cajole fu|
-2374|1|2|5|25|22525.00|0.08|0.00|A|F|1993-11-26|1993-12-15|1993-12-10|COLLECT COD|RAIL|refully pending d|
-2375|168|9|1|3|3204.48|0.02|0.08|N|O|1997-02-14|1996-12-25|1997-02-22|COLLECT COD|RAIL|slyly across the furiously e|
-2375|132|8|2|9|9289.17|0.09|0.02|N|O|1997-02-17|1996-12-27|1997-02-27|DELIVER IN PERSON|MAIL|ly against the packages. bold pinto bean|
-2375|47|4|3|26|24623.04|0.02|0.06|N|O|1997-03-18|1997-02-02|1997-03-29|TAKE BACK RETURN|TRUCK|rate across the|
-2375|5|8|4|5|4525.00|0.01|0.00|N|O|1997-01-31|1997-01-25|1997-02-22|COLLECT COD|REG AIR|final packages cajole according to the furi|
-2375|88|9|5|42|41499.36|0.01|0.08|N|O|1997-01-24|1997-02-15|1997-02-07|DELIVER IN PERSON|FOB|apades. idea|
-2375|126|7|6|20|20522.40|0.09|0.08|N|O|1996-12-01|1996-12-26|1996-12-19|TAKE BACK RETURN|SHIP|ckages! blithely enticing deposi|
-2400|103|6|1|48|48148.80|0.01|0.02|N|O|1998-10-07|1998-08-30|1998-11-03|DELIVER IN PERSON|MAIL|fore the car|
-2400|90|1|2|1|990.09|0.04|0.07|N|O|1998-08-18|1998-09-12|1998-09-11|NONE|MAIL|silent deposits serve furious|
-2400|53|5|3|23|21920.15|0.02|0.08|N|O|1998-08-05|1998-08-28|1998-08-30|NONE|SHIP|tions. fluffily ironic platelets cajole c|
-2400|17|7|4|23|21091.23|0.09|0.04|N|O|1998-10-04|1998-10-04|1998-10-31|NONE|RAIL|ages lose carefully around the regula|
-2401|182|3|1|39|42205.02|0.00|0.03|N|O|1997-09-29|1997-10-21|1997-10-17|DELIVER IN PERSON|FOB|ould affix |
-2401|3|8|2|49|44247.00|0.05|0.07|N|O|1997-09-02|1997-09-11|1997-09-13|TAKE BACK RETURN|AIR|lites cajole carefully |
-2402|86|7|1|43|42401.44|0.03|0.08|N|O|1996-09-17|1996-11-20|1996-09-22|DELIVER IN PERSON|RAIL|slyly slyly blithe sheaves|
-2402|152|4|2|24|25251.60|0.02|0.05|N|O|1996-11-21|1996-10-19|1996-11-29|DELIVER IN PERSON|SHIP|as; blithely ironic requ|
-2403|83|4|1|34|33424.72|0.04|0.07|N|O|1998-05-30|1998-06-19|1998-06-05|NONE|REG AIR| slyly bold re|
-2403|152|4|2|19|19990.85|0.08|0.07|N|O|1998-04-20|1998-07-02|1998-05-13|DELIVER IN PERSON|FOB|sits. ironic in|
-2403|193|4|3|27|29516.13|0.05|0.03|N|O|1998-07-27|1998-07-08|1998-08-03|NONE|SHIP|deposits sleep slyly special theodolit|
-2403|31|2|4|30|27930.90|0.05|0.06|N|O|1998-08-08|1998-06-17|1998-08-20|NONE|TRUCK|ackages sleep furiously pendin|
-2404|147|10|1|36|37697.04|0.07|0.00|N|O|1997-03-27|1997-05-16|1997-04-06|COLLECT COD|REG AIR|s nag furi|
-2404|36|2|2|1|936.03|0.02|0.04|N|O|1997-05-22|1997-06-06|1997-05-28|DELIVER IN PERSON|MAIL|from the final orbits? even pinto beans hag|
-2404|18|5|3|41|37638.41|0.02|0.06|N|O|1997-06-12|1997-05-03|1997-07-12|NONE|AIR| dolphins are|
-2404|57|8|4|19|18183.95|0.09|0.03|N|O|1997-05-07|1997-05-24|1997-05-24|TAKE BACK RETURN|SHIP|cuses. quickly even in|
-2404|4|9|5|18|16272.00|0.00|0.04|N|O|1997-06-25|1997-05-06|1997-07-02|NONE|RAIL|packages. even requests according to |
-2405|89|10|1|18|17803.44|0.09|0.07|N|O|1997-01-23|1997-03-10|1997-02-03|COLLECT COD|REG AIR|carefully ironic accounts. slyly |
-2405|27|10|2|30|27810.60|0.10|0.08|N|O|1997-03-24|1997-03-10|1997-04-14|TAKE BACK RETURN|AIR|y final deposits are slyly caref|
-2405|17|8|3|49|44933.49|0.00|0.06|N|O|1996-12-24|1997-03-23|1997-01-01|TAKE BACK RETURN|FOB|cial requests. ironic, regu|
-2405|177|7|4|23|24774.91|0.08|0.05|N|O|1996-12-28|1997-01-29|1997-01-07|NONE|AIR|t wake blithely blithely regular idea|
-2406|170|5|1|18|19263.06|0.07|0.05|N|O|1997-02-17|1996-12-25|1997-02-19|COLLECT COD|MAIL|azzle furiously careful|
-2406|41|8|2|40|37641.60|0.02|0.07|N|O|1997-01-09|1996-12-02|1997-01-16|NONE|SHIP|gular accounts caj|
-2406|50|1|3|16|15200.80|0.07|0.03|N|O|1996-10-31|1996-11-28|1996-11-08|TAKE BACK RETURN|SHIP| special accou|
-2406|146|9|4|34|35568.76|0.07|0.06|N|O|1996-12-01|1996-12-07|1996-12-16|NONE|AIR|hinly even accounts are slyly q|
-2406|187|8|5|25|27179.50|0.08|0.02|N|O|1996-12-03|1996-12-14|1996-12-26|COLLECT COD|MAIL|al, regular in|
-2406|59|4|6|22|21099.10|0.05|0.02|N|O|1996-11-22|1997-01-17|1996-12-15|NONE|TRUCK|hely even foxes unwind furiously aga|
-2406|60|2|7|30|28801.80|0.07|0.07|N|O|1997-01-17|1997-01-12|1997-01-22|TAKE BACK RETURN|TRUCK| final pinto beans han|
-2407|64|3|1|14|13496.84|0.04|0.02|N|O|1998-10-10|1998-08-25|1998-10-27|NONE|FOB|l dependencies s|
-2407|166|7|2|9|9595.44|0.07|0.05|N|O|1998-08-06|1998-08-11|1998-08-20|TAKE BACK RETURN|TRUCK|ts. special deposits are closely.|
-2407|131|2|3|39|40214.07|0.02|0.02|N|O|1998-08-20|1998-09-12|1998-08-22|DELIVER IN PERSON|MAIL|iously final deposits solv|
-2407|91|4|4|10|9910.90|0.01|0.07|N|O|1998-08-14|1998-09-10|1998-08-29|COLLECT COD|FOB| pending instructions. theodolites x-|
-2407|198|1|5|14|15374.66|0.04|0.05|N|O|1998-09-24|1998-08-18|1998-10-06|DELIVER IN PERSON|FOB|tructions wake stealt|
-2407|71|9|6|18|17479.26|0.04|0.01|N|O|1998-10-03|1998-08-30|1998-10-19|TAKE BACK RETURN|MAIL| wake carefully. fluffily |
-2407|161|8|7|7|7428.12|0.07|0.03|N|O|1998-09-11|1998-08-15|1998-09-30|TAKE BACK RETURN|MAIL|totes are carefully accordin|
-2432|50|3|1|30|28501.50|0.03|0.02|N|O|1996-09-05|1996-10-10|1996-10-05|TAKE BACK RETURN|TRUCK| requests wake alongside of|
-2432|162|3|2|8|8497.28|0.07|0.01|N|O|1996-10-16|1996-10-01|1996-11-13|COLLECT COD|RAIL|s about the bold, close deposit|
-2432|109|2|3|13|13118.30|0.07|0.06|N|O|1996-09-03|1996-10-10|1996-10-03|NONE|RAIL|arefully about the caref|
-2432|13|4|4|14|12782.14|0.00|0.06|N|O|1996-08-18|1996-09-04|1996-08-27|TAKE BACK RETURN|RAIL|riously regular packages. p|
-2433|87|8|1|39|38496.12|0.01|0.04|R|F|1994-11-20|1994-09-23|1994-12-10|DELIVER IN PERSON|SHIP|ly final asy|
-2433|134|5|2|20|20682.60|0.05|0.06|A|F|1994-12-09|1994-10-20|1994-12-15|COLLECT COD|REG AIR|lithely blithely final ide|
-2433|157|2|3|38|40171.70|0.08|0.03|A|F|1994-10-15|1994-10-23|1994-11-06|DELIVER IN PERSON|SHIP|. slyly regular requests sle|
-2433|121|6|4|43|43908.16|0.01|0.05|A|F|1994-10-16|1994-10-23|1994-11-08|DELIVER IN PERSON|RAIL|ular requests. slyly even pa|
-2433|108|1|5|3|3024.30|0.06|0.02|A|F|1994-11-08|1994-09-24|1994-11-17|COLLECT COD|AIR|usly pending depos|
-2434|95|6|1|1|995.09|0.01|0.06|N|O|1997-08-02|1997-05-28|1997-08-19|TAKE BACK RETURN|MAIL| furiously express packages. ironic, pend|
-2434|127|10|2|39|40057.68|0.09|0.05|N|O|1997-06-10|1997-06-08|1997-07-03|COLLECT COD|RAIL|r deposits sleep furiou|
-2434|130|3|3|28|28843.64|0.02|0.05|N|O|1997-06-28|1997-06-26|1997-07-15|COLLECT COD|RAIL|ven theodolites around the slyly|
-2434|168|9|4|49|52339.84|0.00|0.05|N|O|1997-08-08|1997-07-23|1997-08-27|DELIVER IN PERSON|FOB| after the requests haggle bold, fina|
-2435|39|10|1|8|7512.24|0.08|0.03|A|F|1993-06-08|1993-04-04|1993-06-29|COLLECT COD|SHIP|e fluffily quickly final accounts. care|
-2435|49|2|2|43|40808.72|0.03|0.08|A|F|1993-03-27|1993-05-20|1993-04-18|DELIVER IN PERSON|TRUCK|alongside of the s|
-2435|12|9|3|24|21888.24|0.07|0.08|R|F|1993-03-14|1993-05-20|1993-03-26|DELIVER IN PERSON|SHIP|s. carefully regular d|
-2435|156|4|4|22|23235.30|0.02|0.05|R|F|1993-05-23|1993-04-14|1993-06-04|NONE|SHIP|e final, final deposits. carefully regular|
-2435|72|2|5|3|2916.21|0.07|0.07|R|F|1993-06-01|1993-03-25|1993-06-27|DELIVER IN PERSON|FOB| final accounts ar|
-2435|46|9|6|17|16082.68|0.02|0.02|A|F|1993-06-05|1993-05-05|1993-06-14|NONE|TRUCK|cajole aft|
-2435|121|10|7|8|8168.96|0.07|0.02|R|F|1993-05-03|1993-04-02|1993-05-17|COLLECT COD|SHIP|ng the fluffily special foxes nag |
-2436|155|6|1|48|50647.20|0.04|0.02|N|O|1995-10-22|1995-10-22|1995-11-16|DELIVER IN PERSON|FOB|he furiously |
-2436|117|7|2|18|18307.98|0.05|0.03|N|O|1995-10-14|1995-11-21|1995-11-12|TAKE BACK RETURN|TRUCK|y ironic accounts. furiously even packa|
-2436|164|3|3|6|6384.96|0.06|0.08|N|O|1995-10-25|1995-11-30|1995-11-24|DELIVER IN PERSON|RAIL|odolites. ep|
-2437|94|6|1|46|45728.14|0.07|0.04|A|F|1993-08-12|1993-06-16|1993-08-29|NONE|RAIL|e of the bold, dogged requests|
-2437|190|1|2|26|28344.94|0.00|0.04|A|F|1993-06-25|1993-05-22|1993-07-07|DELIVER IN PERSON|REG AIR|lyly regular accounts.|
-2437|2|7|3|23|20746.00|0.01|0.00|A|F|1993-08-15|1993-06-28|1993-08-23|TAKE BACK RETURN|SHIP|s deposits. pendi|
-2437|116|10|4|12|12193.32|0.03|0.08|A|F|1993-04-27|1993-07-01|1993-05-18|TAKE BACK RETURN|FOB|thely regular deposits. ironic fray|
-2437|17|7|5|29|26593.29|0.02|0.06|A|F|1993-05-12|1993-06-10|1993-05-25|NONE|FOB|ress dolphins. furiously fin|
-2437|19|3|6|10|9190.10|0.10|0.06|A|F|1993-05-20|1993-06-23|1993-05-22|TAKE BACK RETURN|MAIL|unts. even, ironic pl|
-2438|165|2|1|45|47932.20|0.01|0.00|A|F|1993-10-27|1993-09-24|1993-11-02|COLLECT COD|REG AIR|en theodolites w|
-2438|13|4|2|31|28303.31|0.08|0.01|R|F|1993-10-16|1993-08-31|1993-11-10|COLLECT COD|REG AIR|t. slyly ironic sh|
-2438|68|7|3|10|9680.60|0.10|0.00|R|F|1993-08-18|1993-08-28|1993-09-08|NONE|SHIP|engage car|
-2438|161|8|4|27|28651.32|0.01|0.02|R|F|1993-07-27|1993-10-01|1993-08-06|TAKE BACK RETURN|FOB|inal accounts. slyly final reques|
-2438|166|3|5|28|29852.48|0.07|0.06|R|F|1993-11-05|1993-08-22|1993-11-22|TAKE BACK RETURN|TRUCK|ctions. bli|
-2438|149|6|6|23|24130.22|0.09|0.02|R|F|1993-10-06|1993-08-17|1993-10-16|DELIVER IN PERSON|MAIL|ely; blithely special pinto beans breach|
-2438|183|4|7|46|49826.28|0.02|0.05|R|F|1993-10-27|1993-08-30|1993-11-14|COLLECT COD|SHIP| ironic requests cajole f|
-2439|164|1|1|2|2128.32|0.09|0.03|N|O|1997-04-14|1997-06-11|1997-05-09|COLLECT COD|MAIL|courts boos|
-2439|144|5|2|5|5220.70|0.07|0.01|N|O|1997-04-23|1997-04-26|1997-04-28|DELIVER IN PERSON|FOB|ites. furiously|
-2439|195|7|3|33|36141.27|0.08|0.05|N|O|1997-06-01|1997-05-15|1997-06-07|TAKE BACK RETURN|FOB|asymptotes wake packages-- furiously|
-2464|49|8|1|10|9490.40|0.05|0.03|N|O|1998-02-04|1997-12-29|1998-02-16|TAKE BACK RETURN|RAIL|slyly final pinto bean|
-2464|101|6|2|20|20022.00|0.01|0.07|N|O|1997-12-26|1998-01-02|1998-01-24|DELIVER IN PERSON|FOB|sts. slyly close ideas shall h|
-2465|68|5|1|27|26137.62|0.05|0.02|N|O|1995-09-05|1995-09-07|1995-09-17|DELIVER IN PERSON|FOB|posits boost carefully unusual instructio|
-2465|51|3|2|34|32335.70|0.02|0.05|N|O|1995-10-02|1995-08-04|1995-10-09|COLLECT COD|RAIL|posits wake. regular package|
-2465|32|3|3|8|7456.24|0.10|0.00|N|O|1995-10-16|1995-08-26|1995-11-07|TAKE BACK RETURN|FOB|s across the express deposits wak|
-2465|148|7|4|45|47166.30|0.03|0.01|N|O|1995-09-27|1995-08-25|1995-10-06|NONE|TRUCK|y silent foxes. final pinto beans above |
-2465|47|4|5|50|47352.00|0.01|0.04|N|O|1995-09-01|1995-09-06|1995-09-18|TAKE BACK RETURN|TRUCK|the pending th|
-2465|124|5|6|20|20482.40|0.03|0.03|N|O|1995-08-16|1995-08-13|1995-09-02|COLLECT COD|FOB|uriously? furiously ironic excu|
-2466|186|7|1|16|17378.88|0.00|0.02|R|F|1994-04-20|1994-04-20|1994-05-09|COLLECT COD|FOB|to beans sl|
-2466|105|8|2|10|10051.00|0.00|0.00|A|F|1994-05-08|1994-04-06|1994-06-05|DELIVER IN PERSON|AIR|sly regular deposits. regular, regula|
-2466|14|1|3|29|26506.29|0.10|0.07|A|F|1994-06-11|1994-04-27|1994-07-10|DELIVER IN PERSON|FOB|ckages. bold requests nag carefully.|
-2466|11|8|4|29|26419.29|0.04|0.04|A|F|1994-04-01|1994-04-20|1994-04-23|DELIVER IN PERSON|MAIL|es boost fluffily ab|
-2466|79|10|5|30|29372.10|0.02|0.01|A|F|1994-04-11|1994-05-02|1994-05-02|DELIVER IN PERSON|REG AIR|. fluffily even pinto beans are idly. f|
-2466|173|2|6|19|20390.23|0.10|0.07|R|F|1994-06-12|1994-04-18|1994-07-12|NONE|MAIL|ccounts cajole a|
-2466|155|7|7|35|36930.25|0.10|0.00|A|F|1994-06-01|1994-05-27|1994-06-21|COLLECT COD|AIR| packages detect carefully: ironically sl|
-2467|133|9|1|7|7231.91|0.00|0.00|N|O|1995-07-28|1995-10-04|1995-08-27|NONE|REG AIR|gular packages cajole |
-2468|94|7|1|46|45728.14|0.00|0.04|N|O|1997-07-16|1997-08-09|1997-08-07|COLLECT COD|SHIP|unusual theodolites su|
-2468|21|10|2|43|39603.86|0.00|0.04|N|O|1997-08-17|1997-08-21|1997-08-30|DELIVER IN PERSON|FOB|uriously eve|
-2468|195|6|3|44|48188.36|0.00|0.03|N|O|1997-10-01|1997-08-02|1997-10-09|TAKE BACK RETURN|RAIL|egular, silent sheave|
-2468|82|3|4|5|4910.40|0.08|0.00|N|O|1997-06-28|1997-08-02|1997-07-22|NONE|MAIL| sleep fluffily acc|
-2468|159|7|5|18|19064.70|0.07|0.00|N|O|1997-07-25|1997-08-26|1997-08-14|DELIVER IN PERSON|REG AIR|cies. fluffily r|
-2469|166|1|1|11|11727.76|0.00|0.04|N|O|1997-02-09|1997-01-26|1997-02-16|NONE|TRUCK|ies wake carefully b|
-2469|114|1|2|16|16225.76|0.07|0.06|N|O|1997-02-19|1997-02-04|1997-03-18|NONE|MAIL|ing asymptotes |
-2469|11|5|3|48|43728.48|0.05|0.06|N|O|1997-01-11|1997-01-03|1997-01-15|TAKE BACK RETURN|AIR|riously even theodolites u|
-2469|88|9|4|35|34582.80|0.06|0.06|N|O|1997-02-04|1997-02-02|1997-02-17|DELIVER IN PERSON|RAIL|ld packages haggle regular frets. fluffily |
-2469|121|4|5|30|30633.60|0.09|0.01|N|O|1996-12-21|1997-01-29|1997-01-02|COLLECT COD|SHIP| accounts. regular theodolites affix fu|
-2469|104|5|6|49|49200.90|0.02|0.02|N|O|1997-03-03|1996-12-26|1997-03-13|NONE|AIR| requests are car|
-2469|127|10|7|8|8216.96|0.02|0.00|N|O|1997-03-15|1997-01-20|1997-04-13|NONE|TRUCK|s. regular|
-2470|110|5|1|12|12121.32|0.06|0.06|N|O|1997-07-12|1997-05-24|1997-07-17|TAKE BACK RETURN|FOB|l accounts. deposits nag daringly. express,|
-2470|100|4|2|50|50005.00|0.03|0.03|N|O|1997-06-02|1997-06-01|1997-06-09|COLLECT COD|AIR| packages |
-2470|64|3|3|10|9640.60|0.05|0.08|N|O|1997-06-20|1997-06-19|1997-06-24|TAKE BACK RETURN|FOB| ironic requests a|
-2470|162|3|4|30|31864.80|0.04|0.08|N|O|1997-08-04|1997-07-13|1997-08-14|DELIVER IN PERSON|AIR|s across the furiously fina|
-2471|84|5|1|37|36410.96|0.05|0.01|N|O|1998-05-28|1998-04-17|1998-06-08|COLLECT COD|TRUCK|ounts mold blithely carefully express depo|
-2496|141|8|1|38|39563.32|0.02|0.07|R|F|1994-03-26|1994-04-06|1994-04-23|COLLECT COD|RAIL| bold accounts. furi|
-2496|23|4|2|39|35997.78|0.03|0.00|R|F|1994-03-23|1994-02-18|1994-04-10|TAKE BACK RETURN|FOB|arefully special dependencies abo|
-2496|189|10|3|36|39210.48|0.09|0.04|R|F|1994-03-27|1994-03-15|1994-04-17|TAKE BACK RETURN|SHIP|ully ironic f|
-2496|24|9|4|30|27720.60|0.04|0.01|A|F|1994-01-27|1994-03-11|1994-01-31|DELIVER IN PERSON|RAIL|ake. ironic foxes cajole quickly. fu|
-2497|12|2|1|34|31008.34|0.02|0.03|R|F|1992-09-02|1992-10-19|1992-09-12|COLLECT COD|AIR|ronic accounts. p|
-2497|77|7|2|15|14656.05|0.09|0.02|A|F|1992-12-23|1992-11-20|1993-01-18|DELIVER IN PERSON|SHIP|sly against the|
-2497|34|5|3|28|26152.84|0.02|0.08|A|F|1992-12-02|1992-11-21|1992-12-04|DELIVER IN PERSON|REG AIR|ouches. special, regular requests|
-2497|144|5|4|48|50118.72|0.06|0.05|A|F|1992-09-29|1992-11-13|1992-10-19|TAKE BACK RETURN|AIR| even, regular requests across |
-2497|175|5|5|28|30104.76|0.04|0.05|A|F|1992-11-10|1992-09-30|1992-11-18|DELIVER IN PERSON|MAIL|hely bold ideas. unusual instructions ac|
-2497|71|2|6|19|18450.33|0.05|0.08|A|F|1992-11-10|1992-11-20|1992-12-05|TAKE BACK RETURN|TRUCK| instructions? carefully daring accounts|
-2498|143|2|1|48|50070.72|0.10|0.01|R|F|1993-11-25|1994-01-09|1993-12-24|DELIVER IN PERSON|RAIL|onic requests wake|
-2499|150|3|1|15|15752.25|0.04|0.06|N|O|1995-12-21|1995-12-06|1996-01-19|DELIVER IN PERSON|FOB| slyly across the slyly|
-2499|46|3|2|48|45409.92|0.09|0.03|N|O|1995-10-14|1995-12-12|1995-11-11|DELIVER IN PERSON|AIR|ronic ideas cajole quickly requests. caref|
-2499|133|9|3|31|32027.03|0.09|0.05|N|O|1995-12-09|1995-10-28|1996-01-05|COLLECT COD|AIR|to beans across the carefully ironic theodo|
-2499|159|7|4|39|41306.85|0.06|0.02|N|O|1995-10-26|1995-10-27|1995-11-07|TAKE BACK RETURN|SHIP|otes sublat|
-2499|130|9|5|6|6180.78|0.02|0.01|N|O|1995-11-19|1995-12-14|1995-12-08|NONE|SHIP|cording to the|
-2499|119|3|6|12|12229.32|0.04|0.05|N|O|1995-11-18|1995-12-13|1995-11-23|COLLECT COD|REG AIR|le furiously along the r|
-2500|192|3|1|40|43687.60|0.00|0.02|A|F|1992-09-02|1992-09-30|1992-09-06|DELIVER IN PERSON|SHIP|efully unusual dolphins s|
-2500|37|8|2|34|31859.02|0.06|0.02|R|F|1992-10-03|1992-11-11|1992-10-29|DELIVER IN PERSON|TRUCK| stealthy a|
-2500|80|10|3|41|40183.28|0.02|0.00|R|F|1992-09-02|1992-11-11|1992-09-06|DELIVER IN PERSON|RAIL|s could have to integrate after the |
-2500|69|8|4|17|16474.02|0.01|0.02|A|F|1992-09-30|1992-10-16|1992-10-05|DELIVER IN PERSON|REG AIR|encies-- ironic, even packages|
-2501|84|5|1|4|3936.32|0.10|0.06|N|O|1997-07-17|1997-07-27|1997-07-22|COLLECT COD|RAIL|quests. furiously final|
-2501|106|1|2|33|33201.30|0.01|0.04|N|O|1997-07-14|1997-08-09|1997-07-26|NONE|MAIL|leep furiously packages. even sauternes |
-2501|72|2|3|20|19441.40|0.10|0.06|N|O|1997-09-23|1997-07-01|1997-10-03|DELIVER IN PERSON|RAIL|equests. furiou|
-2501|58|10|4|26|24909.30|0.09|0.01|N|O|1997-07-15|1997-08-15|1997-07-28|DELIVER IN PERSON|SHIP|c accounts. express, iron|
-2502|163|4|1|33|35084.28|0.10|0.06|R|F|1993-08-12|1993-07-22|1993-09-04|COLLECT COD|REG AIR|have to print|
-2503|123|2|1|33|33762.96|0.06|0.01|R|F|1993-07-06|1993-08-14|1993-08-02|NONE|SHIP|nal courts integrate according to the|
-2503|65|10|2|28|27021.68|0.06|0.01|R|F|1993-08-08|1993-08-31|1993-08-10|NONE|SHIP|s wake quickly slyly |
-2503|46|7|3|50|47302.00|0.09|0.01|A|F|1993-09-22|1993-08-17|1993-09-29|DELIVER IN PERSON|TRUCK|s around the slyly |
-2503|91|5|4|27|26759.43|0.09|0.00|A|F|1993-07-12|1993-07-24|1993-07-22|DELIVER IN PERSON|TRUCK|lly even p|
-2503|48|5|5|3|2844.12|0.04|0.02|A|F|1993-07-10|1993-09-17|1993-07-19|TAKE BACK RETURN|TRUCK|s cajole. slyly close courts nod f|
-2503|128|7|6|39|40096.68|0.05|0.05|R|F|1993-10-11|1993-09-09|1993-10-16|NONE|MAIL|d carefully fluffily|
-2503|19|6|7|17|15623.17|0.09|0.08|R|F|1993-09-04|1993-07-31|1993-09-23|DELIVER IN PERSON|SHIP|c accounts haggle blithel|
-2528|1|2|1|10|9010.00|0.02|0.03|R|F|1994-12-12|1994-12-29|1994-12-28|COLLECT COD|REG AIR|ely. fluffily even re|
-2528|74|3|2|13|12662.91|0.00|0.03|A|F|1994-11-27|1995-01-20|1994-12-03|TAKE BACK RETURN|REG AIR|ggle furiously. slyly final asympt|
-2528|175|6|3|35|37630.95|0.10|0.00|R|F|1994-12-19|1995-02-04|1995-01-15|NONE|MAIL|, even excuses. even,|
-2528|65|4|4|37|35707.22|0.00|0.01|A|F|1994-12-25|1995-02-02|1994-12-31|COLLECT COD|AIR|ng the pending excuses haggle after the bl|
-2529|131|7|1|4|4124.52|0.07|0.07|N|O|1996-10-19|1996-11-18|1996-10-24|DELIVER IN PERSON|SHIP|al dependencies haggle slyly alongsi|
-2530|21|2|1|9|8289.18|0.09|0.03|R|F|1994-05-10|1994-04-30|1994-05-24|TAKE BACK RETURN|REG AIR|lyly ironic|
-2530|93|7|2|42|41709.78|0.04|0.08|R|F|1994-03-27|1994-05-20|1994-03-29|NONE|RAIL|ng platelets wake s|
-2530|108|1|3|8|8064.80|0.10|0.08|A|F|1994-05-02|1994-05-08|1994-05-24|DELIVER IN PERSON|MAIL|ial asymptotes snooze slyly regular |
-2531|148|7|1|9|9433.26|0.03|0.07|N|O|1996-07-27|1996-07-03|1996-08-01|DELIVER IN PERSON|AIR|t the dogged, un|
-2531|157|2|2|3|3171.45|0.07|0.06|N|O|1996-07-20|1996-06-20|1996-08-10|NONE|MAIL|he quickly ev|
-2531|86|7|3|20|19721.60|0.06|0.04|N|O|1996-07-18|1996-06-25|1996-07-29|TAKE BACK RETURN|TRUCK|into beans. furious|
-2531|191|5|4|36|39282.84|0.08|0.01|N|O|1996-06-11|1996-07-26|1996-06-27|NONE|MAIL|y ironic, bold packages. blithely e|
-2531|56|4|5|28|26769.40|0.03|0.07|N|O|1996-07-06|1996-07-31|1996-07-19|TAKE BACK RETURN|REG AIR|its. busily|
-2531|145|4|6|46|48076.44|0.10|0.08|N|O|1996-07-03|1996-06-27|1996-07-12|TAKE BACK RETURN|REG AIR|e final, bold pains. ir|
-2532|53|4|1|3|2859.15|0.06|0.07|N|O|1995-12-14|1995-11-28|1995-12-15|COLLECT COD|FOB|unusual sentiments. even pinto|
-2532|160|2|2|33|34985.28|0.06|0.05|N|O|1995-11-23|1996-01-04|1995-12-16|DELIVER IN PERSON|TRUCK|rve carefully slyly ironic accounts! fluf|
-2532|135|1|3|1|1035.13|0.00|0.06|N|O|1996-01-27|1995-11-23|1996-01-29|DELIVER IN PERSON|REG AIR|ely final ideas cajole despite the ca|
-2532|78|8|4|50|48903.50|0.02|0.02|N|O|1995-11-13|1996-01-01|1995-11-26|NONE|TRUCK|yly after the fluffily regul|
-2532|114|1|5|9|9126.99|0.09|0.04|N|O|1995-11-30|1995-11-23|1995-12-12|DELIVER IN PERSON|TRUCK|cial ideas haggle slyly pending request|
-2532|150|1|6|20|21003.00|0.09|0.05|N|O|1995-12-02|1995-11-26|1995-12-08|TAKE BACK RETURN|AIR|er the slyly pending|
-2533|54|9|1|36|34345.80|0.06|0.04|N|O|1997-06-10|1997-04-28|1997-07-01|NONE|REG AIR|ss requests sleep neve|
-2533|198|10|2|5|5490.95|0.10|0.04|N|O|1997-05-26|1997-06-02|1997-06-24|NONE|FOB|ccounts. ironic, special accounts boo|
-2533|183|4|3|37|40077.66|0.00|0.08|N|O|1997-05-10|1997-04-26|1997-05-28|COLLECT COD|SHIP| haggle carefully |
-2533|30|5|4|17|15810.51|0.06|0.02|N|O|1997-05-23|1997-05-10|1997-06-18|NONE|FOB|ackages. blith|
-2533|126|1|5|38|38992.56|0.09|0.00|N|O|1997-05-10|1997-06-02|1997-05-28|TAKE BACK RETURN|REG AIR|of the regular accounts. even packages caj|
-2533|184|5|6|20|21683.60|0.05|0.08|N|O|1997-07-04|1997-04-30|1997-07-05|COLLECT COD|FOB|thless excuses are b|
-2533|94|7|7|14|13917.26|0.06|0.04|N|O|1997-07-06|1997-05-08|1997-08-03|COLLECT COD|FOB|ut the pending, special depos|
-2534|139|5|1|29|30134.77|0.07|0.07|N|O|1996-08-09|1996-09-29|1996-08-11|COLLECT COD|TRUCK|ugouts haggle slyly. final|
-2534|27|6|2|49|45423.98|0.08|0.08|N|O|1996-09-01|1996-08-20|1996-09-06|NONE|SHIP|sometimes regular requests. blithely unus|
-2534|1|4|3|50|45050.00|0.10|0.06|N|O|1996-09-25|1996-10-07|1996-10-09|TAKE BACK RETURN|AIR|ideas. deposits use. slyly regular pa|
-2534|75|3|4|43|41928.01|0.09|0.02|N|O|1996-10-25|1996-09-30|1996-11-05|TAKE BACK RETURN|REG AIR|ngly final depos|
-2534|165|2|5|14|14912.24|0.05|0.02|N|O|1996-08-12|1996-09-26|1996-08-28|COLLECT COD|MAIL|eposits doze quickly final|
-2534|116|10|6|12|12193.32|0.02|0.02|N|O|1996-07-29|1996-10-12|1996-08-14|TAKE BACK RETURN|AIR|sual depos|
-2534|173|3|7|17|18243.89|0.02|0.07|N|O|1996-07-22|1996-09-15|1996-08-03|NONE|SHIP|riously regular |
-2535|199|2|1|5|5495.95|0.06|0.01|A|F|1993-09-07|1993-07-25|1993-09-29|DELIVER IN PERSON|REG AIR|, unusual reque|
-2535|39|5|2|12|11268.36|0.08|0.05|A|F|1993-07-17|1993-08-17|1993-07-31|TAKE BACK RETURN|FOB|uses sleep among the packages. excuses |
-2535|54|5|3|5|4770.25|0.09|0.06|R|F|1993-07-28|1993-08-14|1993-08-11|DELIVER IN PERSON|SHIP| across the express requests. silent, eve|
-2535|160|5|4|19|20143.04|0.01|0.02|A|F|1993-06-01|1993-08-01|1993-06-19|DELIVER IN PERSON|FOB|ructions. final requests|
-2535|174|3|5|25|26854.25|0.07|0.04|A|F|1993-07-19|1993-08-07|1993-07-27|NONE|REG AIR|ions believe ab|
-2560|169|10|1|41|43835.56|0.07|0.01|R|F|1992-10-23|1992-11-11|1992-11-22|NONE|SHIP| after the accounts. regular foxes are be|
-2560|4|9|2|27|24408.00|0.00|0.01|R|F|1992-12-03|1992-11-16|1992-12-30|NONE|MAIL| against the carefully|
-2560|46|5|3|31|29327.24|0.01|0.05|A|F|1992-11-14|1992-10-14|1992-12-11|DELIVER IN PERSON|AIR|to beans. blithely regular Tiresias int|
-2560|72|1|4|36|34994.52|0.01|0.02|A|F|1992-10-18|1992-10-30|1992-11-05|TAKE BACK RETURN|MAIL|accounts alongside of the excuses are |
-2560|42|1|5|9|8478.36|0.04|0.02|A|F|1992-10-23|1992-10-29|1992-11-02|COLLECT COD|REG AIR| deposits affix quickly. unusual, eve|
-2560|108|9|6|13|13105.30|0.03|0.06|A|F|1992-09-07|1992-10-21|1992-09-24|COLLECT COD|FOB|slyly final accoun|
-2561|25|4|1|32|29600.64|0.02|0.01|N|O|1998-01-05|1997-12-28|1998-01-26|DELIVER IN PERSON|REG AIR|bold packages wake slyly. slyly|
-2561|98|1|2|5|4990.45|0.07|0.04|N|O|1997-12-27|1998-01-23|1998-01-13|TAKE BACK RETURN|AIR|p ironic, regular pinto beans.|
-2561|173|4|3|47|50438.99|0.04|0.02|N|O|1997-11-19|1998-01-21|1997-12-03|DELIVER IN PERSON|REG AIR|larly pending t|
-2561|108|9|4|39|39315.90|0.08|0.06|N|O|1998-01-20|1997-12-16|1998-02-05|TAKE BACK RETURN|MAIL|equests are furiously against the|
-2561|150|3|5|2|2100.30|0.04|0.08|N|O|1998-03-14|1998-01-21|1998-03-27|DELIVER IN PERSON|TRUCK|s are. silently silent foxes sleep about|
-2561|51|6|6|14|13314.70|0.02|0.03|N|O|1998-03-07|1998-02-04|1998-03-21|COLLECT COD|RAIL|ep unusual, ironic accounts|
-2562|53|5|1|28|26685.40|0.04|0.03|R|F|1992-10-04|1992-09-24|1992-10-09|COLLECT COD|MAIL|ans haggle special, special packages. |
-2562|148|9|2|1|1048.14|0.01|0.06|R|F|1992-10-16|1992-09-18|1992-10-17|NONE|TRUCK| slyly final ideas haggle car|
-2562|66|7|3|25|24151.50|0.05|0.03|A|F|1992-11-23|1992-10-08|1992-12-19|DELIVER IN PERSON|REG AIR| accounts-- silent, unusual ideas a|
-2562|148|1|4|37|38781.18|0.08|0.03|R|F|1992-10-29|1992-10-06|1992-11-09|COLLECT COD|FOB|. slyly regular ideas according to the fl|
-2562|160|8|5|29|30744.64|0.05|0.08|A|F|1992-11-01|1992-09-29|1992-11-13|TAKE BACK RETURN|MAIL|eep against the furiously r|
-2562|50|7|6|17|16150.85|0.01|0.06|A|F|1992-10-15|1992-10-08|1992-10-26|DELIVER IN PERSON|TRUCK|lar pinto beans. blithely ev|
-2563|65|4|1|10|9650.60|0.07|0.04|A|F|1994-01-26|1993-12-19|1994-01-28|DELIVER IN PERSON|AIR|tealthily abo|
-2563|167|4|2|28|29880.48|0.04|0.03|R|F|1994-03-17|1994-02-04|1994-04-13|TAKE BACK RETURN|RAIL|hely regular depe|
-2563|119|9|3|39|39745.29|0.07|0.00|R|F|1994-02-10|1993-12-31|1994-02-19|COLLECT COD|FOB|lent requests should integrate; carefully e|
-2563|90|1|4|50|49504.50|0.01|0.01|A|F|1994-01-26|1994-01-03|1994-02-09|DELIVER IN PERSON|SHIP|ly regular, regular excuses. bold plate|
-2563|15|6|5|42|38430.42|0.06|0.08|R|F|1994-02-21|1994-02-14|1994-03-04|DELIVER IN PERSON|AIR|ymptotes nag furiously slyly even inst|
-2563|121|2|6|5|5105.60|0.10|0.00|R|F|1993-12-27|1993-12-19|1994-01-02|DELIVER IN PERSON|REG AIR| the quickly final theodolite|
-2564|112|3|1|4|4048.44|0.02|0.00|R|F|1994-11-12|1994-10-29|1994-12-04|NONE|MAIL|y express requests sleep furi|
-2565|144|5|1|42|43853.88|0.04|0.08|N|O|1998-04-07|1998-04-02|1998-05-04|NONE|AIR|ngly silent |
-2565|189|10|2|26|28318.68|0.05|0.08|N|O|1998-05-07|1998-04-09|1998-05-15|DELIVER IN PERSON|TRUCK| pinto beans about the slyly regula|
-2565|115|5|3|34|34513.74|0.06|0.06|N|O|1998-03-19|1998-04-12|1998-04-17|DELIVER IN PERSON|SHIP|nstructions was carefu|
-2565|17|7|4|25|22925.25|0.10|0.08|N|O|1998-06-27|1998-05-20|1998-07-13|DELIVER IN PERSON|RAIL|, express accounts. final id|
-2565|76|7|5|26|25377.82|0.08|0.03|N|O|1998-03-05|1998-04-11|1998-03-11|TAKE BACK RETURN|AIR|ites wake. ironic acco|
-2565|141|4|6|48|49974.72|0.08|0.07|N|O|1998-06-18|1998-05-06|1998-07-13|DELIVER IN PERSON|TRUCK|r instructions sleep qui|
-2566|148|5|1|19|19914.66|0.06|0.07|R|F|1992-12-21|1992-11-24|1992-12-22|DELIVER IN PERSON|MAIL|ests. silent|
-2566|181|2|2|42|45409.56|0.08|0.02|R|F|1992-12-20|1992-12-22|1992-12-29|COLLECT COD|MAIL|ously ironic accounts|
-2566|23|8|3|18|16614.36|0.09|0.02|A|F|1992-11-16|1992-12-24|1992-12-16|COLLECT COD|FOB| braids according t|
-2566|42|9|4|3|2826.12|0.05|0.02|A|F|1992-11-04|1992-12-30|1992-12-04|TAKE BACK RETURN|FOB|ckages are ironic Tiresias. furious|
-2566|22|3|5|9|8298.18|0.04|0.03|R|F|1992-12-14|1992-12-28|1992-12-16|NONE|FOB|blithely bold accounts? quickl|
-2566|128|3|6|1|1028.12|0.07|0.03|A|F|1992-10-28|1992-11-20|1992-11-22|TAKE BACK RETURN|AIR|theodolites wake pending|
-2567|26|9|1|39|36114.78|0.03|0.04|N|O|1998-05-10|1998-05-10|1998-05-21|NONE|SHIP|ns. furiously final dependencies cajo|
-2567|112|3|2|50|50605.50|0.06|0.05|N|O|1998-05-05|1998-04-18|1998-05-09|DELIVER IN PERSON|TRUCK|. carefully pending foxes are furi|
-2567|52|10|3|6|5712.30|0.03|0.06|N|O|1998-04-21|1998-04-14|1998-05-11|NONE|RAIL|s cajole regular, final acco|
-2567|158|6|4|50|52907.50|0.05|0.03|N|O|1998-03-27|1998-05-25|1998-04-23|DELIVER IN PERSON|FOB|pinto beans? r|
-2567|81|2|5|46|45129.68|0.07|0.02|N|O|1998-06-02|1998-04-30|1998-06-13|COLLECT COD|AIR|efully pending epitaphs. carefully reg|
-2567|100|3|6|32|32003.20|0.01|0.07|N|O|1998-05-24|1998-04-30|1998-06-14|NONE|RAIL| the even, iro|
-2567|135|6|7|43|44510.59|0.06|0.02|N|O|1998-05-11|1998-04-15|1998-05-29|NONE|RAIL|requests. final courts cajole |
-2592|90|1|1|7|6930.63|0.10|0.04|R|F|1993-03-13|1993-04-25|1993-04-01|NONE|REG AIR| carefully special theodolites integrate |
-2592|66|1|2|2|1932.12|0.10|0.00|A|F|1993-03-24|1993-04-05|1993-04-16|DELIVER IN PERSON|RAIL|side of the b|
-2593|105|2|1|37|37188.70|0.08|0.06|R|F|1993-12-14|1993-10-08|1994-01-04|NONE|SHIP|s wake bravel|
-2593|90|1|2|28|27722.52|0.08|0.03|A|F|1993-10-30|1993-10-18|1993-11-06|DELIVER IN PERSON|SHIP|y even escapades shall|
-2593|128|3|3|6|6168.72|0.04|0.05|A|F|1993-11-28|1993-10-04|1993-12-28|TAKE BACK RETURN|REG AIR|ular packages. re|
-2593|161|10|4|44|46691.04|0.02|0.08|A|F|1993-09-05|1993-10-23|1993-09-29|NONE|RAIL|ents impress furiously; unusual theodoli|
-2593|4|5|5|3|2712.00|0.03|0.00|A|F|1993-12-16|1993-11-01|1993-12-29|COLLECT COD|SHIP|the furiously |
-2593|175|6|6|1|1075.17|0.08|0.08|A|F|1993-11-23|1993-10-25|1993-12-04|DELIVER IN PERSON|RAIL| accounts wake slyly |
-2593|192|5|7|11|12014.09|0.00|0.07|R|F|1993-11-01|1993-11-19|1993-11-28|TAKE BACK RETURN|RAIL|express packages sleep bold re|
-2594|72|3|1|7|6804.49|0.06|0.02|R|F|1993-03-26|1993-03-05|1993-04-24|DELIVER IN PERSON|FOB|arls cajole |
-2594|124|9|2|13|13313.56|0.10|0.05|R|F|1993-02-06|1993-03-01|1993-02-23|TAKE BACK RETURN|TRUCK|fully special accounts use courts|
-2594|126|1|3|24|24626.88|0.03|0.00|A|F|1993-01-31|1993-03-10|1993-02-04|COLLECT COD|REG AIR|lar accounts sleep fur|
-2594|144|7|4|46|48030.44|0.00|0.08|R|F|1993-04-17|1993-03-06|1993-04-21|TAKE BACK RETURN|SHIP|beans. instructions across t|
-2595|61|2|1|42|40364.52|0.08|0.02|N|O|1996-03-24|1996-01-28|1996-04-10|DELIVER IN PERSON|MAIL|ggle furiou|
-2595|88|9|2|30|29642.40|0.05|0.01|N|O|1996-03-05|1996-02-23|1996-03-19|NONE|AIR|ctions. regula|
-2595|24|3|3|19|17556.38|0.01|0.05|N|O|1995-12-23|1996-03-02|1996-01-17|COLLECT COD|MAIL|ns are neve|
-2595|159|1|4|29|30715.35|0.07|0.05|N|O|1996-01-01|1996-02-13|1996-01-18|TAKE BACK RETURN|RAIL|ronic accounts haggle carefully fin|
-2595|86|7|5|30|29582.40|0.09|0.07|N|O|1996-03-16|1996-01-31|1996-04-05|TAKE BACK RETURN|FOB|. final orbits cajole |
-2595|82|3|6|31|30444.48|0.06|0.04|N|O|1996-02-07|1996-02-10|1996-03-05|DELIVER IN PERSON|AIR|tipliers w|
-2596|170|5|1|6|6421.02|0.05|0.01|N|O|1996-12-15|1996-11-02|1996-12-29|TAKE BACK RETURN|TRUCK|ily special re|
-2596|139|10|2|43|44682.59|0.07|0.03|N|O|1996-09-03|1996-10-26|1996-09-15|NONE|FOB|ial packages haggl|
-2596|39|5|3|19|17841.57|0.10|0.00|N|O|1996-09-02|1996-11-03|1996-09-06|COLLECT COD|AIR|ias mold! sp|
-2596|105|6|4|10|10051.00|0.06|0.05|N|O|1996-08-25|1996-11-05|1996-09-13|DELIVER IN PERSON|REG AIR| instructions shall have|
-2597|84|5|1|24|23617.92|0.07|0.00|A|F|1993-05-15|1993-03-06|1993-05-25|TAKE BACK RETURN|FOB|pending packages. enticingly fi|
-2598|7|4|1|12|10884.00|0.00|0.01|N|O|1996-06-17|1996-04-12|1996-06-24|COLLECT COD|TRUCK|express packages nag sly|
-2598|148|7|2|40|41925.60|0.07|0.02|N|O|1996-05-11|1996-05-19|1996-06-08|TAKE BACK RETURN|AIR|the enticing|
-2598|104|9|3|4|4016.40|0.03|0.03|N|O|1996-05-23|1996-05-13|1996-05-25|COLLECT COD|AIR| across the furiously fi|
-2598|23|2|4|19|17537.38|0.02|0.00|N|O|1996-04-09|1996-05-30|1996-04-17|TAKE BACK RETURN|RAIL|nic packages. even accounts|
-2598|106|3|5|12|12073.20|0.01|0.08|N|O|1996-04-14|1996-04-24|1996-04-21|TAKE BACK RETURN|REG AIR|eposits cajol|
-2599|101|4|1|11|11012.10|0.08|0.08|N|O|1997-02-01|1996-12-14|1997-02-27|TAKE BACK RETURN|FOB| express accoun|
-2599|42|5|2|26|24493.04|0.03|0.04|N|O|1996-11-08|1996-12-21|1996-11-24|TAKE BACK RETURN|AIR|nag carefully |
-2599|99|10|3|29|28973.61|0.09|0.03|N|O|1997-01-10|1996-12-10|1997-02-02|COLLECT COD|RAIL|ly express dolphins. special, |
-2624|63|10|1|15|14445.90|0.03|0.07|N|O|1997-02-28|1997-02-19|1997-03-21|DELIVER IN PERSON|AIR|le. quickly pending requests|
-2624|189|10|2|12|13070.16|0.07|0.00|N|O|1997-02-24|1997-02-22|1997-02-27|DELIVER IN PERSON|SHIP|er the quickly unu|
-2625|20|1|1|42|38640.84|0.02|0.04|R|F|1992-10-18|1992-11-17|1992-10-23|DELIVER IN PERSON|AIR| even accounts haggle furiously|
-2626|22|5|1|45|41490.90|0.09|0.04|N|O|1995-11-22|1995-11-01|1995-11-23|NONE|AIR|deposits wake blithely according to |
-2626|175|3|2|2|2150.34|0.05|0.07|N|O|1995-10-19|1995-11-09|1995-10-24|TAKE BACK RETURN|FOB|uffy accounts haggle furiously above|
-2626|154|2|3|40|42166.00|0.05|0.07|N|O|1995-09-28|1995-12-03|1995-10-10|NONE|REG AIR|eans. ironic deposits haggle. depo|
-2627|131|7|1|28|28871.64|0.09|0.02|R|F|1992-05-14|1992-05-09|1992-05-31|COLLECT COD|SHIP|ggedly final excuses nag packages. f|
-2628|106|9|1|44|44268.40|0.07|0.03|R|F|1994-01-11|1994-01-14|1994-01-13|DELIVER IN PERSON|SHIP|lyly final, pending ide|
-2628|106|9|2|14|14085.40|0.01|0.03|A|F|1994-01-28|1993-11-30|1994-02-20|TAKE BACK RETURN|SHIP|g the furiously unusual pi|
-2628|64|9|3|42|40490.52|0.00|0.00|A|F|1993-11-20|1994-01-04|1993-12-19|DELIVER IN PERSON|TRUCK|ld notornis alongside |
-2628|95|7|4|23|22887.07|0.08|0.04|A|F|1993-10-27|1994-01-08|1993-11-12|DELIVER IN PERSON|TRUCK|usual packages sleep about the fina|
-2628|90|1|5|50|49504.50|0.07|0.01|A|F|1994-01-13|1993-12-11|1994-01-14|NONE|AIR|posits serve carefully toward |
-2629|118|9|1|6|6108.66|0.06|0.05|N|O|1998-06-10|1998-05-29|1998-06-13|DELIVER IN PERSON|SHIP|dolites hinder bli|
-2629|124|7|2|31|31747.72|0.08|0.03|N|O|1998-05-24|1998-05-26|1998-06-10|COLLECT COD|AIR|ate blithely bold, regular deposits. bold|
-2629|128|9|3|29|29815.48|0.08|0.07|N|O|1998-07-09|1998-06-17|1998-07-12|TAKE BACK RETURN|AIR|eposits serve unusual, express i|
-2629|70|5|4|33|32012.31|0.06|0.03|N|O|1998-05-29|1998-05-14|1998-05-30|NONE|TRUCK|es. slowly express accounts are along the|
-2630|29|8|1|46|42734.92|0.05|0.03|R|F|1992-11-05|1992-12-17|1992-12-05|TAKE BACK RETURN|MAIL|uests cajole. e|
-2630|57|2|2|8|7656.40|0.09|0.07|A|F|1992-11-16|1993-01-01|1992-12-07|DELIVER IN PERSON|TRUCK|indle fluffily silent, ironic pi|
-2630|173|2|3|45|48292.65|0.08|0.07|A|F|1993-01-04|1993-01-11|1993-01-09|NONE|FOB|edly express ideas. carefully final |
-2630|162|9|4|29|30802.64|0.08|0.07|A|F|1992-12-03|1993-01-04|1992-12-12|DELIVER IN PERSON|SHIP|efully unusual dependencies. even i|
-2631|122|7|1|42|42929.04|0.00|0.03|A|F|1994-01-04|1993-12-01|1994-01-16|TAKE BACK RETURN|SHIP|ect carefully at the furiously final the|
-2631|67|4|2|4|3868.24|0.07|0.06|R|F|1993-11-03|1993-12-17|1993-11-05|COLLECT COD|AIR|special theodolites. a|
-2631|118|8|3|15|15271.65|0.06|0.05|A|F|1993-09-30|1993-11-06|1993-10-13|DELIVER IN PERSON|SHIP|y. furiously even pinto be|
-2656|181|2|1|10|10811.80|0.02|0.06|R|F|1993-06-28|1993-07-04|1993-07-12|TAKE BACK RETURN|TRUCK|s nag regularly about the deposits. slyly|
-2656|137|8|2|38|39410.94|0.07|0.02|A|F|1993-06-25|1993-06-04|1993-07-24|NONE|RAIL|structions wake along the furio|
-2656|2|5|3|19|17138.00|0.03|0.02|R|F|1993-08-03|1993-07-25|1993-08-20|TAKE BACK RETURN|MAIL|ts serve deposi|
-2656|110|3|4|40|40404.40|0.05|0.04|R|F|1993-06-09|1993-07-24|1993-06-21|DELIVER IN PERSON|RAIL|refully final pearls. final ideas wake. qu|
-2657|115|9|1|22|22332.42|0.02|0.03|N|O|1995-12-08|1995-12-28|1995-12-21|TAKE BACK RETURN|MAIL|r ideas. furiously special dolphins|
-2657|165|2|2|15|15977.40|0.08|0.05|N|O|1995-12-09|1995-12-16|1995-12-18|NONE|RAIL|ole carefully above the ironic ideas. b|
-2657|79|9|3|25|24476.75|0.02|0.04|N|O|1995-10-21|1995-12-12|1995-11-09|COLLECT COD|FOB|lly pinto beans. final |
-2657|55|7|4|11|10505.55|0.04|0.08|N|O|1995-11-19|1995-12-11|1995-11-24|COLLECT COD|TRUCK|ckly enticing requests. fur|
-2657|78|9|5|42|41078.94|0.06|0.03|N|O|1996-01-23|1995-11-22|1996-01-25|COLLECT COD|RAIL|ckly slyly even accounts. platelets x-ray|
-2657|194|7|6|31|33919.89|0.01|0.03|N|O|1995-11-10|1995-11-27|1995-12-06|COLLECT COD|RAIL|re blithely |
-2658|132|3|1|41|42317.33|0.05|0.04|N|O|1995-11-07|1995-11-04|1995-12-04|NONE|MAIL|eposits. furiously final theodolite|
-2658|29|4|2|22|20438.44|0.08|0.05|N|O|1995-11-12|1995-11-18|1995-11-14|DELIVER IN PERSON|TRUCK|ts cajole. pending packages affix|
-2658|18|5|3|13|11934.13|0.07|0.06|N|O|1995-10-24|1995-12-12|1995-11-14|COLLECT COD|FOB|s kindle blithely regular accounts.|
-2658|92|5|4|22|21825.98|0.04|0.04|N|O|1995-12-02|1995-11-03|1995-12-26|DELIVER IN PERSON|SHIP| dependencies. blithely pending foxes abou|
-2658|7|8|5|45|40815.00|0.03|0.01|N|O|1995-11-02|1995-11-08|1995-11-29|DELIVER IN PERSON|MAIL|e special requests. quickly ex|
-2658|147|4|6|27|28272.78|0.05|0.07|N|O|1995-09-26|1995-12-08|1995-09-30|NONE|AIR|ecial packages use abov|
-2659|42|1|1|28|26377.12|0.08|0.05|A|F|1994-03-17|1994-01-24|1994-03-19|NONE|FOB|idle tithes|
-2659|43|2|2|21|19803.84|0.00|0.00|A|F|1993-12-23|1994-02-10|1994-01-17|DELIVER IN PERSON|RAIL|y beyond the furiously even co|
-2659|135|1|3|24|24843.12|0.04|0.03|R|F|1994-03-28|1994-02-20|1994-04-05|DELIVER IN PERSON|REG AIR| haggle carefully |
-2659|119|6|4|2|2038.22|0.00|0.08|R|F|1994-02-19|1994-03-12|1994-02-21|NONE|MAIL|sts above the fluffily express fo|
-2659|7|4|5|9|8163.00|0.08|0.03|A|F|1994-02-07|1994-03-17|1994-03-04|DELIVER IN PERSON|AIR|ly final packages sleep ac|
-2660|48|7|1|17|16116.68|0.00|0.05|N|O|1995-08-18|1995-09-13|1995-09-17|NONE|SHIP|al pinto beans wake after the furious|
-2661|178|9|1|31|33423.27|0.03|0.02|N|O|1997-04-07|1997-03-10|1997-04-23|TAKE BACK RETURN|AIR|e ironicall|
-2661|103|8|2|22|22068.20|0.08|0.02|N|O|1997-03-14|1997-03-17|1997-04-08|COLLECT COD|REG AIR| foxes affix quickly ironic request|
-2661|67|6|3|11|10637.66|0.00|0.08|N|O|1997-04-14|1997-02-11|1997-05-05|TAKE BACK RETURN|FOB|equests are a|
-2661|137|8|4|41|42522.33|0.06|0.02|N|O|1997-03-06|1997-03-27|1997-03-15|DELIVER IN PERSON|AIR|iously ironically ironic requests. |
-2662|102|5|1|43|43090.30|0.09|0.07|N|O|1996-11-24|1996-11-04|1996-12-08|NONE|RAIL|. slyly specia|
-2662|128|9|2|8|8224.96|0.02|0.07|N|O|1996-09-10|1996-10-09|1996-09-21|TAKE BACK RETURN|REG AIR|ajole carefully. sp|
-2662|2|5|3|6|5412.00|0.02|0.00|N|O|1996-11-30|1996-09-20|1996-12-03|DELIVER IN PERSON|REG AIR|olites cajole quickly along the b|
-2662|30|1|4|34|31621.02|0.06|0.07|N|O|1996-10-04|1996-11-05|1996-10-19|NONE|SHIP|ding theodolites use carefully. p|
-2663|114|4|1|35|35493.85|0.02|0.01|N|O|1995-12-11|1995-10-16|1996-01-07|TAKE BACK RETURN|REG AIR|tect. slyly fina|
-2688|18|5|1|45|41310.45|0.08|0.08|R|F|1992-05-21|1992-04-14|1992-05-28|NONE|FOB|sits run carefully|
-2688|15|6|2|46|42090.46|0.01|0.01|R|F|1992-05-24|1992-04-01|1992-05-26|COLLECT COD|TRUCK|elets. regular reque|
-2688|89|10|3|30|29672.40|0.05|0.04|A|F|1992-04-18|1992-03-18|1992-05-18|TAKE BACK RETURN|RAIL|ithely final |
-2688|25|10|4|3|2775.06|0.00|0.03|R|F|1992-02-04|1992-03-18|1992-02-24|DELIVER IN PERSON|RAIL|e fluffily |
-2688|59|10|5|22|21099.10|0.02|0.05|R|F|1992-02-09|1992-04-09|1992-02-11|DELIVER IN PERSON|RAIL|press, ironic excuses wake carefully id|
-2688|149|10|6|42|44063.88|0.01|0.01|R|F|1992-04-29|1992-04-04|1992-05-17|TAKE BACK RETURN|FOB|lly even account|
-2689|6|1|1|45|40770.00|0.02|0.04|R|F|1992-04-29|1992-06-22|1992-04-30|COLLECT COD|SHIP|e quickly. carefully silent|
-2690|140|1|1|44|45766.16|0.05|0.06|N|O|1996-05-30|1996-05-19|1996-06-26|NONE|REG AIR|ly alongside of th|
-2690|51|2|2|50|47552.50|0.03|0.03|N|O|1996-06-13|1996-05-22|1996-06-14|DELIVER IN PERSON|MAIL| doubt careful|
-2690|125|6|3|45|46130.40|0.02|0.07|N|O|1996-05-23|1996-06-02|1996-05-29|DELIVER IN PERSON|MAIL|ounts. slyly regular dependencies wa|
-2690|195|6|4|12|13142.28|0.04|0.07|N|O|1996-07-18|1996-06-03|1996-07-25|NONE|AIR|nal, regular atta|
-2690|86|7|5|30|29582.40|0.01|0.08|N|O|1996-05-20|1996-06-01|1996-06-04|TAKE BACK RETURN|SHIP|d accounts above the express req|
-2690|189|10|6|3|3267.54|0.07|0.01|N|O|1996-07-04|1996-05-28|1996-07-06|TAKE BACK RETURN|RAIL|. final reques|
-2690|79|7|7|35|34267.45|0.05|0.06|N|O|1996-07-25|1996-05-14|1996-08-03|COLLECT COD|FOB|y silent pinto be|
-2691|91|3|1|11|10901.99|0.04|0.07|R|F|1992-06-21|1992-06-08|1992-07-09|COLLECT COD|FOB|leep alongside of the accounts. slyly ironi|
-2691|48|7|2|2|1896.08|0.00|0.07|R|F|1992-05-10|1992-06-04|1992-05-11|TAKE BACK RETURN|TRUCK|s cajole at the blithely ironic warthog|
-2691|162|3|3|16|16994.56|0.09|0.03|R|F|1992-06-11|1992-07-29|1992-06-29|NONE|RAIL|bove the even foxes. unusual theodoli|
-2691|166|3|4|1|1066.16|0.08|0.00|A|F|1992-08-11|1992-06-07|1992-08-16|NONE|SHIP|egular instructions b|
-2692|17|1|1|3|2751.03|0.10|0.04|N|O|1998-02-25|1998-01-29|1998-03-27|TAKE BACK RETURN|MAIL|equests. bold, even foxes haggle slyl|
-2692|114|1|2|21|21296.31|0.03|0.05|N|O|1998-03-11|1998-02-11|1998-03-19|NONE|SHIP|posits. final, express requests nag furi|
-2693|9|10|1|26|23634.00|0.04|0.00|N|O|1996-09-14|1996-10-07|1996-10-03|COLLECT COD|MAIL|cajole alo|
-2693|102|3|2|43|43090.30|0.03|0.04|N|O|1996-10-24|1996-10-24|1996-11-03|TAKE BACK RETURN|TRUCK|as are according to th|
-2694|153|1|1|30|31594.50|0.02|0.06|N|O|1996-06-20|1996-06-01|1996-07-15|NONE|TRUCK|oxes. never iro|
-2694|157|2|2|35|37000.25|0.07|0.03|N|O|1996-05-24|1996-06-01|1996-05-25|NONE|RAIL|atelets past the furiously final deposits |
-2694|19|3|3|15|13785.15|0.08|0.02|N|O|1996-06-30|1996-05-01|1996-07-25|TAKE BACK RETURN|REG AIR|e blithely even platelets. special wa|
-2694|20|10|4|12|11040.24|0.00|0.05|N|O|1996-04-24|1996-04-22|1996-05-14|DELIVER IN PERSON|RAIL|foxes atop the hockey pla|
-2694|108|9|5|10|10081.00|0.08|0.08|N|O|1996-06-23|1996-05-28|1996-06-27|COLLECT COD|REG AIR|fluffily fluffy accounts. even packages hi|
-2695|184|5|1|21|22767.78|0.07|0.00|N|O|1996-10-04|1996-11-02|1996-10-21|NONE|MAIL|y regular pinto beans. evenly regular packa|
-2695|19|9|2|44|40436.44|0.09|0.07|N|O|1996-10-05|1996-10-10|1996-11-01|NONE|MAIL|ts. busy platelets boost|
-2695|144|7|3|21|21926.94|0.02|0.07|N|O|1996-09-13|1996-09-25|1996-10-13|NONE|TRUCK|s. furiously ironic platelets ar|
-2695|58|6|4|16|15328.80|0.08|0.08|N|O|1996-11-16|1996-10-05|1996-11-22|NONE|TRUCK|its. theodolites sleep slyly|
-2695|86|7|5|40|39443.20|0.02|0.03|N|O|1996-11-02|1996-10-26|1996-11-14|NONE|FOB|ructions. pending|
-2720|45|6|1|5|4725.20|0.10|0.06|A|F|1993-06-24|1993-08-08|1993-07-08|NONE|FOB|ously ironic foxes thrash|
-2720|17|8|2|42|38514.42|0.09|0.03|R|F|1993-07-25|1993-07-23|1993-08-23|COLLECT COD|REG AIR|fter the inst|
-2720|120|1|3|50|51006.00|0.10|0.02|A|F|1993-08-10|1993-07-29|1993-09-06|NONE|SHIP|l requests. deposits nag furiously|
-2720|109|2|4|49|49445.90|0.06|0.02|A|F|1993-07-09|1993-07-14|1993-07-13|NONE|REG AIR| accounts. fluffily bold pack|
-2720|121|6|5|27|27570.24|0.04|0.00|R|F|1993-06-29|1993-08-06|1993-07-28|NONE|TRUCK|eas. carefully regular |
-2721|183|4|1|49|53075.82|0.00|0.08|N|O|1996-02-14|1996-04-26|1996-03-02|DELIVER IN PERSON|AIR|ounts poach carefu|
-2721|3|4|2|2|1806.00|0.02|0.05|N|O|1996-02-13|1996-03-14|1996-02-28|TAKE BACK RETURN|TRUCK| slyly final requests against |
-2722|124|7|1|21|21506.52|0.09|0.01|A|F|1994-07-29|1994-06-26|1994-08-09|NONE|RAIL|e carefully around the furiously ironic pac|
-2722|146|7|2|15|15692.10|0.05|0.03|R|F|1994-07-02|1994-06-01|1994-07-13|COLLECT COD|AIR|refully final asympt|
-2722|34|10|3|16|14944.48|0.04|0.06|R|F|1994-05-25|1994-06-09|1994-05-26|NONE|MAIL|ts besides the fluffy,|
-2723|13|7|1|47|42911.47|0.09|0.07|N|O|1995-12-05|1995-11-19|1995-12-11|TAKE BACK RETURN|AIR|furiously r|
-2723|32|3|2|10|9320.30|0.06|0.08|N|O|1995-11-27|1995-11-29|1995-12-12|DELIVER IN PERSON|MAIL|al, special r|
-2723|162|1|3|2|2124.32|0.10|0.01|N|O|1995-11-09|1995-11-10|1995-11-14|TAKE BACK RETURN|FOB| courts boost quickly about th|
-2723|82|3|4|12|11784.96|0.01|0.05|N|O|1995-12-24|1995-11-15|1996-01-17|DELIVER IN PERSON|RAIL|bold foxes are bold packages. regular, fin|
-2723|129|10|5|40|41164.80|0.09|0.05|N|O|1995-11-17|1995-11-22|1995-11-18|TAKE BACK RETURN|MAIL|unwind fluffily carefully regular realms.|
-2724|92|4|1|47|46628.23|0.09|0.01|A|F|1994-11-23|1994-11-13|1994-12-03|COLLECT COD|TRUCK|unusual patterns nag. special p|
-2724|147|8|2|21|21989.94|0.09|0.02|A|F|1994-11-25|1994-10-15|1994-12-07|COLLECT COD|RAIL|as. carefully regular dependencies wak|
-2724|50|3|3|22|20901.10|0.04|0.06|A|F|1994-09-19|1994-11-18|1994-10-17|TAKE BACK RETURN|TRUCK|express fo|
-2724|35|6|4|1|935.03|0.07|0.03|A|F|1994-12-26|1994-11-27|1995-01-07|NONE|MAIL|lyly carefully blithe theodolites-- pl|
-2724|149|2|5|29|30425.06|0.05|0.06|A|F|1995-01-10|1994-11-17|1995-02-04|COLLECT COD|MAIL|l requests hagg|
-2725|118|2|1|23|23416.53|0.10|0.08|R|F|1994-08-25|1994-06-22|1994-08-28|TAKE BACK RETURN|REG AIR|y regular deposits. brave foxes |
-2725|5|8|2|41|37105.00|0.01|0.00|R|F|1994-07-05|1994-06-29|1994-08-02|DELIVER IN PERSON|TRUCK|ns sleep furiously c|
-2725|189|10|3|15|16337.70|0.07|0.03|R|F|1994-08-06|1994-08-09|1994-08-15|TAKE BACK RETURN|AIR|? furiously regular a|
-2726|1|6|1|50|45050.00|0.00|0.06|R|F|1993-03-04|1993-01-29|1993-03-28|COLLECT COD|TRUCK| furiously bold theodolites|
-2727|151|6|1|3|3153.45|0.03|0.01|N|O|1998-06-18|1998-06-06|1998-06-23|NONE|RAIL| the carefully regular foxes u|
-2752|31|2|1|41|38172.23|0.02|0.05|A|F|1994-03-02|1994-01-31|1994-03-06|DELIVER IN PERSON|AIR|tructions hag|
-2752|7|2|2|29|26303.00|0.02|0.04|R|F|1994-01-22|1994-01-08|1994-01-28|COLLECT COD|TRUCK|gly blithely re|
-2752|56|7|3|4|3824.20|0.08|0.00|A|F|1993-12-14|1994-02-13|1994-01-05|DELIVER IN PERSON|TRUCK|telets haggle. regular, final |
-2752|24|7|4|40|36960.80|0.09|0.06|A|F|1994-01-24|1994-01-18|1994-02-22|DELIVER IN PERSON|MAIL|into beans are after the sly|
-2752|126|5|5|22|22574.64|0.03|0.04|A|F|1994-03-20|1994-02-08|1994-04-01|TAKE BACK RETURN|TRUCK|equests nag. regular dependencies are furio|
-2752|170|5|6|21|22473.57|0.09|0.05|R|F|1994-01-01|1994-01-24|1994-01-24|COLLECT COD|SHIP| along the quickly |
-2752|199|10|7|38|41769.22|0.08|0.00|R|F|1994-02-23|1993-12-23|1994-03-24|DELIVER IN PERSON|SHIP|es boost. slyly silent ideas|
-2753|13|3|1|6|5478.06|0.10|0.04|A|F|1993-12-30|1994-01-28|1994-01-29|COLLECT COD|TRUCK|s accounts|
-2753|48|7|2|40|37921.60|0.03|0.05|A|F|1994-01-06|1994-02-13|1994-02-03|DELIVER IN PERSON|SHIP|latelets kindle slyly final depos|
-2753|89|10|3|30|29672.40|0.00|0.07|A|F|1994-01-26|1994-01-29|1994-02-02|NONE|RAIL|ans wake fluffily blithely iro|
-2753|31|7|4|7|6517.21|0.07|0.03|R|F|1994-02-11|1994-01-22|1994-03-10|DELIVER IN PERSON|AIR|xpress ideas detect b|
-2753|137|8|5|36|37336.68|0.04|0.08|R|F|1994-03-15|1994-01-03|1994-04-03|DELIVER IN PERSON|SHIP|gle slyly final c|
-2753|50|1|6|17|16150.85|0.01|0.08|A|F|1994-03-08|1994-01-17|1994-03-11|TAKE BACK RETURN|REG AIR| carefully bold deposits sublate s|
-2753|148|9|7|20|20962.80|0.01|0.06|R|F|1994-02-24|1994-02-04|1994-03-23|DELIVER IN PERSON|FOB| express pack|
-2754|149|6|1|4|4196.56|0.05|0.08|A|F|1994-07-13|1994-05-15|1994-08-02|NONE|REG AIR|blithely silent requests. regular depo|
-2754|177|5|2|19|20466.23|0.01|0.07|A|F|1994-06-27|1994-05-06|1994-06-28|NONE|FOB|latelets hag|
-2755|92|4|1|19|18849.71|0.10|0.00|R|F|1992-02-11|1992-03-15|1992-02-14|TAKE BACK RETURN|MAIL|furiously special deposits|
-2755|24|3|2|11|10164.22|0.03|0.08|A|F|1992-04-12|1992-05-07|1992-04-21|COLLECT COD|RAIL|egular excuses sleep carefully.|
-2755|64|3|3|21|20245.26|0.08|0.04|R|F|1992-02-13|1992-04-20|1992-03-02|NONE|AIR|furious re|
-2755|131|7|4|5|5155.65|0.01|0.00|A|F|1992-02-27|1992-04-07|1992-03-09|TAKE BACK RETURN|AIR|e the furi|
-2755|116|7|5|48|48773.28|0.05|0.06|R|F|1992-03-22|1992-03-10|1992-04-14|DELIVER IN PERSON|MAIL|yly even epitaphs for the |
-2756|118|9|1|35|35633.85|0.03|0.02|R|F|1994-06-08|1994-06-01|1994-06-21|TAKE BACK RETURN|AIR| deposits grow bold sheaves; iro|
-2756|80|9|2|47|46063.76|0.06|0.01|R|F|1994-05-10|1994-05-25|1994-05-13|NONE|AIR|e final, f|
-2756|105|8|3|31|31158.10|0.01|0.07|A|F|1994-07-27|1994-07-06|1994-08-22|TAKE BACK RETURN|TRUCK|en instructions use quickly.|
-2756|72|2|4|30|29162.10|0.00|0.04|A|F|1994-06-05|1994-06-30|1994-06-14|DELIVER IN PERSON|TRUCK|ular packages. regular deposi|
-2757|148|5|1|26|27251.64|0.07|0.00|N|O|1995-08-19|1995-10-02|1995-09-06|DELIVER IN PERSON|MAIL|around the blithely|
-2757|22|7|2|12|11064.24|0.07|0.08|N|O|1995-08-01|1995-09-04|1995-08-08|TAKE BACK RETURN|SHIP| regular, eve|
-2757|73|3|3|17|16542.19|0.10|0.04|N|O|1995-09-06|1995-09-27|1995-09-22|DELIVER IN PERSON|AIR|er the furiously silent |
-2757|140|1|4|25|26003.50|0.08|0.01|N|O|1995-11-09|1995-09-12|1995-11-23|NONE|AIR|uickly regular |
-2757|70|7|5|14|13580.98|0.04|0.05|N|O|1995-09-01|1995-08-24|1995-09-03|TAKE BACK RETURN|SHIP|special deposits u|
-2758|121|10|1|20|20422.40|0.02|0.04|N|O|1998-07-27|1998-09-10|1998-08-21|TAKE BACK RETURN|AIR|ptotes sleep furiously|
-2758|23|8|2|17|15691.34|0.10|0.06|N|O|1998-09-25|1998-10-03|1998-10-25|NONE|MAIL| accounts! qui|
-2758|26|5|3|1|926.02|0.06|0.02|N|O|1998-10-09|1998-09-15|1998-10-16|NONE|TRUCK|ake furious|
-2759|59|1|1|10|9590.50|0.10|0.03|R|F|1993-12-14|1994-01-08|1994-01-01|COLLECT COD|FOB|s. busily ironic theodo|
-2759|113|10|2|37|37485.07|0.00|0.06|R|F|1994-03-05|1994-02-22|1994-03-18|DELIVER IN PERSON|REG AIR|lar Tiresias affix ironically carefully sp|
-2759|112|9|3|11|11133.21|0.03|0.08|A|F|1994-01-24|1994-01-16|1994-02-21|DELIVER IN PERSON|TRUCK|hely regular |
-2759|23|2|4|31|28613.62|0.02|0.05|A|F|1994-01-11|1994-01-15|1994-01-23|NONE|SHIP|ithely aft|
-2784|33|4|1|45|41986.35|0.03|0.01|N|O|1998-02-15|1998-04-07|1998-02-26|COLLECT COD|AIR|yly along the asymptotes. reque|
-2784|54|5|2|23|21943.15|0.03|0.05|N|O|1998-03-28|1998-02-07|1998-04-17|DELIVER IN PERSON|AIR|uests lose after |
-2784|175|4|3|40|43006.80|0.07|0.01|N|O|1998-04-28|1998-03-19|1998-05-03|DELIVER IN PERSON|TRUCK|deas nag furiously never unusual |
-2784|29|10|4|3|2787.06|0.04|0.03|N|O|1998-01-19|1998-04-05|1998-02-05|TAKE BACK RETURN|AIR|n packages. foxes haggle quickly sile|
-2785|100|3|1|34|34003.40|0.08|0.06|N|O|1995-08-07|1995-09-09|1995-09-05|NONE|RAIL|ly final packages haggl|
-2785|110|7|2|37|37374.07|0.08|0.04|N|O|1995-07-25|1995-09-12|1995-08-06|DELIVER IN PERSON|TRUCK|tructions. furiously |
-2785|65|10|3|33|31846.98|0.08|0.06|N|O|1995-10-16|1995-08-24|1995-11-02|DELIVER IN PERSON|MAIL|fter the furiously final p|
-2785|48|1|4|34|32233.36|0.00|0.02|N|O|1995-09-16|1995-09-09|1995-10-11|COLLECT COD|SHIP|kages wake carefully silent |
-2786|136|2|1|15|15541.95|0.03|0.04|A|F|1992-05-19|1992-05-08|1992-05-28|COLLECT COD|TRUCK|low deposits are ironic|
-2786|51|3|2|42|39944.10|0.10|0.04|R|F|1992-05-15|1992-04-22|1992-05-30|DELIVER IN PERSON|AIR|unts are against the furious|
-2786|156|1|3|41|43302.15|0.04|0.05|R|F|1992-07-01|1992-06-04|1992-07-13|COLLECT COD|RAIL|ix requests. bold requests a|
-2786|23|4|4|24|22152.48|0.05|0.02|A|F|1992-04-04|1992-06-09|1992-05-02|DELIVER IN PERSON|MAIL|ans. slyly unusual platelets detect. unus|
-2786|50|3|5|43|40852.15|0.06|0.03|R|F|1992-04-22|1992-05-13|1992-04-29|NONE|RAIL|ons. theodolites after|
-2786|162|1|6|21|22305.36|0.08|0.00|A|F|1992-05-03|1992-05-01|1992-05-14|COLLECT COD|AIR|slow instructi|
-2787|33|9|1|4|3732.12|0.04|0.04|N|O|1996-01-26|1995-11-26|1996-02-20|TAKE BACK RETURN|SHIP|ts. instructions nag furiously according |
-2788|177|8|1|16|17234.72|0.06|0.06|A|F|1994-10-04|1994-11-25|1994-10-18|DELIVER IN PERSON|AIR| requests wake carefully. carefully si|
-2789|163|8|1|16|17010.56|0.03|0.02|N|O|1998-04-18|1998-05-25|1998-05-12|DELIVER IN PERSON|REG AIR|o beans use carefully|
-2789|23|4|2|41|37843.82|0.02|0.05|N|O|1998-03-20|1998-05-15|1998-03-21|COLLECT COD|MAIL|d packages-- fluffily specia|
-2789|176|5|3|33|35513.61|0.06|0.02|N|O|1998-04-21|1998-05-02|1998-04-30|COLLECT COD|TRUCK|deposits. ironic |
-2789|16|3|4|47|43052.47|0.02|0.04|N|O|1998-03-29|1998-05-05|1998-04-07|NONE|RAIL|usly busy packages wake against the unusual|
-2789|197|1|5|23|25235.37|0.02|0.07|N|O|1998-03-25|1998-05-10|1998-04-24|COLLECT COD|RAIL|cording to the careful de|
-2789|144|5|6|16|16706.24|0.07|0.03|N|O|1998-05-11|1998-05-08|1998-05-24|TAKE BACK RETURN|RAIL|d the carefully iron|
-2789|133|4|7|42|43391.46|0.01|0.00|N|O|1998-04-28|1998-05-17|1998-05-24|TAKE BACK RETURN|AIR|ending packages shoul|
-2790|185|6|1|27|29299.86|0.06|0.08|R|F|1994-09-04|1994-09-27|1994-09-16|TAKE BACK RETURN|MAIL|ilent packages cajole. quickly ironic requ|
-2790|117|1|2|50|50855.50|0.00|0.06|A|F|1994-12-08|1994-11-17|1994-12-19|NONE|RAIL|fter the regular ideas. f|
-2790|184|5|3|19|20599.42|0.06|0.00|R|F|1994-10-23|1994-10-03|1994-10-26|TAKE BACK RETURN|RAIL|uffily even excuses. furiously thin|
-2790|197|8|4|24|26332.56|0.07|0.01|A|F|1994-12-04|1994-10-10|1994-12-25|NONE|MAIL|ments. slyly f|
-2790|148|9|5|11|11529.54|0.08|0.03|A|F|1994-09-28|1994-11-14|1994-10-04|TAKE BACK RETURN|AIR|lar requests poach slyly foxes|
-2790|73|3|6|13|12649.91|0.08|0.00|R|F|1994-09-20|1994-10-10|1994-10-20|COLLECT COD|SHIP|n deposits according to the regul|
-2790|4|1|7|32|28928.00|0.08|0.02|A|F|1994-09-25|1994-10-26|1994-10-01|NONE|SHIP|ully pending|
-2791|59|10|1|49|46993.45|0.10|0.04|A|F|1995-01-11|1994-11-10|1995-02-08|COLLECT COD|MAIL| accounts sleep at the bold, regular pinto |
-2791|63|4|2|4|3852.24|0.10|0.08|A|F|1995-01-02|1994-12-28|1995-01-29|NONE|SHIP|slyly bold packages boost. slyly|
-2791|133|9|3|44|45457.72|0.08|0.06|R|F|1994-11-17|1994-11-12|1994-12-14|NONE|FOB|heodolites use furio|
-2791|156|8|4|24|25347.60|0.04|0.02|R|F|1995-01-30|1994-11-20|1995-02-08|DELIVER IN PERSON|TRUCK|ilent forges. quickly special pinto beans |
-2791|105|2|5|8|8040.80|0.02|0.04|R|F|1995-01-30|1994-11-24|1995-02-13|NONE|FOB|se. close ideas alongs|
-2791|75|3|6|9|8775.63|0.08|0.02|R|F|1994-11-19|1994-12-14|1994-12-10|TAKE BACK RETURN|AIR|pendencies. blithely bold patterns acr|
-2791|29|2|7|26|24154.52|0.06|0.03|R|F|1995-02-06|1994-12-07|1995-02-23|DELIVER IN PERSON|AIR|uriously special instructio|
-2816|59|10|1|33|31648.65|0.00|0.07|R|F|1994-10-19|1994-11-10|1994-11-09|NONE|REG AIR|s; slyly even theodo|
-2816|142|3|2|4|4168.56|0.05|0.04|R|F|1994-12-11|1994-12-07|1995-01-03|NONE|FOB|. blithely pending id|
-2816|121|6|3|4|4084.48|0.02|0.06|R|F|1994-12-12|1994-12-05|1994-12-30|NONE|RAIL| requests print above the final deposits|
-2817|60|8|1|25|24001.50|0.07|0.01|R|F|1994-04-21|1994-06-20|1994-05-07|DELIVER IN PERSON|FOB|doze blithely.|
-2817|32|8|2|5|4660.15|0.03|0.04|A|F|1994-05-07|1994-05-31|1994-05-12|TAKE BACK RETURN|AIR|furiously unusual theodolites use furiou|
-2817|172|10|3|35|37525.95|0.01|0.07|A|F|1994-05-20|1994-06-03|1994-05-22|COLLECT COD|FOB|gular foxes|
-2817|161|2|4|4|4244.64|0.00|0.05|R|F|1994-06-04|1994-06-11|1994-06-10|NONE|TRUCK|n accounts wake across the fluf|
-2818|121|4|1|12|12253.44|0.10|0.03|A|F|1995-02-01|1995-03-10|1995-02-16|NONE|AIR|lms. quickly bold asymp|
-2818|199|2|2|22|24182.18|0.06|0.07|R|F|1995-02-28|1995-03-10|1995-03-06|TAKE BACK RETURN|RAIL|egrate toward the carefully iron|
-2818|45|6|3|11|10395.44|0.01|0.06|R|F|1995-02-18|1995-02-11|1995-03-19|TAKE BACK RETURN|TRUCK|ggle across the carefully blithe|
-2818|40|6|4|32|30081.28|0.08|0.08|R|F|1995-02-04|1995-03-05|1995-02-18|COLLECT COD|REG AIR|arefully! ac|
-2818|18|8|5|42|38556.42|0.08|0.04|A|F|1995-02-12|1995-02-19|1995-03-13|COLLECT COD|MAIL|ar accounts wake carefully a|
-2818|91|5|6|7|6937.63|0.06|0.03|R|F|1995-03-24|1995-03-09|1995-04-06|TAKE BACK RETURN|TRUCK|ly according to the r|
-2819|70|1|1|17|16491.19|0.08|0.08|A|F|1994-07-16|1994-07-15|1994-07-17|TAKE BACK RETURN|RAIL|en deposits above the f|
-2819|67|2|2|12|11604.72|0.03|0.08|R|F|1994-07-18|1994-06-24|1994-07-28|NONE|MAIL| regular, regular a|
-2819|5|2|3|28|25340.00|0.03|0.08|R|F|1994-05-09|1994-07-02|1994-05-15|NONE|RAIL|ckages sublate carefully closely regular |
-2819|153|4|4|5|5265.75|0.00|0.02|R|F|1994-05-29|1994-06-12|1994-06-28|NONE|TRUCK| fluffily unusual foxes sleep caref|
-2819|200|3|5|6|6601.20|0.03|0.01|A|F|1994-07-22|1994-08-02|1994-07-29|NONE|REG AIR|eas after the carefully express pack|
-2820|174|2|1|23|24705.91|0.04|0.08|R|F|1994-07-10|1994-08-08|1994-07-21|NONE|MAIL| was furiously. deposits among the ironic|
-2820|126|9|2|33|33861.96|0.08|0.06|A|F|1994-07-07|1994-08-17|1994-08-02|DELIVER IN PERSON|AIR|carefully even pinto beans. |
-2820|141|10|3|38|39563.32|0.03|0.08|A|F|1994-09-10|1994-08-07|1994-10-07|TAKE BACK RETURN|MAIL|ests despite the carefully unusual a|
-2820|197|9|4|40|43887.60|0.06|0.06|A|F|1994-08-08|1994-07-30|1994-08-21|TAKE BACK RETURN|REG AIR|g multipliers. final c|
-2821|181|2|1|4|4324.72|0.00|0.00|A|F|1993-09-15|1993-10-02|1993-09-17|TAKE BACK RETURN|TRUCK|nding foxes.|
-2821|72|1|2|4|3888.28|0.09|0.00|A|F|1993-11-19|1993-09-20|1993-11-27|TAKE BACK RETURN|TRUCK|ual multipliers. final deposits cajol|
-2821|164|1|3|27|28732.32|0.01|0.01|A|F|1993-11-27|1993-10-11|1993-12-08|COLLECT COD|TRUCK|requests. blit|
-2822|151|9|1|39|40994.85|0.04|0.02|R|F|1993-09-11|1993-08-29|1993-09-18|NONE|MAIL|kly about the sly|
-2823|86|7|1|45|44373.60|0.03|0.04|N|O|1995-12-28|1995-11-27|1996-01-02|DELIVER IN PERSON|SHIP|furiously special idea|
-2823|160|5|2|18|19082.88|0.00|0.03|N|O|1995-11-11|1995-10-30|1995-12-08|TAKE BACK RETURN|TRUCK| final deposits. furiously regular foxes u|
-2823|186|7|3|11|11947.98|0.07|0.02|N|O|1995-12-10|1995-11-24|1995-12-21|DELIVER IN PERSON|SHIP|bold requests nag blithely s|
-2823|139|10|4|48|49878.24|0.09|0.03|N|O|1995-11-21|1995-10-30|1995-11-27|NONE|SHIP|ously busily slow excus|
-2823|99|2|5|18|17983.62|0.04|0.06|N|O|1995-11-09|1995-10-30|1995-11-19|NONE|AIR|eas. decoys cajole deposi|
-2823|123|2|6|20|20462.40|0.07|0.00|N|O|1995-11-13|1995-12-06|1995-12-07|NONE|MAIL|its sleep between the unusual, ironic pac|
-2823|86|7|7|12|11832.96|0.02|0.04|N|O|1995-12-22|1995-11-20|1996-01-13|NONE|REG AIR|the slyly ironic dolphins; fin|
-2848|65|4|1|44|42462.64|0.01|0.05|R|F|1992-04-14|1992-05-09|1992-04-19|DELIVER IN PERSON|MAIL|ions. slyly express instructions n|
-2848|165|6|2|8|8521.28|0.07|0.01|A|F|1992-03-21|1992-05-18|1992-04-07|DELIVER IN PERSON|TRUCK|. silent, final ideas sublate packages. ir|
-2848|138|4|3|8|8305.04|0.07|0.08|A|F|1992-06-20|1992-04-12|1992-07-09|NONE|SHIP|sly regular foxes. |
-2848|125|6|4|34|34854.08|0.02|0.08|A|F|1992-03-15|1992-04-24|1992-04-12|TAKE BACK RETURN|RAIL|ts along the blithely regu|
-2848|195|7|5|18|19713.42|0.07|0.03|R|F|1992-04-10|1992-06-01|1992-05-05|DELIVER IN PERSON|TRUCK|osits haggle. stealthily ironic packa|
-2849|154|2|1|16|16866.40|0.09|0.08|N|O|1996-05-20|1996-07-23|1996-06-18|NONE|TRUCK|. furiously regular requ|
-2849|187|8|2|39|42400.02|0.10|0.03|N|O|1996-05-22|1996-07-18|1996-06-05|TAKE BACK RETURN|SHIP|s sleep furiously silently regul|
-2849|60|1|3|24|23041.44|0.01|0.05|N|O|1996-06-12|1996-07-10|1996-06-27|TAKE BACK RETURN|AIR|e slyly even asymptotes. slo|
-2849|55|7|4|48|45842.40|0.05|0.02|N|O|1996-05-03|1996-06-05|1996-05-28|NONE|AIR|mong the carefully regular theodol|
-2849|28|7|5|30|27840.60|0.10|0.06|N|O|1996-08-24|1996-07-08|1996-09-03|TAKE BACK RETURN|SHIP|ly. carefully silent|
-2849|69|4|6|30|29071.80|0.06|0.07|N|O|1996-06-20|1996-07-23|1996-07-06|NONE|FOB|yly furiously even id|
-2850|97|1|1|43|42874.87|0.02|0.05|N|O|1997-01-11|1996-11-03|1997-02-01|COLLECT COD|REG AIR|unusual accounts|
-2850|110|7|2|30|30303.30|0.09|0.01|N|O|1996-12-14|1996-11-29|1997-01-03|COLLECT COD|AIR|even ideas. busy pinto beans sleep above t|
-2850|105|6|3|49|49249.90|0.09|0.04|N|O|1996-10-07|1996-12-12|1996-10-12|TAKE BACK RETURN|MAIL| slyly unusual req|
-2850|199|3|4|4|4396.76|0.04|0.04|N|O|1996-10-28|1996-12-26|1996-11-07|COLLECT COD|RAIL|al deposits cajole carefully quickly |
-2851|148|5|1|8|8385.12|0.09|0.03|N|O|1997-11-12|1997-11-22|1997-12-11|NONE|REG AIR|y special theodolites. carefully|
-2852|177|6|1|6|6463.02|0.01|0.01|R|F|1993-03-02|1993-04-11|1993-03-11|TAKE BACK RETURN|RAIL| accounts above the furiously un|
-2852|41|10|2|24|22584.96|0.05|0.07|R|F|1993-01-18|1993-03-13|1993-02-14|DELIVER IN PERSON|MAIL| the blithe|
-2852|164|9|3|29|30860.64|0.09|0.05|R|F|1993-04-21|1993-03-22|1993-05-02|COLLECT COD|SHIP|lyly ironi|
-2852|100|3|4|12|12001.20|0.08|0.02|A|F|1993-02-25|1993-03-24|1993-03-07|TAKE BACK RETURN|TRUCK|le. request|
-2852|154|2|5|28|29516.20|0.05|0.03|R|F|1993-02-08|1993-03-30|1993-02-11|NONE|MAIL|e accounts. caref|
-2853|139|5|1|14|14547.82|0.07|0.05|R|F|1994-05-16|1994-07-01|1994-05-27|NONE|TRUCK|oach slyly along t|
-2853|134|10|2|26|26887.38|0.06|0.01|R|F|1994-06-26|1994-06-05|1994-07-02|TAKE BACK RETURN|MAIL|dolphins wake slyly. blith|
-2853|173|3|3|40|42926.80|0.06|0.04|A|F|1994-08-06|1994-06-24|1994-08-29|NONE|RAIL|lyly. pearls cajole. final accounts ca|
-2853|132|8|4|20|20642.60|0.02|0.04|A|F|1994-08-30|1994-06-16|1994-09-06|TAKE BACK RETURN|TRUCK|e slyly silent foxes. express deposits sno|
-2853|36|7|5|1|936.03|0.08|0.05|R|F|1994-09-01|1994-06-27|1994-09-12|TAKE BACK RETURN|FOB|refully slyly quick packages. final c|
-2854|181|2|1|46|49734.28|0.00|0.04|A|F|1994-09-22|1994-08-02|1994-09-30|COLLECT COD|AIR|. furiously regular deposits across th|
-2854|88|9|2|29|28654.32|0.09|0.07|R|F|1994-07-06|1994-08-26|1994-07-09|COLLECT COD|SHIP|y slyly ironic accounts. foxes haggle slyl|
-2854|160|8|3|20|21203.20|0.08|0.01|R|F|1994-09-18|1994-08-03|1994-10-12|COLLECT COD|AIR|rs impress after the deposits. |
-2854|170|1|4|34|36385.78|0.06|0.03|A|F|1994-09-06|1994-08-07|1994-09-22|NONE|REG AIR|age carefully|
-2854|102|3|5|7|7014.70|0.03|0.06|A|F|1994-09-23|1994-08-14|1994-10-10|DELIVER IN PERSON|REG AIR| the pending|
-2854|18|2|6|13|11934.13|0.04|0.03|R|F|1994-09-15|1994-08-18|1994-09-19|DELIVER IN PERSON|SHIP| excuses wak|
-2855|33|4|1|50|46651.50|0.03|0.07|A|F|1993-05-20|1993-06-28|1993-06-16|TAKE BACK RETURN|TRUCK|beans. deposits |
-2880|35|6|1|40|37401.20|0.09|0.00|A|F|1992-05-26|1992-06-01|1992-05-31|COLLECT COD|TRUCK|even requests. quick|
-2880|139|5|2|26|27017.38|0.07|0.07|R|F|1992-04-12|1992-04-15|1992-04-28|NONE|RAIL|ully among the regular warthogs|
-2880|115|9|3|42|42634.62|0.01|0.01|R|F|1992-06-17|1992-05-29|1992-07-11|NONE|REG AIR|ions. carefully final accounts are unusual,|
-2880|18|2|4|46|42228.46|0.02|0.02|A|F|1992-04-21|1992-06-05|1992-05-16|COLLECT COD|RAIL|eep quickly according to t|
-2881|180|10|1|16|17282.88|0.02|0.06|A|F|1992-06-21|1992-06-27|1992-07-03|TAKE BACK RETURN|TRUCK|usly bold |
-2881|10|1|2|1|910.01|0.09|0.03|A|F|1992-05-13|1992-07-21|1992-05-18|COLLECT COD|MAIL|final theodolites. quickly|
-2881|93|6|3|21|20854.89|0.07|0.03|A|F|1992-05-28|1992-07-03|1992-06-02|TAKE BACK RETURN|SHIP|hely express Tiresias. final dependencies |
-2881|140|6|4|7|7280.98|0.06|0.01|R|F|1992-08-03|1992-07-10|1992-08-27|NONE|REG AIR|ironic packages are carefully final ac|
-2882|4|7|1|14|12656.00|0.09|0.02|N|O|1995-09-28|1995-11-11|1995-10-18|TAKE BACK RETURN|MAIL|kly. even requests w|
-2882|42|1|2|30|28261.20|0.00|0.00|N|O|1995-10-15|1995-10-13|1995-10-25|NONE|REG AIR|among the furiously even theodolites. regu|
-2882|197|9|3|29|31818.51|0.10|0.08|N|O|1995-09-10|1995-11-01|1995-10-02|NONE|TRUCK|kages. furiously ironic|
-2882|78|6|4|27|26407.89|0.06|0.02|N|O|1995-09-04|1995-11-11|1995-09-12|DELIVER IN PERSON|MAIL|rding to the regu|
-2882|134|5|5|32|33092.16|0.07|0.03|N|O|1995-10-21|1995-11-10|1995-11-01|COLLECT COD|RAIL|sts. quickly regular e|
-2882|87|8|6|47|46392.76|0.06|0.03|N|O|1995-09-13|1995-09-21|1995-09-14|NONE|REG AIR|l, special|
-2883|1|4|1|33|29733.00|0.08|0.07|R|F|1995-02-26|1995-03-04|1995-03-01|NONE|RAIL|s. final i|
-2883|125|6|2|27|27678.24|0.00|0.02|A|F|1995-03-12|1995-03-10|1995-04-04|TAKE BACK RETURN|REG AIR|s. brave pinto beans nag furiously|
-2883|189|10|3|47|51191.46|0.05|0.04|R|F|1995-01-29|1995-04-19|1995-02-05|DELIVER IN PERSON|SHIP|ep carefully ironic|
-2883|98|2|4|23|22956.07|0.00|0.02|R|F|1995-02-03|1995-03-17|1995-02-19|TAKE BACK RETURN|AIR| even requests cajole. special, regular |
-2883|195|8|5|36|39426.84|0.07|0.06|A|F|1995-05-02|1995-03-14|1995-05-30|COLLECT COD|MAIL|ests detect slyly special packages|
-2884|71|2|1|41|39813.87|0.03|0.00|N|O|1998-01-02|1997-12-17|1998-01-20|DELIVER IN PERSON|TRUCK|ep. slyly even accounts a|
-2884|146|5|2|25|26153.50|0.09|0.08|N|O|1998-01-18|1997-12-06|1998-02-16|TAKE BACK RETURN|MAIL|onic theodolites with the instructi|
-2884|26|7|3|8|7408.16|0.08|0.08|N|O|1997-11-30|1997-11-28|1997-12-14|COLLECT COD|TRUCK|pending accounts about |
-2885|4|9|1|6|5424.00|0.10|0.01|A|F|1993-01-05|1992-12-12|1993-01-19|COLLECT COD|FOB|ctions solve. slyly regular requests n|
-2885|112|3|2|4|4048.44|0.07|0.00|A|F|1992-10-09|1992-12-17|1992-11-04|TAKE BACK RETURN|SHIP| pending packages wake. |
-2885|1|6|3|45|40545.00|0.10|0.04|A|F|1992-12-24|1992-10-30|1993-01-04|NONE|SHIP|ess ideas. regular, silen|
-2885|32|3|4|15|13980.45|0.03|0.04|R|F|1992-10-31|1992-11-24|1992-11-21|DELIVER IN PERSON|MAIL|odolites. boldly pending packages han|
-2885|175|5|5|43|46232.31|0.06|0.00|R|F|1992-11-17|1992-10-30|1992-12-04|DELIVER IN PERSON|SHIP|cial deposits use bold|
-2885|190|1|6|5|5450.95|0.01|0.02|R|F|1993-01-06|1992-11-13|1993-02-05|TAKE BACK RETURN|TRUCK|s. slyly express th|
-2885|50|9|7|40|38002.00|0.05|0.03|A|F|1992-09-23|1992-11-15|1992-10-07|TAKE BACK RETURN|AIR| express depos|
-2886|60|1|1|1|960.06|0.09|0.05|A|F|1995-02-01|1994-12-18|1995-02-28|COLLECT COD|REG AIR|eposits fr|
-2886|184|5|2|38|41198.84|0.02|0.04|A|F|1995-01-21|1995-01-08|1995-01-30|NONE|SHIP|old requests along the fur|
-2886|63|8|3|2|1926.12|0.04|0.07|A|F|1994-11-18|1995-01-31|1994-12-05|COLLECT COD|REG AIR|ar theodolites. e|
-2886|130|3|4|46|47385.98|0.03|0.08|A|F|1995-02-02|1995-01-26|1995-02-15|TAKE BACK RETURN|SHIP|ously final packages sleep blithely regular|
-2887|66|3|1|11|10626.66|0.06|0.00|N|O|1997-07-08|1997-07-17|1997-07-15|COLLECT COD|SHIP|ackages. unusual, speci|
-2887|112|6|2|17|17205.87|0.00|0.08|N|O|1997-08-31|1997-07-04|1997-09-17|DELIVER IN PERSON|SHIP|fily final packages. regula|
-2912|122|1|1|8|8176.96|0.06|0.04|A|F|1992-04-09|1992-04-19|1992-04-26|NONE|RAIL|hs cajole over the slyl|
-2912|115|9|2|18|18271.98|0.00|0.08|R|F|1992-03-13|1992-04-19|1992-03-30|TAKE BACK RETURN|RAIL|unts cajole reg|
-2913|123|6|1|39|39901.68|0.06|0.04|N|O|1997-08-28|1997-09-27|1997-09-02|TAKE BACK RETURN|AIR|. final packages a|
-2913|22|5|2|22|20284.44|0.10|0.07|N|O|1997-09-18|1997-08-11|1997-10-02|COLLECT COD|MAIL|riously pending realms. blithely even pac|
-2913|166|1|3|17|18124.72|0.07|0.04|N|O|1997-10-21|1997-09-25|1997-11-20|NONE|FOB|requests doze quickly. furious|
-2913|143|4|4|5|5215.70|0.10|0.07|N|O|1997-10-07|1997-08-25|1997-10-09|TAKE BACK RETURN|RAIL|haggle. even, bold instructi|
-2913|15|9|5|13|11895.13|0.03|0.01|N|O|1997-10-02|1997-08-20|1997-10-26|COLLECT COD|MAIL|inos are carefully alongside of the bol|
-2913|168|5|6|35|37385.60|0.06|0.08|N|O|1997-08-30|1997-08-21|1997-09-03|COLLECT COD|MAIL|es. quickly even braids against|
-2914|66|7|1|22|21253.32|0.05|0.06|R|F|1993-05-11|1993-04-09|1993-05-22|DELIVER IN PERSON|FOB| carefully about the fluffily ironic gifts|
-2914|163|10|2|25|26579.00|0.03|0.04|A|F|1993-05-14|1993-04-04|1993-05-22|NONE|SHIP|cross the carefully even accounts.|
-2914|35|1|3|4|3740.12|0.00|0.05|R|F|1993-06-11|1993-04-09|1993-06-14|TAKE BACK RETURN|SHIP|s integrate. bold deposits sleep req|
-2914|121|2|4|9|9190.08|0.06|0.01|R|F|1993-06-17|1993-05-26|1993-06-19|NONE|REG AIR|s. carefully final foxes ar|
-2915|175|5|1|28|30104.76|0.10|0.02|R|F|1994-04-17|1994-06-09|1994-05-10|NONE|MAIL|yly special |
-2915|94|7|2|12|11929.08|0.00|0.03|A|F|1994-07-18|1994-06-11|1994-07-27|TAKE BACK RETURN|RAIL|accounts. slyly final|
-2915|136|2|3|15|15541.95|0.07|0.00|A|F|1994-05-01|1994-06-12|1994-05-15|DELIVER IN PERSON|TRUCK|al requests haggle furiousl|
-2915|81|2|4|43|42186.44|0.06|0.05|R|F|1994-06-02|1994-05-24|1994-06-06|DELIVER IN PERSON|SHIP|into beans dazzle alongside of|
-2916|83|4|1|21|20644.68|0.06|0.04|N|O|1996-03-11|1996-02-21|1996-03-30|NONE|REG AIR|uickly express ideas over the slyly even |
-2917|93|4|1|36|35751.24|0.10|0.01|N|O|1998-04-07|1998-02-23|1998-05-01|DELIVER IN PERSON|RAIL|usly ironic d|
-2917|21|2|2|20|18420.40|0.06|0.03|N|O|1997-12-31|1998-01-22|1998-01-12|NONE|MAIL|slyly even ideas wa|
-2917|90|1|3|4|3960.36|0.02|0.07|N|O|1998-01-10|1998-01-18|1998-02-08|TAKE BACK RETURN|REG AIR|s. unusual instruct|
-2917|167|2|4|5|5335.80|0.05|0.01|N|O|1997-12-16|1998-01-26|1998-01-07|NONE|RAIL|bove the furiously silent packages. pend|
-2917|41|10|5|37|34818.48|0.04|0.01|N|O|1997-12-12|1998-02-03|1997-12-23|COLLECT COD|RAIL|dependencies. express |
-2917|194|8|6|7|7659.33|0.05|0.01|N|O|1998-03-21|1998-03-03|1998-03-25|NONE|REG AIR|ly about the regular accounts. carefully pe|
-2918|78|7|1|24|23473.68|0.10|0.03|N|O|1996-12-20|1996-10-28|1996-12-26|DELIVER IN PERSON|FOB| quickly. express requests haggle careful|
-2919|102|5|1|2|2004.20|0.03|0.05|R|F|1993-12-28|1994-02-23|1994-01-18|COLLECT COD|TRUCK|re slyly. regular ideas detect furiousl|
-2919|121|4|2|49|50034.88|0.07|0.02|R|F|1993-12-16|1994-02-28|1993-12-19|COLLECT COD|FOB|hely final inst|
-2919|46|5|3|44|41625.76|0.07|0.07|A|F|1994-04-01|1994-01-12|1994-04-07|TAKE BACK RETURN|TRUCK|final ideas haggle carefully fluff|
-2919|102|5|4|44|44092.40|0.00|0.05|R|F|1994-02-04|1994-02-03|1994-03-02|TAKE BACK RETURN|AIR|es doze around the furiously |
-2944|120|1|1|44|44885.28|0.08|0.05|N|O|1997-12-25|1997-10-28|1998-01-21|COLLECT COD|AIR|ickly special theodolit|
-2944|42|9|2|44|41449.76|0.06|0.02|N|O|1997-10-28|1997-11-22|1997-11-10|NONE|SHIP|ickly. regular requests haggle. idea|
-2944|170|5|3|2|2140.34|0.06|0.07|N|O|1997-12-13|1997-12-01|1998-01-08|DELIVER IN PERSON|REG AIR|luffily expr|
-2944|17|7|4|23|21091.23|0.02|0.03|N|O|1998-01-12|1997-12-03|1998-01-17|TAKE BACK RETURN|MAIL| excuses? regular platelets e|
-2944|75|4|5|18|17551.26|0.10|0.01|N|O|1998-01-07|1997-10-26|1998-01-27|TAKE BACK RETURN|FOB| furiously slyl|
-2944|60|2|6|17|16321.02|0.00|0.03|N|O|1997-10-18|1997-11-27|1997-10-29|TAKE BACK RETURN|SHIP|slyly final dolphins sleep silent the|
-2944|90|1|7|7|6930.63|0.01|0.06|N|O|1997-10-30|1997-11-03|1997-11-03|DELIVER IN PERSON|FOB|fluffily blithely express pea|
-2945|59|10|1|37|35484.85|0.00|0.02|N|O|1996-02-10|1996-03-20|1996-02-12|COLLECT COD|SHIP|l instructions. regular, regular |
-2945|72|2|2|30|29162.10|0.05|0.01|N|O|1996-01-19|1996-02-11|1996-01-26|NONE|TRUCK|ular instructions|
-2945|127|8|3|28|28759.36|0.06|0.02|N|O|1996-03-17|1996-03-13|1996-04-15|COLLECT COD|FOB|le slyly along the eve|
-2945|188|9|4|34|36998.12|0.08|0.06|N|O|1996-02-03|1996-03-17|1996-02-29|COLLECT COD|REG AIR|at the unusual theodolite|
-2945|173|1|5|10|10731.70|0.09|0.05|N|O|1996-03-13|1996-03-10|1996-04-06|COLLECT COD|FOB|thely. final courts could hang qu|
-2945|97|9|6|45|44869.05|0.07|0.00|N|O|1996-03-01|1996-03-25|1996-03-08|TAKE BACK RETURN|MAIL|ainst the final packages|
-2945|52|10|7|47|44746.35|0.07|0.05|N|O|1996-01-05|1996-02-11|1996-01-12|DELIVER IN PERSON|MAIL|quests use|
-2946|10|5|1|25|22750.25|0.05|0.02|N|O|1996-05-06|1996-04-23|1996-05-16|DELIVER IN PERSON|SHIP|ic deposits. furiously|
-2946|94|5|2|48|47716.32|0.03|0.07|N|O|1996-06-02|1996-03-31|1996-06-16|COLLECT COD|TRUCK|oss the platelets. furi|
-2946|3|6|3|35|31605.00|0.03|0.00|N|O|1996-03-15|1996-04-02|1996-03-26|NONE|REG AIR| sublate along the fluffily iron|
-2947|10|1|1|37|33670.37|0.09|0.07|N|O|1995-08-09|1995-07-05|1995-08-20|DELIVER IN PERSON|RAIL|e accounts: expres|
-2947|186|7|2|10|10861.80|0.09|0.07|A|F|1995-06-07|1995-06-26|1995-06-08|NONE|MAIL|lly special |
-2948|118|9|1|48|48869.28|0.00|0.04|R|F|1994-08-29|1994-10-23|1994-09-23|NONE|TRUCK|unusual excuses use about the |
-2948|92|3|2|49|48612.41|0.04|0.07|R|F|1994-12-16|1994-11-08|1995-01-07|DELIVER IN PERSON|MAIL|ress requests. furiously blithe foxes |
-2949|21|6|1|4|3684.08|0.06|0.06|A|F|1994-06-07|1994-06-17|1994-07-04|TAKE BACK RETURN|REG AIR|gular pinto beans wake alongside of the reg|
-2949|70|5|2|50|48503.50|0.05|0.04|A|F|1994-08-04|1994-06-23|1994-08-17|TAKE BACK RETURN|FOB|gular courts cajole across t|
-2949|180|9|3|38|41046.84|0.02|0.06|R|F|1994-05-22|1994-05-25|1994-05-27|COLLECT COD|REG AIR|se slyly requests. carefull|
-2950|130|1|1|32|32964.16|0.01|0.05|N|O|1997-09-21|1997-08-25|1997-10-08|DELIVER IN PERSON|REG AIR|its wake carefully slyly final ideas.|
-2950|66|7|2|18|17389.08|0.10|0.01|N|O|1997-07-19|1997-08-29|1997-08-17|COLLECT COD|TRUCK|uests cajole furio|
-2950|53|4|3|14|13342.70|0.01|0.02|N|O|1997-07-29|1997-08-05|1997-07-31|TAKE BACK RETURN|MAIL|ccounts haggle carefully according |
-2950|187|8|4|45|48923.10|0.08|0.00|N|O|1997-09-05|1997-09-23|1997-09-11|NONE|FOB|ides the b|
-2950|61|2|5|46|44208.76|0.02|0.05|N|O|1997-07-15|1997-09-30|1997-07-25|COLLECT COD|RAIL|to the regular accounts are slyly carefu|
-2950|174|5|6|27|29002.59|0.01|0.03|N|O|1997-10-01|1997-09-13|1997-10-08|NONE|TRUCK|are alongside of the carefully silent |
-2951|3|8|1|5|4515.00|0.03|0.03|N|O|1996-03-27|1996-04-16|1996-03-30|NONE|REG AIR|to beans wake ac|
-2951|136|2|2|24|24867.12|0.07|0.03|N|O|1996-03-24|1996-04-16|1996-04-08|NONE|SHIP| ironic multipliers. express, regular|
-2951|187|8|3|40|43487.20|0.02|0.07|N|O|1996-05-03|1996-04-20|1996-05-22|COLLECT COD|REG AIR|ial deposits wake fluffily about th|
-2951|73|3|4|21|20434.47|0.06|0.08|N|O|1996-04-12|1996-04-27|1996-04-14|DELIVER IN PERSON|REG AIR|nt instructions toward the f|
-2951|51|6|5|15|14265.75|0.07|0.00|N|O|1996-03-25|1996-04-23|1996-03-27|COLLECT COD|REG AIR|inal account|
-2951|138|4|6|18|18686.34|0.06|0.00|N|O|1996-04-04|1996-04-27|1996-04-06|COLLECT COD|FOB|ep about the final, even package|
-2976|9|4|1|32|29088.00|0.06|0.00|A|F|1994-01-26|1994-02-13|1994-02-10|NONE|MAIL|nding, ironic deposits sleep f|
-2976|4|5|2|24|21696.00|0.00|0.03|A|F|1994-03-19|1994-01-26|1994-04-18|COLLECT COD|TRUCK|ronic pinto beans. slyly bol|
-2976|10|5|3|35|31850.35|0.10|0.07|R|F|1993-12-19|1994-02-14|1994-01-11|NONE|RAIL|boost slyly about the regular, regular re|
-2976|82|3|4|22|21605.76|0.00|0.04|A|F|1994-02-08|1994-03-03|1994-02-12|TAKE BACK RETURN|FOB|ncies kindle furiously. carefull|
-2976|134|5|5|13|13443.69|0.00|0.06|A|F|1994-02-06|1994-02-02|1994-02-19|NONE|FOB| furiously final courts boost |
-2976|109|2|6|30|30273.00|0.08|0.03|R|F|1994-03-27|1994-02-01|1994-04-26|TAKE BACK RETURN|RAIL|c ideas! unusual|
-2977|70|5|1|25|24251.75|0.03|0.07|N|O|1996-09-21|1996-10-06|1996-10-13|TAKE BACK RETURN|RAIL|furiously pe|
-2978|90|1|1|29|28712.61|0.00|0.08|A|F|1995-06-03|1995-07-25|1995-06-06|NONE|SHIP|ecial ideas promise slyly|
-2978|127|2|2|42|43139.04|0.01|0.06|N|O|1995-08-19|1995-07-18|1995-09-07|DELIVER IN PERSON|MAIL|ial requests nag blithely alongside of th|
-2978|43|2|3|26|24519.04|0.07|0.05|N|O|1995-07-29|1995-07-22|1995-08-20|COLLECT COD|REG AIR|as haggle against the carefully express dep|
-2978|28|1|4|7|6496.14|0.00|0.00|N|O|1995-07-18|1995-07-03|1995-07-23|NONE|FOB|. final ideas are blithe|
-2978|29|2|5|33|30657.66|0.09|0.03|R|F|1995-05-06|1995-07-23|1995-05-16|COLLECT COD|FOB|s. blithely unusual pack|
-2978|168|7|6|4|4272.64|0.08|0.04|N|O|1995-07-06|1995-07-31|1995-07-19|COLLECT COD|AIR|ffily unusual |
-2979|9|6|1|8|7272.00|0.00|0.08|N|O|1996-06-18|1996-05-21|1996-07-06|COLLECT COD|REG AIR|st blithely; blithely regular gifts dazz|
-2979|11|2|2|47|42817.47|0.05|0.00|N|O|1996-03-25|1996-05-13|1996-04-04|TAKE BACK RETURN|SHIP|iously unusual dependencies wake across|
-2979|188|9|3|35|38086.30|0.04|0.03|N|O|1996-05-25|1996-06-11|1996-06-24|DELIVER IN PERSON|MAIL|old ideas beneath the blit|
-2979|165|4|4|28|29824.48|0.05|0.08|N|O|1996-06-04|1996-04-23|1996-06-24|DELIVER IN PERSON|FOB|ing, regular pinto beans. blithel|
-2980|37|3|1|2|1874.06|0.09|0.03|N|O|1996-11-18|1996-10-22|1996-11-27|TAKE BACK RETURN|SHIP|enly across the special, pending packag|
-2980|10|7|2|48|43680.48|0.04|0.05|N|O|1996-09-25|1996-12-09|1996-10-12|NONE|REG AIR|totes. regular pinto |
-2980|133|9|3|27|27894.51|0.08|0.08|N|O|1996-12-08|1996-12-03|1996-12-14|NONE|REG AIR| theodolites cajole blithely sl|
-2980|25|10|4|49|45325.98|0.03|0.02|N|O|1996-10-04|1996-12-04|1996-10-06|NONE|RAIL|hy packages sleep quic|
-2980|187|8|5|24|26092.32|0.05|0.04|N|O|1997-01-12|1996-10-27|1997-01-14|NONE|MAIL|elets. fluffily regular in|
-2980|109|4|6|43|43391.30|0.01|0.01|N|O|1996-12-07|1996-11-10|1997-01-02|COLLECT COD|AIR|sts. slyly regu|
-2981|14|4|1|17|15538.17|0.03|0.05|N|O|1998-10-17|1998-10-02|1998-10-21|DELIVER IN PERSON|RAIL|, unusual packages x-ray. furious|
-2981|176|4|2|8|8609.36|0.06|0.03|N|O|1998-08-21|1998-09-28|1998-09-05|DELIVER IN PERSON|MAIL|ng to the f|
-2981|37|3|3|14|13118.42|0.03|0.07|N|O|1998-08-30|1998-10-04|1998-09-04|DELIVER IN PERSON|MAIL|kages detect furiously express requests.|
-2982|112|6|1|21|21254.31|0.00|0.01|A|F|1995-04-03|1995-06-08|1995-04-18|DELIVER IN PERSON|AIR|ironic deposits. furiously ex|
-2982|99|2|2|13|12988.17|0.02|0.08|R|F|1995-03-31|1995-05-07|1995-04-18|TAKE BACK RETURN|RAIL|regular deposits unwind alongside |
-2982|70|5|3|21|20371.47|0.01|0.01|R|F|1995-04-19|1995-06-03|1995-04-28|COLLECT COD|SHIP|egular ideas use furiously? bl|
-2983|163|4|1|44|46779.04|0.03|0.06|R|F|1992-02-09|1992-03-07|1992-03-09|TAKE BACK RETURN|AIR|ly regular instruct|
-2983|49|8|2|11|10439.44|0.09|0.06|A|F|1992-04-29|1992-02-27|1992-05-26|NONE|MAIL|aids integrate s|
-3008|132|3|1|8|8257.04|0.10|0.04|N|O|1995-12-06|1996-01-12|1995-12-22|TAKE BACK RETURN|FOB|yly ironic foxes. regular requests h|
-3008|200|3|2|31|34106.20|0.05|0.06|N|O|1995-12-14|1995-12-11|1995-12-31|TAKE BACK RETURN|AIR| bold packages. quic|
-3008|24|5|3|40|36960.80|0.01|0.03|N|O|1995-12-18|1996-01-06|1996-01-11|COLLECT COD|AIR|esias. theodolites detect blithely |
-3008|60|1|4|48|46082.88|0.07|0.06|N|O|1996-01-23|1996-01-07|1996-02-09|COLLECT COD|SHIP|ld theodolites. fluffily bold theodolit|
-3008|105|10|5|31|31158.10|0.03|0.02|N|O|1995-12-01|1996-01-20|1995-12-28|COLLECT COD|RAIL|nts use thinly around the carefully iro|
-3009|45|8|1|48|45361.92|0.10|0.02|N|O|1997-03-19|1997-05-13|1997-04-11|TAKE BACK RETURN|TRUCK| dependencies sleep quickly a|
-3009|185|6|2|38|41236.84|0.00|0.01|N|O|1997-05-01|1997-04-10|1997-05-17|TAKE BACK RETURN|AIR|nal packages should haggle slyly. quickl|
-3009|130|3|3|26|26783.38|0.08|0.02|N|O|1997-05-15|1997-05-10|1997-06-13|TAKE BACK RETURN|SHIP|uriously specia|
-3010|138|4|1|23|23876.99|0.04|0.00|N|O|1996-03-08|1996-02-29|1996-03-27|NONE|TRUCK|ounts. pendin|
-3010|174|4|2|22|23631.74|0.09|0.06|N|O|1996-03-06|1996-04-06|1996-03-18|COLLECT COD|REG AIR| final deposit|
-3010|58|6|3|24|22993.20|0.04|0.07|N|O|1996-05-09|1996-03-14|1996-05-15|DELIVER IN PERSON|RAIL|ar, even reques|
-3010|24|7|4|28|25872.56|0.09|0.06|N|O|1996-03-05|1996-03-28|1996-04-03|DELIVER IN PERSON|FOB|ake carefully carefully even request|
-3010|104|5|5|9|9036.90|0.02|0.02|N|O|1996-04-28|1996-03-17|1996-05-18|NONE|SHIP|inal packages. quickly even pinto|
-3010|92|3|6|38|37699.42|0.05|0.07|N|O|1996-04-15|1996-03-16|1996-04-21|DELIVER IN PERSON|RAIL|accounts ar|
-3011|198|10|1|5|5490.95|0.02|0.04|R|F|1992-04-21|1992-02-23|1992-05-15|NONE|TRUCK|nusual sentiments. carefully bold idea|
-3011|123|4|2|42|42971.04|0.05|0.00|A|F|1992-02-01|1992-03-18|1992-02-29|NONE|TRUCK|osits haggle quickly pending, |
-3012|195|7|1|49|53664.31|0.00|0.00|A|F|1993-08-07|1993-07-01|1993-08-08|NONE|MAIL| quickly furious packages. silently unusua|
-3012|161|2|2|37|39262.92|0.06|0.03|A|F|1993-08-16|1993-06-07|1993-08-24|TAKE BACK RETURN|REG AIR|uickly permanent packages sleep caref|
-3013|94|6|1|31|30816.79|0.08|0.08|N|O|1997-05-03|1997-04-05|1997-05-25|NONE|AIR|y furious depen|
-3013|139|5|2|30|31173.90|0.05|0.06|N|O|1997-05-02|1997-03-09|1997-05-12|TAKE BACK RETURN|MAIL|ronic packages. slyly even|
-3013|120|10|3|35|35704.20|0.00|0.03|N|O|1997-04-02|1997-05-04|1997-04-16|COLLECT COD|MAIL|ely accord|
-3013|181|2|4|17|18380.06|0.01|0.07|N|O|1997-02-26|1997-05-02|1997-03-27|DELIVER IN PERSON|SHIP|fully unusual account|
-3013|60|5|5|20|19201.20|0.00|0.04|N|O|1997-05-06|1997-03-18|1997-05-12|COLLECT COD|RAIL|unts boost regular ideas. slyly pe|
-3013|72|2|6|19|18469.33|0.08|0.07|N|O|1997-05-11|1997-04-18|1997-05-15|COLLECT COD|REG AIR|fluffily pending packages nag furiously al|
-3014|163|4|1|36|38273.76|0.05|0.03|A|F|1992-11-16|1993-01-20|1992-11-28|TAKE BACK RETURN|FOB|ding accounts boost fu|
-3014|106|1|2|36|36219.60|0.00|0.08|R|F|1992-12-28|1992-12-29|1993-01-24|COLLECT COD|MAIL|iously ironic r|
-3014|151|9|3|48|50455.20|0.06|0.02|A|F|1992-12-19|1993-01-08|1992-12-25|DELIVER IN PERSON|REG AIR|y pending theodolites wake. reg|
-3014|114|1|4|14|14197.54|0.10|0.02|R|F|1992-11-19|1993-01-01|1992-12-17|DELIVER IN PERSON|SHIP|. slyly brave platelets nag. careful,|
-3014|75|5|5|28|27301.96|0.02|0.08|R|F|1993-01-09|1992-12-18|1993-01-10|TAKE BACK RETURN|FOB|es are. final braids nag slyly. fluff|
-3014|38|4|6|30|28140.90|0.04|0.01|R|F|1993-02-28|1993-01-02|1993-03-20|TAKE BACK RETURN|AIR| final foxes.|
-3015|3|8|1|5|4515.00|0.09|0.00|A|F|1993-01-10|1992-12-02|1993-01-19|TAKE BACK RETURN|RAIL| the furiously pendi|
-3015|18|2|2|17|15606.17|0.03|0.01|R|F|1992-10-16|1992-11-20|1992-10-28|COLLECT COD|AIR|s above the fluffily final t|
-3015|91|4|3|23|22795.07|0.03|0.05|A|F|1992-12-03|1992-11-19|1992-12-23|DELIVER IN PERSON|FOB|s are slyly carefully special pinto bea|
-3015|156|7|4|7|7393.05|0.10|0.03|A|F|1992-12-07|1992-12-17|1992-12-30|DELIVER IN PERSON|REG AIR| after the evenly special packages ca|
-3015|165|4|5|42|44736.72|0.04|0.02|R|F|1993-01-21|1992-11-07|1993-02-11|DELIVER IN PERSON|AIR|encies haggle furious|
-3015|66|7|6|18|17389.08|0.02|0.03|R|F|1992-10-10|1992-11-19|1992-10-18|TAKE BACK RETURN|MAIL|equests wake fluffil|
-3040|16|6|1|18|16488.18|0.08|0.04|R|F|1993-06-25|1993-07-06|1993-07-19|TAKE BACK RETURN|SHIP|ly thin accou|
-3040|133|9|2|9|9298.17|0.00|0.01|A|F|1993-06-12|1993-05-16|1993-06-14|NONE|RAIL|ges. pending packages wake. requests|
-3040|126|5|3|30|30783.60|0.01|0.01|A|F|1993-08-06|1993-05-18|1993-08-19|NONE|MAIL|x furiously bold packages. expres|
-3040|83|4|4|14|13763.12|0.05|0.04|A|F|1993-05-13|1993-05-18|1993-05-19|TAKE BACK RETURN|REG AIR| haggle carefully. express hocke|
-3040|52|3|5|43|40938.15|0.04|0.04|R|F|1993-05-21|1993-05-25|1993-05-26|NONE|MAIL|sts nag slyly alongside of the depos|
-3040|18|5|6|10|9180.10|0.08|0.04|R|F|1993-05-16|1993-06-24|1993-06-11|DELIVER IN PERSON|MAIL|ely regular foxes haggle dari|
-3041|181|2|1|5|5405.90|0.07|0.04|N|O|1997-07-20|1997-07-15|1997-08-17|COLLECT COD|FOB|posits dazzle special p|
-3041|146|9|2|9|9415.26|0.03|0.03|N|O|1997-06-29|1997-08-14|1997-07-19|COLLECT COD|AIR|iously across the silent pinto beans. furi|
-3041|68|5|3|9|8712.54|0.09|0.06|N|O|1997-08-28|1997-07-23|1997-09-16|TAKE BACK RETURN|FOB|scapades after the special|
-3042|105|2|1|30|30153.00|0.08|0.06|A|F|1995-01-12|1995-02-15|1995-01-24|DELIVER IN PERSON|SHIP|the requests detect fu|
-3042|102|3|2|28|28058.80|0.05|0.03|A|F|1994-11-24|1995-01-02|1994-12-06|TAKE BACK RETURN|MAIL|ng the furiously r|
-3042|14|8|3|34|31076.34|0.04|0.00|R|F|1994-12-11|1995-02-03|1994-12-21|TAKE BACK RETURN|TRUCK|can wake after the enticingly stealthy i|
-3042|48|1|4|19|18012.76|0.02|0.01|A|F|1995-03-05|1995-01-24|1995-03-17|COLLECT COD|TRUCK|e carefully. regul|
-3043|46|9|1|23|21758.92|0.07|0.04|R|F|1992-05-08|1992-07-22|1992-05-18|COLLECT COD|TRUCK|uickly above the pending,|
-3043|6|3|2|15|13590.00|0.03|0.05|A|F|1992-05-27|1992-06-03|1992-06-09|COLLECT COD|FOB|usly furiously|
-3043|60|1|3|42|40322.52|0.10|0.07|R|F|1992-07-15|1992-06-19|1992-07-23|NONE|MAIL|ide of the un|
-3043|91|2|4|5|4955.45|0.10|0.01|A|F|1992-05-22|1992-07-02|1992-06-20|TAKE BACK RETURN|TRUCK|ake blithely re|
-3044|101|2|1|10|10011.00|0.07|0.08|N|O|1996-07-13|1996-05-06|1996-07-21|TAKE BACK RETURN|REG AIR| slyly ironic requests. s|
-3044|168|7|2|3|3204.48|0.06|0.02|N|O|1996-07-27|1996-05-26|1996-08-15|TAKE BACK RETURN|AIR|ecoys haggle furiously pending requests.|
-3044|19|3|3|47|43193.47|0.09|0.00|N|O|1996-05-24|1996-06-22|1996-05-30|NONE|REG AIR|ly around the car|
-3045|88|9|1|41|40511.28|0.05|0.01|N|O|1995-09-30|1995-11-24|1995-10-03|TAKE BACK RETURN|MAIL|ely final foxes. carefully ironic pinto b|
-3045|69|6|2|48|46514.88|0.02|0.03|N|O|1995-10-01|1995-12-16|1995-10-10|TAKE BACK RETURN|MAIL|ole quickly outside th|
-3046|74|5|1|44|42859.08|0.03|0.03|N|O|1996-03-03|1996-02-25|1996-04-01|NONE|AIR| are quickly. blithe|
-3046|54|5|2|46|43886.30|0.03|0.08|N|O|1996-03-22|1996-02-28|1996-04-07|TAKE BACK RETURN|AIR|sits sleep furious|
-3046|2|9|3|31|27962.00|0.03|0.07|N|O|1996-03-24|1996-01-30|1996-03-26|NONE|RAIL|y pending somas alongside of the slyly iro|
-3047|104|5|1|17|17069.70|0.08|0.02|N|O|1997-06-14|1997-04-20|1997-06-23|COLLECT COD|FOB|onic instruction|
-3047|14|1|2|23|21022.23|0.00|0.04|N|O|1997-05-20|1997-06-14|1997-05-28|TAKE BACK RETURN|REG AIR| slyly ironi|
-3072|57|9|1|6|5742.30|0.09|0.05|R|F|1994-02-09|1994-03-24|1994-02-28|DELIVER IN PERSON|REG AIR|gular requests abov|
-3072|108|3|2|36|36291.60|0.07|0.02|R|F|1994-04-14|1994-04-22|1994-05-06|COLLECT COD|AIR| theodolites. blithely e|
-3072|97|8|3|7|6979.63|0.04|0.07|R|F|1994-05-09|1994-03-31|1994-05-19|COLLECT COD|TRUCK|uests. ironic, ironic depos|
-3072|83|4|4|39|38340.12|0.05|0.08|A|F|1994-05-27|1994-04-20|1994-06-14|COLLECT COD|MAIL|es; slyly spe|
-3072|88|9|5|1|988.08|0.01|0.08|R|F|1994-02-26|1994-03-14|1994-03-19|NONE|AIR| slyly ironic attainments. car|
-3073|194|7|1|16|17507.04|0.07|0.01|R|F|1994-03-02|1994-03-23|1994-03-31|DELIVER IN PERSON|AIR|n requests. ironi|
-3073|22|5|2|47|43334.94|0.09|0.00|R|F|1994-03-26|1994-02-12|1994-04-21|NONE|REG AIR|eposits. fluffily|
-3073|87|8|3|10|9870.80|0.03|0.00|R|F|1994-02-11|1994-03-24|1994-02-26|COLLECT COD|FOB| furiously caref|
-3073|29|4|4|14|13006.28|0.09|0.07|R|F|1994-03-24|1994-04-01|1994-04-07|NONE|RAIL|ilently quiet epitaphs.|
-3073|41|10|5|25|23526.00|0.00|0.07|R|F|1994-04-14|1994-03-07|1994-04-22|NONE|TRUCK|nag asymptotes. pinto beans sleep |
-3073|147|8|6|39|40838.46|0.09|0.02|R|F|1994-05-01|1994-02-16|1994-05-12|DELIVER IN PERSON|AIR|lar excuses across the furiously even |
-3073|44|5|7|11|10384.44|0.08|0.07|A|F|1994-05-01|1994-03-06|1994-05-08|COLLECT COD|SHIP|instructions sleep according to the |
-3074|37|8|1|50|46851.50|0.08|0.08|A|F|1993-01-31|1992-12-15|1993-02-20|NONE|AIR|furiously pending requests haggle s|
-3074|139|5|2|39|40526.07|0.03|0.00|R|F|1992-12-08|1993-01-28|1992-12-09|DELIVER IN PERSON|TRUCK|iously throu|
-3075|9|6|1|39|35451.00|0.02|0.03|A|F|1994-06-10|1994-06-21|1994-06-20|NONE|FOB|ing deposits nag |
-3075|52|10|2|2|1904.10|0.07|0.08|R|F|1994-06-14|1994-06-10|1994-06-25|TAKE BACK RETURN|AIR|. unusual, unusual accounts haggle furious|
-3076|85|6|1|44|43343.52|0.00|0.05|A|F|1993-09-14|1993-10-04|1993-09-17|TAKE BACK RETURN|FOB| instructions h|
-3076|106|1|2|22|22134.20|0.08|0.00|A|F|1993-09-05|1993-09-10|1993-09-27|NONE|REG AIR|packages wake furiou|
-3076|5|8|3|31|28055.00|0.06|0.06|A|F|1993-08-10|1993-09-17|1993-08-17|TAKE BACK RETURN|SHIP|regular depos|
-3077|72|2|1|25|24301.75|0.06|0.01|N|O|1997-09-14|1997-10-16|1997-10-06|NONE|TRUCK|lent account|
-3077|91|3|2|40|39643.60|0.05|0.06|N|O|1997-10-22|1997-09-19|1997-11-19|DELIVER IN PERSON|AIR|to the enticing packag|
-3077|78|7|3|13|12714.91|0.03|0.07|N|O|1997-09-09|1997-10-15|1997-09-19|NONE|TRUCK|luffily close depende|
-3077|115|5|4|23|23347.53|0.03|0.02|N|O|1997-11-05|1997-09-16|1997-11-20|NONE|MAIL|lly. fluffily pending dinos across|
-3078|132|3|1|25|25803.25|0.01|0.03|A|F|1993-04-22|1993-05-01|1993-04-28|TAKE BACK RETURN|AIR|express dinos. carefully ironic|
-3078|78|8|2|21|20539.47|0.09|0.07|A|F|1993-03-20|1993-03-21|1993-04-01|COLLECT COD|AIR|e fluffily. |
-3079|70|5|1|20|19401.40|0.05|0.00|N|O|1997-10-18|1997-10-26|1997-11-14|NONE|RAIL|ets are according to the quickly dari|
-3079|117|1|2|38|38650.18|0.08|0.07|N|O|1997-11-07|1997-11-25|1997-12-06|NONE|RAIL|e carefully regular realms|
-3079|17|8|3|40|36680.40|0.02|0.08|N|O|1997-09-26|1997-12-11|1997-10-09|NONE|RAIL|ide of the pending, special deposi|
-3079|24|5|4|2|1848.04|0.00|0.08|N|O|1998-01-05|1997-11-17|1998-01-28|NONE|FOB|ly busy requests believ|
-3079|188|9|5|2|2176.36|0.10|0.00|N|O|1997-12-27|1997-10-25|1998-01-08|COLLECT COD|SHIP|y regular asymptotes doz|
-3079|166|1|6|46|49043.36|0.00|0.00|N|O|1997-11-19|1997-11-04|1997-11-25|DELIVER IN PERSON|REG AIR|es. final, regula|
-3104|51|6|1|20|19021.00|0.01|0.08|A|F|1993-12-31|1993-11-24|1994-01-12|DELIVER IN PERSON|REG AIR|s are. furiously s|
-3104|48|1|2|47|44557.88|0.02|0.05|A|F|1993-12-25|1993-11-02|1994-01-12|COLLECT COD|RAIL|ily daring acc|
-3104|63|4|3|11|10593.66|0.02|0.03|A|F|1993-10-05|1993-11-30|1993-10-27|NONE|TRUCK| special deposits u|
-3104|38|9|4|26|24388.78|0.02|0.08|R|F|1994-01-02|1993-12-05|1994-01-31|TAKE BACK RETURN|TRUCK|es boost carefully. slyly |
-3105|184|5|1|11|11925.98|0.01|0.06|N|O|1997-02-07|1997-02-09|1997-03-01|NONE|FOB|kly bold depths caj|
-3105|45|6|2|9|8505.36|0.08|0.08|N|O|1996-12-25|1997-02-04|1997-01-09|COLLECT COD|SHIP|es wake among t|
-3105|25|4|3|48|44400.96|0.02|0.05|N|O|1997-02-28|1997-01-31|1997-03-18|DELIVER IN PERSON|REG AIR|ending platelets wake carefully ironic inst|
-3105|91|5|4|23|22795.07|0.04|0.07|N|O|1997-03-08|1996-12-14|1997-03-18|COLLECT COD|REG AIR| detect slyly. blithely unusual requests ar|
-3105|90|1|5|8|7920.72|0.07|0.07|N|O|1996-12-28|1996-12-28|1997-01-25|NONE|FOB|s. blithely unusual ideas was after|
-3105|47|6|6|30|28411.20|0.08|0.05|N|O|1997-03-03|1997-02-03|1997-03-05|NONE|FOB|ess accounts boost among t|
-3106|86|7|1|22|21693.76|0.03|0.02|N|O|1997-02-28|1997-02-12|1997-03-03|DELIVER IN PERSON|FOB|structions atop the blithely|
-3106|136|2|2|49|50770.37|0.06|0.06|N|O|1997-02-27|1997-03-11|1997-03-12|NONE|TRUCK|lets. quietly regular courts |
-3106|52|7|3|42|39986.10|0.09|0.07|N|O|1997-04-05|1997-03-17|1997-04-22|COLLECT COD|REG AIR|nstructions wake. furiously |
-3106|196|10|4|6|6577.14|0.10|0.07|N|O|1997-02-02|1997-04-11|1997-02-27|COLLECT COD|REG AIR|symptotes. slyly bold platelets cajol|
-3106|65|2|5|16|15440.96|0.09|0.08|N|O|1997-02-25|1997-04-10|1997-03-16|NONE|AIR|sits wake slyl|
-3107|149|6|1|16|16786.24|0.05|0.04|N|O|1997-08-30|1997-10-20|1997-09-20|TAKE BACK RETURN|REG AIR|regular pinto beans. ironic ideas haggle|
-3107|142|3|2|35|36474.90|0.05|0.06|N|O|1997-08-27|1997-11-19|1997-09-14|COLLECT COD|TRUCK|ets doubt furiously final ideas. final|
-3107|170|9|3|23|24613.91|0.03|0.06|N|O|1997-12-10|1997-11-11|1997-12-14|TAKE BACK RETURN|SHIP|atelets must ha|
-3107|87|8|4|27|26651.16|0.00|0.08|N|O|1997-11-15|1997-10-31|1997-11-28|DELIVER IN PERSON|FOB|furiously final |
-3108|109|2|1|37|37336.70|0.06|0.04|A|F|1993-10-16|1993-10-01|1993-11-09|DELIVER IN PERSON|RAIL| final requests. |
-3108|166|1|2|26|27720.16|0.08|0.05|A|F|1993-11-12|1993-10-05|1993-12-09|COLLECT COD|TRUCK| slyly slow foxes wake furious|
-3109|18|2|1|32|29376.32|0.08|0.03|A|F|1993-09-05|1993-10-06|1993-09-18|DELIVER IN PERSON|FOB|ecial orbits are furiou|
-3109|145|4|2|49|51211.86|0.08|0.06|R|F|1993-10-24|1993-09-30|1993-11-21|TAKE BACK RETURN|AIR| even pearls. furiously pending |
-3109|176|4|3|43|46275.31|0.04|0.07|R|F|1993-09-29|1993-09-06|1993-10-13|COLLECT COD|MAIL|ding to the foxes. |
-3109|79|10|4|26|25455.82|0.01|0.05|R|F|1993-11-16|1993-10-18|1993-12-06|TAKE BACK RETURN|TRUCK| sleep slyly according to t|
-3109|143|2|5|50|52157.00|0.01|0.08|A|F|1993-09-17|1993-10-16|1993-10-11|NONE|FOB| regular packages boost blithely even, re|
-3109|15|9|6|10|9150.10|0.10|0.04|A|F|1993-10-26|1993-10-03|1993-11-09|NONE|TRUCK|sits haggle carefully. regular, unusual ac|
-3110|89|10|1|1|989.08|0.02|0.07|A|F|1995-01-15|1995-01-20|1995-01-30|DELIVER IN PERSON|REG AIR|c theodolites a|
-3110|57|2|2|31|29668.55|0.01|0.06|R|F|1995-03-31|1995-03-07|1995-04-21|TAKE BACK RETURN|REG AIR|en deposits. ironic|
-3110|3|10|3|34|30702.00|0.02|0.02|A|F|1995-02-23|1995-01-27|1995-03-09|TAKE BACK RETURN|FOB|ly pending requests ha|
-3110|40|1|4|16|15040.64|0.04|0.04|A|F|1995-01-10|1995-02-06|1995-01-26|NONE|MAIL|across the regular acco|
-3110|140|6|5|39|40565.46|0.09|0.01|A|F|1995-02-09|1995-01-21|1995-02-21|NONE|MAIL|side of the blithely unusual courts. slyly |
-3111|137|8|1|22|22816.86|0.06|0.05|N|O|1995-09-21|1995-11-09|1995-10-17|COLLECT COD|REG AIR|quests. regular dolphins against the |
-3111|58|10|2|30|28741.50|0.06|0.05|N|O|1995-10-05|1995-11-15|1995-11-01|TAKE BACK RETURN|TRUCK|eas are furiously slyly special deposits.|
-3111|52|3|3|10|9520.50|0.02|0.02|N|O|1995-11-10|1995-11-02|1995-12-04|NONE|FOB|ng the slyly ironic inst|
-3111|132|3|4|31|31996.03|0.00|0.08|N|O|1995-10-26|1995-09-26|1995-11-02|TAKE BACK RETURN|MAIL|kages detect express attainments|
-3111|54|6|5|14|13356.70|0.05|0.04|N|O|1995-10-17|1995-10-19|1995-10-19|TAKE BACK RETURN|SHIP|re. pinto |
-3111|86|7|6|5|4930.40|0.03|0.08|N|O|1995-08-30|1995-10-16|1995-09-04|DELIVER IN PERSON|TRUCK|. carefully even ideas|
-3111|148|9|7|41|42973.74|0.09|0.05|N|O|1995-11-22|1995-11-01|1995-12-01|TAKE BACK RETURN|FOB|fily slow ideas. |
-3136|142|5|1|30|31264.20|0.02|0.08|R|F|1994-08-13|1994-10-02|1994-09-02|TAKE BACK RETURN|RAIL|leep blithel|
-3136|103|4|2|7|7021.70|0.05|0.07|A|F|1994-10-08|1994-09-14|1994-10-11|TAKE BACK RETURN|SHIP|ic pinto beans are slyly. f|
-3136|158|3|3|43|45500.45|0.00|0.07|A|F|1994-09-05|1994-09-25|1994-09-11|NONE|RAIL|. special theodolites ha|
-3136|116|6|4|26|26418.86|0.04|0.05|A|F|1994-10-13|1994-11-07|1994-11-05|TAKE BACK RETURN|AIR|eep fluffily. daringly silent attainments d|
-3136|67|8|5|2|1934.12|0.08|0.07|R|F|1994-11-21|1994-11-03|1994-11-26|DELIVER IN PERSON|TRUCK|? special, silent |
-3136|80|1|6|29|28422.32|0.08|0.07|A|F|1994-11-16|1994-10-03|1994-12-14|NONE|FOB|latelets. final |
-3137|3|4|1|6|5418.00|0.02|0.02|N|O|1995-09-19|1995-10-23|1995-10-16|NONE|SHIP|ly express as|
-3137|6|3|2|4|3624.00|0.06|0.04|N|O|1995-10-01|1995-09-11|1995-10-30|COLLECT COD|RAIL|posits wake. silent excuses boost about|
-3138|93|5|1|7|6951.63|0.05|0.05|R|F|1994-03-04|1994-03-14|1994-03-20|NONE|AIR|lithely quickly even packages. packages|
-3138|44|5|2|27|25489.08|0.09|0.01|R|F|1994-03-24|1994-03-23|1994-04-18|DELIVER IN PERSON|FOB|counts cajole fluffily carefully special i|
-3138|197|8|3|32|35110.08|0.00|0.01|R|F|1994-02-24|1994-05-07|1994-02-28|TAKE BACK RETURN|MAIL|inal foxes affix slyly. fluffily regul|
-3138|172|3|4|38|40742.46|0.07|0.04|R|F|1994-02-21|1994-03-21|1994-03-13|COLLECT COD|FOB|lithely fluffily un|
-3138|10|1|5|12|10920.12|0.09|0.02|A|F|1994-03-04|1994-04-11|1994-03-21|COLLECT COD|FOB|. bold pinto beans haggl|
-3138|44|7|6|25|23601.00|0.05|0.08|A|F|1994-05-19|1994-04-07|1994-06-17|TAKE BACK RETURN|AIR|dolites around the carefully busy the|
-3139|40|6|1|46|43241.84|0.08|0.03|R|F|1992-04-28|1992-03-04|1992-05-19|TAKE BACK RETURN|FOB|of the unusual, unusual re|
-3140|7|4|1|21|19047.00|0.08|0.02|R|F|1992-04-12|1992-05-31|1992-04-21|NONE|REG AIR| furiously sly excuses according to the|
-3140|89|10|2|10|9890.80|0.07|0.01|A|F|1992-05-30|1992-05-09|1992-06-09|COLLECT COD|RAIL|accounts. expres|
-3140|133|4|3|28|28927.64|0.06|0.00|R|F|1992-06-08|1992-07-07|1992-07-08|TAKE BACK RETURN|SHIP|lar ideas. slyly ironic d|
-3141|177|6|1|32|34469.44|0.06|0.00|N|O|1995-11-21|1995-12-18|1995-11-26|DELIVER IN PERSON|FOB|oxes are quickly about t|
-3141|10|7|2|37|33670.37|0.10|0.05|N|O|1996-01-24|1995-12-16|1996-01-27|DELIVER IN PERSON|AIR|press pinto beans. bold accounts boost b|
-3141|79|7|3|9|8811.63|0.09|0.02|N|O|1995-11-11|1995-12-10|1995-12-02|DELIVER IN PERSON|MAIL|uickly ironic, pendi|
-3141|46|9|4|47|44463.88|0.03|0.01|N|O|1995-11-29|1996-01-13|1995-12-10|TAKE BACK RETURN|TRUCK| are slyly pi|
-3142|120|7|1|15|15301.80|0.03|0.08|R|F|1992-08-15|1992-08-18|1992-08-22|DELIVER IN PERSON|AIR|instructions are. ironic packages doz|
-3143|90|1|1|22|21781.98|0.02|0.00|A|F|1993-05-11|1993-03-26|1993-05-20|TAKE BACK RETURN|MAIL|l, special instructions nag |
-3143|183|4|2|40|43327.20|0.03|0.08|A|F|1993-05-07|1993-03-29|1993-05-17|COLLECT COD|FOB|sly unusual theodolites. slyly ev|
-3143|183|4|3|22|23829.96|0.05|0.03|A|F|1993-03-18|1993-05-09|1993-04-14|DELIVER IN PERSON|MAIL|beans. fluf|
-3143|66|7|4|46|44438.76|0.05|0.08|R|F|1993-04-19|1993-03-21|1993-05-05|COLLECT COD|REG AIR|low forges haggle. even packages use bli|
-3168|60|8|1|46|44162.76|0.08|0.08|R|F|1992-02-14|1992-03-02|1992-03-02|TAKE BACK RETURN|SHIP|y across the express accounts. fluff|
-3168|154|5|2|1|1054.15|0.06|0.08|A|F|1992-05-27|1992-03-12|1992-06-09|TAKE BACK RETURN|SHIP|pinto beans. slyly regular courts haggle |
-3168|128|3|3|13|13365.56|0.09|0.02|A|F|1992-03-05|1992-04-29|1992-03-15|NONE|SHIP|ironic somas haggle quick|
-3168|165|10|4|11|11716.76|0.02|0.05|R|F|1992-04-12|1992-03-17|1992-05-12|COLLECT COD|SHIP|ously furious dependenc|
-3169|192|4|1|12|13106.28|0.01|0.04|R|F|1994-01-05|1994-03-18|1994-01-21|COLLECT COD|REG AIR| regular d|
-3169|200|3|2|17|18703.40|0.05|0.04|R|F|1994-03-02|1994-01-21|1994-03-03|DELIVER IN PERSON|TRUCK|usly regular packages. ironi|
-3169|188|9|3|12|13058.16|0.08|0.07|A|F|1994-04-18|1994-03-12|1994-05-08|TAKE BACK RETURN|FOB|atelets. pac|
-3169|105|6|4|26|26132.60|0.10|0.04|R|F|1994-04-08|1994-03-21|1994-04-29|NONE|TRUCK|ter the regular ideas. slyly iro|
-3169|108|9|5|6|6048.60|0.09|0.01|A|F|1994-03-24|1994-02-22|1994-04-04|TAKE BACK RETURN|AIR|ular instructions. ca|
-3169|177|8|6|46|49549.82|0.02|0.07|A|F|1994-02-01|1994-01-22|1994-02-24|DELIVER IN PERSON|RAIL|thely bold theodolites are fl|
-3170|40|6|1|12|11280.48|0.03|0.03|N|O|1998-02-12|1998-01-17|1998-02-24|NONE|TRUCK|ing accounts along the speci|
-3170|100|2|2|21|21002.10|0.01|0.00|N|O|1997-12-09|1998-01-31|1997-12-21|DELIVER IN PERSON|MAIL|o beans. carefully final requests dou|
-3170|89|10|3|27|26705.16|0.00|0.05|N|O|1998-02-25|1998-01-29|1998-02-27|COLLECT COD|AIR|efully bold foxes. regular, ev|
-3170|41|2|4|34|31995.36|0.05|0.04|N|O|1998-02-01|1998-01-11|1998-02-20|TAKE BACK RETURN|TRUCK|s about the fluffily final de|
-3170|90|1|5|32|31682.88|0.02|0.04|N|O|1997-11-24|1997-12-12|1997-12-15|COLLECT COD|SHIP|ggle about the furiously r|
-3170|110|5|6|43|43434.73|0.08|0.05|N|O|1998-01-05|1998-01-04|1998-01-14|NONE|REG AIR|. express dolphins use sly|
-3170|84|5|7|26|25586.08|0.10|0.05|N|O|1998-02-12|1997-12-22|1998-02-28|COLLECT COD|TRUCK|s engage furiously. |
-3171|47|4|1|34|32199.36|0.04|0.00|A|F|1993-05-30|1993-05-27|1993-06-06|DELIVER IN PERSON|REG AIR|r the final, even packages. quickly|
-3171|139|10|2|50|51956.50|0.01|0.04|A|F|1993-07-19|1993-05-15|1993-07-31|TAKE BACK RETURN|REG AIR|riously final foxes about the ca|
-3172|96|9|1|4|3984.36|0.06|0.07|A|F|1992-09-26|1992-08-15|1992-10-20|DELIVER IN PERSON|TRUCK|s are slyly thin package|
-3172|148|7|2|43|45070.02|0.05|0.07|R|F|1992-08-22|1992-07-07|1992-08-26|COLLECT COD|MAIL| final packages. |
-3172|132|3|3|13|13417.69|0.03|0.01|R|F|1992-07-06|1992-08-06|1992-08-05|DELIVER IN PERSON|MAIL|inal deposits haggle along the|
-3172|135|6|4|28|28983.64|0.08|0.04|R|F|1992-07-09|1992-07-14|1992-07-16|NONE|MAIL|regular ideas. packages are furi|
-3172|64|5|5|31|29885.86|0.05|0.08|A|F|1992-09-01|1992-08-27|1992-09-23|NONE|SHIP|. slyly regular dependencies haggle quiet|
-3173|195|6|1|35|38331.65|0.01|0.08|N|O|1996-09-09|1996-10-15|1996-10-04|TAKE BACK RETURN|RAIL| across the slyly even requests.|
-3173|178|7|2|5|5390.85|0.09|0.07|N|O|1996-12-06|1996-09-17|1996-12-07|DELIVER IN PERSON|REG AIR|express depo|
-3173|46|9|3|16|15136.64|0.06|0.01|N|O|1996-08-12|1996-09-21|1996-08-22|NONE|SHIP|e special,|
-3173|94|5|4|2|1988.18|0.00|0.00|N|O|1996-10-15|1996-11-06|1996-10-18|COLLECT COD|MAIL|ular pearls|
-3173|185|6|5|2|2170.36|0.00|0.06|N|O|1996-08-18|1996-09-21|1996-09-07|DELIVER IN PERSON|MAIL|fluffily above t|
-3174|186|7|1|6|6517.08|0.04|0.08|N|O|1996-03-13|1996-02-09|1996-03-22|DELIVER IN PERSON|AIR| furiously ironic|
-3174|194|7|2|4|4376.76|0.01|0.05|N|O|1995-11-17|1996-01-08|1995-11-27|DELIVER IN PERSON|RAIL|deas sleep thi|
-3174|92|4|3|21|20833.89|0.08|0.05|N|O|1996-02-20|1995-12-28|1996-03-17|NONE|MAIL|iously. idly bold theodolites a|
-3174|192|6|4|13|14198.47|0.08|0.06|N|O|1996-01-11|1996-01-26|1996-02-01|DELIVER IN PERSON|SHIP|leep quickly? slyly special platelets|
-3174|72|2|5|39|37910.73|0.02|0.06|N|O|1995-12-02|1996-02-08|1995-12-12|TAKE BACK RETURN|TRUCK| wake slyly foxes. bold requests p|
-3174|120|7|6|8|8160.96|0.07|0.08|N|O|1995-12-07|1996-01-08|1995-12-29|DELIVER IN PERSON|TRUCK|nic deposits among t|
-3175|120|10|1|28|28563.36|0.10|0.01|R|F|1994-09-27|1994-10-05|1994-10-04|NONE|FOB|ore the even, silent foxes. b|
-3175|1|4|2|38|34238.00|0.01|0.07|R|F|1994-10-10|1994-08-25|1994-10-28|NONE|MAIL|the quickly even dolph|
-3175|129|4|3|12|12349.44|0.09|0.07|R|F|1994-10-16|1994-09-15|1994-10-18|NONE|AIR|ter the pending deposits. slyly e|
-3175|85|6|4|14|13791.12|0.02|0.05|R|F|1994-10-21|1994-09-05|1994-11-15|NONE|MAIL|nt dependencies are quietly even |
-3175|18|8|5|47|43146.47|0.08|0.03|R|F|1994-08-08|1994-09-10|1994-08-21|COLLECT COD|REG AIR| final requests x-r|
-3175|175|6|6|44|47307.48|0.01|0.00|R|F|1994-09-26|1994-08-30|1994-10-24|TAKE BACK RETURN|MAIL|are carefully furiously ironic accounts. e|
-3175|1|4|7|32|28832.00|0.01|0.02|R|F|1994-09-29|1994-09-20|1994-10-10|TAKE BACK RETURN|SHIP|lites sleep|
-3200|116|6|1|17|17273.87|0.10|0.00|N|O|1996-06-06|1996-04-21|1996-06-14|DELIVER IN PERSON|AIR|side of the furiously pendin|
-3200|166|1|2|27|28786.32|0.03|0.00|N|O|1996-05-07|1996-05-01|1996-05-09|TAKE BACK RETURN|REG AIR|as haggle furiously against the fluff|
-3200|131|2|3|36|37120.68|0.01|0.01|N|O|1996-03-22|1996-03-19|1996-03-30|DELIVER IN PERSON|FOB|f the carefu|
-3200|30|9|4|11|10230.33|0.10|0.02|N|O|1996-03-18|1996-03-21|1996-04-14|COLLECT COD|RAIL|osits sleep fur|
-3200|198|9|5|16|17571.04|0.05|0.00|N|O|1996-02-28|1996-03-13|1996-03-11|NONE|RAIL|ly against the quiet packages. blith|
-3200|175|3|6|25|26879.25|0.10|0.01|N|O|1996-02-08|1996-04-11|1996-03-06|COLLECT COD|FOB| slyly regular hockey players! pinto beans |
-3201|46|7|1|11|10406.44|0.10|0.06|A|F|1993-09-27|1993-08-29|1993-10-18|NONE|TRUCK|ing to the furiously expr|
-3201|118|5|2|27|27488.97|0.08|0.02|R|F|1993-08-31|1993-08-24|1993-09-08|TAKE BACK RETURN|FOB|deposits are slyly along|
-3201|119|6|3|50|50955.50|0.00|0.08|R|F|1993-10-27|1993-09-30|1993-11-16|COLLECT COD|TRUCK| deposits. express, ir|
-3202|183|4|1|30|32495.40|0.09|0.02|A|F|1993-03-18|1993-03-10|1993-03-23|COLLECT COD|SHIP|ven platelets. furiously final|
-3202|20|4|2|22|20240.44|0.01|0.02|R|F|1993-02-16|1993-02-16|1993-03-16|TAKE BACK RETURN|MAIL|the express packages. fu|
-3203|144|5|1|23|24015.22|0.01|0.07|N|O|1998-01-04|1998-01-12|1998-01-24|COLLECT COD|SHIP|uses. fluffily ironic pinto bea|
-3203|188|9|2|22|23939.96|0.03|0.03|N|O|1998-02-12|1998-01-01|1998-02-18|TAKE BACK RETURN|REG AIR|e the blithely regular accounts boost f|
-3204|12|2|1|10|9120.10|0.10|0.07|R|F|1993-01-27|1993-03-08|1993-01-29|COLLECT COD|SHIP|counts. bold |
-3204|7|10|2|39|35373.00|0.10|0.03|R|F|1993-02-11|1993-03-19|1993-02-28|TAKE BACK RETURN|MAIL|sits sleep theodolites. slyly bo|
-3205|68|5|1|7|6776.42|0.09|0.00|R|F|1992-07-05|1992-06-17|1992-07-07|NONE|SHIP|ly alongsi|
-3205|29|10|2|32|29728.64|0.08|0.03|A|F|1992-06-01|1992-07-10|1992-06-06|TAKE BACK RETURN|RAIL|lar accoun|
-3205|103|6|3|38|38117.80|0.10|0.08|A|F|1992-07-31|1992-06-03|1992-08-20|DELIVER IN PERSON|AIR|usly quiet accounts. slyly pending pinto |
-3205|56|7|4|10|9560.50|0.01|0.07|A|F|1992-06-18|1992-07-04|1992-07-16|COLLECT COD|RAIL| deposits cajole careful|
-3205|70|9|5|18|17461.26|0.03|0.03|A|F|1992-07-04|1992-06-14|1992-08-03|TAKE BACK RETURN|RAIL|symptotes. slyly even deposits ar|
-3205|195|8|6|19|20808.61|0.07|0.08|R|F|1992-05-28|1992-05-30|1992-06-05|COLLECT COD|AIR|yly pending packages snooz|
-3205|69|8|7|36|34886.16|0.06|0.03|A|F|1992-05-31|1992-06-19|1992-06-03|TAKE BACK RETURN|SHIP|s. ironic platelets above the s|
-3206|176|4|1|1|1076.17|0.07|0.05|N|O|1996-11-22|1996-10-16|1996-12-07|TAKE BACK RETURN|FOB|y unusual foxes cajole ab|
-3206|111|5|2|37|37411.07|0.07|0.01|N|O|1996-09-06|1996-10-31|1996-09-25|COLLECT COD|SHIP| quick theodolites hagg|
-3206|186|7|3|24|26068.32|0.00|0.08|N|O|1996-08-25|1996-10-01|1996-09-04|COLLECT COD|TRUCK|encies sleep deposits--|
-3207|113|3|1|2|2026.22|0.10|0.03|N|O|1998-06-15|1998-04-20|1998-06-21|COLLECT COD|MAIL|among the ironic, even packages |
-3207|71|9|2|42|40784.94|0.00|0.00|N|O|1998-05-02|1998-05-10|1998-06-01|NONE|SHIP|to the quickly special accounts? ironically|
-3207|152|7|3|17|17886.55|0.03|0.04|N|O|1998-03-27|1998-04-06|1998-03-28|COLLECT COD|RAIL|eep against the instructions. gifts hag|
-3207|19|6|4|32|29408.32|0.00|0.03|N|O|1998-06-17|1998-04-26|1998-07-07|TAKE BACK RETURN|SHIP|y across the slyly express foxes. bl|
-3207|83|4|5|8|7864.64|0.00|0.06|N|O|1998-06-13|1998-04-26|1998-07-11|COLLECT COD|SHIP|y. final pint|
-3207|134|5|6|32|33092.16|0.03|0.05|N|O|1998-04-19|1998-05-01|1998-05-08|COLLECT COD|FOB|l deposits wake beyond the carefully|
-3232|14|5|1|22|20108.22|0.10|0.01|A|F|1992-11-30|1992-12-09|1992-12-04|NONE|RAIL|thely. furio|
-3232|135|1|2|34|35194.42|0.07|0.04|R|F|1993-01-09|1992-11-14|1993-02-03|NONE|SHIP|old packages integrate quickly |
-3232|181|2|3|3|3243.54|0.04|0.06|R|F|1992-12-14|1992-12-11|1992-12-29|DELIVER IN PERSON|FOB|ily blithely ironic acco|
-3233|51|2|1|23|21874.15|0.04|0.05|A|F|1994-12-07|1995-01-11|1994-12-26|NONE|AIR|pending instructions use after the carefu|
-3233|154|6|2|6|6324.90|0.02|0.08|A|F|1994-12-06|1994-12-05|1994-12-07|TAKE BACK RETURN|REG AIR|requests are quickly above the slyly p|
-3233|100|4|3|2|2000.20|0.04|0.06|R|F|1995-01-03|1995-01-02|1995-01-21|TAKE BACK RETURN|AIR| across the bold packages|
-3233|9|2|4|25|22725.00|0.04|0.07|A|F|1994-11-24|1995-01-07|1994-12-11|NONE|RAIL|oss the pl|
-3234|79|10|1|45|44058.15|0.01|0.04|N|O|1996-05-15|1996-05-09|1996-06-02|DELIVER IN PERSON|TRUCK| express packages are carefully. f|
-3234|84|5|2|23|22633.84|0.03|0.00|N|O|1996-05-29|1996-05-15|1996-06-17|DELIVER IN PERSON|AIR|d-- fluffily special packag|
-3234|75|4|3|16|15601.12|0.06|0.05|N|O|1996-06-10|1996-05-30|1996-06-18|COLLECT COD|RAIL|ithely ironic accounts wake along t|
-3234|122|1|4|50|51106.00|0.09|0.05|N|O|1996-06-11|1996-05-19|1996-06-18|NONE|MAIL|ly regular ideas according to the regula|
-3234|165|2|5|14|14912.24|0.01|0.07|N|O|1996-04-06|1996-05-30|1996-04-13|NONE|REG AIR|lithely regular f|
-3235|109|2|1|9|9081.90|0.07|0.00|N|O|1995-11-17|1995-12-24|1995-11-30|COLLECT COD|AIR|l courts sleep quickly slyly |
-3235|95|6|2|43|42788.87|0.10|0.07|N|O|1995-12-25|1996-01-23|1996-01-09|COLLECT COD|MAIL|ckly final instru|
-3235|138|9|3|29|30105.77|0.06|0.06|N|O|1996-01-28|1995-12-26|1996-02-12|DELIVER IN PERSON|RAIL|e fluffy pinto bea|
-3235|178|9|4|23|24797.91|0.00|0.01|N|O|1996-02-16|1996-01-05|1996-03-07|DELIVER IN PERSON|SHIP|ldly ironic pinto beans|
-3236|117|4|1|10|10171.10|0.06|0.05|N|O|1996-11-15|1996-12-14|1996-11-29|TAKE BACK RETURN|AIR|arefully. fluffily reg|
-3236|122|7|2|21|21464.52|0.01|0.07|N|O|1996-12-23|1996-12-12|1997-01-21|NONE|AIR| final pinto |
-3236|118|2|3|7|7126.77|0.07|0.01|N|O|1996-12-27|1996-12-18|1997-01-24|DELIVER IN PERSON|SHIP|dolites. slyly unus|
-3237|11|5|1|11|10021.11|0.02|0.07|A|F|1992-08-03|1992-07-31|1992-08-13|TAKE BACK RETURN|AIR|es. permanently express platelets besid|
-3238|72|3|1|12|11664.84|0.06|0.01|R|F|1993-03-06|1993-05-08|1993-04-01|DELIVER IN PERSON|AIR|ackages affix furiously. furiously bol|
-3238|173|2|2|26|27902.42|0.01|0.06|A|F|1993-02-25|1993-04-04|1993-03-20|TAKE BACK RETURN|REG AIR|g accounts sleep furiously ironic attai|
-3238|81|2|3|1|981.08|0.00|0.04|R|F|1993-05-17|1993-04-18|1993-05-27|NONE|SHIP|wake alongs|
-3239|45|8|1|50|47252.00|0.05|0.01|N|O|1998-02-09|1998-04-02|1998-02-22|NONE|FOB|d blithely stea|
-3239|45|8|2|43|40636.72|0.01|0.06|N|O|1998-01-15|1998-03-12|1998-01-29|COLLECT COD|REG AIR|y. bold pinto beans use |
-3239|13|7|3|13|11869.13|0.01|0.05|N|O|1998-02-10|1998-02-19|1998-02-25|DELIVER IN PERSON|MAIL|r deposits solve fluf|
-3239|195|6|4|26|28474.94|0.03|0.05|N|O|1998-01-21|1998-03-21|1998-02-08|DELIVER IN PERSON|SHIP|ngly pending platelets are fluff|
-3239|12|9|5|31|28272.31|0.10|0.08|N|O|1998-04-14|1998-03-24|1998-04-17|DELIVER IN PERSON|FOB|foxes. pendin|
-3264|200|1|1|39|42907.80|0.06|0.06|N|O|1996-11-07|1996-12-12|1996-11-20|TAKE BACK RETURN|REG AIR|sleep carefully after the slyly final|
-3264|131|2|2|34|35058.42|0.00|0.01|N|O|1997-01-03|1997-01-06|1997-01-29|TAKE BACK RETURN|REG AIR|rns haggle carefully. blit|
-3264|125|8|3|11|11276.32|0.09|0.03|N|O|1996-12-11|1996-12-19|1996-12-15|DELIVER IN PERSON|SHIP|regular packages|
-3264|109|10|4|24|24218.40|0.09|0.07|N|O|1997-01-07|1996-12-13|1997-01-11|TAKE BACK RETURN|RAIL|ctions. quick|
-3264|63|4|5|6|5778.36|0.04|0.03|N|O|1996-11-10|1996-12-05|1996-11-22|TAKE BACK RETURN|SHIP|press packages. ironical|
-3264|141|2|6|43|44769.02|0.06|0.06|N|O|1997-01-17|1997-01-24|1997-02-01|TAKE BACK RETURN|TRUCK|leep at the blithely bold|
-3265|25|4|1|8|7400.16|0.06|0.02|A|F|1992-09-01|1992-09-12|1992-09-27|DELIVER IN PERSON|TRUCK|thely ironic requests sleep slyly-- i|
-3265|72|2|2|7|6804.49|0.09|0.00|R|F|1992-09-16|1992-09-04|1992-10-14|DELIVER IN PERSON|MAIL|he forges. fluffily regular asym|
-3265|191|4|3|28|30553.32|0.09|0.08|A|F|1992-10-22|1992-08-23|1992-10-25|NONE|RAIL|n requests. quickly final dinos|
-3266|64|1|1|31|29885.86|0.09|0.02|N|O|1995-06-19|1995-05-04|1995-07-06|COLLECT COD|MAIL|grate among the quickly express deposits|
-3266|38|4|2|43|40335.29|0.06|0.07|R|F|1995-05-04|1995-05-30|1995-05-11|COLLECT COD|AIR|ular asymptotes use careful|
-3267|185|6|1|33|35810.94|0.06|0.01|N|O|1997-03-30|1997-03-25|1997-04-23|TAKE BACK RETURN|AIR|es boost. |
-3268|96|7|1|1|996.09|0.06|0.08|A|F|1994-09-12|1994-08-31|1994-09-16|NONE|TRUCK|. ironic, bold requests use carefull|
-3268|42|9|2|40|37681.60|0.08|0.01|R|F|1994-06-30|1994-08-22|1994-07-25|COLLECT COD|FOB|ly. bold, eve|
-3269|161|10|1|40|42446.40|0.02|0.07|N|O|1996-06-11|1996-05-06|1996-06-15|DELIVER IN PERSON|TRUCK|es. pending d|
-3269|38|4|2|46|43149.38|0.00|0.02|N|O|1996-04-21|1996-04-12|1996-05-10|DELIVER IN PERSON|MAIL|final asymptotes nag|
-3269|44|3|3|39|36817.56|0.02|0.03|N|O|1996-03-13|1996-05-26|1996-03-19|COLLECT COD|MAIL|he express packages?|
-3269|83|4|4|37|36373.96|0.07|0.05|N|O|1996-06-14|1996-04-27|1996-07-07|NONE|MAIL|egular requests. carefully un|
-3269|93|7|5|42|41709.78|0.09|0.05|N|O|1996-03-19|1996-04-24|1996-04-18|COLLECT COD|TRUCK| the special packages. |
-3269|131|7|6|16|16498.08|0.01|0.08|N|O|1996-03-03|1996-04-06|1996-03-06|NONE|RAIL|s cajole. silent deposits are f|
-3270|35|1|1|11|10285.33|0.07|0.06|N|O|1997-07-29|1997-08-11|1997-08-05|TAKE BACK RETURN|AIR| solve at the regular deposits. |
-3270|38|4|2|44|41273.32|0.10|0.05|N|O|1997-07-20|1997-08-15|1997-08-04|DELIVER IN PERSON|SHIP| accounts. carefully even |
-3270|65|4|3|20|19301.20|0.01|0.02|N|O|1997-08-26|1997-07-31|1997-08-30|DELIVER IN PERSON|FOB|en accounts among the c|
-3270|189|10|4|29|31586.22|0.06|0.05|N|O|1997-07-01|1997-07-23|1997-07-10|TAKE BACK RETURN|MAIL|sly regular asymptotes. slyly dog|
-3270|34|10|5|32|29888.96|0.03|0.00|N|O|1997-09-23|1997-08-17|1997-09-27|NONE|REG AIR|promise carefully.|
-3270|57|5|6|29|27754.45|0.01|0.04|N|O|1997-08-22|1997-08-17|1997-09-06|COLLECT COD|RAIL|ptotes nag above the quickly bold deposits|
-3270|117|1|7|9|9153.99|0.06|0.08|N|O|1997-08-14|1997-08-11|1997-09-09|DELIVER IN PERSON|SHIP|ual packages|
-3271|57|9|1|30|28711.50|0.01|0.04|A|F|1992-01-16|1992-03-20|1992-01-17|DELIVER IN PERSON|AIR|r the unusual Tiresia|
-3271|54|5|2|18|17172.90|0.09|0.06|R|F|1992-05-01|1992-03-28|1992-05-29|DELIVER IN PERSON|FOB| packages eat around the furiously regul|
-3271|95|6|3|14|13931.26|0.05|0.01|A|F|1992-02-24|1992-02-14|1992-03-23|NONE|AIR|ending, even packa|
-3271|64|1|4|29|27957.74|0.07|0.04|A|F|1992-03-10|1992-02-05|1992-03-14|COLLECT COD|MAIL|lar instructions. carefully regular|
-3296|84|5|1|12|11808.96|0.06|0.07|R|F|1994-12-08|1994-12-14|1994-12-24|COLLECT COD|AIR|y about the slyly bold pinto bea|
-3296|149|8|2|31|32523.34|0.08|0.00|R|F|1995-01-26|1994-12-25|1995-02-16|NONE|REG AIR|ainst the furi|
-3296|185|6|3|29|31470.22|0.02|0.04|A|F|1995-01-12|1994-11-26|1995-02-06|DELIVER IN PERSON|SHIP|ss ideas are reg|
-3296|140|1|4|47|48886.58|0.06|0.00|A|F|1994-11-08|1994-12-20|1994-11-30|NONE|FOB|egular deposits. quic|
-3296|177|6|5|16|17234.72|0.06|0.02|R|F|1995-01-11|1994-12-27|1995-01-12|DELIVER IN PERSON|SHIP|kages cajole carefully |
-3296|197|1|6|40|43887.60|0.00|0.04|A|F|1994-12-28|1994-12-08|1995-01-13|COLLECT COD|REG AIR|ronic ideas across the|
-3296|36|2|7|6|5616.18|0.02|0.01|R|F|1995-01-03|1994-12-23|1995-01-27|TAKE BACK RETURN|AIR|carefully fur|
-3297|134|10|1|10|10341.30|0.10|0.04|A|F|1992-12-14|1993-01-21|1992-12-26|NONE|SHIP|ironic idea|
-3298|149|6|1|9|9442.26|0.01|0.06|N|O|1996-08-15|1996-05-24|1996-09-12|COLLECT COD|REG AIR|ly final accou|
-3298|186|7|2|27|29326.86|0.06|0.06|N|O|1996-07-10|1996-05-21|1996-07-15|DELIVER IN PERSON|FOB|lar packages. regular deposit|
-3298|29|2|3|25|23225.50|0.10|0.08|N|O|1996-06-30|1996-05-31|1996-07-23|COLLECT COD|SHIP|ly express f|
-3298|191|5|4|1|1091.19|0.10|0.03|N|O|1996-07-31|1996-05-23|1996-08-24|TAKE BACK RETURN|FOB|refully regular requ|
-3299|183|4|1|40|43327.20|0.03|0.02|A|F|1994-03-21|1994-03-23|1994-04-12|COLLECT COD|AIR|lyly even request|
-3300|129|4|1|3|3087.36|0.07|0.02|N|O|1995-11-01|1995-10-02|1995-11-20|NONE|REG AIR|g according to the dugouts. caref|
-3300|149|10|2|23|24130.22|0.02|0.02|N|O|1995-08-17|1995-09-03|1995-09-04|COLLECT COD|TRUCK|he fluffily final a|
-3301|169|8|1|45|48112.20|0.04|0.05|A|F|1994-11-19|1994-10-27|1994-11-24|TAKE BACK RETURN|FOB|nusual, final excuses after the entici|
-3302|36|2|1|45|42121.35|0.09|0.00|N|O|1996-01-24|1995-12-16|1996-02-13|COLLECT COD|FOB|counts use quickl|
-3303|184|5|1|25|27104.50|0.06|0.01|N|O|1998-03-25|1998-01-31|1998-04-12|NONE|SHIP|lly regular pi|
-3303|21|2|2|15|13815.30|0.04|0.06|N|O|1998-01-29|1998-01-22|1998-02-21|COLLECT COD|SHIP| detect sly|
-3303|99|10|3|37|36966.33|0.05|0.02|N|O|1998-02-16|1998-03-07|1998-02-18|TAKE BACK RETURN|TRUCK| carefully ironic asympt|
-3303|36|2|4|26|24336.78|0.09|0.00|N|O|1998-01-18|1998-03-11|1998-02-11|DELIVER IN PERSON|REG AIR|ickly permanent requests w|
-3328|113|7|1|6|6078.66|0.03|0.08|A|F|1993-03-07|1993-01-25|1993-03-29|COLLECT COD|TRUCK|ffily even instructions detect b|
-3328|5|2|2|23|20815.00|0.01|0.06|R|F|1993-01-12|1993-02-07|1993-01-30|TAKE BACK RETURN|MAIL|y. careful|
-3328|139|10|3|44|45721.72|0.05|0.00|R|F|1992-12-03|1992-12-19|1992-12-09|TAKE BACK RETURN|FOB|dly quickly final foxes? re|
-3328|95|9|4|42|41793.78|0.01|0.05|R|F|1992-11-24|1992-12-20|1992-12-06|DELIVER IN PERSON|AIR|ronic requests|
-3328|131|7|5|25|25778.25|0.05|0.00|R|F|1993-01-28|1993-01-04|1993-01-31|NONE|RAIL|e unusual, r|
-3329|138|4|1|36|37372.68|0.09|0.08|N|O|1995-08-06|1995-08-03|1995-08-14|DELIVER IN PERSON|TRUCK|ts at the re|
-3329|6|3|2|9|8154.00|0.00|0.02|N|O|1995-07-24|1995-08-02|1995-08-01|COLLECT COD|MAIL|lly final depo|
-3329|123|4|3|1|1023.12|0.04|0.08|N|O|1995-08-22|1995-09-28|1995-09-09|COLLECT COD|REG AIR|regular packages are carefull|
-3330|20|7|1|49|45080.98|0.05|0.01|R|F|1995-03-02|1995-03-03|1995-03-16|DELIVER IN PERSON|TRUCK|haggle carefully alongside of the bold r|
-3331|64|9|1|9|8676.54|0.08|0.07|A|F|1993-07-18|1993-07-03|1993-08-16|TAKE BACK RETURN|AIR|odolites. bold accounts|
-3331|21|2|2|38|34998.76|0.06|0.04|R|F|1993-07-24|1993-06-22|1993-08-23|NONE|AIR|ymptotes haggle across the ca|
-3331|3|10|3|26|23478.00|0.09|0.05|A|F|1993-08-05|1993-07-17|1993-08-29|DELIVER IN PERSON|MAIL|p asymptotes. carefully unusual in|
-3332|84|5|1|28|27554.24|0.10|0.02|R|F|1994-12-30|1995-01-16|1995-01-16|COLLECT COD|FOB|s against the carefully special multipl|
-3332|136|2|2|21|21758.73|0.08|0.04|R|F|1995-02-04|1995-01-08|1995-02-06|COLLECT COD|MAIL| quick packages sle|
-3332|134|5|3|27|27921.51|0.03|0.02|A|F|1994-12-10|1995-01-14|1994-12-11|TAKE BACK RETURN|FOB|ording to the slyly regula|
-3333|150|9|1|27|28354.05|0.06|0.08|A|F|1992-12-06|1992-10-26|1992-12-07|COLLECT COD|SHIP|s dazzle fluffil|
-3333|199|3|2|36|39570.84|0.08|0.07|R|F|1992-11-20|1992-11-06|1992-12-16|TAKE BACK RETURN|FOB|foxes sleep neve|
-3333|108|1|3|38|38307.80|0.05|0.05|A|F|1992-10-30|1992-11-03|1992-11-04|NONE|MAIL|ccounts promise bl|
-3333|113|4|4|49|49642.39|0.07|0.07|R|F|1992-10-02|1992-11-30|1992-10-12|DELIVER IN PERSON|MAIL|riously ironic r|
-3333|43|2|5|45|42436.80|0.07|0.08|A|F|1992-10-04|1992-11-08|1992-10-27|COLLECT COD|SHIP|dolites. quickly r|
-3334|187|8|1|20|21743.60|0.04|0.03|N|O|1996-05-21|1996-04-08|1996-05-26|TAKE BACK RETURN|AIR|uses nag furiously. instructions are ca|
-3334|190|1|2|7|7631.33|0.09|0.07|N|O|1996-04-28|1996-04-08|1996-05-25|NONE|SHIP|nts sublate slyly express pack|
-3335|105|10|1|13|13066.30|0.06|0.07|N|O|1996-01-20|1995-12-20|1996-02-09|COLLECT COD|REG AIR|out the special asymptotes|
-3335|31|2|2|44|40965.32|0.07|0.02|N|O|1996-01-05|1995-12-25|1996-01-18|DELIVER IN PERSON|SHIP|r packages cajole ac|
-3335|140|6|3|16|16642.24|0.01|0.06|N|O|1995-10-18|1995-12-08|1995-11-03|DELIVER IN PERSON|SHIP|g packages. carefully regular reque|
-3335|90|1|4|47|46534.23|0.10|0.03|N|O|1995-12-02|1995-11-19|1995-12-27|NONE|MAIL| quickly special ideas.|
-3360|174|4|1|31|33299.27|0.08|0.04|N|O|1998-04-24|1998-04-12|1998-05-23|COLLECT COD|REG AIR|quests. carefully even deposits wake acros|
-3360|91|3|2|29|28741.61|0.00|0.06|N|O|1998-04-15|1998-02-25|1998-05-13|TAKE BACK RETURN|FOB|press asymptotes. furiously final |
-3360|82|3|3|39|38301.12|0.08|0.03|N|O|1998-04-09|1998-04-20|1998-05-05|DELIVER IN PERSON|REG AIR|s. blithely express pinto bean|
-3360|117|7|4|29|29496.19|0.10|0.01|N|O|1998-05-19|1998-03-03|1998-06-09|TAKE BACK RETURN|FOB|hely gifts. spe|
-3360|58|6|5|4|3832.20|0.08|0.07|N|O|1998-02-27|1998-03-23|1998-03-28|COLLECT COD|SHIP|ly busy inst|
-3360|71|1|6|42|40784.94|0.04|0.01|N|O|1998-05-07|1998-04-18|1998-06-04|DELIVER IN PERSON|FOB|ages cajole. pending, |
-3361|144|5|1|6|6264.84|0.02|0.02|R|F|1992-10-02|1992-10-25|1992-10-05|DELIVER IN PERSON|FOB| packages sleep. furiously unus|
-3361|171|10|2|33|35348.61|0.01|0.02|R|F|1992-11-09|1992-10-15|1992-11-11|TAKE BACK RETURN|MAIL|uriously ironic accounts. ironic, ir|
-3361|191|5|3|31|33826.89|0.06|0.04|R|F|1992-08-29|1992-10-13|1992-09-08|NONE|FOB|ts. pending, regular accounts sleep fur|
-3362|22|5|1|14|12908.28|0.06|0.05|N|O|1995-08-01|1995-09-06|1995-08-22|NONE|FOB|even Tires|
-3362|195|6|2|41|44902.79|0.05|0.03|N|O|1995-10-31|1995-09-04|1995-11-17|COLLECT COD|REG AIR|ake alongside of the |
-3362|115|9|3|40|40604.40|0.05|0.06|N|O|1995-08-19|1995-10-17|1995-09-05|TAKE BACK RETURN|FOB|packages haggle furi|
-3362|2|7|4|3|2706.00|0.03|0.01|N|O|1995-08-26|1995-09-02|1995-09-17|NONE|SHIP|its cajole blithely excuses. de|
-3362|138|9|5|36|37372.68|0.06|0.00|N|O|1995-10-05|1995-08-28|1995-11-03|TAKE BACK RETURN|RAIL|es against the quickly permanent pint|
-3362|188|9|6|46|50056.28|0.09|0.05|N|O|1995-08-02|1995-10-12|1995-08-28|COLLECT COD|REG AIR|ly bold packages. regular deposits cajol|
-3363|10|3|1|42|38220.42|0.00|0.08|N|O|1995-11-09|1995-11-25|1995-11-15|TAKE BACK RETURN|RAIL| blithely final ideas nag after|
-3363|191|4|2|21|22914.99|0.08|0.08|N|O|1995-12-10|1995-10-28|1995-12-28|COLLECT COD|RAIL|he regular, brave deposits. f|
-3363|159|7|3|2|2118.30|0.01|0.07|N|O|1996-01-22|1995-12-01|1996-02-18|TAKE BACK RETURN|SHIP|uickly bold ide|
-3363|113|3|4|20|20262.20|0.07|0.06|N|O|1995-12-11|1995-11-15|1995-12-21|COLLECT COD|MAIL|carefully quiet excuses wake. sl|
-3363|200|4|5|4|4400.80|0.00|0.08|N|O|1995-10-30|1995-11-17|1995-11-22|COLLECT COD|FOB| ironic dependencie|
-3364|90|1|1|49|48514.41|0.03|0.05|N|O|1997-09-17|1997-08-23|1997-10-06|NONE|SHIP|d accounts? caref|
-3364|111|2|2|38|38422.18|0.02|0.02|N|O|1997-08-30|1997-09-12|1997-09-27|COLLECT COD|REG AIR| slyly express|
-3364|156|4|3|10|10561.50|0.00|0.01|N|O|1997-08-10|1997-08-24|1997-08-15|TAKE BACK RETURN|SHIP|g the accounts. final, busy accounts wi|
-3364|160|5|4|7|7421.12|0.10|0.05|N|O|1997-07-09|1997-08-01|1997-07-16|NONE|TRUCK|furiously regular ideas haggle furiously b|
-3364|81|2|5|3|2943.24|0.01|0.00|N|O|1997-10-19|1997-08-15|1997-10-28|TAKE BACK RETURN|TRUCK|c theodolites. blithely ir|
-3365|151|6|1|37|38892.55|0.02|0.08|R|F|1994-12-22|1995-02-07|1995-01-20|TAKE BACK RETURN|SHIP|requests. quickly pending instructions a|
-3365|167|2|2|37|39484.92|0.07|0.08|A|F|1994-11-24|1995-01-09|1994-11-27|NONE|REG AIR|oze blithely. furiously ironic theodolit|
-3365|115|6|3|13|13196.43|0.09|0.02|R|F|1995-02-25|1995-01-31|1995-03-16|NONE|RAIL|pths wake r|
-3365|176|4|4|49|52732.33|0.02|0.07|R|F|1995-01-03|1995-01-01|1995-01-18|COLLECT COD|MAIL|lyly unusual asymptotes. final|
-3365|16|3|5|2|1832.02|0.00|0.03|R|F|1995-02-04|1994-12-30|1995-03-06|TAKE BACK RETURN|FOB|es cajole fluffily pe|
-3365|126|5|6|24|24626.88|0.01|0.00|R|F|1995-02-27|1995-01-09|1995-03-27|DELIVER IN PERSON|REG AIR|into beans? carefully regula|
-3366|40|1|1|4|3760.16|0.07|0.01|N|O|1997-05-20|1997-06-25|1997-06-03|DELIVER IN PERSON|AIR| carefully about |
-3366|136|2|2|9|9325.17|0.00|0.08|N|O|1997-06-02|1997-07-05|1997-06-26|COLLECT COD|REG AIR|ackages sleep carefully across the bli|
-3367|41|10|1|27|25408.08|0.01|0.03|A|F|1993-04-13|1993-03-16|1993-04-26|NONE|RAIL|kly even instructions caj|
-3367|141|10|2|34|35398.76|0.04|0.08|A|F|1993-03-30|1993-02-23|1993-04-11|COLLECT COD|MAIL| accounts wake slyly |
-3367|120|7|3|38|38764.56|0.03|0.03|R|F|1993-03-13|1993-02-12|1993-03-31|NONE|RAIL|even packages sleep blithely slyly expr|
-3392|171|10|1|40|42846.80|0.01|0.01|N|O|1996-02-18|1995-12-16|1996-02-26|COLLECT COD|MAIL|ress instructions affix carefully. fur|
-3392|123|2|2|13|13300.56|0.09|0.02|N|O|1995-11-26|1996-01-17|1995-12-01|NONE|MAIL|across the fluffily bold deposits.|
-3392|127|10|3|34|34922.08|0.10|0.08|N|O|1996-01-20|1996-01-21|1996-01-24|DELIVER IN PERSON|MAIL|e carefully even braids. |
-3392|124|3|4|7|7168.84|0.08|0.05|N|O|1995-12-07|1996-01-09|1995-12-29|TAKE BACK RETURN|RAIL|as. express, final accounts dou|
-3393|117|7|1|16|16273.76|0.01|0.00|N|O|1995-07-17|1995-08-19|1995-08-04|COLLECT COD|TRUCK|uses. instructions after the blithely |
-3393|125|4|2|44|45105.28|0.08|0.04|N|O|1995-10-16|1995-08-05|1995-11-01|NONE|AIR|ld requests hag|
-3393|97|1|3|25|24927.25|0.07|0.02|N|O|1995-10-17|1995-08-12|1995-11-11|DELIVER IN PERSON|MAIL|ng excuses|
-3393|72|2|4|48|46659.36|0.06|0.06|N|O|1995-07-12|1995-09-15|1995-08-02|NONE|FOB| blithely final reques|
-3393|178|7|5|37|39892.29|0.07|0.02|N|O|1995-10-16|1995-08-19|1995-10-19|COLLECT COD|AIR|ss the slyly ironic pinto beans. ironic,|
-3393|62|7|6|17|16355.02|0.04|0.01|N|O|1995-08-15|1995-09-07|1995-09-10|COLLECT COD|MAIL|kly ironic deposits could|
-3394|155|6|1|33|34819.95|0.07|0.08|N|O|1996-08-07|1996-07-17|1996-09-02|TAKE BACK RETURN|SHIP|ideas alongside of th|
-3394|146|3|2|43|44984.02|0.08|0.03|N|O|1996-08-23|1996-07-20|1996-08-25|COLLECT COD|RAIL|hockey players. slyly regular requests afte|
-3394|88|9|3|26|25690.08|0.01|0.00|N|O|1996-08-08|1996-06-12|1996-09-05|TAKE BACK RETURN|RAIL|its use furiously. even, even account|
-3394|81|2|4|14|13735.12|0.08|0.00|N|O|1996-06-02|1996-07-02|1996-06-19|COLLECT COD|MAIL|e furiously final theodolites. furio|
-3394|127|8|5|30|30813.60|0.04|0.06|N|O|1996-05-12|1996-07-24|1996-05-19|COLLECT COD|REG AIR|t ideas according to the fluffily iro|
-3394|184|5|6|14|15178.52|0.05|0.05|N|O|1996-06-18|1996-06-24|1996-07-17|NONE|REG AIR|arefully regular do|
-3395|142|3|1|21|21884.94|0.03|0.06|R|F|1994-12-19|1995-01-13|1994-12-25|TAKE BACK RETURN|SHIP| careful dep|
-3395|36|2|2|38|35569.14|0.01|0.07|R|F|1995-01-13|1995-01-13|1995-01-25|COLLECT COD|SHIP| silent accounts are blithely|
-3395|43|4|3|43|40550.72|0.06|0.07|A|F|1994-12-13|1995-01-07|1994-12-14|COLLECT COD|AIR|ckages above the furiously regu|
-3395|122|1|4|39|39862.68|0.05|0.07|R|F|1994-12-03|1995-01-17|1994-12-10|NONE|AIR|riously unusual theodolites. fur|
-3396|128|7|1|34|34956.08|0.00|0.06|A|F|1994-05-30|1994-08-16|1994-06-11|NONE|AIR|. slyly unusual packages wak|
-3396|49|6|2|43|40808.72|0.03|0.08|A|F|1994-07-03|1994-08-09|1994-07-14|TAKE BACK RETURN|MAIL|cial packages cajole blithely around the |
-3396|138|4|3|9|9343.17|0.01|0.06|R|F|1994-07-01|1994-08-18|1994-07-21|DELIVER IN PERSON|AIR|usly special foxes. accounts wake careful|
-3396|75|3|4|32|31202.24|0.06|0.02|R|F|1994-08-07|1994-08-10|1994-09-05|COLLECT COD|TRUCK|osits are slyly. final, bold foxes s|
-3396|126|5|5|27|27705.24|0.02|0.01|A|F|1994-09-14|1994-07-26|1994-09-28|DELIVER IN PERSON|FOB| theodolites |
-3396|39|10|6|18|16902.54|0.10|0.00|A|F|1994-07-27|1994-06-26|1994-08-25|TAKE BACK RETURN|REG AIR|l requests haggle furiously along the fur|
-3396|198|2|7|31|34043.89|0.05|0.06|A|F|1994-06-07|1994-06-23|1994-06-19|TAKE BACK RETURN|REG AIR|l, express pinto beans. quic|
-3397|195|8|1|8|8761.52|0.07|0.01|A|F|1994-08-05|1994-08-11|1994-08-08|DELIVER IN PERSON|RAIL|y final foxes|
-3397|13|3|2|11|10043.11|0.00|0.07|A|F|1994-07-29|1994-09-18|1994-08-12|DELIVER IN PERSON|REG AIR|iously careful packages. s|
-3397|184|5|3|1|1084.18|0.07|0.05|R|F|1994-08-03|1994-07-30|1994-08-28|NONE|RAIL| regular packag|
-3397|86|7|4|33|32540.64|0.05|0.01|R|F|1994-09-04|1994-08-06|1994-09-22|COLLECT COD|RAIL|gular accounts. blithely re|
-3397|132|3|5|28|28899.64|0.05|0.05|R|F|1994-07-13|1994-08-26|1994-07-17|NONE|TRUCK|counts around the final reques|
-3398|173|4|1|1|1073.17|0.01|0.08|N|O|1996-11-22|1996-11-16|1996-12-09|COLLECT COD|MAIL| blithely final deposits.|
-3399|134|5|1|28|28955.64|0.09|0.05|N|O|1995-06-29|1995-05-19|1995-07-12|COLLECT COD|AIR|oggedly final theodolites grow. fi|
-3399|55|6|2|8|7640.40|0.01|0.05|A|F|1995-05-15|1995-04-19|1995-06-05|COLLECT COD|TRUCK|s use carefully carefully ir|
-3399|67|4|3|3|2901.18|0.03|0.00|N|F|1995-06-16|1995-04-04|1995-06-23|NONE|SHIP|hely pending dugouts |
-3399|14|5|4|21|19194.21|0.09|0.06|A|F|1995-03-12|1995-05-18|1995-03-28|TAKE BACK RETURN|MAIL|se final courts. exc|
-3424|181|2|1|39|42166.02|0.06|0.07|N|O|1996-11-03|1996-11-08|1996-11-23|DELIVER IN PERSON|MAIL|bits boost closely slyly p|
-3425|120|1|1|11|11221.32|0.03|0.08|N|O|1996-04-24|1996-05-29|1996-05-23|DELIVER IN PERSON|FOB|ckly final deposits use quickly?|
-3425|79|7|2|37|36225.59|0.06|0.03|N|O|1996-06-04|1996-05-09|1996-06-12|NONE|SHIP|as sleep carefully into the caref|
-3425|14|4|3|8|7312.08|0.06|0.08|N|O|1996-07-22|1996-06-07|1996-07-26|TAKE BACK RETURN|AIR|iously regular theodolites wake. s|
-3425|19|10|4|37|34003.37|0.04|0.01|N|O|1996-07-10|1996-05-10|1996-08-02|NONE|SHIP|ngside of the furiously thin dol|
-3425|79|9|5|48|46995.36|0.08|0.04|N|O|1996-04-14|1996-05-25|1996-04-23|TAKE BACK RETURN|AIR|uctions wake fluffily. care|
-3425|148|9|6|24|25155.36|0.05|0.04|N|O|1996-04-22|1996-06-24|1996-04-25|TAKE BACK RETURN|AIR|ajole blithely sl|
-3426|110|5|1|20|20202.20|0.05|0.04|N|O|1996-11-10|1996-12-24|1996-12-01|COLLECT COD|FOB|sits cajole blit|
-3426|14|4|2|19|17366.19|0.10|0.08|N|O|1996-11-02|1997-01-13|1996-11-15|DELIVER IN PERSON|RAIL|slyly special packages oug|
-3426|67|6|3|19|18374.14|0.08|0.05|N|O|1996-12-07|1996-12-15|1996-12-14|DELIVER IN PERSON|FOB|c accounts cajole carefu|
-3426|6|7|4|9|8154.00|0.09|0.05|N|O|1996-12-24|1997-01-14|1997-01-13|NONE|FOB|pecial theodolites haggle fluf|
-3426|49|6|5|31|29420.24|0.07|0.08|N|O|1996-11-11|1996-12-10|1996-12-10|DELIVER IN PERSON|SHIP| even sentiment|
-3427|54|5|1|41|39116.05|0.10|0.01|N|O|1997-09-11|1997-07-03|1997-10-04|COLLECT COD|RAIL|s the carefully|
-3427|189|10|2|24|26140.32|0.02|0.04|N|O|1997-07-01|1997-07-28|1997-07-30|NONE|SHIP|y bold, sly deposits. pendi|
-3427|139|5|3|40|41565.20|0.06|0.05|N|O|1997-06-12|1997-08-19|1997-06-23|COLLECT COD|MAIL|patterns cajole ca|
-3427|119|6|4|31|31592.41|0.08|0.04|N|O|1997-08-12|1997-07-26|1997-08-25|COLLECT COD|RAIL|s are carefull|
-3428|198|9|1|4|4392.76|0.00|0.03|N|O|1996-05-09|1996-06-13|1996-06-02|NONE|REG AIR|sly pending requests int|
-3428|118|9|2|35|35633.85|0.02|0.03|N|O|1996-05-01|1996-06-07|1996-05-20|COLLECT COD|TRUCK|ly regular pinto beans sleep|
-3428|136|7|3|47|48698.11|0.07|0.05|N|O|1996-04-16|1996-06-08|1996-05-05|NONE|REG AIR|y final pinto |
-3429|137|8|1|48|49782.24|0.06|0.02|N|O|1997-04-08|1997-03-09|1997-04-25|TAKE BACK RETURN|SHIP| haggle furiously ir|
-3429|59|7|2|15|14385.75|0.03|0.04|N|O|1997-02-04|1997-03-09|1997-03-01|TAKE BACK RETURN|TRUCK|beans are fu|
-3429|69|4|3|10|9690.60|0.05|0.07|N|O|1997-01-19|1997-02-22|1997-01-25|TAKE BACK RETURN|REG AIR|ackages. quickly e|
-3429|89|10|4|28|27694.24|0.10|0.07|N|O|1997-01-30|1997-03-18|1997-02-17|TAKE BACK RETURN|AIR|nstructions boost. thin|
-3429|165|6|5|45|47932.20|0.10|0.00|N|O|1997-04-21|1997-03-08|1997-05-05|COLLECT COD|REG AIR|ites poach a|
-3430|189|10|1|2|2178.36|0.07|0.06|R|F|1995-03-07|1995-01-28|1995-03-30|TAKE BACK RETURN|MAIL|sh furiously according to the evenly e|
-3430|81|2|2|32|31394.56|0.08|0.00|R|F|1995-01-17|1995-01-28|1995-02-06|NONE|TRUCK|egular instruction|
-3430|97|8|3|41|40880.69|0.06|0.04|R|F|1995-02-18|1995-02-21|1995-03-11|TAKE BACK RETURN|AIR|cuses. silent excuses h|
-3430|65|2|4|50|48253.00|0.01|0.00|R|F|1994-12-15|1995-03-03|1994-12-24|COLLECT COD|REG AIR|ironic theodolites. carefully regular pac|
-3430|95|9|5|5|4975.45|0.05|0.05|A|F|1995-04-02|1995-02-12|1995-04-08|DELIVER IN PERSON|FOB|even accounts haggle slyly bol|
-3430|171|10|6|15|16067.55|0.08|0.07|A|F|1995-02-01|1995-03-12|1995-02-04|COLLECT COD|SHIP|cajole around the accounts. qui|
-3430|52|7|7|23|21897.15|0.09|0.08|A|F|1995-03-06|1995-03-01|1995-03-10|COLLECT COD|MAIL|eas according to the|
-3431|180|8|1|41|44287.38|0.03|0.06|A|F|1993-09-26|1993-10-13|1993-10-22|NONE|AIR| sleep carefully ironically special|
-3456|111|8|1|34|34377.74|0.10|0.06|A|F|1993-08-29|1993-08-26|1993-09-07|TAKE BACK RETURN|SHIP|usy pinto beans b|
-3457|182|3|1|29|31383.22|0.03|0.02|R|F|1995-05-12|1995-07-13|1995-06-05|NONE|TRUCK|refully final excuses wake|
-3457|106|7|2|22|22134.20|0.06|0.01|N|O|1995-06-23|1995-06-16|1995-06-29|NONE|SHIP|packages nag furiously against|
-3457|109|2|3|7|7063.70|0.07|0.08|N|O|1995-08-14|1995-07-06|1995-08-18|COLLECT COD|SHIP| pending accounts along the|
-3457|1|2|4|24|21624.00|0.07|0.07|N|O|1995-08-03|1995-05-30|1995-08-14|TAKE BACK RETURN|REG AIR|tructions haggle alongsid|
-3457|109|4|5|42|42382.20|0.05|0.01|A|F|1995-06-12|1995-06-14|1995-06-14|COLLECT COD|MAIL|riously final instruc|
-3457|144|1|6|45|46986.30|0.08|0.01|N|O|1995-08-12|1995-07-18|1995-08-23|TAKE BACK RETURN|SHIP| packages. care|
-3457|167|4|7|9|9604.44|0.04|0.00|R|F|1995-05-29|1995-06-30|1995-06-12|DELIVER IN PERSON|FOB|quests. foxes sleep quickly|
-3458|133|4|1|48|49590.24|0.06|0.04|R|F|1995-03-17|1995-01-25|1995-03-28|TAKE BACK RETURN|AIR|iously pending dep|
-3458|50|3|2|46|43702.30|0.06|0.06|R|F|1995-03-08|1995-01-21|1995-03-10|TAKE BACK RETURN|SHIP|nod across the boldly even instruct|
-3458|143|4|3|36|37553.04|0.01|0.06|R|F|1995-04-20|1995-02-14|1995-05-09|TAKE BACK RETURN|REG AIR|s lose. blithely ironic requests boost|
-3458|16|10|4|16|14656.16|0.09|0.03|R|F|1995-03-01|1995-02-25|1995-03-06|TAKE BACK RETURN|AIR|s grow carefully. express, final grouc|
-3458|157|5|5|2|2114.30|0.09|0.03|A|F|1995-02-05|1995-02-01|1995-03-07|COLLECT COD|FOB|ironic packages haggle past the furiously |
-3458|142|1|6|6|6252.84|0.09|0.04|A|F|1995-03-10|1995-02-02|1995-03-23|TAKE BACK RETURN|AIR|dolites; regular theodolites cajole |
-3459|179|7|1|31|33454.27|0.06|0.01|A|F|1994-09-05|1994-10-20|1994-10-03|NONE|REG AIR|y regular pain|
-3459|130|9|2|30|30903.90|0.04|0.08|R|F|1994-11-22|1994-09-12|1994-12-11|NONE|REG AIR|nic theodolites; evenly i|
-3459|41|8|3|45|42346.80|0.04|0.05|A|F|1994-07-31|1994-09-09|1994-08-02|TAKE BACK RETURN|REG AIR|ntly speci|
-3459|69|10|4|10|9690.60|0.05|0.06|A|F|1994-10-06|1994-09-16|1994-11-03|TAKE BACK RETURN|REG AIR| furiously silent dolphi|
-3459|189|10|5|10|10891.80|0.02|0.02|R|F|1994-08-01|1994-10-17|1994-08-11|TAKE BACK RETURN|FOB|. blithely ironic pinto beans above|
-3460|11|1|1|40|36440.40|0.10|0.06|N|O|1995-12-28|1995-12-14|1996-01-02|NONE|REG AIR|odolites are slyly bold deposits|
-3460|74|4|2|3|2922.21|0.06|0.00|N|O|1996-01-19|1995-12-28|1996-01-31|COLLECT COD|AIR|er quickly |
-3460|35|1|3|40|37401.20|0.08|0.07|N|O|1995-10-29|1995-11-10|1995-11-24|TAKE BACK RETURN|REG AIR|o the even deposits|
-3460|95|8|4|50|49754.50|0.02|0.07|N|O|1996-01-30|1995-12-10|1996-02-06|DELIVER IN PERSON|SHIP|e slyly about the sly|
-3460|130|1|5|47|48416.11|0.08|0.05|N|O|1995-12-09|1995-11-12|1995-12-22|TAKE BACK RETURN|SHIP|es haggle slyly regular accounts. fi|
-3460|63|10|6|46|44300.76|0.03|0.07|N|O|1996-01-27|1996-01-01|1996-02-01|NONE|TRUCK|uses run among the carefully even deposits|
-3460|45|2|7|28|26461.12|0.00|0.01|N|O|1995-10-28|1995-11-13|1995-11-17|COLLECT COD|SHIP|inal, ironic instructions. carefully|
-3461|100|4|1|49|49004.90|0.06|0.06|A|F|1993-03-09|1993-04-16|1993-03-13|DELIVER IN PERSON|RAIL|ual request|
-3461|63|4|2|27|26002.62|0.06|0.06|A|F|1993-02-10|1993-03-02|1993-03-04|COLLECT COD|SHIP|ely unusual deposits. quickly ir|
-3461|39|5|3|44|41317.32|0.09|0.06|A|F|1993-05-20|1993-04-03|1993-05-27|COLLECT COD|RAIL| haggle quickly even ideas. fin|
-3461|95|7|4|41|40798.69|0.09|0.02|R|F|1993-02-19|1993-04-20|1993-02-21|NONE|TRUCK|heodolites. blithely ironi|
-3461|90|1|5|16|15841.44|0.08|0.06|A|F|1993-05-09|1993-04-29|1993-05-26|TAKE BACK RETURN|TRUCK| pending deposi|
-3461|167|2|6|24|25611.84|0.10|0.00|A|F|1993-06-01|1993-03-12|1993-06-20|TAKE BACK RETURN|MAIL|thely. carefully re|
-3462|151|3|1|4|4204.60|0.09|0.04|N|O|1997-06-12|1997-07-31|1997-06-16|COLLECT COD|RAIL|ackages. fu|
-3462|40|1|2|43|40421.72|0.08|0.03|N|O|1997-08-01|1997-07-18|1997-08-29|NONE|RAIL| carefully. final, final ideas sleep slyly|
-3462|129|4|3|6|6174.72|0.05|0.04|N|O|1997-06-02|1997-08-09|1997-06-30|NONE|RAIL|iously regular fo|
-3462|99|3|4|2|1998.18|0.09|0.07|N|O|1997-09-10|1997-08-08|1997-09-19|NONE|AIR|nic packages. even accounts alongside |
-3462|38|4|5|14|13132.42|0.01|0.02|N|O|1997-05-31|1997-07-05|1997-06-24|COLLECT COD|MAIL|yly. blithely bold theodolites wa|
-3463|61|10|1|45|43247.70|0.02|0.02|A|F|1993-10-30|1993-11-04|1993-11-08|DELIVER IN PERSON|FOB|nts are slyly |
-3463|98|1|2|43|42917.87|0.04|0.02|A|F|1993-10-28|1993-09-24|1993-11-03|DELIVER IN PERSON|FOB| across the |
-3488|160|5|1|1|1060.16|0.04|0.01|A|F|1995-03-06|1995-02-16|1995-03-23|DELIVER IN PERSON|FOB| final excuses. carefully even waters hagg|
-3488|104|9|2|48|48196.80|0.00|0.03|A|F|1995-03-29|1995-03-26|1995-04-28|COLLECT COD|SHIP|sly? final requests |
-3488|160|1|3|11|11661.76|0.03|0.08|R|F|1995-03-25|1995-02-08|1995-04-16|COLLECT COD|TRUCK|unusual re|
-3488|42|9|4|12|11304.48|0.05|0.07|R|F|1995-04-27|1995-02-16|1995-05-09|DELIVER IN PERSON|RAIL|e slyly; furiously final packages wak|
-3488|156|1|5|18|19010.70|0.09|0.06|A|F|1995-03-18|1995-03-19|1995-03-29|DELIVER IN PERSON|FOB|s the carefully r|
-3489|186|7|1|19|20637.42|0.09|0.05|A|F|1993-07-31|1993-10-26|1993-08-15|NONE|SHIP|c deposits alongside of the pending, fu|
-3489|29|4|2|46|42734.92|0.00|0.00|A|F|1993-08-02|1993-10-09|1993-08-10|TAKE BACK RETURN|TRUCK|xcuses? quickly stealthy dependenci|
-3490|92|6|1|43|42659.87|0.05|0.05|N|O|1997-08-04|1997-08-06|1997-08-14|TAKE BACK RETURN|SHIP|. even requests cajol|
-3490|86|7|2|50|49304.00|0.05|0.07|N|O|1997-06-27|1997-08-15|1997-06-28|NONE|RAIL| haggle carefu|
-3490|93|7|3|8|7944.72|0.10|0.04|N|O|1997-08-11|1997-07-25|1997-08-28|COLLECT COD|MAIL|inal deposits use furiousl|
-3491|154|2|1|28|29516.20|0.04|0.03|N|O|1998-09-29|1998-09-08|1998-10-23|COLLECT COD|FOB|ccounts. sly|
-3491|122|3|2|22|22486.64|0.08|0.02|N|O|1998-08-19|1998-08-22|1998-09-03|TAKE BACK RETURN|REG AIR| grow against the boldly pending pinto bea|
-3492|156|7|1|3|3168.45|0.02|0.08|R|F|1994-11-26|1994-12-28|1994-12-19|COLLECT COD|REG AIR|the deposits. carefully |
-3492|126|9|2|7|7182.84|0.04|0.00|R|F|1995-03-10|1995-01-03|1995-03-16|COLLECT COD|FOB|thely regular dolphi|
-3492|109|10|3|34|34309.40|0.05|0.06|A|F|1994-12-07|1994-12-29|1994-12-24|COLLECT COD|AIR| unusual requests. ir|
-3492|147|6|4|30|31414.20|0.02|0.06|A|F|1995-01-29|1995-01-02|1995-02-13|DELIVER IN PERSON|MAIL| detect furiously permanent, unusual accou|
-3492|122|1|5|47|48039.64|0.09|0.07|R|F|1995-03-24|1994-12-28|1995-03-29|NONE|REG AIR|deposits. quickly express |
-3492|22|7|6|47|43334.94|0.04|0.07|R|F|1994-12-12|1995-01-18|1994-12-26|COLLECT COD|RAIL|ronic instructions u|
-3493|93|6|1|31|30785.79|0.06|0.07|R|F|1993-10-22|1993-10-12|1993-11-07|DELIVER IN PERSON|REG AIR|ructions. slyly regular accounts across the|
-3493|132|3|2|10|10321.30|0.02|0.06|R|F|1993-08-27|1993-10-07|1993-09-23|COLLECT COD|TRUCK|hall have to integ|
-3494|117|1|1|40|40684.40|0.05|0.04|R|F|1993-07-10|1993-06-01|1993-07-25|TAKE BACK RETURN|TRUCK|lites haggle furiously about the fin|
-3494|75|6|2|23|22426.61|0.10|0.01|A|F|1993-06-19|1993-06-04|1993-07-14|NONE|FOB|osits nag |
-3494|198|2|3|40|43927.60|0.02|0.08|A|F|1993-05-30|1993-07-02|1993-06-20|TAKE BACK RETURN|MAIL|uests cajole blithely|
-3494|77|8|4|30|29312.10|0.04|0.03|R|F|1993-07-01|1993-06-08|1993-07-15|TAKE BACK RETURN|TRUCK|ns are quickly regular, |
-3495|28|3|1|20|18560.40|0.10|0.03|N|O|1996-04-24|1996-05-18|1996-05-01|TAKE BACK RETURN|RAIL|posits are carefully; forges cajole qui|
-3495|173|1|2|24|25756.08|0.05|0.02|N|O|1996-03-22|1996-04-10|1996-04-07|DELIVER IN PERSON|RAIL|ic, final pains along the even request|
-3495|199|10|3|16|17587.04|0.08|0.02|N|O|1996-03-30|1996-04-02|1996-04-12|TAKE BACK RETURN|AIR|y bold dependencies; blithely idle sautern|
-3520|28|1|1|30|27840.60|0.04|0.02|N|O|1997-11-11|1997-10-02|1997-12-06|COLLECT COD|SHIP|deas should solve blithely among the ironi|
-3520|167|4|2|38|40552.08|0.00|0.04|N|O|1997-08-14|1997-10-26|1997-09-09|NONE|RAIL|yly final packages according to the quickl|
-3520|106|9|3|5|5030.50|0.01|0.02|N|O|1997-11-13|1997-09-22|1997-12-09|NONE|MAIL|ly even ideas haggle |
-3520|64|5|4|41|39526.46|0.01|0.01|N|O|1997-08-06|1997-09-20|1997-08-20|TAKE BACK RETURN|AIR| carefully pendi|
-3520|163|10|5|35|37210.60|0.02|0.02|N|O|1997-09-16|1997-09-03|1997-09-24|DELIVER IN PERSON|FOB|s nag carefully. sometimes unusual account|
-3521|59|4|1|48|46034.40|0.09|0.03|A|F|1993-01-03|1992-12-31|1993-01-22|NONE|AIR|ses use. furiously express ideas wake f|
-3521|131|2|2|2|2062.26|0.05|0.06|R|F|1993-01-29|1992-12-20|1993-02-23|NONE|MAIL|refully duri|
-3521|178|8|3|38|40970.46|0.00|0.08|A|F|1993-02-15|1992-12-10|1993-03-10|COLLECT COD|FOB|ges hang q|
-3521|144|7|4|26|27147.64|0.02|0.08|R|F|1993-01-04|1993-01-20|1993-01-17|DELIVER IN PERSON|AIR|onic dependencies haggle. fur|
-3521|36|7|5|28|26208.84|0.10|0.01|A|F|1993-01-06|1993-01-22|1993-02-02|TAKE BACK RETURN|FOB|e slyly above the slyly final|
-3522|4|9|1|6|5424.00|0.08|0.03|A|F|1995-01-21|1994-12-09|1995-01-23|NONE|SHIP|tes snooze |
-3522|87|8|2|48|47379.84|0.00|0.03|R|F|1994-12-05|1994-10-30|1994-12-26|TAKE BACK RETURN|SHIP|ve the quickly special packages|
-3522|157|2|3|46|48628.90|0.09|0.02|A|F|1994-11-12|1994-11-30|1994-11-20|NONE|AIR|d the express, silent foxes. blit|
-3522|130|9|4|7|7210.91|0.10|0.02|A|F|1994-10-31|1994-11-19|1994-11-28|NONE|TRUCK|e stealthil|
-3522|50|9|5|27|25651.35|0.02|0.05|R|F|1994-11-29|1994-12-15|1994-12-08|COLLECT COD|REG AIR|ic tithes. car|
-3522|158|10|6|18|19046.70|0.01|0.03|A|F|1994-11-16|1994-10-29|1994-11-29|COLLECT COD|RAIL|sits wake carefully pen|
-3523|25|6|1|15|13875.30|0.06|0.02|N|O|1998-06-26|1998-05-22|1998-07-24|COLLECT COD|REG AIR|se slyly pending, sp|
-3523|133|9|2|4|4132.52|0.03|0.06|N|O|1998-05-08|1998-05-18|1998-05-25|TAKE BACK RETURN|MAIL|ts. final accounts detect furiously along |
-3523|50|7|3|24|22801.20|0.07|0.04|N|O|1998-08-02|1998-06-22|1998-08-27|COLLECT COD|FOB|ke according to the doggedly re|
-3523|192|4|4|36|39318.84|0.06|0.08|N|O|1998-05-26|1998-06-04|1998-06-25|DELIVER IN PERSON|SHIP|accounts. fluffily regu|
-3523|134|5|5|48|49638.24|0.00|0.01|N|O|1998-07-22|1998-06-25|1998-08-19|DELIVER IN PERSON|AIR| regular requests|
-3524|137|8|1|5|5185.65|0.01|0.04|R|F|1992-05-23|1992-07-25|1992-06-19|DELIVER IN PERSON|RAIL|ts whithout the bold depende|
-3524|143|6|2|17|17733.38|0.09|0.08|A|F|1992-09-01|1992-07-17|1992-09-05|DELIVER IN PERSON|FOB|g, final epitaphs about the pinto |
-3525|46|7|1|12|11352.48|0.01|0.03|N|O|1996-03-08|1996-03-18|1996-03-16|NONE|TRUCK|lar excuses wake carefull|
-3525|138|9|2|27|28029.51|0.03|0.03|N|O|1995-12-30|1996-01-23|1996-01-02|DELIVER IN PERSON|SHIP|y slyly special asymptotes|
-3525|75|5|3|31|30227.17|0.00|0.03|N|O|1996-03-08|1996-02-27|1996-03-13|COLLECT COD|TRUCK|he careful|
-3525|184|5|4|28|30357.04|0.03|0.02|N|O|1996-01-22|1996-02-08|1996-01-27|COLLECT COD|FOB| nag according |
-3526|98|9|1|11|10978.99|0.02|0.03|R|F|1995-05-23|1995-05-28|1995-05-24|NONE|TRUCK|ges. furiously regular d|
-3526|117|7|2|23|23393.53|0.03|0.04|A|F|1995-05-01|1995-05-31|1995-05-25|DELIVER IN PERSON|FOB|special, regular packages cajole. |
-3526|33|9|3|20|18660.60|0.05|0.08|N|F|1995-06-16|1995-04-26|1995-06-22|DELIVER IN PERSON|REG AIR|kages. bold, special requests detect sl|
-3527|102|7|1|47|47098.70|0.07|0.02|N|O|1997-07-14|1997-07-29|1997-07-21|DELIVER IN PERSON|RAIL|unts. express re|
-3527|26|9|2|33|30558.66|0.01|0.02|N|O|1997-09-25|1997-09-17|1997-10-12|NONE|FOB|kly alongside of |
-3527|162|7|3|50|53108.00|0.09|0.07|N|O|1997-07-17|1997-08-03|1997-07-29|DELIVER IN PERSON|SHIP|e even accounts was about th|
-3527|128|3|4|17|17478.04|0.02|0.05|N|O|1997-07-30|1997-09-01|1997-08-17|COLLECT COD|MAIL|ular instruction|
-3552|197|8|1|18|19749.42|0.01|0.07|N|O|1997-08-11|1997-07-14|1997-08-15|DELIVER IN PERSON|TRUCK|s deposits against the blithely unusual pin|
-3552|90|1|2|44|43563.96|0.01|0.00|N|O|1997-08-08|1997-06-15|1997-08-29|COLLECT COD|FOB|ns after the blithely reg|
-3552|161|6|3|36|38201.76|0.04|0.08|N|O|1997-06-29|1997-06-24|1997-07-21|COLLECT COD|TRUCK|ly regular theodolites. fin|
-3553|143|10|1|4|4172.56|0.05|0.01|R|F|1994-06-13|1994-07-10|1994-07-03|COLLECT COD|RAIL|olites boost bli|
-3553|65|4|2|26|25091.56|0.05|0.08|A|F|1994-08-06|1994-07-30|1994-08-23|DELIVER IN PERSON|MAIL|fily special p|
-3553|22|5|3|18|16596.36|0.04|0.03|A|F|1994-07-03|1994-06-30|1994-07-07|COLLECT COD|RAIL|. quickly ironic|
-3553|32|8|4|40|37281.20|0.06|0.00|A|F|1994-09-14|1994-06-26|1994-09-25|NONE|RAIL| slyly pending asymptotes against the furi|
-3553|157|2|5|36|38057.40|0.06|0.08|R|F|1994-08-12|1994-06-25|1994-09-06|DELIVER IN PERSON|TRUCK| realms. pending, bold theodolites |
-3554|175|5|1|32|34405.44|0.01|0.05|N|O|1995-09-28|1995-09-01|1995-10-07|NONE|RAIL|. blithely ironic t|
-3554|145|6|2|18|18812.52|0.03|0.00|N|O|1995-09-11|1995-08-12|1995-10-04|DELIVER IN PERSON|REG AIR| haggle. furiously fluffy requests ac|
-3554|192|3|3|41|44779.79|0.02|0.01|N|O|1995-07-13|1995-08-28|1995-07-27|DELIVER IN PERSON|MAIL|ent dependencies. sly|
-3555|166|3|1|11|11727.76|0.05|0.02|N|O|1996-09-25|1996-10-01|1996-10-03|NONE|FOB|oost caref|
-3555|79|10|2|15|14686.05|0.03|0.08|N|O|1996-07-13|1996-09-01|1996-08-02|TAKE BACK RETURN|RAIL|y across the pending a|
-3555|43|2|3|25|23576.00|0.09|0.07|N|O|1996-10-01|1996-08-23|1996-10-24|TAKE BACK RETURN|MAIL|sual packages. quickly |
-3555|5|6|4|19|17195.00|0.00|0.05|N|O|1996-09-08|1996-09-14|1996-10-01|COLLECT COD|REG AIR|leep special theodolit|
-3555|33|4|5|29|27057.87|0.07|0.04|N|O|1996-08-02|1996-09-04|1996-08-08|DELIVER IN PERSON|TRUCK|deas. carefully s|
-3555|28|3|6|33|30624.66|0.04|0.08|N|O|1996-09-20|1996-09-23|1996-10-05|TAKE BACK RETURN|AIR|fluffily regular a|
-3555|126|5|7|9|9235.08|0.07|0.02|N|O|1996-10-13|1996-10-02|1996-10-22|NONE|SHIP|are. slyly final foxes acro|
-3556|142|9|1|45|46896.30|0.05|0.06|A|F|1992-10-14|1992-12-21|1992-10-16|NONE|TRUCK|ckages boost quickl|
-3556|31|2|2|43|40034.29|0.02|0.06|R|F|1993-01-18|1992-11-09|1993-02-04|NONE|FOB|wake carefull|
-3556|87|8|3|28|27638.24|0.10|0.04|A|F|1993-01-06|1992-11-27|1993-01-16|NONE|MAIL|refully final instructions? ironic packa|
-3557|175|3|1|41|44081.97|0.01|0.07|R|F|1993-01-30|1992-12-31|1993-02-18|COLLECT COD|FOB|ideas breach c|
-3557|129|10|2|37|38077.44|0.03|0.05|R|F|1993-02-16|1993-01-05|1993-03-15|DELIVER IN PERSON|RAIL|gside of the ca|
-3558|87|8|1|8|7896.64|0.01|0.03|N|O|1996-05-31|1996-05-26|1996-06-25|COLLECT COD|AIR|? even requests sle|
-3558|10|7|2|28|25480.28|0.02|0.08|N|O|1996-06-02|1996-04-18|1996-06-24|COLLECT COD|TRUCK|l deposits |
-3558|187|8|3|3|3261.54|0.03|0.06|N|O|1996-05-19|1996-04-28|1996-05-26|DELIVER IN PERSON|RAIL|l, final deposits haggle. fina|
-3558|91|5|4|22|21803.98|0.06|0.03|N|O|1996-04-27|1996-04-19|1996-04-30|DELIVER IN PERSON|SHIP|refully ironic theodolites are fu|
-3558|29|8|5|38|35302.76|0.03|0.08|N|O|1996-05-29|1996-05-02|1996-06-09|COLLECT COD|RAIL|refully permanently iron|
-3558|72|1|6|17|16525.19|0.07|0.07|N|O|1996-03-14|1996-05-04|1996-04-05|NONE|RAIL|ithely unusual packa|
-3559|90|1|1|29|28712.61|0.00|0.07|R|F|1992-12-10|1992-12-03|1992-12-20|COLLECT COD|REG AIR|l, regular accounts wake flu|
-3584|11|8|1|4|3644.04|0.04|0.08|N|O|1997-08-16|1997-10-31|1997-08-28|DELIVER IN PERSON|TRUCK|nal packag|
-3584|160|8|2|23|24383.68|0.00|0.03|N|O|1997-09-10|1997-10-15|1997-09-30|COLLECT COD|TRUCK|l platelets until the asymptotes |
-3584|24|5|3|6|5544.12|0.03|0.06|N|O|1997-10-28|1997-11-09|1997-11-24|TAKE BACK RETURN|MAIL|deposits across the|
-3584|146|5|4|11|11507.54|0.06|0.02|N|O|1997-11-27|1997-10-15|1997-12-08|NONE|REG AIR|lithely slyly |
-3584|18|5|5|39|35802.39|0.09|0.07|N|O|1997-09-20|1997-10-31|1997-10-06|COLLECT COD|AIR|eposits. carefu|
-3585|122|1|1|21|21464.52|0.05|0.04|A|F|1994-12-04|1994-12-25|1995-01-01|TAKE BACK RETURN|TRUCK|ounts use. express, final platelets us|
-3585|19|10|2|40|36760.40|0.03|0.00|R|F|1995-01-22|1995-01-17|1995-02-07|TAKE BACK RETURN|RAIL|elets affix. even asymptotes play care|
-3585|112|2|3|11|11133.21|0.01|0.04|R|F|1995-01-04|1995-02-14|1995-01-15|NONE|MAIL|even packages|
-3585|48|1|4|33|31285.32|0.08|0.08|A|F|1994-12-14|1995-01-19|1994-12-22|NONE|RAIL|ironic dependencies serve furi|
-3585|25|8|5|13|12025.26|0.06|0.07|R|F|1995-03-15|1995-01-22|1995-03-17|DELIVER IN PERSON|AIR|ccording to the foxes. slyly iro|
-3585|94|7|6|7|6958.63|0.10|0.02|A|F|1994-12-13|1995-01-20|1995-01-05|TAKE BACK RETURN|TRUCK|dependencies sleep un|
-3585|42|1|7|45|42391.80|0.03|0.00|A|F|1995-01-20|1995-02-19|1995-02-11|DELIVER IN PERSON|MAIL|are blithely c|
-3586|194|7|1|2|2188.38|0.03|0.08|R|F|1994-02-10|1994-01-07|1994-03-03|DELIVER IN PERSON|RAIL|he even, unusual decoy|
-3586|84|5|2|29|28538.32|0.04|0.07|R|F|1994-03-06|1994-03-02|1994-03-13|DELIVER IN PERSON|RAIL| slyly unusual i|
-3586|58|3|3|2|1916.10|0.03|0.06|R|F|1994-03-22|1994-02-20|1994-04-08|NONE|REG AIR|unts. slyly final ideas agai|
-3586|84|5|4|33|32474.64|0.06|0.01|R|F|1994-01-24|1994-02-09|1994-02-07|NONE|TRUCK|refully across the fur|
-3586|108|1|5|8|8064.80|0.06|0.02|A|F|1994-03-29|1994-02-26|1994-04-02|NONE|FOB|theodolites hagg|
-3586|99|1|6|8|7992.72|0.09|0.01|A|F|1994-03-18|1994-01-17|1994-04-06|DELIVER IN PERSON|RAIL| ironic pinto beans cajole carefully theo|
-3586|123|4|7|33|33762.96|0.05|0.04|A|F|1994-02-11|1994-01-15|1994-03-03|NONE|REG AIR|iously regular pinto beans integrate|
-3587|197|10|1|5|5485.95|0.09|0.07|N|O|1996-09-03|1996-07-05|1996-09-11|DELIVER IN PERSON|SHIP|ithely regular decoys above the |
-3587|132|8|2|48|49542.24|0.00|0.03|N|O|1996-08-02|1996-07-02|1996-08-05|TAKE BACK RETURN|MAIL|beans. blithely final depe|
-3587|151|3|3|36|37841.40|0.05|0.05|N|O|1996-07-26|1996-06-16|1996-08-23|TAKE BACK RETURN|MAIL|ully regular excuse|
-3587|124|9|4|31|31747.72|0.03|0.01|N|O|1996-07-21|1996-07-01|1996-07-23|COLLECT COD|SHIP|press fluffily regul|
-3587|70|7|5|12|11640.84|0.06|0.03|N|O|1996-08-30|1996-07-04|1996-09-22|DELIVER IN PERSON|RAIL|g the even pinto beans. special,|
-3587|107|2|6|16|16113.60|0.01|0.03|N|O|1996-05-11|1996-06-19|1996-06-04|COLLECT COD|FOB|y ruthless dolphins to |
-3587|74|2|7|23|22403.61|0.07|0.05|N|O|1996-08-30|1996-07-01|1996-09-10|COLLECT COD|FOB|l multipliers sleep theodolites-- slyly |
-3588|91|5|1|28|27750.52|0.04|0.08|R|F|1995-05-03|1995-05-03|1995-05-14|DELIVER IN PERSON|TRUCK|special pinto beans cajole slyly. slyly |
-3588|88|9|2|6|5928.48|0.06|0.08|A|F|1995-04-09|1995-05-30|1995-04-10|TAKE BACK RETURN|MAIL|s. fluffily fluf|
-3588|159|10|3|45|47661.75|0.04|0.02|R|F|1995-05-07|1995-05-04|1995-05-28|TAKE BACK RETURN|TRUCK|ecial pains integrate blithely. reques|
-3588|127|10|4|22|22596.64|0.05|0.00|A|F|1995-04-08|1995-05-06|1995-04-27|NONE|RAIL|inal accounts. pending, bo|
-3588|55|3|5|28|26741.40|0.03|0.03|A|F|1995-04-23|1995-05-25|1995-04-28|DELIVER IN PERSON|TRUCK| express sheaves. unusual theodo|
-3588|110|3|6|37|37374.07|0.08|0.04|N|F|1995-06-17|1995-05-25|1995-06-24|TAKE BACK RETURN|RAIL|xcuses sleep quickly along th|
-3588|39|5|7|46|43195.38|0.08|0.07|A|F|1995-06-06|1995-05-08|1995-06-08|NONE|AIR| slyly ironic deposits sublate ab|
-3589|37|3|1|42|39355.26|0.08|0.08|R|F|1994-08-11|1994-07-17|1994-08-23|DELIVER IN PERSON|AIR|he blithely unusual pac|
-3590|176|6|1|10|10761.70|0.08|0.00|N|O|1995-07-17|1995-06-26|1995-08-12|TAKE BACK RETURN|SHIP|t the quickly ironic|
-3590|95|6|2|19|18906.71|0.03|0.03|N|O|1995-08-02|1995-06-20|1995-08-08|NONE|SHIP|special pinto beans. blithely reg|
-3590|96|9|3|43|42831.87|0.07|0.06|N|O|1995-07-12|1995-07-25|1995-07-16|DELIVER IN PERSON|SHIP|s could have to use|
-3590|56|8|4|26|24857.30|0.01|0.03|N|O|1995-07-08|1995-06-17|1995-08-02|DELIVER IN PERSON|SHIP|arefully along th|
-3590|191|2|5|37|40374.03|0.00|0.08|N|O|1995-09-01|1995-06-29|1995-09-10|NONE|SHIP|ccounts above the silent waters thrash f|
-3590|119|10|6|31|31592.41|0.03|0.01|N|O|1995-06-24|1995-07-12|1995-06-25|DELIVER IN PERSON|REG AIR|ve furiously final instructions. slyly regu|
-3590|194|7|7|44|48144.36|0.05|0.04|N|F|1995-06-07|1995-06-15|1995-06-27|NONE|MAIL|s sleep after the regular platelets. blit|
-3591|29|8|1|21|19509.42|0.03|0.03|A|F|1994-02-25|1994-02-02|1994-03-05|DELIVER IN PERSON|TRUCK|structions against |
-3591|69|6|2|24|23257.44|0.04|0.04|R|F|1993-12-26|1994-01-07|1994-01-25|COLLECT COD|FOB|ages. slyly regular dependencies cajo|
-3591|164|9|3|4|4256.64|0.01|0.03|A|F|1994-04-04|1994-02-19|1994-05-02|DELIVER IN PERSON|RAIL|he final packages. deposits serve quick|
-3591|153|4|4|49|51604.35|0.01|0.00|A|F|1994-03-21|1994-01-26|1994-03-28|COLLECT COD|AIR| mold slyly. bl|
-3616|197|9|1|30|32915.70|0.01|0.00|A|F|1994-05-05|1994-04-24|1994-05-12|TAKE BACK RETURN|FOB|ly ironic accounts unwind b|
-3616|138|9|2|28|29067.64|0.08|0.06|R|F|1994-02-20|1994-04-18|1994-03-05|DELIVER IN PERSON|REG AIR|ironic packages. furiously ev|
-3617|117|8|1|46|46787.06|0.03|0.02|N|O|1996-05-19|1996-05-14|1996-06-11|NONE|RAIL|ar theodolites. regu|
-3617|98|9|2|16|15969.44|0.05|0.02|N|O|1996-05-08|1996-06-03|1996-05-19|COLLECT COD|RAIL| slyly on th|
-3617|98|2|3|32|31938.88|0.00|0.06|N|O|1996-04-20|1996-06-07|1996-05-19|DELIVER IN PERSON|MAIL|uriously against the express accounts. ex|
-3617|41|10|4|22|20702.88|0.10|0.05|N|O|1996-07-11|1996-05-02|1996-07-25|NONE|REG AIR|uffily even accounts. packages sleep blithe|
-3617|137|8|5|11|11408.43|0.08|0.05|N|O|1996-07-16|1996-04-23|1996-07-28|COLLECT COD|MAIL|ly quickly even requests. final|
-3618|140|1|1|38|39525.32|0.08|0.00|N|O|1997-12-22|1998-02-23|1998-01-03|TAKE BACK RETURN|TRUCK|nts haggle fluffily above the regular |
-3618|144|5|2|48|50118.72|0.04|0.00|N|O|1998-03-12|1998-02-13|1998-03-29|DELIVER IN PERSON|TRUCK|tructions atop the ironi|
-3618|63|2|3|24|23113.44|0.01|0.04|N|O|1998-01-26|1998-01-15|1998-02-17|TAKE BACK RETURN|AIR|xpress acc|
-3618|161|2|4|26|27590.16|0.01|0.05|N|O|1998-03-23|1998-01-24|1998-04-15|DELIVER IN PERSON|AIR|iously regular deposits cajole ruthless|
-3619|96|7|1|49|48808.41|0.01|0.08|N|O|1997-01-22|1996-12-21|1997-02-17|TAKE BACK RETURN|MAIL| waters. furiously even deposits |
-3619|116|10|2|27|27434.97|0.08|0.04|N|O|1996-12-12|1997-01-18|1996-12-18|TAKE BACK RETURN|SHIP|pecial accounts haggle care|
-3619|48|7|3|46|43609.84|0.08|0.03|N|O|1997-01-31|1997-01-27|1997-02-11|NONE|SHIP|press, expres|
-3619|93|6|4|18|17875.62|0.04|0.02|N|O|1997-03-18|1996-12-24|1997-03-21|COLLECT COD|AIR|eodolites |
-3619|120|10|5|38|38764.56|0.05|0.08|N|O|1996-12-08|1997-02-03|1997-01-07|NONE|RAIL|theodolites detect abo|
-3619|152|3|6|43|45242.45|0.01|0.01|N|O|1997-01-25|1997-01-06|1997-02-07|COLLECT COD|RAIL| bold, even|
-3620|59|7|1|41|39321.05|0.03|0.08|N|O|1997-03-21|1997-04-20|1997-03-30|COLLECT COD|FOB|t attainments cajole qui|
-3620|167|4|2|16|17074.56|0.00|0.06|N|O|1997-05-17|1997-05-08|1997-06-03|COLLECT COD|SHIP|s. even, pending in|
-3621|17|8|1|29|26593.29|0.02|0.06|A|F|1993-08-03|1993-07-08|1993-08-10|DELIVER IN PERSON|FOB|al requests. fl|
-3621|93|5|2|13|12910.17|0.09|0.04|R|F|1993-08-30|1993-06-30|1993-09-01|NONE|REG AIR|r the unusual packages. brave theodoli|
-3621|164|9|3|45|47887.20|0.07|0.07|R|F|1993-08-09|1993-06-18|1993-09-05|DELIVER IN PERSON|AIR| doubt about the bold deposits. carefully|
-3621|44|3|4|20|18880.80|0.05|0.04|R|F|1993-05-27|1993-07-04|1993-06-22|TAKE BACK RETURN|SHIP|gular accounts use carefully with|
-3622|175|6|1|47|50532.99|0.09|0.00|N|O|1996-02-24|1996-02-22|1996-03-12|TAKE BACK RETURN|TRUCK|are careful|
-3622|89|10|2|4|3956.32|0.04|0.04|N|O|1996-02-03|1996-02-19|1996-02-16|TAKE BACK RETURN|TRUCK|lithely brave foxes. furi|
-3622|190|1|3|46|50148.74|0.07|0.07|N|O|1995-12-18|1996-01-23|1996-01-12|TAKE BACK RETURN|AIR|sits wake. blithe|
-3622|177|8|4|9|9694.53|0.08|0.05|N|O|1995-12-12|1996-02-09|1995-12-13|TAKE BACK RETURN|SHIP|arefully. furiously regular ideas n|
-3623|80|10|1|32|31362.56|0.05|0.00|N|O|1997-04-18|1997-03-15|1997-05-09|COLLECT COD|SHIP| courts. furiously regular ideas b|
-3623|117|4|2|33|33564.63|0.08|0.01|N|O|1997-03-17|1997-02-13|1997-04-02|TAKE BACK RETURN|TRUCK|odolites. blithely spe|
-3623|24|7|3|21|19404.42|0.02|0.02|N|O|1997-01-19|1997-03-18|1997-01-24|NONE|FOB|ress ideas are furio|
-3623|165|2|4|42|44736.72|0.05|0.06|N|O|1997-01-11|1997-03-24|1997-01-21|COLLECT COD|RAIL|g to the slyly regular packa|
-3623|88|9|5|30|29642.40|0.10|0.04|N|O|1997-04-04|1997-03-03|1997-05-01|NONE|RAIL| ironic somas sleep fluffily|
-3623|186|7|6|7|7603.26|0.01|0.02|N|O|1997-01-05|1997-03-26|1997-01-26|NONE|TRUCK|aves. slyly special packages cajole. fu|
-3623|140|6|7|13|13521.82|0.03|0.08|N|O|1997-01-02|1997-02-26|1997-01-26|DELIVER IN PERSON|SHIP|deas. furiously expres|
-3648|144|5|1|16|16706.24|0.02|0.06|A|F|1993-08-14|1993-08-14|1993-08-15|COLLECT COD|FOB|s nag packages.|
-3648|105|2|2|30|30153.00|0.00|0.01|R|F|1993-08-31|1993-09-06|1993-09-06|DELIVER IN PERSON|FOB| above the somas boost furious|
-3648|46|7|3|34|32165.36|0.10|0.00|A|F|1993-08-21|1993-07-25|1993-09-15|DELIVER IN PERSON|FOB| deposits are furiously. careful, |
-3648|13|10|4|16|14608.16|0.06|0.03|R|F|1993-07-27|1993-08-26|1993-08-24|DELIVER IN PERSON|FOB|uriously stealthy deposits haggle furi|
-3648|117|7|5|25|25427.75|0.06|0.03|R|F|1993-08-15|1993-08-25|1993-09-09|TAKE BACK RETURN|TRUCK|s requests. silent asymp|
-3648|169|10|6|14|14968.24|0.08|0.06|R|F|1993-10-02|1993-08-26|1993-10-09|COLLECT COD|AIR|sly pending excuses. carefully i|
-3648|195|6|7|49|53664.31|0.09|0.03|R|F|1993-06-27|1993-07-27|1993-07-24|TAKE BACK RETURN|FOB|egular instructions. slyly regular pinto|
-3649|5|6|1|25|22625.00|0.10|0.04|A|F|1994-10-27|1994-08-23|1994-11-05|TAKE BACK RETURN|TRUCK|special re|
-3649|89|10|2|23|22748.84|0.08|0.00|R|F|1994-09-26|1994-10-01|1994-09-28|NONE|REG AIR|rs promise blithe|
-3649|70|7|3|14|13580.98|0.02|0.04|A|F|1994-09-19|1994-08-17|1994-10-12|DELIVER IN PERSON|TRUCK|ithely bold accounts wake |
-3649|76|4|4|40|39042.80|0.00|0.08|R|F|1994-07-20|1994-08-30|1994-08-14|TAKE BACK RETURN|RAIL|luffy somas sleep quickly-- ironic de|
-3649|100|1|5|24|24002.40|0.05|0.03|A|F|1994-07-07|1994-08-20|1994-07-27|TAKE BACK RETURN|FOB|c accounts. quickly final theodo|
-3649|122|3|6|3|3066.36|0.10|0.04|A|F|1994-07-17|1994-08-10|1994-08-03|NONE|FOB|lly bold requests nag; |
-3650|136|2|1|30|31083.90|0.10|0.00|A|F|1992-08-26|1992-07-05|1992-09-01|DELIVER IN PERSON|SHIP|ckly special platelets. furiously sil|
-3650|128|9|2|43|44209.16|0.05|0.05|A|F|1992-09-07|1992-08-12|1992-09-10|COLLECT COD|TRUCK|gside of the quick|
-3650|2|9|3|1|902.00|0.04|0.06|A|F|1992-06-23|1992-07-18|1992-07-08|NONE|REG AIR|re about the pinto |
-3650|63|2|4|31|29854.86|0.10|0.08|R|F|1992-06-15|1992-07-01|1992-07-15|DELIVER IN PERSON|RAIL| against the ironic accounts cajol|
-3650|187|8|5|19|20656.42|0.05|0.04|R|F|1992-08-29|1992-08-09|1992-09-21|DELIVER IN PERSON|AIR|y even forges. fluffily furious accounts|
-3650|94|8|6|27|26840.43|0.07|0.08|A|F|1992-07-03|1992-07-23|1992-07-13|COLLECT COD|MAIL|ular requests snooze fluffily regular pi|
-3650|70|7|7|43|41713.01|0.10|0.07|A|F|1992-06-25|1992-07-09|1992-07-22|DELIVER IN PERSON|RAIL|structions use caref|
-3651|19|9|1|20|18380.20|0.01|0.04|N|O|1998-06-10|1998-06-06|1998-06-23|NONE|SHIP|tect quickly among the r|
-3651|155|7|2|24|25323.60|0.09|0.04|N|O|1998-06-22|1998-07-17|1998-07-10|DELIVER IN PERSON|RAIL|excuses haggle according to th|
-3651|113|10|3|41|41537.51|0.00|0.05|N|O|1998-05-10|1998-07-09|1998-05-13|NONE|RAIL|blithely. furiously |
-3651|110|5|4|27|27272.97|0.05|0.03|N|O|1998-05-03|1998-06-30|1998-05-05|DELIVER IN PERSON|RAIL| sleep blithely furiously do|
-3652|180|8|1|24|25924.32|0.05|0.03|N|O|1997-06-07|1997-04-07|1997-06-12|COLLECT COD|MAIL|the final p|
-3652|137|8|2|37|38373.81|0.02|0.05|N|O|1997-05-11|1997-04-06|1997-06-05|COLLECT COD|MAIL|osits haggle carefu|
-3652|163|8|3|39|41463.24|0.01|0.02|N|O|1997-03-10|1997-04-03|1997-03-21|NONE|REG AIR|y express instructions. un|
-3652|80|9|4|1|980.08|0.01|0.04|N|O|1997-04-20|1997-05-03|1997-05-18|DELIVER IN PERSON|SHIP| bold dependencies sublate. r|
-3653|145|4|1|38|39715.32|0.08|0.05|A|F|1994-06-26|1994-05-13|1994-07-13|NONE|REG AIR|ainst the |
-3653|64|1|2|29|27957.74|0.07|0.01|A|F|1994-04-11|1994-06-11|1994-04-29|COLLECT COD|RAIL|ording to the special, final|
-3653|181|2|3|17|18380.06|0.09|0.03|R|F|1994-06-24|1994-06-02|1994-07-17|DELIVER IN PERSON|RAIL|gle slyly regular|
-3653|186|7|4|9|9775.62|0.10|0.07|R|F|1994-04-03|1994-05-19|1994-04-10|COLLECT COD|FOB|slyly silent account|
-3653|188|9|5|41|44615.38|0.08|0.01|A|F|1994-06-18|1994-05-18|1994-06-20|COLLECT COD|RAIL|onic packages affix sly|
-3653|43|4|6|9|8487.36|0.05|0.03|A|F|1994-07-21|1994-05-31|1994-08-17|NONE|MAIL|tes: blithely bo|
-3653|49|6|7|2|1898.08|0.06|0.03|R|F|1994-06-02|1994-05-31|1994-06-29|NONE|FOB|n accounts. fina|
-3654|165|2|1|46|48997.36|0.08|0.05|A|F|1992-06-05|1992-08-19|1992-06-06|DELIVER IN PERSON|FOB|usly regular foxes. furio|
-3654|93|4|2|29|28799.61|0.07|0.06|A|F|1992-09-11|1992-07-20|1992-10-04|DELIVER IN PERSON|FOB|odolites detect. quickly r|
-3654|2|7|3|37|33374.00|0.07|0.05|A|F|1992-09-22|1992-07-20|1992-10-19|TAKE BACK RETURN|RAIL|unts doze bravely ab|
-3654|168|9|4|11|11749.76|0.08|0.00|A|F|1992-07-20|1992-07-30|1992-07-23|TAKE BACK RETURN|SHIP|quickly along the express, ironic req|
-3654|94|5|5|34|33799.06|0.04|0.00|R|F|1992-07-26|1992-08-26|1992-08-12|TAKE BACK RETURN|REG AIR| the quick|
-3654|107|4|6|20|20142.00|0.03|0.02|A|F|1992-07-30|1992-07-05|1992-08-05|COLLECT COD|SHIP|s sleep about the slyly |
-3654|173|1|7|45|48292.65|0.01|0.07|A|F|1992-09-15|1992-07-04|1992-09-20|DELIVER IN PERSON|FOB|sly ironic notornis nag slyly|
-3655|184|5|1|5|5420.90|0.03|0.04|R|F|1993-01-17|1992-12-31|1993-01-23|DELIVER IN PERSON|TRUCK|riously bold pinto be|
-3655|97|10|2|1|997.09|0.10|0.06|R|F|1992-10-24|1992-12-18|1992-11-07|DELIVER IN PERSON|AIR|arefully slow pinto beans are|
-3655|30|5|3|35|32551.05|0.01|0.04|R|F|1992-12-20|1992-11-16|1993-01-15|TAKE BACK RETURN|MAIL|blithely even accounts! furiously regular|
-3655|72|3|4|35|34022.45|0.04|0.07|R|F|1992-10-17|1992-12-23|1992-10-28|COLLECT COD|MAIL|ng foxes cajole fluffily slyly final fo|
-3680|177|6|1|48|51704.16|0.00|0.06|R|F|1993-01-16|1993-01-23|1993-01-19|COLLECT COD|FOB|packages. quickly fluff|
-3680|5|8|2|41|37105.00|0.00|0.04|A|F|1993-01-06|1993-03-02|1993-01-08|NONE|FOB|iously ironic platelets in|
-3680|56|4|3|33|31549.65|0.09|0.08|R|F|1993-03-16|1993-02-19|1993-04-05|NONE|FOB|ts. ironic, fina|
-3681|106|9|1|35|35213.50|0.03|0.08|R|F|1992-07-31|1992-05-18|1992-08-07|COLLECT COD|FOB|lyly special pinto |
-3682|61|10|1|6|5766.36|0.07|0.02|N|O|1997-05-06|1997-04-04|1997-05-11|NONE|AIR|ronic deposits wake slyly. ca|
-3682|116|7|2|18|18289.98|0.06|0.06|N|O|1997-04-30|1997-03-21|1997-05-10|NONE|FOB|regular dependencies|
-3682|47|10|3|17|16099.68|0.03|0.05|N|O|1997-02-12|1997-04-04|1997-02-22|COLLECT COD|FOB|, ironic packages wake a|
-3682|57|5|4|30|28711.50|0.09|0.05|N|O|1997-04-16|1997-04-16|1997-04-29|NONE|MAIL|he requests cajole quickly pending package|
-3683|101|4|1|35|35038.50|0.05|0.03|A|F|1993-05-31|1993-04-17|1993-06-14|NONE|SHIP| the furiously expr|
-3683|49|8|2|41|38910.64|0.01|0.06|A|F|1993-03-26|1993-05-06|1993-04-09|NONE|TRUCK|ress instructions. slyly express a|
-3683|100|3|3|23|23002.30|0.00|0.08|R|F|1993-07-02|1993-05-16|1993-07-30|NONE|TRUCK|xpress accounts sleep slyly re|
-3684|126|7|1|48|49253.76|0.04|0.06|A|F|1993-08-20|1993-09-02|1993-09-10|DELIVER IN PERSON|REG AIR|its boost alongside|
-3684|46|7|2|6|5676.24|0.06|0.08|R|F|1993-08-09|1993-10-05|1993-09-06|DELIVER IN PERSON|FOB|he silent requests. packages sleep fu|
-3684|163|8|3|19|20200.04|0.04|0.02|A|F|1993-10-19|1993-08-25|1993-11-02|COLLECT COD|FOB|e slyly carefully pending foxes. d|
-3684|135|1|4|13|13456.69|0.02|0.05|A|F|1993-07-23|1993-09-16|1993-08-06|NONE|TRUCK|ing, unusual pinto beans! thinly p|
-3685|47|4|1|37|35040.48|0.02|0.03|R|F|1992-03-11|1992-04-09|1992-04-05|DELIVER IN PERSON|TRUCK|ress attai|
-3685|58|6|2|7|6706.35|0.05|0.00|R|F|1992-05-16|1992-02-23|1992-05-17|DELIVER IN PERSON|FOB|sits. special asymptotes about the r|
-3685|134|5|3|38|39296.94|0.08|0.03|A|F|1992-05-17|1992-03-16|1992-06-06|TAKE BACK RETURN|TRUCK|thely unusual pack|
-3685|192|5|4|39|42595.41|0.10|0.05|R|F|1992-02-19|1992-04-06|1992-03-02|COLLECT COD|FOB|ic courts nag carefully after the |
-3685|56|7|5|37|35373.85|0.00|0.01|A|F|1992-03-02|1992-04-10|1992-03-04|NONE|FOB|. carefully sly requests are regular, regu|
-3686|122|5|1|7|7154.84|0.02|0.04|N|O|1998-07-15|1998-08-22|1998-07-30|DELIVER IN PERSON|TRUCK| furiously unusual accou|
-3686|200|2|2|38|41807.60|0.06|0.03|N|O|1998-09-04|1998-08-11|1998-09-19|DELIVER IN PERSON|AIR|y silent foxes! carefully ruthless cour|
-3686|45|6|3|31|29296.24|0.10|0.06|N|O|1998-09-09|1998-08-28|1998-10-09|COLLECT COD|MAIL|gle across the courts. furiously regu|
-3686|117|1|4|7|7119.77|0.10|0.01|N|O|1998-07-16|1998-09-02|1998-07-22|NONE|FOB|ake carefully carefully q|
-3687|145|4|1|32|33444.48|0.03|0.06|R|F|1993-05-07|1993-04-05|1993-05-25|DELIVER IN PERSON|AIR|deas cajole fo|
-3687|81|2|2|2|1962.16|0.00|0.08|R|F|1993-02-23|1993-03-25|1993-03-11|NONE|TRUCK| express requests. slyly regular depend|
-3687|174|4|3|10|10741.70|0.01|0.02|A|F|1993-02-11|1993-03-22|1993-03-09|NONE|FOB|ing pinto beans|
-3687|162|9|4|19|20181.04|0.02|0.05|A|F|1993-05-14|1993-04-24|1993-06-01|DELIVER IN PERSON|MAIL|ly final asymptotes according to t|
-3687|119|9|5|31|31592.41|0.07|0.08|A|F|1993-05-28|1993-03-20|1993-06-05|DELIVER IN PERSON|FOB|foxes cajole quickly about the furiously f|
-3712|141|4|1|27|28110.78|0.01|0.05|R|F|1992-02-01|1992-02-26|1992-03-02|TAKE BACK RETURN|SHIP|ctions. even accounts haggle alongside |
-3712|185|6|2|13|14107.34|0.03|0.03|R|F|1992-04-30|1992-02-11|1992-05-30|DELIVER IN PERSON|FOB|s around the furiously ironic account|
-3712|64|1|3|44|42418.64|0.01|0.01|A|F|1992-03-26|1992-02-19|1992-04-18|TAKE BACK RETURN|FOB|ously permanently regular req|
-3712|148|7|4|38|39829.32|0.01|0.06|A|F|1992-01-15|1992-03-24|1992-01-27|COLLECT COD|RAIL|s nag carefully-- even, reg|
-3713|112|6|1|41|41496.51|0.07|0.08|N|O|1998-05-11|1998-07-17|1998-05-22|COLLECT COD|RAIL|eposits wake blithely fina|
-3713|177|7|2|19|20466.23|0.04|0.04|N|O|1998-06-25|1998-07-24|1998-07-08|DELIVER IN PERSON|AIR|tructions serve blithely around the furi|
-3713|180|1|3|19|20523.42|0.03|0.02|N|O|1998-05-19|1998-07-06|1998-06-09|DELIVER IN PERSON|REG AIR|quests cajole careful|
-3713|169|10|4|45|48112.20|0.06|0.04|N|O|1998-06-15|1998-07-30|1998-07-14|DELIVER IN PERSON|MAIL|al pinto beans affix after the slyly |
-3713|90|1|5|46|45544.14|0.10|0.04|N|O|1998-08-22|1998-06-27|1998-08-31|NONE|MAIL|totes. carefully special theodolites s|
-3713|182|3|6|29|31383.22|0.09|0.03|N|O|1998-08-04|1998-06-13|1998-08-21|NONE|RAIL|the regular dugouts wake furiously sil|
-3713|130|1|7|14|14421.82|0.04|0.00|N|O|1998-07-19|1998-07-02|1998-07-28|DELIVER IN PERSON|SHIP|eposits impress according|
-3714|69|6|1|13|12597.78|0.07|0.03|N|O|1998-06-26|1998-06-17|1998-07-07|TAKE BACK RETURN|REG AIR| the furiously final|
-3714|146|3|2|14|14645.96|0.02|0.05|N|O|1998-05-30|1998-06-30|1998-05-31|DELIVER IN PERSON|RAIL|ending ideas. thinly unusual theodo|
-3714|159|10|3|16|16946.40|0.00|0.02|N|O|1998-05-25|1998-07-07|1998-06-17|TAKE BACK RETURN|AIR|ccounts cajole fu|
-3714|30|9|4|44|40921.32|0.04|0.02|N|O|1998-07-18|1998-07-10|1998-07-22|DELIVER IN PERSON|AIR|s. quickly ironic dugouts sublat|
-3715|97|1|1|13|12962.17|0.00|0.03|N|O|1996-05-11|1996-04-25|1996-06-09|TAKE BACK RETURN|SHIP|e quickly ironic|
-3715|169|6|2|16|17106.56|0.01|0.06|N|O|1996-06-28|1996-04-22|1996-06-30|TAKE BACK RETURN|AIR|usly regular pearls haggle final packages|
-3715|12|3|3|37|33744.37|0.05|0.02|N|O|1996-05-03|1996-04-30|1996-05-17|NONE|SHIP|ut the carefully expr|
-3716|32|8|1|10|9320.30|0.09|0.04|N|O|1997-12-02|1997-11-09|1997-12-14|TAKE BACK RETURN|SHIP|ts. quickly sly ideas slee|
-3716|194|5|2|39|42673.41|0.02|0.08|N|O|1997-11-27|1997-10-23|1997-12-24|COLLECT COD|REG AIR|even deposits.|
-3716|107|8|3|42|42298.20|0.02|0.08|N|O|1997-12-03|1997-10-12|1997-12-15|NONE|TRUCK| of the pend|
-3716|165|10|4|19|20238.04|0.05|0.08|N|O|1997-09-25|1997-10-18|1997-10-12|NONE|TRUCK|arefully unusual accounts. flu|
-3716|182|3|5|25|27054.50|0.06|0.05|N|O|1997-11-23|1997-10-24|1997-11-24|COLLECT COD|REG AIR|fully unusual accounts. carefu|
-3717|153|8|1|45|47391.75|0.07|0.04|N|O|1998-08-09|1998-08-18|1998-08-14|TAKE BACK RETURN|TRUCK|ests wake whithout the blithely final pl|
-3717|53|5|2|3|2859.15|0.01|0.07|N|O|1998-06-09|1998-07-31|1998-06-14|NONE|REG AIR|nside the regular packages sleep|
-3717|196|7|3|45|49328.55|0.05|0.08|N|O|1998-09-19|1998-07-22|1998-09-28|DELIVER IN PERSON|MAIL|s the blithely unu|
-3717|69|6|4|5|4845.30|0.06|0.03|N|O|1998-09-02|1998-08-20|1998-09-26|TAKE BACK RETURN|AIR|quickly among |
-3717|16|7|5|7|6412.07|0.09|0.02|N|O|1998-09-08|1998-07-18|1998-09-10|DELIVER IN PERSON|RAIL| after the packa|
-3717|64|1|6|38|36634.28|0.01|0.07|N|O|1998-07-10|1998-07-08|1998-07-29|COLLECT COD|RAIL|ly about the car|
-3717|106|7|7|28|28170.80|0.03|0.01|N|O|1998-07-25|1998-08-12|1998-08-16|COLLECT COD|RAIL|ts sleep q|
-3718|21|10|1|40|36840.80|0.01|0.04|N|O|1996-11-20|1996-12-17|1996-12-03|DELIVER IN PERSON|MAIL|out the express deposits|
-3718|163|8|2|16|17010.56|0.02|0.06|N|O|1996-11-11|1996-12-25|1996-11-12|COLLECT COD|TRUCK|slyly even accounts. blithely special acco|
-3718|70|5|3|8|7760.56|0.05|0.03|N|O|1996-12-06|1996-12-06|1996-12-15|TAKE BACK RETURN|AIR| the even deposits sleep carefully b|
-3719|22|5|1|35|32270.70|0.06|0.08|N|O|1997-06-11|1997-04-03|1997-06-15|TAKE BACK RETURN|TRUCK|ly foxes. pending braids haggle furio|
-3719|174|4|2|2|2148.34|0.02|0.08|N|O|1997-02-17|1997-04-25|1997-03-03|NONE|REG AIR|ccounts boost carefu|
-3719|182|3|3|12|12986.16|0.05|0.06|N|O|1997-06-10|1997-05-04|1997-07-09|TAKE BACK RETURN|REG AIR|grate according to the |
-3719|90|1|4|13|12871.17|0.02|0.00|N|O|1997-05-03|1997-04-16|1997-05-27|TAKE BACK RETURN|SHIP|iously. regular dep|
-3719|78|8|5|19|18583.33|0.06|0.08|N|O|1997-05-22|1997-03-20|1997-06-12|COLLECT COD|TRUCK|he regular ideas integrate acros|
-3719|142|5|6|43|44812.02|0.03|0.08|N|O|1997-05-08|1997-04-15|1997-06-06|COLLECT COD|RAIL|the furiously special pinto bean|
-3719|19|10|7|16|14704.16|0.10|0.01|N|O|1997-03-02|1997-03-18|1997-03-28|TAKE BACK RETURN|RAIL| express asymptotes. ir|
-3744|195|8|1|30|32855.70|0.05|0.06|A|F|1992-05-07|1992-02-12|1992-05-17|TAKE BACK RETURN|FOB|nts among |
-3745|137|8|1|18|18668.34|0.01|0.05|A|F|1993-10-17|1993-11-16|1993-11-13|DELIVER IN PERSON|SHIP| slyly bold pinto beans according to |
-3746|165|6|1|37|39410.92|0.07|0.00|A|F|1994-12-29|1994-10-25|1995-01-03|COLLECT COD|FOB|e of the careful|
-3746|144|7|2|28|29235.92|0.06|0.08|R|F|1994-09-20|1994-10-21|1994-09-27|DELIVER IN PERSON|FOB|s after the even, special requests|
-3746|188|9|3|3|3264.54|0.10|0.01|R|F|1994-11-03|1994-12-10|1994-11-12|NONE|MAIL| the silent ideas cajole carefully |
-3746|28|7|4|11|10208.22|0.00|0.05|R|F|1994-10-02|1994-11-19|1994-10-10|COLLECT COD|SHIP| ironic theodolites are among th|
-3747|141|10|1|42|43727.88|0.05|0.05|N|O|1996-11-10|1996-10-19|1996-11-19|TAKE BACK RETURN|REG AIR|y. blithely fina|
-3747|170|1|2|33|35315.61|0.01|0.03|N|O|1996-10-14|1996-11-12|1996-11-11|NONE|REG AIR| regular p|
-3747|139|10|3|30|31173.90|0.00|0.07|N|O|1996-12-16|1996-11-15|1996-12-17|NONE|RAIL|! furiously f|
-3747|33|9|4|21|19593.63|0.00|0.06|N|O|1996-11-18|1996-09-23|1996-11-26|TAKE BACK RETURN|AIR|ithely bold orbits mold furiously blit|
-3747|126|5|5|32|32835.84|0.08|0.05|N|O|1996-09-10|1996-11-04|1996-10-10|DELIVER IN PERSON|MAIL|quests shall h|
-3747|154|5|6|14|14758.10|0.08|0.07|N|O|1996-11-03|1996-10-29|1996-11-06|TAKE BACK RETURN|AIR|packages cajole carefu|
-3747|118|2|7|23|23416.53|0.00|0.04|N|O|1996-11-08|1996-11-10|1996-12-03|NONE|REG AIR|kages are ironic|
-3748|104|7|1|12|12049.20|0.06|0.01|N|O|1998-04-17|1998-04-15|1998-05-12|NONE|AIR|old reques|
-3748|165|4|2|24|25563.84|0.08|0.04|N|O|1998-06-07|1998-05-02|1998-06-21|DELIVER IN PERSON|TRUCK|al deposits. blithely|
-3748|197|1|3|19|20846.61|0.05|0.01|N|O|1998-04-23|1998-05-17|1998-05-23|COLLECT COD|RAIL|pinto beans run carefully quic|
-3748|187|8|4|5|5435.90|0.00|0.07|N|O|1998-06-29|1998-05-06|1998-07-12|DELIVER IN PERSON|MAIL| regular accounts sleep quickly-- furious|
-3748|147|4|5|21|21989.94|0.07|0.08|N|O|1998-03-30|1998-04-07|1998-04-05|TAKE BACK RETURN|MAIL|fix carefully furiously express ideas. furi|
-3749|173|3|1|11|11804.87|0.07|0.05|N|O|1995-06-25|1995-05-23|1995-07-10|TAKE BACK RETURN|RAIL|egular requests along the |
-3749|129|8|2|9|9262.08|0.08|0.05|A|F|1995-04-23|1995-04-18|1995-04-26|NONE|REG AIR|uses cajole blithely pla|
-3749|199|2|3|31|34074.89|0.00|0.05|N|F|1995-06-11|1995-05-20|1995-06-27|COLLECT COD|REG AIR|s. foxes sleep slyly unusual grouc|
-3749|131|2|4|7|7217.91|0.07|0.06|A|F|1995-03-31|1995-04-05|1995-04-11|NONE|TRUCK|he slyly ironic packages|
-3749|183|4|5|14|15164.52|0.02|0.00|N|F|1995-06-11|1995-05-19|1995-07-11|DELIVER IN PERSON|SHIP|press instruc|
-3749|54|6|6|10|9540.50|0.10|0.03|N|O|1995-06-24|1995-05-24|1995-07-18|COLLECT COD|SHIP|essly. regular pi|
-3750|134|10|1|37|38262.81|0.04|0.03|N|O|1995-07-08|1995-07-28|1995-07-28|DELIVER IN PERSON|REG AIR|usly busy account|
-3750|152|3|2|33|34720.95|0.05|0.03|N|O|1995-06-27|1995-06-20|1995-07-03|TAKE BACK RETURN|REG AIR|theodolites haggle. slyly pendin|
-3750|80|10|3|20|19601.60|0.09|0.05|N|F|1995-06-17|1995-06-06|1995-06-28|TAKE BACK RETURN|REG AIR|ss, ironic requests! fur|
-3750|166|1|4|33|35183.28|0.04|0.03|N|F|1995-06-15|1995-06-04|1995-06-29|COLLECT COD|RAIL|ep blithely according to the flu|
-3750|83|4|5|1|983.08|0.05|0.01|N|O|1995-07-24|1995-06-25|1995-08-21|DELIVER IN PERSON|REG AIR|l dolphins against the slyly|
-3750|113|7|6|47|47616.17|0.01|0.08|R|F|1995-05-11|1995-06-13|1995-06-02|TAKE BACK RETURN|FOB|slowly regular accounts. blithely ev|
-3751|172|2|1|37|39670.29|0.00|0.04|R|F|1994-04-30|1994-05-30|1994-05-30|NONE|REG AIR|ly express courts |
-3751|141|8|2|32|33316.48|0.03|0.05|R|F|1994-05-05|1994-07-02|1994-06-02|COLLECT COD|MAIL|rthogs could have to slee|
-3751|65|2|3|45|43427.70|0.08|0.06|R|F|1994-05-27|1994-06-19|1994-06-14|NONE|RAIL|according to |
-3751|14|4|4|39|35646.39|0.07|0.01|A|F|1994-08-16|1994-07-11|1994-09-12|COLLECT COD|TRUCK|refully according to the iro|
-3751|58|3|5|12|11496.60|0.02|0.03|A|F|1994-08-09|1994-06-30|1994-08-12|TAKE BACK RETURN|TRUCK|accounts wake furious|
-3751|76|5|6|39|38066.73|0.02|0.08|R|F|1994-08-01|1994-06-01|1994-08-26|COLLECT COD|SHIP|to beans. pending, express packages c|
-3776|3|10|1|39|35217.00|0.05|0.01|R|F|1993-01-03|1993-02-05|1993-01-08|COLLECT COD|FOB|yly blithely pending packages|
-3776|159|4|2|14|14828.10|0.06|0.08|R|F|1992-12-30|1993-02-12|1993-01-27|DELIVER IN PERSON|RAIL|y special ideas. express packages pr|
-3776|141|8|3|49|51015.86|0.01|0.08|R|F|1992-12-03|1993-02-16|1992-12-28|TAKE BACK RETURN|RAIL|equests. final, thin grouches |
-3776|92|6|4|49|48612.41|0.08|0.05|A|F|1993-02-11|1993-01-06|1993-02-27|COLLECT COD|MAIL|es: careful warthogs haggle fluffi|
-3777|100|4|1|11|11001.10|0.02|0.03|A|F|1994-04-09|1994-06-05|1994-04-14|NONE|FOB|ld ideas. even theodolites|
-3777|8|5|2|10|9080.00|0.03|0.01|R|F|1994-05-22|1994-05-29|1994-06-13|COLLECT COD|RAIL|le. ironic depths a|
-3777|166|7|3|18|19190.88|0.10|0.06|R|F|1994-05-04|1994-05-23|1994-05-22|COLLECT COD|REG AIR|eful packages use slyly: even deposits |
-3777|18|9|4|35|32130.35|0.10|0.04|A|F|1994-05-25|1994-05-26|1994-06-13|COLLECT COD|AIR|s. carefully express asymptotes accordi|
-3777|98|10|5|14|13973.26|0.04|0.05|R|F|1994-05-06|1994-06-24|1994-05-31|NONE|TRUCK|ording to the iro|
-3778|57|2|1|21|20098.05|0.01|0.06|R|F|1993-05-27|1993-07-10|1993-06-03|COLLECT COD|REG AIR|ts. blithely special theodoli|
-3778|29|10|2|32|29728.64|0.09|0.00|A|F|1993-06-22|1993-08-18|1993-07-03|TAKE BACK RETURN|MAIL|tes affix carefully above the |
-3778|94|6|3|41|40757.69|0.05|0.00|R|F|1993-06-21|1993-07-27|1993-07-15|COLLECT COD|FOB|e the furiously ironi|
-3778|169|4|4|28|29936.48|0.03|0.05|R|F|1993-08-18|1993-07-10|1993-09-06|TAKE BACK RETURN|REG AIR|y silent orbits print carefully against |
-3778|98|2|5|28|27946.52|0.01|0.06|R|F|1993-09-02|1993-08-08|1993-10-02|DELIVER IN PERSON|FOB|r deposits. theodol|
-3778|20|7|6|26|23920.52|0.00|0.01|A|F|1993-09-24|1993-07-06|1993-10-22|NONE|TRUCK| against the fluffily|
-3778|105|6|7|49|49249.90|0.02|0.04|A|F|1993-06-13|1993-08-08|1993-07-04|DELIVER IN PERSON|MAIL|ans. furiously |
-3779|46|5|1|28|26489.12|0.04|0.05|N|O|1997-05-06|1997-04-01|1997-05-18|TAKE BACK RETURN|AIR|s. close requests sleep|
-3779|110|3|2|5|5050.55|0.07|0.03|N|O|1997-01-07|1997-03-26|1997-02-05|DELIVER IN PERSON|AIR|heodolites. slyly regular a|
-3780|127|8|1|25|25678.00|0.08|0.04|N|O|1996-06-27|1996-07-02|1996-07-22|NONE|AIR|l, unusual |
-3780|190|1|2|40|43607.60|0.10|0.04|N|O|1996-06-06|1996-05-29|1996-07-01|COLLECT COD|SHIP|gular deposits-- furiously regular |
-3781|14|5|1|48|43872.48|0.02|0.06|N|O|1996-08-22|1996-08-13|1996-09-15|NONE|REG AIR|equests may cajole careful|
-3781|188|9|2|39|42439.02|0.10|0.00|N|O|1996-08-20|1996-08-16|1996-09-01|DELIVER IN PERSON|REG AIR|unts are carefully. ir|
-3781|30|1|3|17|15810.51|0.01|0.03|N|O|1996-06-23|1996-09-04|1996-07-19|TAKE BACK RETURN|REG AIR|. theodolite|
-3781|31|2|4|15|13965.45|0.05|0.00|N|O|1996-08-23|1996-08-08|1996-09-06|TAKE BACK RETURN|AIR| carefully blithe|
-3781|16|6|5|23|21068.23|0.09|0.08|N|O|1996-09-05|1996-08-18|1996-09-27|DELIVER IN PERSON|SHIP|pendencies are b|
-3782|27|10|1|29|26883.58|0.01|0.07|N|O|1996-09-17|1996-10-03|1996-10-07|DELIVER IN PERSON|REG AIR|quickly unusual pinto beans. carefully fina|
-3782|153|1|2|10|10531.50|0.03|0.05|N|O|1996-09-07|1996-11-19|1996-10-04|COLLECT COD|FOB|ven pinto b|
-3782|136|7|3|30|31083.90|0.06|0.06|N|O|1996-12-19|1996-10-31|1997-01-14|TAKE BACK RETURN|MAIL|slyly even pinto beans hag|
-3782|117|7|4|34|34581.74|0.02|0.06|N|O|1996-11-07|1996-10-22|1996-11-19|DELIVER IN PERSON|MAIL|gage after the even|
-3782|130|3|5|40|41205.20|0.09|0.04|N|O|1996-12-16|1996-11-22|1997-01-01|COLLECT COD|AIR|s instructions. regular accou|
-3783|167|4|1|36|38417.76|0.04|0.08|R|F|1993-12-17|1994-02-26|1994-01-03|DELIVER IN PERSON|SHIP|ites haggle among the carefully unusu|
-3783|73|3|2|36|35030.52|0.02|0.02|R|F|1994-03-02|1994-02-09|1994-03-15|COLLECT COD|TRUCK|egular accounts|
-3783|85|6|3|50|49254.00|0.04|0.01|R|F|1994-03-14|1994-01-09|1994-04-10|DELIVER IN PERSON|FOB|he furiously regular deposits. |
-3783|27|6|4|37|34299.74|0.10|0.05|R|F|1993-12-09|1994-02-17|1993-12-30|COLLECT COD|REG AIR|ing to the ideas. regular accounts de|
-3808|43|10|1|28|26405.12|0.02|0.01|R|F|1994-05-27|1994-06-18|1994-06-22|TAKE BACK RETURN|FOB|lly final accounts alo|
-3808|127|6|2|47|48274.64|0.04|0.08|R|F|1994-06-12|1994-06-03|1994-07-02|COLLECT COD|TRUCK|fully for the quickly final deposits: flu|
-3808|31|2|3|45|41896.35|0.00|0.03|R|F|1994-07-03|1994-05-29|1994-07-14|TAKE BACK RETURN|REG AIR| carefully special|
-3808|100|1|4|34|34003.40|0.07|0.04|R|F|1994-08-13|1994-07-22|1994-08-31|DELIVER IN PERSON|FOB| pearls will have to |
-3808|155|7|5|29|30599.35|0.08|0.03|A|F|1994-06-22|1994-05-26|1994-07-06|TAKE BACK RETURN|TRUCK| deposits across the pac|
-3808|168|5|6|44|46999.04|0.06|0.06|A|F|1994-06-07|1994-06-04|1994-06-25|NONE|REG AIR|the blithely regular foxes. even, final |
-3809|191|3|1|17|18550.23|0.10|0.04|N|O|1996-08-14|1996-07-05|1996-09-04|DELIVER IN PERSON|FOB|es detect furiously sil|
-3809|133|4|2|32|33060.16|0.01|0.02|N|O|1996-07-03|1996-06-01|1996-07-25|COLLECT COD|SHIP|xcuses would boost against the fluffily eve|
-3809|105|6|3|46|46234.60|0.10|0.06|N|O|1996-08-20|1996-06-01|1996-08-24|TAKE BACK RETURN|TRUCK|l asymptotes. special |
-3809|178|9|4|43|46361.31|0.00|0.04|N|O|1996-05-06|1996-06-22|1996-06-05|TAKE BACK RETURN|TRUCK|yly ironic decoys; regular, iron|
-3810|184|5|1|49|53124.82|0.05|0.01|R|F|1992-11-27|1992-10-30|1992-12-16|COLLECT COD|AIR|cajole. fur|
-3810|169|8|2|18|19244.88|0.01|0.04|A|F|1992-11-28|1992-11-15|1992-12-27|DELIVER IN PERSON|SHIP|s. furiously careful deposi|
-3810|137|3|3|41|42522.33|0.08|0.08|A|F|1992-10-26|1992-10-27|1992-11-05|COLLECT COD|SHIP|l requests boost slyly along the slyl|
-3810|182|3|4|11|11903.98|0.06|0.04|A|F|1992-12-18|1992-12-11|1993-01-15|DELIVER IN PERSON|MAIL| the pending pinto beans. expr|
-3811|164|3|1|24|25539.84|0.04|0.02|N|O|1998-07-13|1998-05-16|1998-08-12|TAKE BACK RETURN|TRUCK|deposits. slyly regular accounts cajo|
-3811|166|5|2|2|2132.32|0.01|0.08|N|O|1998-06-16|1998-06-16|1998-06-23|NONE|MAIL|slyly fluff|
-3811|43|6|3|19|17917.76|0.02|0.06|N|O|1998-07-20|1998-06-14|1998-07-29|NONE|MAIL|s boost blithely furiou|
-3811|171|1|4|50|53558.50|0.08|0.03|N|O|1998-07-28|1998-07-06|1998-08-16|COLLECT COD|FOB|ts are slyly fluffy ideas. furiou|
-3811|182|3|5|23|24890.14|0.00|0.04|N|O|1998-08-13|1998-07-09|1998-08-29|COLLECT COD|AIR|nstructions sleep quickly. slyly final |
-3811|2|7|6|35|31570.00|0.04|0.07|N|O|1998-04-17|1998-06-30|1998-04-25|NONE|REG AIR|yly final dolphins? quickly ironic frets|
-3812|145|4|1|33|34489.62|0.00|0.05|N|O|1996-10-10|1996-10-05|1996-10-15|TAKE BACK RETURN|MAIL|posits engage. ironic, regular p|
-3812|173|2|2|33|35414.61|0.06|0.03|N|O|1996-10-05|1996-10-13|1996-10-22|TAKE BACK RETURN|MAIL|inal excuses d|
-3813|176|7|1|37|39818.29|0.05|0.04|N|O|1998-10-13|1998-09-19|1998-10-28|NONE|REG AIR|ravely special packages haggle p|
-3813|123|2|2|39|39901.68|0.05|0.00|N|O|1998-08-30|1998-08-12|1998-09-29|COLLECT COD|FOB|y ideas. final ideas about the sp|
-3814|131|7|1|7|7217.91|0.02|0.02|R|F|1995-05-01|1995-05-09|1995-05-28|DELIVER IN PERSON|REG AIR|es sleep furiou|
-3814|173|3|2|14|15024.38|0.01|0.00|R|F|1995-03-17|1995-05-10|1995-04-16|DELIVER IN PERSON|AIR|sits along the final, ironic deposit|
-3814|168|7|3|36|38453.76|0.06|0.02|N|O|1995-06-19|1995-04-18|1995-06-28|COLLECT COD|SHIP|beans cajole quickly sl|
-3814|66|7|4|20|19321.20|0.04|0.07|R|F|1995-02-23|1995-03-26|1995-03-04|DELIVER IN PERSON|SHIP|. doggedly ironic deposits will have to wa|
-3814|107|2|5|15|15106.50|0.03|0.04|N|O|1995-06-23|1995-03-25|1995-07-09|COLLECT COD|SHIP| carefully final deposits haggle slyly|
-3814|83|4|6|47|46204.76|0.09|0.05|A|F|1995-04-16|1995-04-03|1995-05-14|DELIVER IN PERSON|AIR|nusual requests. bli|
-3814|132|8|7|12|12385.56|0.10|0.01|R|F|1995-03-18|1995-04-16|1995-03-20|TAKE BACK RETURN|REG AIR|ages cajole. packages haggle. final|
-3815|77|7|1|3|2931.21|0.07|0.00|N|O|1997-11-16|1997-11-15|1997-11-30|NONE|FOB|egular, express ideas. ironic, final dep|
-3815|130|5|2|11|11331.43|0.02|0.04|N|O|1997-11-01|1997-11-05|1997-11-27|COLLECT COD|TRUCK|sleep blithe|
-3840|187|8|1|45|48923.10|0.02|0.08|N|O|1998-10-31|1998-09-19|1998-11-30|DELIVER IN PERSON|TRUCK|o beans are. carefully final courts x|
-3840|46|9|2|12|11352.48|0.04|0.07|N|O|1998-10-02|1998-08-19|1998-10-20|TAKE BACK RETURN|RAIL|xpress pinto beans. accounts a|
-3840|73|4|3|45|43788.15|0.02|0.05|N|O|1998-10-12|1998-10-12|1998-10-28|TAKE BACK RETURN|FOB|onic, even packages are. pe|
-3840|148|9|4|41|42973.74|0.07|0.02|N|O|1998-07-21|1998-10-08|1998-08-01|TAKE BACK RETURN|MAIL| nag slyly? slyly pending accounts |
-3840|173|3|5|7|7512.19|0.09|0.08|N|O|1998-09-17|1998-09-20|1998-10-14|DELIVER IN PERSON|MAIL|. furiously final gifts sleep carefully pin|
-3840|107|8|6|33|33234.30|0.10|0.02|N|O|1998-07-29|1998-10-06|1998-08-04|DELIVER IN PERSON|SHIP|hely silent deposits w|
-3841|157|5|1|1|1057.15|0.06|0.03|A|F|1994-10-10|1994-11-12|1994-10-21|DELIVER IN PERSON|AIR| boost even re|
-3841|21|10|2|31|28551.62|0.09|0.03|A|F|1995-01-24|1994-11-25|1995-02-20|TAKE BACK RETURN|SHIP|n theodolites shall promise carefully. qui|
-3841|152|10|3|40|42086.00|0.06|0.02|A|F|1995-02-02|1994-11-30|1995-02-14|TAKE BACK RETURN|MAIL|its. quickly regular ideas nag carefully|
-3841|50|1|4|9|8550.45|0.10|0.07|A|F|1994-11-21|1994-12-26|1994-11-26|NONE|FOB|s according to the courts shall nag s|
-3841|176|7|5|3|3228.51|0.04|0.02|R|F|1994-10-24|1994-12-07|1994-11-09|COLLECT COD|FOB|foxes integrate |
-3841|163|8|6|48|51031.68|0.03|0.00|R|F|1994-11-23|1994-11-22|1994-12-01|DELIVER IN PERSON|FOB| according to the regular, |
-3842|162|7|1|28|29740.48|0.05|0.07|A|F|1992-06-17|1992-06-03|1992-06-24|DELIVER IN PERSON|TRUCK|s excuses thrash carefully.|
-3842|122|1|2|21|21464.52|0.07|0.05|R|F|1992-07-15|1992-06-02|1992-07-21|NONE|RAIL|r pinto be|
-3842|194|7|3|28|30637.32|0.00|0.00|A|F|1992-06-20|1992-05-22|1992-07-13|DELIVER IN PERSON|MAIL|lly alongside of the|
-3842|88|9|4|15|14821.20|0.07|0.01|A|F|1992-06-26|1992-06-23|1992-07-09|COLLECT COD|MAIL|ave packages are slyl|
-3842|68|3|5|13|12584.78|0.09|0.02|R|F|1992-04-13|1992-06-22|1992-05-11|COLLECT COD|RAIL|t blithely. busily regular accounts alon|
-3842|107|4|6|24|24170.40|0.08|0.08|R|F|1992-08-05|1992-06-29|1992-08-16|TAKE BACK RETURN|MAIL|phins are quickly|
-3843|15|6|1|7|6405.07|0.10|0.03|N|O|1997-02-13|1997-02-21|1997-02-20|TAKE BACK RETURN|SHIP|slyly even instructions. furiously eve|
-3843|1|4|2|30|27030.00|0.01|0.05|N|O|1997-02-14|1997-03-25|1997-03-13|DELIVER IN PERSON|AIR| wake. slyly even packages boost |
-3844|135|1|1|2|2070.26|0.03|0.07|R|F|1995-02-24|1995-02-03|1995-03-18|TAKE BACK RETURN|AIR|es haggle final acco|
-3844|102|7|2|5|5010.50|0.10|0.03|R|F|1995-04-29|1995-02-24|1995-05-05|TAKE BACK RETURN|RAIL| unwind quickly about the pending, i|
-3845|34|5|1|44|41097.32|0.01|0.08|A|F|1992-07-20|1992-07-15|1992-07-24|DELIVER IN PERSON|REG AIR|s haggle among the fluffily regula|
-3845|24|7|2|16|14784.32|0.09|0.05|A|F|1992-08-08|1992-06-08|1992-08-26|DELIVER IN PERSON|SHIP|ely bold ideas use. ex|
-3845|59|1|3|17|16303.85|0.08|0.01|A|F|1992-06-12|1992-07-05|1992-06-26|TAKE BACK RETURN|RAIL|counts haggle. reg|
-3845|46|9|4|1|946.04|0.04|0.05|R|F|1992-05-21|1992-06-07|1992-06-17|COLLECT COD|REG AIR| blithely ironic t|
-3845|196|7|5|27|29597.13|0.00|0.05|R|F|1992-08-20|1992-07-17|1992-09-02|COLLECT COD|REG AIR|kages. care|
-3845|105|8|6|30|30153.00|0.09|0.06|R|F|1992-08-21|1992-07-07|1992-08-25|COLLECT COD|FOB|counts do wake blithely. ironic requests |
-3846|61|10|1|15|14415.90|0.06|0.03|N|O|1998-02-17|1998-04-27|1998-02-21|NONE|REG AIR|uternes. carefully even|
-3846|171|2|2|30|32135.10|0.08|0.07|N|O|1998-05-01|1998-03-12|1998-05-20|TAKE BACK RETURN|FOB|deposits according to the fur|
-3846|15|5|3|49|44835.49|0.08|0.07|N|O|1998-02-14|1998-03-22|1998-02-17|DELIVER IN PERSON|RAIL|efully even packages against the blithe|
-3846|165|10|4|33|35150.28|0.05|0.00|N|O|1998-05-12|1998-03-14|1998-05-14|DELIVER IN PERSON|TRUCK|s instructions are. fu|
-3847|189|10|1|7|7624.26|0.08|0.00|A|F|1993-05-06|1993-06-06|1993-05-22|COLLECT COD|MAIL| about the blithely daring Tiresias. fl|
-3872|181|2|1|28|30273.04|0.10|0.04|N|O|1996-11-05|1996-11-10|1996-11-24|DELIVER IN PERSON|REG AIR|t after the carefully ironic excuses. f|
-3872|17|4|2|38|34846.38|0.04|0.05|N|O|1996-10-18|1996-12-03|1996-11-15|TAKE BACK RETURN|AIR|iously against the ironic, unusual a|
-3872|169|4|3|18|19244.88|0.07|0.07|N|O|1996-12-25|1996-10-24|1997-01-08|TAKE BACK RETURN|SHIP|s. regular, brave accounts sleep blith|
-3872|11|2|4|41|37351.41|0.07|0.03|N|O|1996-11-23|1996-11-12|1996-12-03|COLLECT COD|REG AIR|ly regular epitaphs boost|
-3872|70|7|5|42|40742.94|0.03|0.00|N|O|1997-01-03|1996-10-12|1997-01-16|COLLECT COD|MAIL|s the furio|
-3872|140|6|6|40|41605.60|0.07|0.05|N|O|1997-01-02|1996-10-29|1997-01-14|NONE|REG AIR|nts? regularly ironic ex|
-3873|68|3|1|19|18393.14|0.04|0.04|N|O|1998-05-15|1998-05-10|1998-05-17|NONE|FOB|y final ac|
-3873|145|8|2|44|45986.16|0.05|0.05|N|O|1998-07-23|1998-05-22|1998-08-14|COLLECT COD|AIR|yly even platelets wake. |
-3873|140|6|3|29|30164.06|0.01|0.04|N|O|1998-06-22|1998-05-20|1998-07-05|COLLECT COD|REG AIR|olphins af|
-3874|170|7|1|21|22473.57|0.09|0.08|R|F|1993-06-19|1993-07-20|1993-07-08|DELIVER IN PERSON|SHIP| requests cajole fluff|
-3874|19|6|2|48|44112.48|0.06|0.07|R|F|1993-06-13|1993-07-20|1993-06-20|NONE|RAIL| ideas throughout |
-3875|81|2|1|24|23545.92|0.02|0.08|N|O|1997-10-15|1997-11-27|1997-11-09|COLLECT COD|AIR|ecial packages. |
-3875|113|7|2|49|49642.39|0.04|0.04|N|O|1997-10-18|1997-10-13|1997-10-19|NONE|MAIL|sleep furiously about the deposits. quickl|
-3876|141|8|1|12|12493.68|0.06|0.07|N|O|1996-09-16|1996-10-23|1996-10-05|TAKE BACK RETURN|REG AIR|y above the pending tithes. blithely ironi|
-3876|140|6|2|37|38485.18|0.00|0.03|N|O|1996-11-30|1996-10-18|1996-12-18|DELIVER IN PERSON|AIR|t dependencies. blithely final packages u|
-3876|127|8|3|41|42111.92|0.02|0.04|N|O|1996-10-15|1996-10-17|1996-10-19|NONE|AIR| quickly blit|
-3877|50|7|1|12|11400.60|0.06|0.01|R|F|1993-05-30|1993-08-09|1993-06-24|TAKE BACK RETURN|FOB|nal requests. even requests are. pac|
-3877|145|4|2|47|49121.58|0.05|0.00|A|F|1993-08-01|1993-08-16|1993-08-04|NONE|FOB|furiously quick requests nag along the theo|
-3877|80|8|3|44|43123.52|0.09|0.00|A|F|1993-06-07|1993-07-15|1993-07-06|DELIVER IN PERSON|REG AIR|elets. quickly regular accounts caj|
-3877|148|9|4|36|37733.04|0.06|0.01|A|F|1993-07-27|1993-07-13|1993-08-11|DELIVER IN PERSON|AIR|lithely about the dogged ideas. ac|
-3877|5|6|5|41|37105.00|0.03|0.07|A|F|1993-06-30|1993-07-20|1993-07-01|DELIVER IN PERSON|FOB|integrate against the expres|
-3877|123|4|6|7|7161.84|0.04|0.08|R|F|1993-06-14|1993-07-09|1993-06-28|NONE|TRUCK|lar dolphins cajole silently |
-3878|200|1|1|6|6601.20|0.07|0.04|N|O|1997-06-21|1997-05-22|1997-07-01|COLLECT COD|FOB|s. regular instru|
-3878|88|9|2|13|12845.04|0.01|0.06|N|O|1997-06-08|1997-06-03|1997-06-25|TAKE BACK RETURN|TRUCK|leep ruthlessly about the carefu|
-3878|41|8|3|20|18820.80|0.08|0.03|N|O|1997-06-20|1997-05-24|1997-07-20|TAKE BACK RETURN|MAIL|the furiously careful ideas cajole slyly sl|
-3878|152|3|4|20|21043.00|0.01|0.07|N|O|1997-07-13|1997-05-22|1997-07-20|NONE|FOB|about the carefully ironic pa|
-3879|126|5|1|45|46175.40|0.10|0.08|N|O|1996-03-18|1996-01-03|1996-04-03|COLLECT COD|RAIL|ly according to the expr|
-3879|45|4|2|35|33076.40|0.00|0.07|N|O|1995-12-08|1996-01-23|1995-12-28|TAKE BACK RETURN|MAIL|o beans. accounts cajole furiously. re|
-3904|38|4|1|22|20636.66|0.04|0.03|N|O|1998-02-02|1998-02-09|1998-02-10|TAKE BACK RETURN|REG AIR|structions cajole carefully. carefully f|
-3904|184|5|2|19|20599.42|0.09|0.01|N|O|1998-02-10|1998-02-13|1998-02-20|TAKE BACK RETURN|AIR| excuses sleep slyly according to th|
-3905|101|8|1|43|43047.30|0.07|0.08|A|F|1994-03-30|1994-02-18|1994-04-09|DELIVER IN PERSON|REG AIR|uses are care|
-3905|116|10|2|7|7112.77|0.03|0.00|R|F|1994-03-01|1994-02-19|1994-03-11|DELIVER IN PERSON|AIR|ully furiously furious packag|
-3905|170|7|3|6|6421.02|0.07|0.02|R|F|1994-04-07|1994-03-07|1994-04-21|DELIVER IN PERSON|RAIL|ow furiously. deposits wake ironic |
-3906|153|1|1|42|44232.30|0.00|0.04|R|F|1992-09-03|1992-07-22|1992-09-04|COLLECT COD|RAIL|jole blithely after the furiously regular |
-3906|40|1|2|50|47002.00|0.01|0.07|R|F|1992-09-24|1992-08-24|1992-09-29|NONE|MAIL|ke slyly. stealt|
-3906|180|9|3|15|16202.70|0.06|0.02|R|F|1992-07-30|1992-08-26|1992-08-02|TAKE BACK RETURN|FOB|dependencies at the |
-3906|59|10|4|36|34525.80|0.08|0.08|A|F|1992-08-07|1992-08-08|1992-08-24|NONE|SHIP|y. ironic deposits haggle sl|
-3907|112|6|1|41|41496.51|0.06|0.02|A|F|1992-09-13|1992-10-23|1992-09-29|COLLECT COD|MAIL|ackages wake along the carefully regul|
-3907|145|4|2|41|42850.74|0.03|0.00|A|F|1992-10-25|1992-10-17|1992-11-01|TAKE BACK RETURN|RAIL|s above the unusual ideas sleep furiousl|
-3907|52|4|3|45|42842.25|0.02|0.07|R|F|1992-09-21|1992-09-19|1992-10-18|COLLECT COD|REG AIR| about the regular pac|
-3907|176|5|4|48|51656.16|0.05|0.07|A|F|1992-09-24|1992-10-16|1992-10-06|DELIVER IN PERSON|TRUCK|nt asymptotes lose across th|
-3907|62|3|5|22|21165.32|0.09|0.01|R|F|1992-09-20|1992-10-30|1992-09-29|TAKE BACK RETURN|TRUCK|ly. furiously unusual deposits use afte|
-3907|126|9|6|34|34888.08|0.02|0.02|R|F|1992-09-06|1992-10-08|1992-09-12|COLLECT COD|FOB| requests according to the slyly pending |
-3907|110|5|7|8|8080.88|0.10|0.01|A|F|1992-09-18|1992-10-29|1992-09-27|NONE|REG AIR|furiously final packages.|
-3908|92|4|1|50|49604.50|0.05|0.04|R|F|1993-06-19|1993-04-27|1993-07-05|DELIVER IN PERSON|MAIL| even accounts wake |
-3908|148|9|2|8|8385.12|0.06|0.03|A|F|1993-03-12|1993-04-13|1993-03-22|DELIVER IN PERSON|SHIP|r instructions was requests. ironically |
-3909|178|6|1|30|32345.10|0.03|0.07|N|O|1998-10-17|1998-10-14|1998-10-28|COLLECT COD|TRUCK|ly even deposits across the ironic notorni|
-3909|191|4|2|46|50194.74|0.03|0.01|N|O|1998-10-08|1998-10-15|1998-10-24|NONE|FOB|the blithely unusual ideas|
-3910|139|10|1|10|10391.30|0.00|0.08|N|O|1996-10-18|1996-10-31|1996-11-14|DELIVER IN PERSON|FOB|tions boost furiously unusual e|
-3910|71|10|2|31|30103.17|0.05|0.03|N|O|1996-12-22|1996-11-14|1997-01-01|TAKE BACK RETURN|SHIP|ess instructions. |
-3910|20|7|3|6|5520.12|0.04|0.04|N|O|1996-12-08|1996-10-30|1996-12-31|DELIVER IN PERSON|MAIL|ly sly platelets are fluffily slyly si|
-3910|153|1|4|1|1053.15|0.03|0.06|N|O|1996-09-12|1996-10-21|1996-09-19|DELIVER IN PERSON|FOB|s sleep neve|
-3911|113|7|1|10|10131.10|0.07|0.06|N|O|1995-06-22|1995-05-30|1995-06-28|COLLECT COD|FOB|ss theodolites are blithely along t|
-3911|119|9|2|14|14267.54|0.08|0.05|R|F|1995-04-28|1995-05-03|1995-05-22|NONE|RAIL|e blithely brave depo|
-3911|92|5|3|12|11905.08|0.10|0.05|R|F|1995-04-04|1995-04-16|1995-04-10|COLLECT COD|FOB|uctions. blithely regula|
-3936|137|8|1|25|25928.25|0.06|0.03|N|O|1996-12-03|1996-12-27|1997-01-01|DELIVER IN PERSON|RAIL|gular requests nag quic|
-3936|188|9|2|24|26116.32|0.10|0.07|N|O|1996-11-22|1997-01-01|1996-12-08|NONE|AIR|ns. accounts mold fl|
-3936|83|4|3|42|41289.36|0.00|0.07|N|O|1997-01-03|1997-01-29|1997-01-14|COLLECT COD|AIR|elets wake amo|
-3936|62|7|4|12|11544.72|0.06|0.05|N|O|1996-11-25|1997-01-09|1996-12-06|DELIVER IN PERSON|SHIP|ithely across the carefully brave req|
-3936|84|5|5|35|34442.80|0.02|0.08|N|O|1996-12-04|1997-01-06|1996-12-22|NONE|SHIP|lly ironic requ|
-3936|103|6|6|26|26080.60|0.01|0.02|N|O|1997-02-27|1997-01-16|1997-03-22|NONE|RAIL|quickly pen|
-3937|70|7|1|48|46563.36|0.10|0.02|N|O|1998-03-15|1998-02-22|1998-03-30|DELIVER IN PERSON|FOB|gainst the thinl|
-3937|48|1|2|30|28441.20|0.01|0.07|N|O|1998-01-17|1998-01-03|1998-02-08|COLLECT COD|TRUCK|al packages slee|
-3937|115|5|3|27|27407.97|0.03|0.00|N|O|1998-02-06|1998-01-12|1998-02-20|NONE|MAIL|ven ideas. slyly expr|
-3937|154|2|4|50|52707.50|0.01|0.02|N|O|1998-01-15|1998-01-09|1998-02-04|DELIVER IN PERSON|AIR|ong the carefully exp|
-3937|3|10|5|29|26187.00|0.03|0.07|N|O|1998-03-06|1998-02-22|1998-03-14|NONE|TRUCK|nt pinto beans above the pending instr|
-3937|193|6|6|6|6559.14|0.00|0.00|N|O|1998-01-24|1998-02-13|1998-01-27|DELIVER IN PERSON|FOB|into beans. slyly silent orbits alongside o|
-3937|164|9|7|1|1064.16|0.02|0.05|N|O|1998-03-29|1998-01-08|1998-04-27|TAKE BACK RETURN|TRUCK|refully agains|
-3938|159|4|1|46|48720.90|0.10|0.07|R|F|1993-05-20|1993-05-04|1993-06-12|DELIVER IN PERSON|FOB|ly even foxes are slyly fu|
-3939|160|8|1|8|8481.28|0.03|0.06|N|O|1996-01-29|1996-04-05|1996-02-26|COLLECT COD|REG AIR|e packages. express, pen|
-3940|178|7|1|33|35579.61|0.10|0.07|N|O|1996-05-19|1996-04-19|1996-05-23|TAKE BACK RETURN|RAIL|ly ironic packages about the pending accou|
-3940|69|4|2|40|38762.40|0.08|0.02|N|O|1996-02-29|1996-03-22|1996-03-04|NONE|MAIL|ts. regular fox|
-3940|89|10|3|8|7912.64|0.07|0.08|N|O|1996-04-04|1996-04-12|1996-04-18|DELIVER IN PERSON|RAIL|ions cajole furiously regular pinto beans. |
-3940|137|3|4|11|11408.43|0.09|0.05|N|O|1996-03-09|1996-05-13|1996-03-17|COLLECT COD|REG AIR|e of the special packages. furiously|
-3940|1|6|5|41|36941.00|0.00|0.07|N|O|1996-05-08|1996-05-03|1996-06-03|COLLECT COD|MAIL|thily. deposits cajole.|
-3941|41|2|1|47|44228.88|0.05|0.07|N|O|1996-11-24|1996-10-09|1996-12-22|DELIVER IN PERSON|RAIL| carefully pending|
-3941|123|6|2|19|19439.28|0.05|0.00|N|O|1996-11-10|1996-10-26|1996-12-05|COLLECT COD|RAIL|eposits haggle furiously even|
-3941|10|3|3|2|1820.02|0.01|0.03|N|O|1996-12-04|1996-10-01|1996-12-25|NONE|REG AIR|es wake after the|
-3941|110|7|4|29|29293.19|0.00|0.03|N|O|1996-09-14|1996-10-04|1996-09-19|NONE|MAIL|g the blithely|
-3942|183|4|1|6|6499.08|0.05|0.05|A|F|1993-07-01|1993-09-14|1993-07-23|DELIVER IN PERSON|SHIP|ep ruthlessly carefully final accounts: s|
-3942|194|7|2|5|5470.95|0.06|0.02|R|F|1993-09-27|1993-09-24|1993-10-07|DELIVER IN PERSON|MAIL|. fluffily pending deposits above the flu|
-3942|156|4|3|25|26403.75|0.04|0.06|R|F|1993-09-13|1993-08-01|1993-09-29|COLLECT COD|RAIL|d the quick packages|
-3943|198|2|1|15|16472.85|0.03|0.01|N|O|1997-01-13|1996-12-17|1997-02-02|COLLECT COD|REG AIR| grow fluffily according to the |
-3943|96|7|2|9|8964.81|0.00|0.06|N|O|1996-11-27|1997-01-03|1996-12-17|COLLECT COD|RAIL|refully ironic |
-3943|17|4|3|32|29344.32|0.00|0.02|N|O|1996-10-22|1996-12-17|1996-11-04|TAKE BACK RETURN|TRUCK| unusual ideas into the furiously even pack|
-3943|50|1|4|5|4750.25|0.04|0.04|N|O|1997-01-09|1996-11-10|1997-02-06|COLLECT COD|RAIL|arefully regular deposits accord|
-3968|54|2|1|27|25759.35|0.04|0.05|N|O|1997-04-25|1997-04-17|1997-05-11|TAKE BACK RETURN|MAIL|t silently.|
-3968|26|9|2|45|41670.90|0.00|0.07|N|O|1997-06-18|1997-04-24|1997-06-25|DELIVER IN PERSON|FOB|ully slyly fi|
-3968|156|7|3|43|45414.45|0.07|0.06|N|O|1997-04-30|1997-05-14|1997-05-18|TAKE BACK RETURN|SHIP|ly regular accounts|
-3968|61|8|4|7|6727.42|0.07|0.02|N|O|1997-03-30|1997-05-01|1997-04-12|DELIVER IN PERSON|SHIP|efully bold instructions. express|
-3969|52|4|1|39|37129.95|0.04|0.04|N|O|1997-06-12|1997-06-13|1997-07-05|NONE|MAIL|ly bold ideas s|
-3969|197|1|2|26|28526.94|0.05|0.03|N|O|1997-07-08|1997-07-30|1997-07-10|TAKE BACK RETURN|AIR|fluffily; braids detect.|
-3969|79|8|3|46|45037.22|0.04|0.02|N|O|1997-05-29|1997-06-15|1997-06-10|TAKE BACK RETURN|SHIP|fully final requests sleep stealthily. care|
-3969|151|9|4|21|22074.15|0.07|0.04|N|O|1997-08-31|1997-07-16|1997-09-02|TAKE BACK RETURN|MAIL|unts doze quickly final reque|
-3969|72|3|5|40|38882.80|0.09|0.00|N|O|1997-05-19|1997-08-02|1997-06-05|COLLECT COD|TRUCK|lar requests cajole furiously blithely regu|
-3969|105|8|6|4|4020.40|0.02|0.01|N|O|1997-06-04|1997-07-31|1997-06-13|COLLECT COD|REG AIR|dencies wake blithely? quickly even theodo|
-3970|88|9|1|2|1976.16|0.01|0.07|R|F|1992-04-24|1992-06-03|1992-05-16|TAKE BACK RETURN|RAIL|carefully pending foxes wake blithely |
-3970|109|6|2|18|18163.80|0.03|0.08|A|F|1992-06-06|1992-06-18|1992-07-05|DELIVER IN PERSON|TRUCK| maintain slyly. ir|
-3970|154|6|3|10|10541.50|0.10|0.04|A|F|1992-07-01|1992-05-31|1992-07-02|NONE|AIR| special packages wake after the final br|
-3970|22|5|4|34|31348.68|0.05|0.00|A|F|1992-06-25|1992-05-23|1992-07-12|COLLECT COD|SHIP|y final gifts are. carefully pe|
-3970|30|3|5|23|21390.69|0.05|0.04|A|F|1992-06-04|1992-06-14|1992-06-13|COLLECT COD|TRUCK| above the final braids. regular|
-3970|9|6|6|46|41814.00|0.07|0.04|R|F|1992-04-29|1992-05-14|1992-05-24|NONE|FOB|yly ironic|
-3970|5|8|7|46|41630.00|0.08|0.08|R|F|1992-05-02|1992-05-12|1992-05-10|COLLECT COD|MAIL|ix slyly. quickly silen|
-3971|96|8|1|47|46816.23|0.06|0.04|N|O|1996-07-07|1996-08-08|1996-08-01|TAKE BACK RETURN|RAIL|e slyly final dependencies x-ray |
-3971|191|5|2|2|2182.38|0.04|0.03|N|O|1996-07-15|1996-08-12|1996-07-26|NONE|SHIP|haggle abou|
-3972|51|3|1|2|1902.10|0.05|0.03|A|F|1994-07-24|1994-06-30|1994-08-13|TAKE BACK RETURN|SHIP|y final theodolite|
-3973|30|9|1|21|19530.63|0.02|0.06|R|F|1992-06-18|1992-06-03|1992-07-02|COLLECT COD|REG AIR|equests. furiously|
-3973|115|2|2|37|37559.07|0.07|0.00|A|F|1992-05-29|1992-05-04|1992-06-23|TAKE BACK RETURN|SHIP|inos wake fluffily. pending requests nag |
-3973|40|6|3|40|37601.60|0.08|0.05|R|F|1992-05-03|1992-06-09|1992-05-21|COLLECT COD|RAIL|g the carefully blithe f|
-3974|22|1|1|47|43334.94|0.10|0.03|N|O|1996-06-03|1996-05-08|1996-06-28|NONE|TRUCK|dencies above the re|
-3974|61|8|2|17|16338.02|0.05|0.07|N|O|1996-04-05|1996-05-21|1996-04-28|COLLECT COD|TRUCK|ions eat slyly after the blithely |
-3975|57|9|1|38|36367.90|0.01|0.05|N|O|1995-08-02|1995-06-18|1995-08-19|COLLECT COD|TRUCK|es are furiously: furi|
-4000|196|7|1|41|44943.79|0.06|0.01|A|F|1992-03-02|1992-03-14|1992-03-27|COLLECT COD|FOB|ve the even, fi|
-4000|75|5|2|44|42903.08|0.09|0.06|A|F|1992-03-27|1992-02-18|1992-03-31|COLLECT COD|AIR|equests use blithely blithely bold d|
-4001|106|1|1|26|26158.60|0.00|0.01|N|O|1997-07-26|1997-06-18|1997-08-08|DELIVER IN PERSON|RAIL|tegrate blithely|
-4001|41|10|2|19|17879.76|0.03|0.02|N|O|1997-08-23|1997-06-15|1997-09-18|COLLECT COD|SHIP|ackages. carefully ironi|
-4001|94|5|3|18|17893.62|0.07|0.00|N|O|1997-06-04|1997-06-22|1997-06-13|DELIVER IN PERSON|MAIL|lithely ironic d|
-4001|2|9|4|39|35178.00|0.00|0.00|N|O|1997-06-13|1997-06-17|1997-06-25|NONE|SHIP| dogged excuses. blithe|
-4002|111|5|1|35|35388.85|0.01|0.08|N|O|1997-05-16|1997-06-15|1997-06-02|DELIVER IN PERSON|TRUCK|eep. quickly|
-4002|198|9|2|20|21963.80|0.00|0.03|N|O|1997-06-15|1997-05-20|1997-07-11|NONE|MAIL|lly even ins|
-4002|40|1|3|6|5640.24|0.08|0.07|N|O|1997-05-02|1997-07-07|1997-05-16|TAKE BACK RETURN|RAIL| furiously furiously special theodoli|
-4002|199|3|4|6|6595.14|0.06|0.06|N|O|1997-07-01|1997-05-15|1997-07-31|NONE|MAIL|he slyly iro|
-4002|99|1|5|4|3996.36|0.08|0.07|N|O|1997-05-06|1997-06-15|1997-05-24|NONE|REG AIR|ccording to the careful|
-4003|52|4|1|18|17136.90|0.04|0.07|R|F|1993-02-02|1993-04-15|1993-02-28|TAKE BACK RETURN|AIR|ar grouches s|
-4004|121|2|1|23|23485.76|0.07|0.02|A|F|1993-08-12|1993-07-13|1993-08-16|TAKE BACK RETURN|TRUCK| bold theodolites? special packages accordi|
-4004|64|5|2|47|45310.82|0.07|0.04|R|F|1993-06-25|1993-08-03|1993-07-12|NONE|SHIP|thely instead of the even, unu|
-4004|114|5|3|39|39550.29|0.10|0.05|R|F|1993-07-12|1993-07-27|1993-07-18|NONE|MAIL|ccounts sleep furious|
-4004|74|4|4|46|44807.22|0.10|0.04|R|F|1993-09-04|1993-07-13|1993-09-28|COLLECT COD|FOB|ncies. slyly pending dolphins sleep furio|
-4004|155|3|5|9|9496.35|0.04|0.06|A|F|1993-08-25|1993-06-10|1993-09-24|COLLECT COD|MAIL|ly ironic requests. quickly pending ide|
-4004|161|10|6|44|46691.04|0.07|0.05|R|F|1993-07-25|1993-07-23|1993-08-16|TAKE BACK RETURN|REG AIR|ut the sauternes. bold, ironi|
-4004|126|9|7|20|20522.40|0.07|0.05|A|F|1993-06-19|1993-06-14|1993-07-04|COLLECT COD|REG AIR|. ironic deposits cajole blithely?|
-4005|4|1|1|26|23504.00|0.09|0.05|N|O|1996-12-01|1997-02-03|1996-12-15|NONE|REG AIR| to the quic|
-4005|17|8|2|28|25676.28|0.02|0.06|N|O|1996-12-11|1997-01-24|1996-12-17|DELIVER IN PERSON|REG AIR|ly carefully ironic deposits. slyly|
-4005|72|10|3|28|27217.96|0.03|0.01|N|O|1996-12-08|1997-01-14|1996-12-30|TAKE BACK RETURN|MAIL|y pending dependenc|
-4005|15|9|4|49|44835.49|0.09|0.00|N|O|1997-01-31|1996-12-24|1997-03-02|NONE|RAIL|tions sleep across the silent d|
-4005|6|7|5|14|12684.00|0.09|0.08|N|O|1996-11-27|1997-01-09|1996-12-25|NONE|TRUCK|ld requests. slyly final instructi|
-4006|55|7|1|11|10505.55|0.05|0.08|A|F|1995-04-29|1995-02-21|1995-05-20|TAKE BACK RETURN|RAIL|ress foxes cajole quick|
-4006|159|4|2|18|19064.70|0.05|0.03|A|F|1995-01-29|1995-03-08|1995-02-02|TAKE BACK RETURN|MAIL|gouts! slyly iron|
-4006|24|5|3|15|13860.30|0.01|0.02|R|F|1995-02-23|1995-04-02|1995-02-25|TAKE BACK RETURN|RAIL|n deposits cajole slyl|
-4006|114|5|4|25|25352.75|0.00|0.07|A|F|1995-02-23|1995-02-09|1995-02-24|DELIVER IN PERSON|SHIP| requests use depos|
-4007|57|2|1|32|30625.60|0.00|0.03|R|F|1993-09-30|1993-08-16|1993-10-03|DELIVER IN PERSON|RAIL|nal accounts across t|
-4007|116|10|2|41|41660.51|0.04|0.06|A|F|1993-10-11|1993-08-30|1993-11-04|DELIVER IN PERSON|TRUCK|eposits. regular epitaphs boost blithely.|
-4007|102|9|3|5|5010.50|0.09|0.06|A|F|1993-09-17|1993-08-29|1993-10-12|TAKE BACK RETURN|FOB|y unusual packa|
-4007|138|4|4|15|15571.95|0.05|0.02|A|F|1993-09-01|1993-07-19|1993-09-03|DELIVER IN PERSON|FOB|le furiously quickly |
-4007|26|7|5|23|21298.46|0.02|0.07|A|F|1993-10-08|1993-09-09|1993-10-23|COLLECT COD|MAIL|ter the accounts. expr|
-4032|102|3|1|8|8016.80|0.06|0.00|N|O|1998-06-04|1998-05-17|1998-07-03|TAKE BACK RETURN|RAIL|ometimes even cou|
-4032|2|9|2|27|24354.00|0.09|0.00|N|O|1998-05-31|1998-04-19|1998-06-24|COLLECT COD|REG AIR|le furiously according to|
-4032|154|2|3|23|24245.45|0.09|0.06|N|O|1998-06-12|1998-05-11|1998-06-24|COLLECT COD|MAIL|ording to the |
-4032|85|6|4|10|9850.80|0.09|0.05|N|O|1998-03-31|1998-04-22|1998-04-07|NONE|REG AIR| carefully bol|
-4033|110|1|1|27|27272.97|0.01|0.04|R|F|1993-08-08|1993-08-14|1993-08-09|NONE|AIR|pinto beans|
-4033|38|4|2|34|31893.02|0.07|0.00|R|F|1993-07-19|1993-08-05|1993-07-26|NONE|RAIL|t the blithely dogg|
-4034|190|1|1|48|52329.12|0.03|0.03|A|F|1994-03-01|1994-01-16|1994-03-16|NONE|RAIL| blithely regular requests play carefull|
-4034|57|5|2|47|44981.35|0.07|0.05|A|F|1994-01-27|1993-12-26|1994-02-04|NONE|TRUCK|eodolites was slyly ironic ideas. de|
-4034|54|5|3|43|41024.15|0.10|0.03|A|F|1993-11-29|1994-01-08|1993-12-10|DELIVER IN PERSON|FOB|posits wake carefully af|
-4034|28|9|4|46|42688.92|0.06|0.00|A|F|1994-02-22|1994-01-09|1994-03-04|DELIVER IN PERSON|AIR|uests. furiously unusual instructions wake|
-4034|196|10|5|7|7673.33|0.07|0.06|R|F|1994-03-04|1994-01-22|1994-04-01|NONE|AIR|y even theodolites. slyly regular instru|
-4034|50|9|6|5|4750.25|0.01|0.06|A|F|1994-02-12|1994-01-24|1994-02-13|COLLECT COD|AIR|fully around the furiously ironic re|
-4035|97|8|1|4|3988.36|0.08|0.03|R|F|1992-04-21|1992-04-23|1992-04-25|COLLECT COD|AIR|ilent, even pear|
-4035|136|7|2|4|4144.52|0.07|0.00|A|F|1992-05-21|1992-04-24|1992-05-24|DELIVER IN PERSON|FOB|en instructions sleep blith|
-4035|118|8|3|1|1018.11|0.03|0.01|R|F|1992-06-18|1992-05-19|1992-07-02|COLLECT COD|FOB| requests. quickly |
-4035|182|3|4|13|14068.34|0.00|0.01|R|F|1992-06-10|1992-05-16|1992-07-10|NONE|SHIP|s. furiously even courts wake slyly|
-4036|6|1|1|46|41676.00|0.09|0.00|N|O|1997-06-21|1997-05-29|1997-07-18|NONE|REG AIR|usly across the even th|
-4036|53|1|2|21|20014.05|0.09|0.07|N|O|1997-08-08|1997-06-28|1997-08-09|COLLECT COD|MAIL|e carefully. qui|
-4036|142|3|3|6|6252.84|0.07|0.01|N|O|1997-06-19|1997-06-16|1997-07-01|DELIVER IN PERSON|SHIP|equests wake about the bold id|
-4036|127|10|4|20|20542.40|0.08|0.02|N|O|1997-08-11|1997-07-11|1997-09-03|NONE|TRUCK|slyly bold deposits cajole pending, blithe|
-4037|64|9|1|32|30849.92|0.00|0.06|A|F|1993-05-06|1993-06-08|1993-05-31|DELIVER IN PERSON|AIR|e of the pending, iron|
-4037|47|8|2|4|3788.16|0.09|0.07|A|F|1993-07-05|1993-06-12|1993-08-03|DELIVER IN PERSON|RAIL|s around the blithely ironic ac|
-4038|196|10|1|40|43847.60|0.05|0.01|N|O|1996-01-15|1996-03-13|1996-01-25|COLLECT COD|TRUCK|t. slyly silent pinto beans amo|
-4038|12|9|2|37|33744.37|0.04|0.03|N|O|1996-03-17|1996-03-19|1996-04-07|DELIVER IN PERSON|REG AIR| packages |
-4038|32|3|3|24|22368.72|0.10|0.04|N|O|1996-04-06|1996-02-15|1996-04-18|TAKE BACK RETURN|RAIL|the furiously regu|
-4038|150|1|4|29|30454.35|0.07|0.06|N|O|1996-01-07|1996-03-08|1996-01-13|NONE|FOB|ffix. quietly ironic packages a|
-4038|79|7|5|24|23497.68|0.07|0.06|N|O|1996-04-01|1996-04-05|1996-04-28|DELIVER IN PERSON|TRUCK|ake quickly after the final, ironic ac|
-4038|36|2|6|6|5616.18|0.07|0.05|N|O|1996-02-09|1996-03-05|1996-03-10|COLLECT COD|SHIP| special instructions. packa|
-4039|94|5|1|38|37775.42|0.03|0.06|N|O|1998-03-09|1997-12-31|1998-03-21|DELIVER IN PERSON|REG AIR|sual asymptotes. ironic deposits nag aft|
-4039|122|5|2|17|17376.04|0.10|0.04|N|O|1998-01-15|1998-01-20|1998-01-28|TAKE BACK RETURN|MAIL| regular foxes haggle carefully bo|
-4039|64|1|3|9|8676.54|0.10|0.01|N|O|1998-03-08|1998-02-05|1998-04-05|TAKE BACK RETURN|FOB|t? pinto beans cajole across the thinly r|
-4039|28|3|4|43|39904.86|0.01|0.02|N|O|1998-01-02|1997-12-22|1998-01-15|NONE|FOB|beans believe bene|
-4039|134|5|5|43|44467.59|0.09|0.00|N|O|1998-01-20|1998-01-11|1998-02-05|COLLECT COD|SHIP|sts along the regular in|
-4064|199|1|1|3|3297.57|0.10|0.04|N|O|1997-01-04|1997-01-01|1997-01-23|NONE|SHIP|its! quickly sp|
-4064|40|6|2|15|14100.60|0.02|0.02|N|O|1996-11-09|1996-12-04|1996-11-18|DELIVER IN PERSON|MAIL|braids affix across the regular sheave|
-4064|197|10|3|32|35110.08|0.04|0.07|N|O|1997-01-14|1997-01-01|1997-01-21|COLLECT COD|REG AIR|es boost. careful|
-4064|163|8|4|24|25515.84|0.02|0.02|N|O|1997-01-01|1996-12-31|1997-01-23|DELIVER IN PERSON|SHIP|ly regular ideas.|
-4064|21|2|5|12|11052.24|0.08|0.08|N|O|1997-02-08|1996-12-18|1997-03-06|TAKE BACK RETURN|RAIL|ding to the requests|
-4064|184|5|6|46|49872.28|0.03|0.00|N|O|1996-10-13|1997-01-05|1996-11-06|DELIVER IN PERSON|REG AIR|alongside of the f|
-4064|200|2|7|9|9901.80|0.01|0.06|N|O|1996-12-17|1996-12-13|1997-01-12|NONE|AIR|furiously f|
-4065|138|9|1|14|14533.82|0.04|0.02|A|F|1994-08-22|1994-07-29|1994-09-19|DELIVER IN PERSON|TRUCK|e furiously outside |
-4065|15|6|2|46|42090.46|0.03|0.05|A|F|1994-06-29|1994-08-01|1994-07-03|TAKE BACK RETURN|SHIP|, regular requests may mold above the |
-4065|97|10|3|33|32903.97|0.00|0.03|A|F|1994-09-03|1994-08-16|1994-09-13|DELIVER IN PERSON|AIR|ain blithely |
-4065|107|2|4|8|8056.80|0.00|0.01|R|F|1994-10-04|1994-08-05|1994-10-25|TAKE BACK RETURN|SHIP|ages haggle carefully|
-4065|123|4|5|29|29670.48|0.02|0.07|A|F|1994-06-29|1994-08-19|1994-07-17|NONE|RAIL|equests. packages sleep slyl|
-4065|110|5|6|16|16161.76|0.05|0.00|R|F|1994-08-25|1994-08-06|1994-09-09|COLLECT COD|TRUCK|ncies use furiously. quickly un|
-4065|144|7|7|11|11485.54|0.10|0.04|A|F|1994-07-25|1994-08-02|1994-07-30|NONE|RAIL|hang silently about |
-4066|139|5|1|9|9352.17|0.01|0.05|N|O|1997-05-06|1997-03-25|1997-05-27|COLLECT COD|FOB|nal, ironic accounts. blithel|
-4066|93|5|2|19|18868.71|0.05|0.00|N|O|1997-05-13|1997-04-17|1997-06-08|NONE|TRUCK|quests. slyly regu|
-4066|76|5|3|8|7808.56|0.03|0.03|N|O|1997-04-24|1997-03-11|1997-05-20|NONE|REG AIR|accounts. special pinto beans|
-4066|179|9|4|49|52879.33|0.01|0.01|N|O|1997-02-17|1997-03-24|1997-02-19|NONE|TRUCK|ial braids. furiously final deposits sl|
-4066|171|2|5|43|46060.31|0.05|0.02|N|O|1997-02-16|1997-04-14|1997-02-18|DELIVER IN PERSON|MAIL|r instructions. slyly special |
-4066|109|2|6|44|44400.40|0.01|0.00|N|O|1997-03-01|1997-04-27|1997-03-29|DELIVER IN PERSON|MAIL|express accounts nag bli|
-4067|180|1|1|18|19443.24|0.03|0.08|A|F|1993-01-24|1992-12-23|1993-02-20|TAKE BACK RETURN|FOB|e the slyly final packages d|
-4067|96|10|2|14|13945.26|0.00|0.00|R|F|1993-02-03|1992-12-02|1993-02-07|TAKE BACK RETURN|TRUCK|ructions. quickly ironic accounts detect |
-4067|141|10|3|17|17699.38|0.03|0.05|A|F|1993-01-26|1992-11-23|1993-01-27|NONE|REG AIR|ts haggle slyly unusual, final|
-4067|90|1|4|40|39603.60|0.07|0.08|R|F|1993-01-09|1992-11-21|1993-01-16|DELIVER IN PERSON|TRUCK|lar theodolites nag blithely above the|
-4067|85|6|5|17|16746.36|0.08|0.03|A|F|1993-01-20|1992-12-29|1993-02-03|DELIVER IN PERSON|REG AIR|r accounts. slyly special pa|
-4067|96|8|6|12|11953.08|0.04|0.03|A|F|1992-12-12|1992-11-28|1992-12-15|DELIVER IN PERSON|AIR|lly slyly even theodol|
-4067|83|4|7|17|16712.36|0.01|0.01|R|F|1992-12-12|1992-12-23|1992-12-30|NONE|AIR|ts affix. regular, regular requests s|
-4068|110|1|1|43|43434.73|0.05|0.06|N|O|1996-11-28|1996-11-16|1996-12-22|NONE|AIR|ructions. regular, special packag|
-4068|57|5|2|31|29668.55|0.08|0.03|N|O|1996-12-11|1996-12-07|1996-12-30|NONE|SHIP|ds wake carefully amon|
-4069|129|2|1|39|40135.68|0.09|0.02|R|F|1992-09-06|1992-07-22|1992-09-25|COLLECT COD|SHIP|ven theodolites nag quickly. fluffi|
-4069|43|4|2|32|30177.28|0.10|0.08|A|F|1992-06-18|1992-07-20|1992-07-07|TAKE BACK RETURN|TRUCK|unts. deposit|
-4069|186|7|3|3|3258.54|0.06|0.01|R|F|1992-07-26|1992-07-07|1992-08-04|COLLECT COD|FOB|l packages. even, |
-4069|79|8|4|22|21539.54|0.10|0.05|A|F|1992-08-05|1992-08-04|1992-08-25|COLLECT COD|SHIP|ts. slyly special instruction|
-4069|157|5|5|50|52857.50|0.09|0.06|A|F|1992-07-26|1992-06-30|1992-08-01|TAKE BACK RETURN|REG AIR|even foxes among the express wate|
-4069|125|8|6|3|3075.36|0.02|0.01|A|F|1992-05-24|1992-06-18|1992-06-12|COLLECT COD|MAIL|y final deposits wake furiously! slyl|
-4069|184|5|7|50|54209.00|0.00|0.01|R|F|1992-09-03|1992-06-14|1992-10-01|NONE|REG AIR|ages. carefully regular |
-4070|183|4|1|2|2166.36|0.09|0.08|N|O|1995-08-03|1995-09-10|1995-08-17|TAKE BACK RETURN|REG AIR|ptotes affix|
-4070|155|3|2|40|42206.00|0.07|0.07|N|O|1995-07-13|1995-07-23|1995-08-06|COLLECT COD|MAIL|about the sentiments. quick|
-4070|62|3|3|11|10582.66|0.00|0.08|N|O|1995-08-23|1995-08-15|1995-08-31|TAKE BACK RETURN|MAIL| carefully final pack|
-4070|29|4|4|46|42734.92|0.02|0.02|N|O|1995-06-22|1995-07-14|1995-07-11|DELIVER IN PERSON|REG AIR|nticing ideas. boldly|
-4071|112|2|1|22|22266.42|0.02|0.07|N|O|1996-10-31|1996-12-14|1996-11-05|NONE|REG AIR|sits cajole carefully final instructio|
-4071|18|8|2|47|43146.47|0.00|0.03|N|O|1996-11-04|1996-12-09|1996-11-16|NONE|TRUCK|ts cajole furiously along the|
-4096|27|10|1|31|28737.62|0.10|0.02|A|F|1992-07-14|1992-09-03|1992-07-31|COLLECT COD|TRUCK|y final, even platelets. boldly|
-4096|57|9|2|17|16269.85|0.07|0.03|R|F|1992-09-30|1992-08-11|1992-10-11|TAKE BACK RETURN|REG AIR|platelets alongside of the |
-4096|9|10|3|21|19089.00|0.08|0.00|A|F|1992-08-24|1992-09-04|1992-09-11|DELIVER IN PERSON|MAIL|tes mold flu|
-4096|128|3|4|20|20562.40|0.02|0.07|R|F|1992-08-24|1992-09-13|1992-08-28|DELIVER IN PERSON|TRUCK|sual requests. furiously bold packages wake|
-4097|74|5|1|50|48703.50|0.04|0.04|N|O|1996-08-31|1996-08-14|1996-09-27|DELIVER IN PERSON|MAIL|egular deposits. blithely pending|
-4097|74|4|2|46|44807.22|0.10|0.01|N|O|1996-07-29|1996-08-19|1996-08-25|COLLECT COD|AIR| even depend|
-4097|174|2|3|42|45115.14|0.06|0.06|N|O|1996-08-11|1996-07-30|1996-08-15|NONE|FOB|carefully silent foxes are against the |
-4098|200|1|1|46|50609.20|0.07|0.03|N|O|1997-01-26|1997-01-27|1997-02-13|TAKE BACK RETURN|SHIP|e slyly blithely silent deposits. fluff|
-4099|4|7|1|29|26216.00|0.09|0.07|R|F|1992-11-21|1992-11-04|1992-11-30|NONE|FOB| slowly final warthogs sleep blithely. q|
-4099|137|3|2|3|3111.39|0.04|0.06|A|F|1992-09-12|1992-10-18|1992-10-01|NONE|RAIL|. special packages sleep|
-4099|51|3|3|36|34237.80|0.06|0.06|R|F|1992-11-06|1992-09-28|1992-12-02|NONE|FOB|beans cajole slyly quickly ironic |
-4099|139|5|4|7|7273.91|0.05|0.02|A|F|1992-09-12|1992-11-13|1992-09-14|TAKE BACK RETURN|AIR|onic foxes. quickly final fox|
-4099|163|10|5|48|51031.68|0.00|0.02|R|F|1992-10-18|1992-10-14|1992-11-01|NONE|REG AIR|ts haggle according to the slyly f|
-4099|59|10|6|39|37402.95|0.07|0.02|R|F|1992-12-13|1992-11-13|1992-12-26|DELIVER IN PERSON|REG AIR|fluffy accounts impress pending, iro|
-4099|180|8|7|46|49688.28|0.06|0.07|R|F|1992-10-29|1992-11-03|1992-11-10|DELIVER IN PERSON|REG AIR|ages nag requests.|
-4100|74|5|1|4|3896.28|0.03|0.03|N|O|1996-06-20|1996-04-29|1996-06-21|TAKE BACK RETURN|FOB|lyly regular, bold requ|
-4101|115|2|1|22|22332.42|0.05|0.02|R|F|1994-02-02|1994-02-19|1994-02-12|COLLECT COD|AIR|ly express instructions. careful|
-4102|10|3|1|17|15470.17|0.02|0.02|N|O|1996-06-03|1996-05-06|1996-07-02|COLLECT COD|AIR|ly silent theodolites sleep unusual exc|
-4102|69|8|2|5|4845.30|0.08|0.02|N|O|1996-05-11|1996-05-11|1996-05-16|COLLECT COD|AIR| the furiously even|
-4102|67|4|3|39|37715.34|0.08|0.01|N|O|1996-04-14|1996-05-18|1996-04-20|DELIVER IN PERSON|AIR|ffix blithely slyly special |
-4102|140|6|4|39|40565.46|0.02|0.00|N|O|1996-06-15|1996-06-06|1996-06-30|DELIVER IN PERSON|SHIP|y among the furiously special|
-4102|1|6|5|32|28832.00|0.08|0.01|N|O|1996-05-14|1996-04-29|1996-05-29|NONE|RAIL| the even requests; regular pinto|
-4102|137|8|6|7|7259.91|0.02|0.01|N|O|1996-06-19|1996-05-21|1996-07-15|NONE|REG AIR|bove the carefully pending the|
-4103|75|4|1|40|39002.80|0.05|0.03|R|F|1992-09-19|1992-08-14|1992-09-21|COLLECT COD|RAIL|usly across the slyly busy accounts! fin|
-4128|196|8|1|5|5480.95|0.04|0.04|N|O|1995-10-18|1995-11-28|1995-10-28|TAKE BACK RETURN|FOB|ake permanently |
-4129|56|8|1|32|30593.60|0.03|0.04|A|F|1993-09-16|1993-08-25|1993-09-25|TAKE BACK RETURN|MAIL|ckages haggl|
-4129|27|6|2|39|36153.78|0.06|0.07|R|F|1993-10-21|1993-08-04|1993-10-29|COLLECT COD|MAIL|y regular foxes. slyly ironic deposits |
-4130|178|6|1|44|47439.48|0.07|0.04|N|O|1996-05-14|1996-04-15|1996-05-15|COLLECT COD|TRUCK|eaves haggle qui|
-4130|63|10|2|2|1926.12|0.05|0.06|N|O|1996-05-19|1996-04-24|1996-06-17|TAKE BACK RETURN|RAIL|uriously regular instructions around th|
-4131|50|7|1|6|5700.30|0.05|0.01|N|O|1998-04-27|1998-04-18|1998-04-29|TAKE BACK RETURN|MAIL|ns cajole slyly. even, iro|
-4131|178|8|2|32|34501.44|0.08|0.01|N|O|1998-03-02|1998-03-21|1998-03-07|TAKE BACK RETURN|TRUCK| furiously regular asymptotes nod sly|
-4131|26|9|3|25|23150.50|0.02|0.07|N|O|1998-02-24|1998-03-01|1998-02-27|TAKE BACK RETURN|FOB|uickly exp|
-4131|36|7|4|8|7488.24|0.04|0.01|N|O|1998-03-03|1998-03-15|1998-03-26|COLLECT COD|FOB| after the furiously ironic d|
-4131|125|6|5|30|30753.60|0.01|0.01|N|O|1998-04-01|1998-04-13|1998-04-08|TAKE BACK RETURN|FOB|he fluffily express depen|
-4131|102|7|6|47|47098.70|0.02|0.00|N|O|1998-03-09|1998-04-05|1998-03-13|TAKE BACK RETURN|RAIL|ges. ironic pinto be|
-4132|138|4|1|28|29067.64|0.07|0.03|N|O|1995-08-16|1995-08-01|1995-08-29|TAKE BACK RETURN|SHIP|pths wake against the stealthily special pi|
-4132|15|5|2|23|21045.23|0.07|0.07|N|O|1995-06-27|1995-07-27|1995-07-13|TAKE BACK RETURN|FOB|d deposits. fluffily even requests haggle b|
-4132|87|8|3|18|17767.44|0.09|0.04|A|F|1995-06-01|1995-08-01|1995-06-02|TAKE BACK RETURN|RAIL|y final de|
-4133|24|5|1|35|32340.70|0.02|0.00|A|F|1992-11-25|1992-09-15|1992-12-25|NONE|AIR|g above the quickly bold packages. ev|
-4134|121|4|1|34|34718.08|0.02|0.05|R|F|1995-04-29|1995-03-13|1995-05-11|DELIVER IN PERSON|FOB|e furiously regular sheaves sleep|
-4134|96|10|2|34|33867.06|0.01|0.03|A|F|1995-05-06|1995-03-28|1995-05-13|DELIVER IN PERSON|SHIP|ual asymptotes wake carefully alo|
-4134|171|9|3|12|12854.04|0.05|0.04|A|F|1995-03-19|1995-03-27|1995-04-14|COLLECT COD|TRUCK|kly above the quickly regular |
-4134|100|4|4|45|45004.50|0.08|0.02|A|F|1995-04-11|1995-03-27|1995-04-17|TAKE BACK RETURN|MAIL|ironic pin|
-4135|2|3|1|23|20746.00|0.06|0.01|N|O|1997-04-09|1997-05-12|1997-04-16|TAKE BACK RETURN|FOB|posits cajole furiously carefully|
-4135|120|1|2|32|32643.84|0.07|0.00|N|O|1997-03-14|1997-04-23|1997-04-12|TAKE BACK RETURN|TRUCK| ideas. requests use. furiously|
-4135|160|5|3|33|34985.28|0.05|0.05|N|O|1997-05-01|1997-05-23|1997-05-23|DELIVER IN PERSON|AIR|he fluffil|
-4135|195|6|4|13|14237.47|0.04|0.07|N|O|1997-03-16|1997-05-19|1997-04-03|COLLECT COD|RAIL|efully special account|
-4160|113|10|1|25|25327.75|0.10|0.04|N|O|1996-09-22|1996-10-17|1996-09-24|NONE|SHIP|ar accounts sleep blithe|
-4160|122|7|2|12|12265.44|0.00|0.03|N|O|1996-11-22|1996-09-25|1996-12-10|DELIVER IN PERSON|REG AIR|y bold package|
-4160|63|4|3|48|46226.88|0.04|0.04|N|O|1996-09-19|1996-11-02|1996-09-24|COLLECT COD|FOB| unusual dolphins |
-4161|122|7|1|12|12265.44|0.08|0.02|R|F|1993-08-25|1993-10-04|1993-09-22|COLLECT COD|RAIL|onic dolphins. in|
-4161|28|3|2|47|43616.94|0.05|0.00|A|F|1993-12-20|1993-10-29|1994-01-19|TAKE BACK RETURN|RAIL|r requests about the final, even foxes hag|
-4161|138|4|3|42|43601.46|0.03|0.04|R|F|1993-11-12|1993-10-04|1993-11-27|COLLECT COD|MAIL|thely across the even attainments. express|
-4161|10|5|4|45|40950.45|0.02|0.06|A|F|1993-10-22|1993-10-17|1993-10-30|COLLECT COD|REG AIR|about the ironic packages cajole blithe|
-4161|29|10|5|46|42734.92|0.05|0.01|A|F|1993-11-09|1993-11-17|1993-11-17|TAKE BACK RETURN|TRUCK|he stealthily ironic foxes. ideas haggl|
-4161|148|9|6|19|19914.66|0.07|0.00|R|F|1993-08-22|1993-11-11|1993-09-01|TAKE BACK RETURN|REG AIR|beans breach s|
-4162|74|3|1|45|43833.15|0.10|0.07|A|F|1992-03-21|1992-05-02|1992-03-29|DELIVER IN PERSON|AIR|elets. slyly regular i|
-4162|90|1|2|29|28712.61|0.00|0.05|R|F|1992-02-25|1992-04-25|1992-03-17|NONE|REG AIR|nding pinto beans haggle blithe|
-4163|33|4|1|13|12129.39|0.08|0.03|A|F|1993-02-17|1993-03-13|1993-03-15|DELIVER IN PERSON|REG AIR|phins wake. pending requests inte|
-4164|120|7|1|9|9181.08|0.07|0.02|N|O|1998-08-25|1998-08-13|1998-09-19|DELIVER IN PERSON|SHIP|re fluffily slyly bold requests. |
-4165|41|2|1|12|11292.48|0.00|0.01|N|O|1997-09-20|1997-10-20|1997-10-12|TAKE BACK RETURN|REG AIR|nwind slow theodolites. carefully pending |
-4166|141|10|1|8|8329.12|0.00|0.08|A|F|1993-06-05|1993-04-10|1993-07-05|COLLECT COD|MAIL|uickly. blithely pending de|
-4166|93|5|2|8|7944.72|0.06|0.04|A|F|1993-06-07|1993-04-17|1993-06-16|DELIVER IN PERSON|REG AIR|es along the furiously regular acc|
-4166|7|10|3|17|15419.00|0.02|0.06|R|F|1993-06-29|1993-05-15|1993-07-24|DELIVER IN PERSON|SHIP|ackages. re|
-4166|86|7|4|36|35498.88|0.06|0.05|R|F|1993-03-01|1993-05-25|1993-03-05|COLLECT COD|MAIL|unts. furiously express accounts w|
-4166|77|6|5|5|4885.35|0.08|0.01|A|F|1993-06-19|1993-04-24|1993-06-27|NONE|REG AIR|hely unusual packages are above the f|
-4166|102|5|6|6|6012.60|0.04|0.08|R|F|1993-04-30|1993-04-17|1993-05-08|DELIVER IN PERSON|MAIL|ily ironic deposits print furiously. iron|
-4166|24|5|7|26|24024.52|0.09|0.01|R|F|1993-03-17|1993-05-09|1993-03-25|NONE|MAIL|lar dependencies. s|
-4167|61|8|1|47|45169.82|0.04|0.02|N|O|1998-08-02|1998-08-24|1998-08-28|DELIVER IN PERSON|REG AIR| carefully final asymptotes. slyly bo|
-4167|87|8|2|17|16780.36|0.06|0.07|N|O|1998-09-18|1998-09-06|1998-10-07|COLLECT COD|REG AIR|ly around the even instr|
-4167|73|3|3|1|973.07|0.03|0.06|N|O|1998-10-11|1998-08-14|1998-10-13|COLLECT COD|TRUCK|xpress platelets. blithely |
-4192|11|1|1|36|32796.36|0.06|0.08|N|O|1998-04-25|1998-05-26|1998-05-03|COLLECT COD|TRUCK|eodolites sleep|
-4192|121|6|2|15|15316.80|0.04|0.08|N|O|1998-06-26|1998-05-26|1998-07-16|COLLECT COD|AIR|e slyly special grouches. express pinto b|
-4192|135|6|3|7|7245.91|0.06|0.03|N|O|1998-05-19|1998-07-08|1998-05-31|COLLECT COD|FOB|y; excuses use. ironic, close instru|
-4192|24|3|4|32|29568.64|0.09|0.04|N|O|1998-06-23|1998-06-25|1998-07-17|NONE|FOB|ounts are fluffily slyly bold req|
-4192|48|7|5|48|45505.92|0.08|0.01|N|O|1998-08-17|1998-07-11|1998-09-03|NONE|AIR|ests. quickly bol|
-4192|150|7|6|44|46206.60|0.10|0.02|N|O|1998-08-06|1998-07-09|1998-08-20|NONE|FOB|structions mai|
-4192|170|5|7|27|28894.59|0.02|0.00|N|O|1998-07-03|1998-06-26|1998-07-13|TAKE BACK RETURN|AIR| carefully even escapades. care|
-4193|131|7|1|37|38151.81|0.09|0.06|A|F|1994-04-25|1994-02-24|1994-05-08|NONE|AIR|er the quickly regular dependencies wake|
-4193|117|7|2|3|3051.33|0.09|0.05|R|F|1994-04-29|1994-03-20|1994-05-29|TAKE BACK RETURN|REG AIR|osits above the depo|
-4193|179|10|3|10|10791.70|0.06|0.03|A|F|1994-02-10|1994-03-22|1994-03-09|COLLECT COD|RAIL|uffily spe|
-4193|51|9|4|29|27580.45|0.09|0.05|A|F|1994-02-11|1994-03-11|1994-03-13|TAKE BACK RETURN|RAIL|ly. final packages use blit|
-4193|20|7|5|50|46001.00|0.01|0.01|R|F|1994-04-28|1994-03-23|1994-05-09|NONE|FOB| beans. regular accounts cajole. de|
-4193|66|1|6|21|20287.26|0.02|0.04|R|F|1994-04-26|1994-03-22|1994-05-23|DELIVER IN PERSON|TRUCK|accounts cajole b|
-4194|197|1|1|43|47179.17|0.08|0.06|A|F|1994-11-06|1994-12-09|1994-11-16|NONE|TRUCK|olites are after the exp|
-4194|47|10|2|18|17046.72|0.07|0.07|A|F|1995-02-14|1994-12-04|1995-03-11|TAKE BACK RETURN|TRUCK|ld packages. quickly eve|
-4195|6|9|1|14|12684.00|0.09|0.04|R|F|1993-09-06|1993-07-21|1993-09-18|DELIVER IN PERSON|REG AIR|ironic packages. carefully express|
-4195|66|1|2|22|21253.32|0.10|0.08|R|F|1993-07-01|1993-07-23|1993-07-28|COLLECT COD|RAIL|lly express pinto bea|
-4195|194|8|3|19|20789.61|0.01|0.06|R|F|1993-09-06|1993-08-13|1993-09-15|TAKE BACK RETURN|REG AIR|telets sleep even requests. final, even i|
-4196|156|4|1|30|31684.50|0.02|0.06|N|O|1998-08-09|1998-06-30|1998-09-05|COLLECT COD|SHIP|egular foxes us|
-4196|9|6|2|31|28179.00|0.09|0.08|N|O|1998-06-12|1998-07-28|1998-07-11|NONE|MAIL|ut the blithely ironic inst|
-4196|178|9|3|46|49595.82|0.05|0.00|N|O|1998-09-05|1998-06-28|1998-09-10|TAKE BACK RETURN|MAIL|according to t|
-4196|114|8|4|42|42592.62|0.04|0.06|N|O|1998-08-13|1998-07-18|1998-09-07|TAKE BACK RETURN|AIR| instructions. courts cajole slyly ev|
-4196|72|2|5|3|2916.21|0.01|0.03|N|O|1998-05-17|1998-07-21|1998-05-18|DELIVER IN PERSON|TRUCK| accounts. fu|
-4196|87|8|6|43|42444.44|0.01|0.06|N|O|1998-08-12|1998-07-12|1998-08-22|DELIVER IN PERSON|FOB|es. slyly even |
-4196|4|1|7|3|2712.00|0.00|0.06|N|O|1998-08-05|1998-07-28|1998-08-15|DELIVER IN PERSON|REG AIR|y regular packages haggle furiously alongs|
-4197|129|8|1|50|51456.00|0.06|0.03|N|O|1996-11-15|1996-11-01|1996-11-20|NONE|FOB|. carefully bold asymptotes nag blithe|
-4197|70|9|2|39|37832.73|0.02|0.08|N|O|1996-10-07|1996-10-11|1996-10-18|DELIVER IN PERSON|RAIL|ronic requests. quickly bold packages in|
-4197|32|8|3|28|26096.84|0.06|0.02|N|O|1996-10-05|1996-10-24|1996-10-22|TAKE BACK RETURN|AIR|regular pin|
-4197|96|7|4|23|22910.07|0.00|0.03|N|O|1996-09-10|1996-10-10|1996-09-25|NONE|AIR|l instructions print slyly past the reg|
-4197|121|6|5|37|37781.44|0.03|0.04|N|O|1996-10-20|1996-10-10|1996-11-10|COLLECT COD|TRUCK|carefully enticing decoys boo|
-4197|31|7|6|48|44689.44|0.08|0.00|N|O|1996-10-07|1996-10-25|1996-10-23|COLLECT COD|REG AIR| final instructions. blithe, spe|
-4198|146|9|1|48|50214.72|0.09|0.05|N|O|1997-09-03|1997-07-18|1997-09-11|NONE|REG AIR|cajole carefully final, ironic ide|
-4198|143|6|2|46|47984.44|0.09|0.01|N|O|1997-08-17|1997-09-08|1997-09-11|COLLECT COD|TRUCK|posits among th|
-4198|145|4|3|13|13586.82|0.03|0.04|N|O|1997-07-18|1997-07-24|1997-08-10|NONE|REG AIR| furious excuses. bli|
-4199|70|5|1|16|15521.12|0.10|0.00|A|F|1992-06-11|1992-04-10|1992-07-10|COLLECT COD|TRUCK|ncies. furiously special accounts|
-4199|9|10|2|18|16362.00|0.00|0.01|A|F|1992-06-01|1992-03-30|1992-06-28|DELIVER IN PERSON|RAIL|pending, regular accounts. carefully|
-4224|199|10|1|27|29678.13|0.05|0.03|N|O|1997-09-05|1997-08-19|1997-09-30|NONE|SHIP|ly special deposits sleep qui|
-4224|37|3|2|20|18740.60|0.07|0.05|N|O|1997-11-09|1997-08-23|1997-11-14|NONE|FOB|unts promise across the requests. blith|
-4224|24|7|3|4|3696.08|0.08|0.05|N|O|1997-09-07|1997-09-05|1997-09-25|TAKE BACK RETURN|FOB| even dinos. carefull|
-4224|160|2|4|50|53008.00|0.10|0.06|N|O|1997-07-30|1997-09-10|1997-08-19|COLLECT COD|RAIL|side of the carefully silent dep|
-4224|85|6|5|48|47283.84|0.00|0.04|N|O|1997-10-03|1997-08-31|1997-10-10|NONE|RAIL| final, regular asymptotes use alway|
-4225|49|8|1|25|23726.00|0.08|0.04|N|O|1997-07-10|1997-08-08|1997-07-31|TAKE BACK RETURN|TRUCK|se fluffily. busily ironic requests are;|
-4225|96|8|2|23|22910.07|0.02|0.04|N|O|1997-09-18|1997-08-31|1997-10-11|TAKE BACK RETURN|RAIL|. quickly b|
-4225|98|10|3|28|27946.52|0.08|0.03|N|O|1997-07-11|1997-09-01|1997-08-03|DELIVER IN PERSON|FOB|ts are requests. even, bold depos|
-4226|188|9|1|27|29380.86|0.06|0.08|A|F|1993-05-03|1993-04-12|1993-05-16|COLLECT COD|AIR|sly alongside of the slyly ironic pac|
-4227|158|6|1|19|20104.85|0.01|0.08|A|F|1995-05-05|1995-05-03|1995-05-22|COLLECT COD|REG AIR|ns sleep along the blithely even theodolit|
-4227|33|4|2|8|7464.24|0.09|0.00|N|F|1995-06-11|1995-04-30|1995-06-28|COLLECT COD|REG AIR| packages since the bold, u|
-4227|75|6|3|11|10725.77|0.10|0.04|A|F|1995-03-30|1995-05-02|1995-04-26|DELIVER IN PERSON|SHIP|l requests-- bold requests cajole dogg|
-4227|200|4|4|2|2200.40|0.02|0.05|R|F|1995-04-24|1995-05-09|1995-05-21|DELIVER IN PERSON|AIR|ep. specia|
-4227|147|6|5|49|51309.86|0.05|0.06|R|F|1995-05-19|1995-04-12|1995-06-12|TAKE BACK RETURN|REG AIR|ts sleep blithely carefully unusual ideas.|
-4228|141|10|1|20|20822.80|0.00|0.06|N|O|1997-04-24|1997-05-29|1997-05-17|NONE|RAIL|f the slyly fluffy pinto beans are|
-4229|96|9|1|44|43827.96|0.02|0.05|N|O|1998-05-29|1998-05-12|1998-06-16|DELIVER IN PERSON|AIR|s. carefully e|
-4229|5|8|2|34|30770.00|0.07|0.05|N|O|1998-05-26|1998-04-13|1998-06-08|DELIVER IN PERSON|MAIL|thely final accounts use even packa|
-4230|46|5|1|38|35949.52|0.10|0.03|A|F|1992-04-28|1992-04-21|1992-05-28|TAKE BACK RETURN|FOB|ly regular packages. regular ideas boost|
-4230|199|3|2|43|47265.17|0.02|0.08|R|F|1992-03-14|1992-05-13|1992-03-28|NONE|FOB|ses lose blithely slyly final e|
-4230|196|9|3|10|10961.90|0.06|0.02|A|F|1992-06-11|1992-04-11|1992-07-02|TAKE BACK RETURN|MAIL|ar packages are |
-4230|75|6|4|28|27301.96|0.01|0.03|R|F|1992-05-12|1992-05-10|1992-06-01|TAKE BACK RETURN|MAIL|nt instruct|
-4230|125|10|5|50|51256.00|0.00|0.01|A|F|1992-03-29|1992-05-19|1992-04-20|TAKE BACK RETURN|SHIP|ts. final instructions in|
-4230|35|6|6|30|28050.90|0.05|0.07|A|F|1992-03-11|1992-04-29|1992-03-30|NONE|AIR|s. final excuses across the|
-4230|152|3|7|18|18938.70|0.10|0.04|R|F|1992-06-23|1992-05-10|1992-07-04|COLLECT COD|SHIP| the final acco|
-4231|142|3|1|47|48980.58|0.09|0.03|N|O|1997-11-27|1998-01-26|1997-12-17|NONE|REG AIR|hely along the silent at|
-4231|166|3|2|4|4264.64|0.06|0.02|N|O|1997-11-28|1998-01-26|1997-12-12|TAKE BACK RETURN|MAIL|lithely even packages. |
-4231|121|2|3|31|31654.72|0.07|0.08|N|O|1998-02-14|1997-12-27|1998-03-01|DELIVER IN PERSON|FOB|ublate. theodoli|
-4231|40|1|4|35|32901.40|0.10|0.00|N|O|1998-02-21|1998-01-24|1998-03-18|DELIVER IN PERSON|FOB|le quickly regular, unus|
-4256|151|9|1|22|23125.30|0.05|0.05|R|F|1992-07-30|1992-05-14|1992-08-14|NONE|TRUCK|, final platelets are slyly final pint|
-4257|65|10|1|3|2895.18|0.10|0.03|N|O|1995-06-18|1995-05-01|1995-07-12|DELIVER IN PERSON|MAIL|thin the theodolites use after the bl|
-4257|35|6|2|5|4675.15|0.01|0.04|R|F|1995-04-29|1995-06-05|1995-05-13|TAKE BACK RETURN|TRUCK|n deposits. furiously e|
-4257|128|9|3|33|33927.96|0.03|0.04|A|F|1995-05-23|1995-05-03|1995-05-31|COLLECT COD|AIR|uffily regular accounts ar|
-4258|166|7|1|36|38381.76|0.02|0.06|N|O|1997-02-23|1997-01-25|1997-02-27|TAKE BACK RETURN|SHIP|ns use alongs|
-4258|162|1|2|19|20181.04|0.03|0.02|N|O|1997-01-14|1996-12-12|1997-01-20|TAKE BACK RETURN|AIR|ly busily ironic foxes. f|
-4258|31|7|3|46|42827.38|0.04|0.07|N|O|1997-01-02|1996-12-26|1997-01-12|DELIVER IN PERSON|AIR| furiously pend|
-4258|35|6|4|22|20570.66|0.04|0.04|N|O|1996-12-12|1996-12-06|1996-12-20|TAKE BACK RETURN|AIR|e regular, even asym|
-4258|163|10|5|9|9568.44|0.04|0.03|N|O|1996-12-04|1996-12-08|1996-12-20|DELIVER IN PERSON|TRUCK|counts wake permanently after the bravely|
-4259|43|6|1|14|13202.56|0.05|0.03|N|O|1998-01-09|1997-11-21|1998-01-29|TAKE BACK RETURN|RAIL| furiously pending excuses. ideas hagg|
-4260|24|7|1|21|19404.42|0.08|0.04|R|F|1992-08-06|1992-06-18|1992-08-22|NONE|AIR|al, pending accounts must|
-4261|110|1|1|12|12121.32|0.05|0.01|A|F|1992-11-01|1993-01-01|1992-11-12|NONE|FOB|into beans |
-4261|82|3|2|4|3928.32|0.02|0.07|R|F|1992-12-11|1992-12-18|1992-12-24|DELIVER IN PERSON|FOB|ackages unwind furiously fluff|
-4261|175|5|3|3|3225.51|0.07|0.02|R|F|1992-11-10|1992-12-14|1992-11-17|COLLECT COD|RAIL|ly even deposits eat blithely alo|
-4261|174|3|4|36|38670.12|0.04|0.06|R|F|1992-12-02|1992-12-18|1992-12-25|NONE|REG AIR| slyly pendi|
-4261|24|7|5|28|25872.56|0.07|0.06|A|F|1992-10-08|1992-12-23|1992-10-11|TAKE BACK RETURN|MAIL|packages. fluffily i|
-4262|76|7|1|30|29282.10|0.01|0.03|N|O|1996-08-11|1996-10-11|1996-09-09|TAKE BACK RETURN|RAIL|tes after the carefully|
-4262|96|7|2|5|4980.45|0.02|0.05|N|O|1996-09-27|1996-09-05|1996-10-25|COLLECT COD|SHIP|blithely final asymptotes integrate|
-4262|162|1|3|5|5310.80|0.08|0.00|N|O|1996-10-02|1996-10-16|1996-10-05|NONE|REG AIR|ironic accounts are unusu|
-4262|74|2|4|45|43833.15|0.02|0.01|N|O|1996-11-09|1996-09-09|1996-11-12|DELIVER IN PERSON|SHIP|ackages boost. pending, even instruction|
-4262|100|3|5|28|28002.80|0.06|0.02|N|O|1996-10-22|1996-09-06|1996-11-13|DELIVER IN PERSON|FOB|ironic, regular depend|
-4262|17|7|6|26|23842.26|0.03|0.02|N|O|1996-08-29|1996-09-25|1996-08-31|NONE|RAIL|s boost slyly along the bold, iro|
-4262|160|5|7|41|43466.56|0.03|0.01|N|O|1996-08-28|1996-09-14|1996-09-20|COLLECT COD|RAIL|cuses unwind ac|
-4263|18|9|1|9|8262.09|0.08|0.07|N|O|1998-04-04|1998-04-29|1998-05-04|COLLECT COD|AIR|structions cajole quic|
-4263|196|10|2|28|30693.32|0.05|0.03|N|O|1998-06-24|1998-06-08|1998-07-14|NONE|MAIL|ideas for the carefully re|
-4263|11|1|3|38|34618.38|0.01|0.01|N|O|1998-07-10|1998-05-08|1998-07-17|NONE|TRUCK|rding to the dep|
-4263|19|3|4|20|18380.20|0.02|0.07|N|O|1998-04-09|1998-04-30|1998-05-04|NONE|RAIL|uietly regular deposits. sly deposits w|
-4263|198|2|5|14|15374.66|0.09|0.06|N|O|1998-05-06|1998-04-17|1998-05-11|DELIVER IN PERSON|TRUCK|d accounts. daringly regular accounts hagg|
-4263|113|10|6|47|47616.17|0.08|0.06|N|O|1998-06-28|1998-05-09|1998-07-02|DELIVER IN PERSON|TRUCK|y. theodolites wake idly ironic do|
-4263|29|4|7|6|5574.12|0.04|0.04|N|O|1998-05-01|1998-06-02|1998-05-14|TAKE BACK RETURN|REG AIR|g the final, regular instructions: |
-4288|74|5|1|32|31170.24|0.10|0.07|R|F|1993-03-19|1993-01-26|1993-04-18|TAKE BACK RETURN|AIR|e blithely even instructions. speci|
-4288|105|6|2|39|39198.90|0.05|0.02|R|F|1993-03-25|1993-02-06|1993-03-28|DELIVER IN PERSON|AIR|uffy theodolites run|
-4288|125|8|3|7|7175.84|0.03|0.01|A|F|1993-01-15|1993-02-05|1993-01-26|NONE|TRUCK|ngside of the special platelet|
-4289|196|7|1|19|20827.61|0.06|0.06|R|F|1993-12-31|1993-11-06|1994-01-23|DELIVER IN PERSON|TRUCK|e carefully regular ideas. sl|
-4290|137|3|1|23|23853.99|0.06|0.04|R|F|1995-04-04|1995-02-16|1995-04-07|TAKE BACK RETURN|REG AIR|uests cajole carefully.|
-4290|99|2|2|3|2997.27|0.09|0.03|A|F|1995-03-25|1995-03-07|1995-04-11|NONE|RAIL|lar platelets cajole|
-4291|192|6|1|3|3276.57|0.08|0.08|A|F|1994-03-17|1994-02-21|1994-03-27|COLLECT COD|SHIP|tes sleep slyly above the quickly sl|
-4291|125|8|2|43|44080.16|0.01|0.06|A|F|1994-02-01|1994-02-27|1994-02-06|DELIVER IN PERSON|REG AIR|s. quietly regular |
-4291|8|1|3|25|22700.00|0.09|0.08|R|F|1994-02-14|1994-02-08|1994-03-15|COLLECT COD|AIR|uctions. furiously regular ins|
-4292|44|3|1|22|20768.88|0.08|0.03|R|F|1992-02-14|1992-02-16|1992-03-01|NONE|FOB|refully expres|
-4292|40|6|2|1|940.04|0.03|0.01|A|F|1992-02-07|1992-03-16|1992-02-10|DELIVER IN PERSON|FOB| the furiously ev|
-4292|120|10|3|35|35704.20|0.03|0.06|A|F|1992-03-23|1992-04-04|1992-04-02|COLLECT COD|TRUCK|dugouts use. furiously bold packag|
-4292|163|10|4|40|42526.40|0.05|0.04|A|F|1992-04-27|1992-03-07|1992-05-04|COLLECT COD|REG AIR|ounts according to the furiously |
-4292|131|7|5|6|6186.78|0.07|0.08|R|F|1992-03-03|1992-02-24|1992-03-25|COLLECT COD|FOB|bove the silently regula|
-4292|4|1|6|47|42488.00|0.05|0.00|R|F|1992-05-02|1992-03-21|1992-05-27|TAKE BACK RETURN|FOB|y packages; even ideas boost|
-4293|1|6|1|34|30634.00|0.03|0.08|N|O|1996-11-05|1996-10-12|1996-12-04|NONE|FOB|ions sleep blithely on|
-4293|77|5|2|50|48853.50|0.01|0.05|N|O|1996-11-27|1996-10-30|1996-12-22|COLLECT COD|MAIL| special deposits. furiousl|
-4293|199|1|3|47|51661.93|0.08|0.02|N|O|1996-09-07|1996-10-24|1996-09-15|NONE|RAIL|ithely pending deposits af|
-4293|88|9|4|25|24702.00|0.04|0.04|N|O|1996-09-11|1996-11-14|1996-09-22|DELIVER IN PERSON|FOB|inal asympt|
-4293|181|2|5|1|1081.18|0.06|0.05|N|O|1996-11-15|1996-10-09|1996-11-26|COLLECT COD|AIR|eposits should boost along the |
-4293|79|7|6|45|44058.15|0.10|0.04|N|O|1996-11-04|1996-11-06|1996-11-23|NONE|MAIL|lar ideas use carefully|
-4294|105|8|1|19|19096.90|0.03|0.04|A|F|1992-10-16|1992-11-13|1992-10-26|DELIVER IN PERSON|AIR|nt dependencies. furiously regular ideas d|
-4294|27|2|2|16|14832.32|0.01|0.02|R|F|1992-08-17|1992-09-24|1992-09-04|TAKE BACK RETURN|REG AIR|lithely pint|
-4294|198|1|3|30|32945.70|0.01|0.00|A|F|1992-09-12|1992-11-06|1992-09-25|NONE|MAIL|olites. bold foxes affix ironic theodolite|
-4294|105|2|4|34|34173.40|0.02|0.01|R|F|1992-09-09|1992-11-06|1992-10-04|TAKE BACK RETURN|REG AIR|pendencies!|
-4294|119|3|5|37|37707.07|0.05|0.01|R|F|1992-09-07|1992-10-13|1992-09-08|NONE|REG AIR|cial packages nag f|
-4294|87|8|6|42|41457.36|0.02|0.03|A|F|1992-09-30|1992-11-13|1992-10-15|DELIVER IN PERSON|FOB| carefully; furiously ex|
-4294|175|3|7|47|50532.99|0.02|0.08|R|F|1992-11-09|1992-11-03|1992-12-05|TAKE BACK RETURN|SHIP|es. blithely r|
-4295|29|2|1|49|45521.98|0.09|0.01|N|O|1996-05-25|1996-03-17|1996-06-19|TAKE BACK RETURN|REG AIR|refully silent requests. f|
-4295|71|9|2|4|3884.28|0.09|0.07|N|O|1996-06-05|1996-04-26|1996-06-13|DELIVER IN PERSON|TRUCK|arefully according to the pending ac|
-4295|193|4|3|3|3279.57|0.04|0.00|N|O|1996-06-04|1996-04-24|1996-06-24|DELIVER IN PERSON|AIR|telets cajole bravely|
-4295|80|9|4|30|29402.40|0.07|0.06|N|O|1996-03-22|1996-04-23|1996-04-20|NONE|SHIP|yly ironic frets. pending foxes after |
-4320|46|5|1|28|26489.12|0.02|0.06|N|O|1997-01-28|1997-02-07|1997-02-07|COLLECT COD|FOB|nts. even, ironic excuses hagg|
-4320|140|6|2|6|6240.84|0.08|0.08|N|O|1997-01-11|1997-01-26|1997-01-22|DELIVER IN PERSON|SHIP|against the carefully careful asym|
-4320|188|9|3|33|35909.94|0.09|0.02|N|O|1996-12-11|1997-02-27|1997-01-08|TAKE BACK RETURN|SHIP|ess asymptotes so|
-4321|147|6|1|33|34555.62|0.09|0.02|A|F|1994-09-01|1994-08-17|1994-09-05|DELIVER IN PERSON|TRUCK|yly special excuses. fluffily |
-4321|54|2|2|45|42932.25|0.00|0.08|R|F|1994-11-13|1994-09-15|1994-11-18|DELIVER IN PERSON|SHIP| haggle ironically bold theodolites. quick|
-4321|186|7|3|23|24982.14|0.01|0.05|A|F|1994-11-03|1994-10-08|1994-11-06|DELIVER IN PERSON|SHIP|ly even orbits slee|
-4321|91|2|4|4|3964.36|0.02|0.00|R|F|1994-09-10|1994-10-06|1994-09-11|NONE|FOB|ironic deposi|
-4321|172|2|5|10|10721.70|0.04|0.03|A|F|1994-09-07|1994-08-23|1994-09-17|TAKE BACK RETURN|SHIP|wake carefully alongside of |
-4322|69|4|1|39|37793.34|0.04|0.02|N|O|1998-04-27|1998-06-03|1998-05-04|TAKE BACK RETURN|MAIL|its integrate fluffily |
-4322|140|1|2|9|9361.26|0.05|0.08|N|O|1998-05-18|1998-04-27|1998-05-28|COLLECT COD|AIR|ual instructio|
-4322|8|9|3|12|10896.00|0.09|0.05|N|O|1998-03-29|1998-06-05|1998-04-16|DELIVER IN PERSON|TRUCK|e blithely against the slyly unusu|
-4322|46|7|4|17|16082.68|0.09|0.08|N|O|1998-05-31|1998-05-31|1998-06-10|TAKE BACK RETURN|FOB|ructions boost |
-4322|102|7|5|10|10021.00|0.00|0.05|N|O|1998-05-31|1998-04-27|1998-06-25|TAKE BACK RETURN|REG AIR| regular ideas engage carefully quick|
-4322|60|8|6|39|37442.34|0.09|0.08|N|O|1998-03-16|1998-05-21|1998-04-11|COLLECT COD|AIR|ccounts. dogged pin|
-4322|14|4|7|34|31076.34|0.05|0.00|N|O|1998-05-27|1998-04-12|1998-06-16|NONE|REG AIR|ounts haggle fluffily ideas. pend|
-4323|1|2|1|33|29733.00|0.09|0.02|A|F|1994-05-04|1994-03-06|1994-05-23|COLLECT COD|TRUCK|the slyly bold deposits slee|
-4324|51|2|1|44|41846.20|0.05|0.04|N|O|1995-10-15|1995-09-07|1995-11-07|DELIVER IN PERSON|AIR|ainst the u|
-4324|48|7|2|12|11376.48|0.04|0.02|N|O|1995-10-05|1995-09-07|1995-10-18|NONE|REG AIR|c packages. furiously express sauternes|
-4324|82|3|3|14|13749.12|0.07|0.06|N|O|1995-11-12|1995-08-26|1995-11-21|COLLECT COD|AIR| packages nag express excuses. qui|
-4324|50|7|4|14|13300.70|0.02|0.04|N|O|1995-09-20|1995-10-08|1995-10-06|COLLECT COD|RAIL| express ideas. blithely blit|
-4324|84|5|5|22|21649.76|0.07|0.03|N|O|1995-09-13|1995-10-04|1995-09-23|DELIVER IN PERSON|SHIP|ke express, special ideas.|
-4324|43|2|6|31|29234.24|0.08|0.04|N|O|1995-10-23|1995-09-14|1995-11-09|COLLECT COD|RAIL|efully flu|
-4324|154|6|7|46|48490.90|0.00|0.03|N|O|1995-11-03|1995-09-28|1995-11-22|NONE|SHIP|ular, final theodo|
-4325|160|2|1|18|19082.88|0.01|0.07|N|O|1996-10-07|1996-09-28|1996-10-31|DELIVER IN PERSON|RAIL|. blithely|
-4326|163|4|1|11|11694.76|0.01|0.01|N|O|1997-02-02|1996-12-10|1997-02-20|DELIVER IN PERSON|TRUCK|press reque|
-4326|167|6|2|27|28813.32|0.06|0.01|N|O|1996-11-29|1997-01-20|1996-12-23|COLLECT COD|AIR|inal packages. final asymptotes about t|
-4327|95|8|1|18|17911.62|0.08|0.00|N|F|1995-06-16|1995-04-20|1995-07-12|COLLECT COD|RAIL|y final excuses. ironic, special requests a|
-4327|106|9|2|40|40244.00|0.07|0.01|N|F|1995-05-26|1995-04-17|1995-06-18|NONE|AIR|quests. packages are after th|
-4327|145|2|3|11|11496.54|0.10|0.07|R|F|1995-04-24|1995-05-27|1995-05-24|TAKE BACK RETURN|FOB| ironic dolphins|
-4327|21|10|4|8|7368.16|0.04|0.08|N|F|1995-05-26|1995-05-28|1995-06-19|DELIVER IN PERSON|AIR|eodolites cajole; unusual Tiresias|
-4327|190|1|5|39|42517.41|0.01|0.00|N|O|1995-06-23|1995-04-18|1995-07-13|TAKE BACK RETURN|FOB|kages against the blit|
-4327|152|4|6|10|10521.50|0.00|0.06|A|F|1995-04-28|1995-06-11|1995-05-07|TAKE BACK RETURN|TRUCK|arefully sile|
-4352|106|9|1|18|18109.80|0.00|0.03|N|O|1998-02-27|1998-02-02|1998-03-01|DELIVER IN PERSON|RAIL|ding to th|
-4353|94|8|1|22|21869.98|0.05|0.05|N|O|1998-01-19|1998-01-23|1998-02-10|COLLECT COD|FOB|ent packages. accounts are slyly. |
-4354|15|9|1|30|27450.30|0.08|0.07|R|F|1995-01-27|1994-11-24|1995-02-25|TAKE BACK RETURN|REG AIR|around the ir|
-4354|153|8|2|23|24222.45|0.01|0.08|R|F|1994-11-20|1994-12-23|1994-11-27|TAKE BACK RETURN|AIR|kly along the ironic, ent|
-4354|51|6|3|2|1902.10|0.10|0.04|A|F|1995-01-09|1994-12-15|1995-01-24|TAKE BACK RETURN|REG AIR|s nag quickly |
-4354|86|7|4|36|35498.88|0.05|0.05|A|F|1994-11-20|1994-12-06|1994-12-06|DELIVER IN PERSON|AIR| wake slyly eve|
-4354|65|10|5|37|35707.22|0.06|0.02|R|F|1995-01-13|1994-12-29|1995-01-31|DELIVER IN PERSON|FOB|deas use blithely! special foxes print af|
-4354|108|3|6|36|36291.60|0.03|0.04|R|F|1994-12-03|1994-12-05|1995-01-02|TAKE BACK RETURN|TRUCK|efully special packages use fluffily|
-4354|139|5|7|18|18704.34|0.03|0.04|A|F|1994-12-07|1994-12-11|1994-12-11|TAKE BACK RETURN|SHIP|ross the furiously |
-4355|195|7|1|32|35046.08|0.10|0.02|N|O|1996-12-29|1997-02-08|1997-01-24|DELIVER IN PERSON|REG AIR|y silent deposits. b|
-4355|17|1|2|4|3668.04|0.05|0.02|N|O|1997-02-25|1997-01-29|1997-03-17|TAKE BACK RETURN|TRUCK|slyly blithely regular packag|
-4355|1|2|3|13|11713.00|0.07|0.05|N|O|1997-01-21|1996-12-22|1997-02-14|COLLECT COD|TRUCK| ought to mold. blithely pending ideas |
-4355|194|6|4|14|15318.66|0.04|0.02|N|O|1997-03-08|1997-01-22|1997-03-26|NONE|RAIL|he furiously ironic accounts. quickly iro|
-4355|31|7|5|50|46551.50|0.10|0.00|N|O|1996-11-25|1997-01-01|1996-12-06|DELIVER IN PERSON|REG AIR| regular accounts boost along the |
-4355|122|7|6|35|35774.20|0.00|0.08|N|O|1997-01-28|1997-01-28|1997-02-20|NONE|FOB|ess accounts affix ironic|
-4355|101|4|7|47|47051.70|0.09|0.02|N|O|1996-12-28|1996-12-29|1997-01-09|NONE|RAIL|e. realms integrate |
-4356|194|5|1|35|38296.65|0.00|0.04|R|F|1994-05-30|1994-06-14|1994-06-08|COLLECT COD|MAIL|arefully ironic |
-4357|84|5|1|50|49204.00|0.04|0.07|N|O|1997-11-25|1997-12-03|1997-12-17|DELIVER IN PERSON|RAIL|s. final, e|
-4357|108|9|2|17|17137.70|0.10|0.07|N|O|1998-02-01|1997-12-08|1998-02-09|DELIVER IN PERSON|MAIL|e carefully furiou|
-4358|126|5|1|47|48227.64|0.04|0.00|N|O|1997-10-15|1997-10-14|1997-11-04|DELIVER IN PERSON|SHIP|refully busy dep|
-4359|174|3|1|41|44040.97|0.03|0.07|A|F|1993-04-06|1993-05-06|1993-04-14|COLLECT COD|RAIL|s affix sly|
-4359|153|8|2|8|8425.20|0.03|0.08|R|F|1993-06-27|1993-05-16|1993-07-04|DELIVER IN PERSON|MAIL|packages affix. fluffily regular f|
-4359|193|6|3|32|34982.08|0.10|0.03|R|F|1993-06-18|1993-04-04|1993-07-18|COLLECT COD|MAIL|olites nag quietly caref|
-4359|78|8|4|1|978.07|0.05|0.03|R|F|1993-04-27|1993-05-09|1993-05-08|NONE|MAIL| fluffily ironic, bold pac|
-4359|33|4|5|22|20526.66|0.04|0.01|A|F|1993-03-28|1993-06-01|1993-04-13|NONE|REG AIR|accounts wake ironic deposits. ironic|
-4384|136|7|1|5|5180.65|0.09|0.01|A|F|1992-08-22|1992-08-24|1992-09-20|DELIVER IN PERSON|MAIL|instructions sleep. blithely express pa|
-4384|89|10|2|38|37585.04|0.07|0.06|A|F|1992-10-18|1992-09-24|1992-11-04|NONE|FOB|ly final requests. regu|
-4384|89|10|3|11|10879.88|0.05|0.04|R|F|1992-08-31|1992-10-04|1992-09-28|TAKE BACK RETURN|FOB|deposits promise carefully even, regular e|
-4385|111|8|1|38|38422.18|0.00|0.02|N|O|1996-11-22|1996-10-30|1996-12-21|DELIVER IN PERSON|TRUCK|inal frays. final, bold exc|
-4386|130|3|1|10|10301.30|0.05|0.07|N|O|1998-06-03|1998-04-16|1998-06-28|TAKE BACK RETURN|MAIL|gainst the quickly expre|
-4386|118|2|2|28|28507.08|0.03|0.06|N|O|1998-03-19|1998-05-01|1998-03-27|NONE|FOB|. quick packages play slyly |
-4386|140|1|3|4|4160.56|0.07|0.05|N|O|1998-04-07|1998-03-25|1998-04-19|COLLECT COD|FOB|ns wake carefully carefully iron|
-4386|121|2|4|21|21443.52|0.09|0.00|N|O|1998-05-05|1998-03-19|1998-05-13|NONE|RAIL|e pending, sp|
-4386|130|3|5|39|40175.07|0.09|0.06|N|O|1998-03-05|1998-03-15|1998-03-16|NONE|RAIL|structions cajole quickly express|
-4386|90|1|6|18|17821.62|0.02|0.05|N|O|1998-04-12|1998-04-09|1998-05-12|TAKE BACK RETURN|SHIP| deposits use according to the pending, |
-4386|20|4|7|16|14720.32|0.07|0.02|N|O|1998-05-05|1998-03-17|1998-06-03|COLLECT COD|AIR|e furiously final pint|
-4387|122|5|1|3|3066.36|0.02|0.01|N|O|1996-01-17|1996-01-14|1996-01-28|COLLECT COD|AIR| boost slyly ironic instructions. furiou|
-4387|177|5|2|48|51704.16|0.06|0.05|N|O|1995-10-29|1995-12-11|1995-11-01|NONE|REG AIR|sleep slyly. blithely sl|
-4387|2|5|3|15|13530.00|0.00|0.03|N|O|1996-01-11|1996-01-14|1996-01-30|TAKE BACK RETURN|REG AIR|s hinder quietly across the pla|
-4387|47|8|4|9|8523.36|0.00|0.03|N|O|1996-01-04|1995-12-26|1996-01-12|DELIVER IN PERSON|REG AIR|c ideas. slyly regular packages sol|
-4387|82|3|5|3|2946.24|0.05|0.08|N|O|1995-11-17|1995-12-28|1995-11-25|COLLECT COD|SHIP| pinto beans |
-4387|6|3|6|40|36240.00|0.02|0.04|N|O|1995-11-29|1995-12-10|1995-12-20|NONE|REG AIR|deas according to the blithely regular fox|
-4388|65|10|1|30|28951.80|0.02|0.07|N|O|1996-06-07|1996-05-07|1996-06-22|DELIVER IN PERSON|FOB|s cajole fluffil|
-4388|84|5|2|28|27554.24|0.05|0.04|N|O|1996-05-08|1996-06-20|1996-05-12|TAKE BACK RETURN|RAIL|ove the ide|
-4388|52|4|3|13|12376.65|0.07|0.05|N|O|1996-06-28|1996-05-23|1996-07-04|DELIVER IN PERSON|REG AIR|ly even, expre|
-4389|157|2|1|20|21143.00|0.08|0.00|A|F|1994-06-06|1994-06-17|1994-06-17|DELIVER IN PERSON|SHIP|ng the carefully express d|
-4389|153|5|2|13|13690.95|0.00|0.00|A|F|1994-08-18|1994-06-06|1994-08-20|NONE|RAIL|nal, regula|
-4389|79|9|3|39|38183.73|0.04|0.07|A|F|1994-06-08|1994-06-04|1994-06-10|TAKE BACK RETURN|TRUCK| unusual, final excuses cajole carefully |
-4389|160|2|4|5|5300.80|0.09|0.00|A|F|1994-09-03|1994-06-23|1994-09-16|NONE|FOB| ironic request|
-4389|11|5|5|22|20042.22|0.08|0.00|R|F|1994-07-05|1994-06-12|1994-07-12|NONE|TRUCK|lly silent de|
-4389|2|3|6|22|19844.00|0.01|0.04|R|F|1994-06-07|1994-06-29|1994-06-19|COLLECT COD|TRUCK|at the final excuses hinder carefully a|
-4389|185|6|7|4|4340.72|0.09|0.08|R|F|1994-06-14|1994-06-30|1994-07-06|NONE|REG AIR| blithely even d|
-4390|152|10|1|35|36825.25|0.07|0.04|R|F|1995-05-30|1995-07-02|1995-06-15|DELIVER IN PERSON|TRUCK|ongside of the slyly regular ideas|
-4390|196|8|2|28|30693.32|0.03|0.00|N|O|1995-09-07|1995-06-22|1995-10-05|COLLECT COD|SHIP|ld braids haggle atop the for|
-4390|101|8|3|42|42046.20|0.05|0.08|A|F|1995-06-12|1995-07-16|1995-06-17|NONE|AIR|arefully even accoun|
-4390|98|2|4|32|31938.88|0.07|0.08|N|O|1995-09-15|1995-08-12|1995-10-05|TAKE BACK RETURN|TRUCK|ctions across|
-4391|161|10|1|1|1061.16|0.09|0.00|R|F|1992-06-18|1992-04-27|1992-06-20|COLLECT COD|TRUCK|ong the silent deposits|
-4391|187|8|2|45|48923.10|0.07|0.04|R|F|1992-04-01|1992-05-01|1992-04-13|TAKE BACK RETURN|TRUCK|ep quickly after |
-4416|94|7|1|37|36781.33|0.08|0.03|A|F|1992-10-23|1992-08-23|1992-11-16|COLLECT COD|RAIL|fluffily ironic |
-4416|89|10|2|3|2967.24|0.06|0.03|R|F|1992-10-22|1992-08-06|1992-11-13|DELIVER IN PERSON|SHIP| requests sleep along the |
-4416|9|6|3|45|40905.00|0.09|0.03|A|F|1992-10-16|1992-09-09|1992-10-28|COLLECT COD|AIR|the final pinto beans. special frets |
-4417|75|5|1|28|27301.96|0.08|0.02|N|O|1998-09-04|1998-10-04|1998-09-19|TAKE BACK RETURN|REG AIR|ies across the furious|
-4417|181|2|2|1|1081.18|0.06|0.08|N|O|1998-10-23|1998-08-22|1998-10-24|NONE|REG AIR|press deposits promise stealthily amo|
-4417|98|2|3|35|34933.15|0.06|0.04|N|O|1998-08-08|1998-09-23|1998-09-02|DELIVER IN PERSON|FOB|slyly regular, silent courts. even packag|
-4418|35|1|1|32|29920.96|0.02|0.06|A|F|1993-05-28|1993-06-02|1993-05-30|TAKE BACK RETURN|RAIL|ly. bold pinto b|
-4418|22|5|2|14|12908.28|0.03|0.04|A|F|1993-05-20|1993-06-18|1993-06-05|TAKE BACK RETURN|SHIP| blithely regular requests. blith|
-4418|79|7|3|3|2937.21|0.00|0.02|R|F|1993-04-08|1993-06-04|1993-05-02|NONE|SHIP|luffily across the unusual ideas. reque|
-4419|108|9|1|45|45364.50|0.01|0.05|N|O|1996-07-20|1996-09-07|1996-08-18|DELIVER IN PERSON|TRUCK|s doze sometimes fluffily regular a|
-4419|32|8|2|42|39145.26|0.00|0.03|N|O|1996-09-18|1996-07-25|1996-09-21|COLLECT COD|RAIL|sts. furious|
-4419|132|3|3|6|6192.78|0.02|0.08|N|O|1996-06-25|1996-09-04|1996-07-20|DELIVER IN PERSON|AIR|ts wake slyly final dugou|
-4420|8|5|1|7|6356.00|0.07|0.03|R|F|1994-08-30|1994-09-03|1994-09-25|NONE|FOB| regular instructions sleep around|
-4421|98|2|1|37|36929.33|0.09|0.08|N|O|1997-07-22|1997-06-27|1997-07-25|DELIVER IN PERSON|SHIP|l accounts. ironic request|
-4421|56|1|2|46|43978.30|0.04|0.04|N|O|1997-04-21|1997-05-13|1997-05-15|DELIVER IN PERSON|FOB|reful packages. bold, |
-4421|167|6|3|46|49089.36|0.00|0.06|N|O|1997-05-25|1997-05-21|1997-06-23|COLLECT COD|TRUCK|g dependenci|
-4421|191|4|4|32|34918.08|0.06|0.04|N|O|1997-07-09|1997-06-03|1997-07-25|NONE|SHIP|ar ideas eat among the furiousl|
-4421|190|1|5|32|34886.08|0.06|0.04|N|O|1997-07-28|1997-06-14|1997-08-13|NONE|REG AIR|uickly final pinto beans impress. bold |
-4421|47|6|6|44|41669.76|0.09|0.06|N|O|1997-06-17|1997-06-20|1997-06-29|NONE|TRUCK|le carefully. bl|
-4421|116|3|7|18|18289.98|0.01|0.00|N|O|1997-06-07|1997-05-13|1997-06-10|DELIVER IN PERSON|FOB|. regular, s|
-4422|135|1|1|5|5175.65|0.09|0.07|N|O|1995-07-17|1995-08-13|1995-07-25|NONE|SHIP|e furiously about t|
-4422|48|5|2|41|38869.64|0.08|0.05|N|F|1995-06-12|1995-07-09|1995-06-20|COLLECT COD|TRUCK| theodolites shal|
-4422|103|10|3|39|39120.90|0.00|0.05|N|O|1995-09-02|1995-06-24|1995-09-14|NONE|TRUCK|en hockey players engage|
-4422|153|4|4|4|4212.60|0.02|0.05|N|O|1995-09-18|1995-08-12|1995-10-18|COLLECT COD|FOB|cies along the bo|
-4422|80|9|5|20|19601.60|0.07|0.05|N|O|1995-08-17|1995-07-16|1995-09-13|DELIVER IN PERSON|RAIL|ructions wake slyly al|
-4423|150|9|1|3|3150.45|0.03|0.00|A|F|1995-03-22|1995-04-06|1995-04-19|NONE|TRUCK| final theodolites nag after the bli|
-4423|60|5|2|2|1920.12|0.07|0.04|A|F|1995-03-04|1995-04-04|1995-03-08|TAKE BACK RETURN|REG AIR|old sheaves sleep|
-4448|52|7|1|24|22849.20|0.10|0.07|N|O|1998-09-09|1998-07-06|1998-09-27|DELIVER IN PERSON|SHIP|nal packages along the ironic instructi|
-4448|189|10|2|13|14159.34|0.00|0.01|N|O|1998-07-26|1998-07-03|1998-08-14|COLLECT COD|MAIL|fluffily express accounts integrate furiou|
-4448|41|4|3|35|32936.40|0.10|0.06|N|O|1998-09-18|1998-07-27|1998-10-08|NONE|REG AIR|aggle carefully alongside of the q|
-4448|141|2|4|3|3123.42|0.01|0.01|N|O|1998-07-20|1998-07-10|1998-08-07|DELIVER IN PERSON|TRUCK|ronic theod|
-4448|91|2|5|41|40634.69|0.00|0.08|N|O|1998-07-30|1998-08-09|1998-08-03|NONE|AIR|pon the permanently even excuses nag |
-4448|172|3|6|12|12866.04|0.06|0.03|N|O|1998-08-21|1998-06-30|1998-09-09|COLLECT COD|RAIL|sits about the ironic, bu|
-4449|32|3|1|42|39145.26|0.10|0.07|N|O|1998-03-22|1998-05-09|1998-04-03|NONE|FOB| packages. blithely final |
-4449|141|8|2|10|10411.40|0.02|0.03|N|O|1998-05-09|1998-05-04|1998-05-15|NONE|SHIP|ccounts alongside of the platelets integr|
-4450|174|5|1|44|47263.48|0.10|0.00|N|O|1997-10-12|1997-10-13|1997-10-29|DELIVER IN PERSON|RAIL| the slyly eve|
-4450|15|6|2|9|8235.09|0.03|0.03|N|O|1997-08-13|1997-08-16|1997-08-15|NONE|FOB|gular requests cajole carefully. regular c|
-4450|96|8|3|45|44824.05|0.08|0.01|N|O|1997-09-01|1997-10-06|1997-09-19|NONE|TRUCK|express ideas are furiously regular|
-4450|62|9|4|13|12506.78|0.00|0.00|N|O|1997-08-26|1997-09-18|1997-09-20|COLLECT COD|MAIL| brave foxes. slyly unusual|
-4450|56|7|5|6|5736.30|0.09|0.01|N|O|1997-09-02|1997-09-30|1997-09-09|NONE|FOB|eposits. foxes cajole unusual fox|
-4451|164|5|1|40|42566.40|0.03|0.03|A|F|1994-11-18|1994-12-25|1994-11-26|DELIVER IN PERSON|RAIL|y. slyly special deposits are sly|
-4451|63|4|2|34|32744.04|0.10|0.02|A|F|1994-11-30|1994-12-04|1994-12-13|COLLECT COD|SHIP| regular ideas.|
-4451|159|10|3|19|20123.85|0.05|0.06|R|F|1994-10-09|1994-11-26|1994-10-23|COLLECT COD|FOB|ly after the fluffi|
-4452|114|8|1|21|21296.31|0.07|0.03|R|F|1994-10-06|1994-08-23|1994-10-15|COLLECT COD|TRUCK|multipliers x-ray carefully in place of |
-4452|1|8|2|47|42347.00|0.01|0.06|A|F|1994-10-08|1994-08-09|1994-10-09|TAKE BACK RETURN|TRUCK|ts. slyly regular cour|
-4453|147|10|1|41|42932.74|0.00|0.08|N|O|1997-07-17|1997-05-15|1997-07-31|NONE|REG AIR|anent theodolites are slyly except t|
-4453|133|4|2|16|16530.08|0.03|0.00|N|O|1997-07-22|1997-05-05|1997-08-03|COLLECT COD|FOB|ar excuses nag quickly even accounts. b|
-4453|62|7|3|48|46178.88|0.02|0.07|N|O|1997-05-29|1997-06-24|1997-06-03|NONE|SHIP|eep. fluffily express accounts at the furi|
-4453|102|5|4|26|26054.60|0.06|0.07|N|O|1997-05-07|1997-06-07|1997-05-22|NONE|TRUCK|express packages are|
-4454|151|9|1|20|21023.00|0.10|0.08|R|F|1994-05-06|1994-03-17|1994-05-20|COLLECT COD|SHIP|lar theodolites. even instructio|
-4454|152|10|2|22|23147.30|0.06|0.02|A|F|1994-02-06|1994-04-11|1994-03-06|DELIVER IN PERSON|RAIL|ully. carefully final accounts accordi|
-4454|192|3|3|45|49148.55|0.07|0.04|A|F|1994-03-29|1994-03-26|1994-04-04|TAKE BACK RETURN|RAIL|ests promise. packages print fur|
-4454|2|3|4|1|902.00|0.09|0.05|A|F|1994-02-05|1994-04-19|1994-02-12|COLLECT COD|RAIL|equests run.|
-4454|52|4|5|48|45698.40|0.00|0.07|R|F|1994-04-23|1994-04-03|1994-04-26|COLLECT COD|FOB|to beans wake across th|
-4454|160|8|6|20|21203.20|0.10|0.03|A|F|1994-04-08|1994-03-06|1994-04-26|DELIVER IN PERSON|TRUCK|quickly regular requests. furiously|
-4455|70|5|1|20|19401.40|0.01|0.05|A|F|1994-01-31|1993-11-21|1994-03-02|DELIVER IN PERSON|MAIL| express packages. packages boost quickly|
-4455|153|4|2|47|49498.05|0.09|0.01|R|F|1994-01-01|1993-12-25|1994-01-05|COLLECT COD|FOB| requests. even, even accou|
-4455|123|2|3|34|34786.08|0.00|0.06|A|F|1993-10-24|1993-11-27|1993-11-04|TAKE BACK RETURN|AIR| slyly ironic requests. quickly even d|
-4480|108|5|1|30|30243.00|0.08|0.03|R|F|1994-07-29|1994-06-22|1994-08-01|NONE|FOB|ven braids us|
-4481|24|9|1|50|46201.00|0.02|0.06|N|O|1996-07-22|1996-05-13|1996-08-14|DELIVER IN PERSON|RAIL|ar packages. regula|
-4481|190|1|2|27|29435.13|0.02|0.03|N|O|1996-04-06|1996-05-17|1996-04-12|TAKE BACK RETURN|AIR|ackages haggle even, |
-4482|71|2|1|32|31074.24|0.06|0.03|A|F|1995-05-16|1995-07-22|1995-06-07|NONE|RAIL| quickly pendin|
-4482|96|9|2|32|31874.88|0.01|0.06|N|O|1995-08-16|1995-06-26|1995-09-10|DELIVER IN PERSON|AIR|eans wake according |
-4483|6|7|1|32|28992.00|0.07|0.07|R|F|1992-04-05|1992-05-25|1992-04-08|DELIVER IN PERSON|MAIL|ests haggle. slyl|
-4483|62|1|2|50|48103.00|0.01|0.06|A|F|1992-06-19|1992-05-12|1992-07-08|DELIVER IN PERSON|TRUCK|ag blithely even|
-4483|9|4|3|50|45450.00|0.00|0.04|R|F|1992-06-10|1992-04-18|1992-06-17|DELIVER IN PERSON|MAIL|ackages. furiously ironi|
-4484|95|9|1|4|3980.36|0.06|0.03|N|O|1997-04-09|1997-02-11|1997-04-12|TAKE BACK RETURN|TRUCK|packages de|
-4484|137|8|2|39|40448.07|0.05|0.02|N|O|1997-04-01|1997-01-26|1997-04-21|NONE|RAIL|onic accounts wake blithel|
-4484|190|1|3|38|41427.22|0.06|0.07|N|O|1997-03-07|1997-01-31|1997-04-01|COLLECT COD|REG AIR|. even requests un|
-4484|122|5|4|41|41906.92|0.06|0.03|N|O|1997-01-25|1997-02-15|1997-01-29|TAKE BACK RETURN|REG AIR|ress accounts. ironic deposits unwind fur|
-4484|3|4|5|42|37926.00|0.03|0.07|N|O|1997-03-25|1997-02-21|1997-04-05|DELIVER IN PERSON|REG AIR|ding, pending requests wake. fluffily |
-4484|36|7|6|29|27144.87|0.09|0.06|N|O|1996-12-27|1997-03-10|1997-01-13|NONE|FOB| wake blithely ironic|
-4484|103|8|7|50|50155.00|0.07|0.01|N|O|1997-03-17|1997-03-16|1997-03-21|COLLECT COD|FOB|the ironic, final theodo|
-4485|191|5|1|1|1091.19|0.03|0.05|R|F|1994-12-04|1995-02-07|1994-12-09|NONE|AIR|play according to the ironic, ironic|
-4485|141|10|2|46|47892.44|0.04|0.06|R|F|1995-03-09|1994-12-14|1995-03-23|DELIVER IN PERSON|AIR|. ironic foxes haggle. regular war|
-4485|175|6|3|43|46232.31|0.01|0.05|R|F|1995-01-17|1995-02-11|1995-02-07|DELIVER IN PERSON|TRUCK|al accounts according to the slyly r|
-4485|144|5|4|43|44898.02|0.08|0.06|R|F|1995-01-28|1995-01-26|1995-02-07|DELIVER IN PERSON|AIR|. blithely|
-4485|6|7|5|47|42582.00|0.08|0.04|R|F|1995-03-11|1995-01-11|1995-03-21|TAKE BACK RETURN|RAIL|luffily pending acc|
-4486|135|1|1|46|47615.98|0.08|0.00|N|O|1998-05-02|1998-04-05|1998-05-08|COLLECT COD|MAIL|ackages. specia|
-4486|49|2|2|19|18031.76|0.10|0.01|N|O|1998-06-07|1998-05-28|1998-07-02|NONE|MAIL|pending foxes after|
-4486|96|7|3|47|46816.23|0.02|0.07|N|O|1998-04-09|1998-05-24|1998-05-07|DELIVER IN PERSON|MAIL|ts around the quiet packages ar|
-4486|91|4|4|28|27750.52|0.07|0.02|N|O|1998-04-21|1998-04-19|1998-04-26|TAKE BACK RETURN|AIR|to the furious, regular foxes play abov|
-4487|138|4|1|37|38410.81|0.03|0.07|R|F|1993-02-28|1993-04-18|1993-03-17|TAKE BACK RETURN|MAIL|bove the fu|
-4487|113|10|2|49|49642.39|0.10|0.00|R|F|1993-06-13|1993-05-08|1993-07-10|COLLECT COD|FOB|sual packages should ha|
-4487|190|1|3|1|1090.19|0.02|0.07|A|F|1993-05-11|1993-05-23|1993-05-17|TAKE BACK RETURN|FOB|ithely final asym|
-4487|93|4|4|25|24827.25|0.07|0.03|A|F|1993-03-09|1993-04-27|1993-03-30|COLLECT COD|RAIL|g the final instructions. slyly c|
-4512|162|1|1|30|31864.80|0.07|0.07|N|O|1996-01-28|1995-12-22|1996-02-22|TAKE BACK RETURN|TRUCK|ly unusual package|
-4512|41|4|2|24|22584.96|0.04|0.06|N|O|1995-12-16|1996-01-16|1995-12-25|NONE|SHIP|ly regular pinto beans. carefully bold depo|
-4512|145|8|3|21|21947.94|0.00|0.00|N|O|1995-10-31|1995-12-30|1995-11-15|NONE|REG AIR|lly unusual pinto b|
-4512|141|2|4|32|33316.48|0.10|0.01|N|O|1995-11-25|1995-12-28|1995-12-06|NONE|FOB|counts are against the quickly regular |
-4512|133|4|5|43|44424.59|0.06|0.00|N|O|1995-12-20|1995-11-28|1996-01-14|NONE|AIR|are carefully. theodolites wake|
-4513|170|1|1|29|31034.93|0.03|0.01|N|O|1996-05-18|1996-05-23|1996-06-08|NONE|REG AIR|cajole. regular packages boost. s|
-4513|70|9|2|39|37832.73|0.01|0.04|N|O|1996-06-25|1996-05-14|1996-07-24|NONE|MAIL|slyly furiously unusual deposits. blit|
-4513|138|4|3|34|35296.42|0.00|0.03|N|O|1996-03-27|1996-06-12|1996-04-06|DELIVER IN PERSON|SHIP|sits. quickly even instructions |
-4513|192|6|4|13|14198.47|0.08|0.08|N|O|1996-04-12|1996-05-19|1996-04-25|DELIVER IN PERSON|AIR|l, final excuses detect furi|
-4514|164|9|1|27|28732.32|0.06|0.06|R|F|1994-07-01|1994-07-13|1994-07-26|COLLECT COD|AIR| even, silent foxes be|
-4514|46|3|2|15|14190.60|0.10|0.04|R|F|1994-08-24|1994-07-11|1994-09-14|DELIVER IN PERSON|RAIL|! unusual, special deposits afte|
-4514|78|8|3|10|9780.70|0.09|0.05|A|F|1994-06-19|1994-06-25|1994-07-01|COLLECT COD|SHIP|ake furiously. carefully regular requests|
-4514|81|2|4|9|8829.72|0.10|0.03|A|F|1994-08-04|1994-07-01|1994-09-01|DELIVER IN PERSON|REG AIR|wly. quick|
-4514|149|8|5|12|12589.68|0.02|0.03|R|F|1994-08-20|1994-06-09|1994-09-15|TAKE BACK RETURN|FOB| carefully ironic foxes nag caref|
-4514|189|10|6|38|41388.84|0.03|0.05|A|F|1994-07-28|1994-07-06|1994-08-25|NONE|AIR|ending excuses. sl|
-4514|177|8|7|27|29083.59|0.04|0.06|A|F|1994-06-24|1994-07-14|1994-06-30|TAKE BACK RETURN|TRUCK|. slyly sile|
-4515|39|10|1|15|14085.45|0.06|0.01|R|F|1992-05-26|1992-05-25|1992-06-03|NONE|SHIP|posits wake|
-4515|103|10|2|50|50155.00|0.06|0.03|A|F|1992-03-28|1992-05-16|1992-04-20|NONE|AIR|ding instructions again|
-4515|154|6|3|27|28462.05|0.09|0.01|A|F|1992-06-06|1992-06-08|1992-06-07|DELIVER IN PERSON|REG AIR| against the even re|
-4515|54|5|4|32|30529.60|0.06|0.03|R|F|1992-04-07|1992-05-11|1992-04-09|COLLECT COD|MAIL|carefully express depo|
-4515|45|8|5|22|20790.88|0.09|0.07|A|F|1992-07-16|1992-05-07|1992-07-23|NONE|SHIP|le quickly above the even, bold ideas.|
-4515|180|8|6|23|24844.14|0.04|0.00|R|F|1992-05-23|1992-06-15|1992-06-20|TAKE BACK RETURN|FOB|ns. bold r|
-4516|170|9|1|34|36385.78|0.05|0.04|A|F|1994-05-16|1994-06-23|1994-06-12|NONE|SHIP|even pinto beans wake qui|
-4517|43|4|1|50|47152.00|0.01|0.02|N|O|1998-06-08|1998-04-18|1998-06-20|DELIVER IN PERSON|MAIL|refully pending acco|
-4518|144|7|1|9|9397.26|0.09|0.04|N|O|1997-06-26|1997-07-07|1997-07-10|NONE|RAIL| pending deposits. slyly re|
-4518|45|6|2|19|17955.76|0.10|0.05|N|O|1997-08-09|1997-06-06|1997-08-27|COLLECT COD|RAIL|ter the slyly bo|
-4519|55|3|1|30|28651.50|0.09|0.07|R|F|1993-04-11|1993-06-05|1993-04-22|DELIVER IN PERSON|REG AIR|totes. slyly bold somas after the |
-4519|191|3|2|37|40374.03|0.06|0.08|R|F|1993-07-22|1993-06-16|1993-08-19|COLLECT COD|AIR|ly slyly furious depth|
-4544|131|7|1|40|41245.20|0.07|0.01|N|O|1997-08-15|1997-10-16|1997-08-20|DELIVER IN PERSON|RAIL| detect slyly. evenly pending instru|
-4544|172|2|2|19|20371.23|0.08|0.01|N|O|1997-08-14|1997-09-08|1997-08-25|NONE|SHIP|regular ideas are furiously about|
-4544|71|9|3|20|19421.40|0.02|0.07|N|O|1997-10-12|1997-10-11|1997-10-13|COLLECT COD|REG AIR| waters about the|
-4544|51|6|4|39|37090.95|0.07|0.05|N|O|1997-08-20|1997-09-07|1997-08-27|COLLECT COD|REG AIR|ular packages. s|
-4544|133|4|5|31|32027.03|0.09|0.03|N|O|1997-08-09|1997-09-29|1997-08-17|COLLECT COD|TRUCK|dolites detect quickly reg|
-4544|27|8|6|8|7416.16|0.10|0.03|N|O|1997-10-13|1997-10-06|1997-10-25|COLLECT COD|AIR|olites. fi|
-4545|173|1|1|38|40780.46|0.06|0.06|R|F|1993-01-27|1993-03-01|1993-02-04|NONE|TRUCK|nts serve according to th|
-4545|63|4|2|27|26002.62|0.01|0.06|R|F|1993-02-07|1993-02-18|1993-02-18|NONE|FOB|ously bold asymptotes! blithely pen|
-4545|87|8|3|9|8883.72|0.10|0.06|R|F|1993-03-20|1993-02-23|1993-04-11|TAKE BACK RETURN|AIR|xpress accounts|
-4545|64|9|4|2|1928.12|0.10|0.00|R|F|1993-04-16|1993-04-17|1993-05-03|NONE|REG AIR|ages use. slyly even i|
-4545|117|1|5|27|27461.97|0.08|0.05|A|F|1993-03-18|1993-02-22|1993-03-23|NONE|RAIL|ccounts haggle carefully. deposits |
-4545|109|2|6|8|8072.80|0.03|0.02|A|F|1993-05-01|1993-03-12|1993-05-15|NONE|FOB| boost slyly. slyly|
-4545|9|2|7|36|32724.00|0.10|0.04|R|F|1993-01-28|1993-03-30|1993-02-04|DELIVER IN PERSON|SHIP|sublate slyly. furiously ironic accounts b|
-4546|133|4|1|10|10331.30|0.09|0.02|N|O|1995-09-23|1995-10-10|1995-10-23|COLLECT COD|TRUCK|osits alongside of the|
-4546|171|10|2|15|16067.55|0.04|0.07|N|O|1995-07-31|1995-10-17|1995-08-06|NONE|REG AIR|ught to cajole furiously. qu|
-4546|77|8|3|4|3908.28|0.06|0.08|N|O|1995-08-14|1995-10-07|1995-08-16|COLLECT COD|MAIL|kly pending dependencies along the furio|
-4546|149|6|4|10|10491.40|0.08|0.02|N|O|1995-09-02|1995-09-16|1995-09-10|DELIVER IN PERSON|FOB|above the enticingly ironic dependencies|
-4547|188|9|1|15|16322.70|0.10|0.04|A|F|1993-12-08|1993-11-15|1993-12-22|NONE|REG AIR|ets haggle. regular dinos affix fu|
-4547|116|10|2|7|7112.77|0.10|0.02|A|F|1993-09-04|1993-09-29|1993-09-20|COLLECT COD|RAIL|slyly express a|
-4547|45|2|3|15|14175.60|0.00|0.00|R|F|1993-11-18|1993-10-06|1993-12-13|NONE|TRUCK|e carefully across the unus|
-4547|148|7|4|15|15722.10|0.05|0.08|R|F|1993-11-29|1993-10-12|1993-12-29|COLLECT COD|REG AIR|ironic gifts integrate |
-4548|14|8|1|21|19194.21|0.10|0.05|N|O|1996-07-11|1996-09-04|1996-07-30|COLLECT COD|REG AIR|pecial theodoli|
-4548|47|10|2|17|16099.68|0.00|0.08|N|O|1996-07-23|1996-09-21|1996-07-26|DELIVER IN PERSON|REG AIR|y ironic requests above the fluffily d|
-4548|123|2|3|47|48086.64|0.05|0.04|N|O|1996-07-24|1996-09-12|1996-08-08|NONE|MAIL|ts. excuses use slyly spec|
-4548|177|6|4|22|23697.74|0.07|0.01|N|O|1996-07-06|1996-08-23|1996-07-15|DELIVER IN PERSON|RAIL|s. furiously ironic theodolites c|
-4548|45|4|5|36|34021.44|0.04|0.06|N|O|1996-08-19|1996-09-12|1996-09-08|COLLECT COD|FOB|tions integrat|
-4549|159|1|1|44|46602.60|0.08|0.00|N|O|1998-03-13|1998-04-15|1998-03-27|TAKE BACK RETURN|TRUCK|ding to the regular, silent requests|
-4549|89|10|2|1|989.08|0.05|0.08|N|O|1998-05-04|1998-04-11|1998-05-14|TAKE BACK RETURN|AIR| requests wake. furiously even |
-4550|150|7|1|9|9451.35|0.05|0.06|R|F|1995-04-19|1995-02-07|1995-04-24|COLLECT COD|SHIP|l dependencies boost slyly after th|
-4550|66|5|2|19|18355.14|0.06|0.04|A|F|1995-01-01|1995-02-13|1995-01-20|NONE|AIR|quests. express |
-4551|11|1|1|6|5466.06|0.08|0.08|N|O|1996-05-18|1996-04-23|1996-06-13|DELIVER IN PERSON|TRUCK|fily silent fo|
-4551|179|8|2|26|28058.42|0.02|0.04|N|O|1996-04-14|1996-04-26|1996-04-17|TAKE BACK RETURN|RAIL|le. carefully dogged accounts use furiousl|
-4551|22|1|3|22|20284.44|0.08|0.01|N|O|1996-05-12|1996-03-17|1996-05-29|TAKE BACK RETURN|REG AIR|ly ironic reques|
-4551|198|10|4|27|29651.13|0.00|0.01|N|O|1996-04-28|1996-03-22|1996-05-22|TAKE BACK RETURN|RAIL|y along the slyly even |
-4576|90|1|1|5|4950.45|0.09|0.03|N|O|1996-08-23|1996-11-08|1996-09-20|TAKE BACK RETURN|AIR|ly express, special asymptote|
-4576|58|9|2|43|41196.15|0.08|0.06|N|O|1996-10-24|1996-09-23|1996-11-10|NONE|SHIP|ly final deposits. never|
-4576|42|1|3|14|13188.56|0.09|0.01|N|O|1996-09-12|1996-09-30|1996-09-24|COLLECT COD|MAIL|detect slyly.|
-4577|185|6|1|43|46662.74|0.01|0.03|N|O|1998-06-16|1998-07-09|1998-06-17|TAKE BACK RETURN|AIR|packages. |
-4577|177|6|2|43|46318.31|0.05|0.03|N|O|1998-08-24|1998-06-02|1998-09-14|TAKE BACK RETURN|RAIL|ly accounts. carefully |
-4577|69|6|3|12|11628.72|0.07|0.05|N|O|1998-07-29|1998-06-17|1998-08-04|DELIVER IN PERSON|TRUCK|equests alongsi|
-4578|74|2|1|10|9740.70|0.09|0.06|R|F|1993-01-01|1992-11-19|1993-01-28|TAKE BACK RETURN|REG AIR|uests. blithely unus|
-4578|169|10|2|42|44904.72|0.06|0.00|R|F|1993-01-05|1992-11-06|1993-01-13|DELIVER IN PERSON|FOB|s are caref|
-4578|179|8|3|15|16187.55|0.01|0.01|R|F|1992-10-23|1992-11-22|1992-11-09|DELIVER IN PERSON|REG AIR|gular theodo|
-4578|139|10|4|7|7273.91|0.09|0.08|A|F|1992-12-07|1992-11-27|1993-01-05|TAKE BACK RETURN|SHIP|odolites. carefully unusual ideas accor|
-4578|163|2|5|20|21263.20|0.04|0.02|A|F|1993-01-11|1992-11-09|1993-01-23|TAKE BACK RETURN|RAIL|iously pending theodolites--|
-4579|175|4|1|14|15052.38|0.02|0.02|N|O|1996-02-01|1996-01-08|1996-02-08|TAKE BACK RETURN|MAIL|nding theodolites. fluffil|
-4579|42|3|2|28|26377.12|0.02|0.05|N|O|1996-01-22|1996-02-13|1996-02-03|DELIVER IN PERSON|RAIL|slyly across the |
-4579|178|9|3|34|36657.78|0.05|0.02|N|O|1996-02-26|1996-02-22|1996-03-16|COLLECT COD|MAIL|hely. carefully blithe dependen|
-4579|120|1|4|8|8160.96|0.05|0.06|N|O|1995-12-16|1996-01-15|1995-12-18|TAKE BACK RETURN|AIR|posits. carefully perman|
-4580|92|5|1|22|21825.98|0.01|0.05|A|F|1994-01-16|1994-01-26|1994-02-05|COLLECT COD|AIR|nticingly final packag|
-4580|32|3|2|10|9320.30|0.05|0.04|R|F|1993-12-20|1993-12-30|1994-01-17|COLLECT COD|RAIL|gular, pending deposits. fina|
-4580|1|8|3|41|36941.00|0.00|0.07|R|F|1993-12-13|1994-01-31|1994-01-06|NONE|SHIP|requests. quickly silent asymptotes sle|
-4580|178|8|4|5|5390.85|0.07|0.00|A|F|1994-01-28|1993-12-17|1994-02-22|NONE|TRUCK|o beans. f|
-4580|189|10|5|39|42478.02|0.03|0.02|R|F|1993-12-28|1993-12-26|1994-01-23|NONE|RAIL|. fluffily final dolphins use furiously al|
-4581|165|4|1|37|39410.92|0.01|0.04|A|F|1992-10-17|1992-11-05|1992-11-04|DELIVER IN PERSON|MAIL|e the blithely bold pearls ha|
-4581|50|3|2|7|6650.35|0.01|0.02|A|F|1992-10-09|1992-10-20|1992-10-21|TAKE BACK RETURN|MAIL|express accounts d|
-4581|21|10|3|46|42366.92|0.04|0.04|A|F|1992-09-09|1992-11-27|1992-09-26|NONE|REG AIR|nag toward the carefully final accounts. |
-4582|192|5|1|17|18567.23|0.09|0.08|N|O|1996-08-17|1996-08-26|1996-08-20|COLLECT COD|REG AIR|ng packages. depo|
-4583|141|2|1|17|17699.38|0.01|0.05|A|F|1994-11-08|1994-11-03|1994-11-29|COLLECT COD|MAIL|romise. reques|
-4583|187|8|2|43|46748.74|0.04|0.04|A|F|1994-10-30|1994-12-17|1994-11-16|COLLECT COD|RAIL|fully after the speci|
-4583|196|10|3|28|30693.32|0.00|0.07|A|F|1994-10-29|1994-11-21|1994-11-28|NONE|SHIP|to beans haggle sly|
-4583|173|4|4|27|28975.59|0.08|0.03|R|F|1995-01-11|1994-12-24|1995-02-10|DELIVER IN PERSON|TRUCK| detect silent requests. furiously speci|
-4583|184|5|5|36|39030.48|0.09|0.06|A|F|1995-01-06|1994-11-25|1995-01-29|DELIVER IN PERSON|RAIL|ar requests haggle after the furiously |
-4583|122|7|6|14|14309.68|0.09|0.01|R|F|1994-11-17|1994-11-08|1994-11-21|DELIVER IN PERSON|AIR|detect. doggedly regular pi|
-4583|87|8|7|32|31586.56|0.04|0.00|A|F|1995-01-13|1994-10-29|1995-02-08|TAKE BACK RETURN|RAIL|across the pinto beans-- quickly|
-4608|173|1|1|30|32195.10|0.08|0.05|R|F|1994-10-08|1994-07-18|1994-10-25|DELIVER IN PERSON|SHIP|s cajole. slyly |
-4608|47|8|2|50|47352.00|0.06|0.01|A|F|1994-07-25|1994-09-01|1994-08-10|NONE|FOB| theodolites|
-4608|79|9|3|50|48953.50|0.03|0.01|A|F|1994-08-04|1994-09-10|1994-08-13|COLLECT COD|TRUCK| wake closely. even decoys haggle above|
-4608|31|2|4|36|33517.08|0.05|0.06|R|F|1994-10-04|1994-08-02|1994-10-21|COLLECT COD|FOB|ages wake quickly slyly iron|
-4609|47|6|1|28|26517.12|0.10|0.05|N|O|1997-02-02|1997-02-17|1997-03-02|DELIVER IN PERSON|REG AIR|ously. quickly final requests cajole fl|
-4609|185|6|2|3|3255.54|0.09|0.03|N|O|1996-12-28|1997-02-06|1997-01-20|NONE|FOB|nstructions. furious instructions |
-4609|23|4|3|46|42458.92|0.05|0.05|N|O|1997-02-11|1997-01-16|1997-03-07|NONE|FOB|r foxes. fluffily ironic ideas ha|
-4610|87|8|1|21|20728.68|0.07|0.07|R|F|1993-08-10|1993-08-05|1993-08-27|NONE|REG AIR|ly special theodolites. even,|
-4610|175|5|2|14|15052.38|0.00|0.07|R|F|1993-07-28|1993-07-25|1993-07-31|TAKE BACK RETURN|SHIP| ironic frays. dependencies detect blithel|
-4610|159|1|3|44|46602.60|0.05|0.03|A|F|1993-08-05|1993-07-20|1993-08-19|COLLECT COD|TRUCK| final theodolites |
-4610|75|3|4|26|25351.82|0.06|0.03|R|F|1993-07-01|1993-07-19|1993-07-19|NONE|MAIL| to the fluffily ironic requests h|
-4610|147|8|5|29|30367.06|0.08|0.04|R|F|1993-08-09|1993-07-27|1993-08-16|DELIVER IN PERSON|AIR| foxes. special, express package|
-4611|52|7|1|47|44746.35|0.09|0.06|A|F|1993-03-05|1993-03-01|1993-03-17|COLLECT COD|TRUCK|iously. furiously regular|
-4611|35|6|2|31|28985.93|0.04|0.02|A|F|1993-01-28|1993-02-14|1993-01-29|TAKE BACK RETURN|AIR| final pinto beans. permanent, sp|
-4611|82|3|3|50|49104.00|0.08|0.01|R|F|1993-01-22|1993-03-30|1993-02-16|TAKE BACK RETURN|AIR|l platelets. |
-4611|71|9|4|48|46611.36|0.02|0.08|R|F|1993-02-28|1993-02-12|1993-03-01|COLLECT COD|AIR|ular accounts |
-4612|6|9|1|20|18120.00|0.02|0.03|R|F|1993-09-24|1993-12-18|1993-10-22|NONE|AIR|beans sleep blithely iro|
-4612|50|7|2|17|16150.85|0.10|0.06|A|F|1994-01-09|1993-11-08|1994-02-06|TAKE BACK RETURN|REG AIR|equests haggle carefully silent excus|
-4612|137|8|3|40|41485.20|0.08|0.01|R|F|1993-10-08|1993-11-23|1993-10-24|DELIVER IN PERSON|RAIL|special platelets.|
-4612|185|6|4|10|10851.80|0.10|0.06|A|F|1993-11-11|1993-11-19|1993-11-13|TAKE BACK RETURN|SHIP|unusual theodol|
-4613|38|9|1|17|15946.51|0.09|0.07|N|O|1998-06-07|1998-05-11|1998-06-29|DELIVER IN PERSON|SHIP|liers cajole a|
-4613|108|1|2|25|25202.50|0.05|0.04|N|O|1998-05-22|1998-04-11|1998-05-27|TAKE BACK RETURN|SHIP|y pending platelets x-ray ironically! pend|
-4613|174|3|3|15|16112.55|0.10|0.02|N|O|1998-05-31|1998-04-16|1998-06-25|DELIVER IN PERSON|MAIL|against the quickly r|
-4613|8|1|4|36|32688.00|0.04|0.01|N|O|1998-04-22|1998-05-05|1998-05-04|DELIVER IN PERSON|AIR|gainst the furiously ironic|
-4613|111|8|5|35|35388.85|0.04|0.06|N|O|1998-06-04|1998-04-17|1998-06-20|COLLECT COD|MAIL|e blithely against the even, bold pi|
-4613|196|8|6|47|51520.93|0.04|0.04|N|O|1998-07-03|1998-05-26|1998-07-09|NONE|FOB|uriously special requests wak|
-4613|119|3|7|39|39745.29|0.09|0.05|N|O|1998-06-12|1998-06-01|1998-07-06|DELIVER IN PERSON|REG AIR|ously express|
-4614|7|2|1|19|17233.00|0.09|0.08|N|O|1996-05-17|1996-06-21|1996-06-08|TAKE BACK RETURN|AIR|ix. carefully regular |
-4614|65|6|2|3|2895.18|0.08|0.01|N|O|1996-07-22|1996-07-21|1996-08-07|NONE|MAIL|ions engage final, ironic |
-4614|8|1|3|36|32688.00|0.10|0.04|N|O|1996-07-05|1996-06-26|1996-07-07|NONE|REG AIR|onic foxes affix furi|
-4614|126|9|4|6|6156.72|0.09|0.01|N|O|1996-06-11|1996-05-30|1996-07-03|COLLECT COD|REG AIR|ake quickly quickly regular epitap|
-4614|73|3|5|24|23353.68|0.07|0.06|N|O|1996-07-01|1996-06-24|1996-07-08|COLLECT COD|REG AIR|regular, even|
-4614|34|5|6|32|29888.96|0.10|0.05|N|O|1996-08-21|1996-05-28|1996-09-16|NONE|REG AIR|ickly furio|
-4614|128|1|7|41|42152.92|0.01|0.07|N|O|1996-07-31|1996-07-12|1996-08-16|COLLECT COD|REG AIR|ackages haggle carefully about the even, b|
-4615|92|4|1|10|9920.90|0.02|0.08|A|F|1993-11-20|1993-10-05|1993-12-08|DELIVER IN PERSON|AIR|sits. slyly express deposits are|
-4640|88|9|1|5|4940.40|0.03|0.08|N|O|1996-02-05|1996-02-14|1996-02-15|TAKE BACK RETURN|RAIL| warthogs against the regular|
-4640|88|9|2|9|8892.72|0.03|0.05|N|O|1996-02-12|1996-02-14|1996-02-29|DELIVER IN PERSON|AIR| accounts. unu|
-4640|27|10|3|18|16686.36|0.02|0.07|N|O|1996-02-28|1996-03-06|1996-03-28|DELIVER IN PERSON|RAIL|boost furiously accord|
-4640|23|2|4|36|33228.72|0.06|0.08|N|O|1996-01-03|1996-03-09|1996-01-11|DELIVER IN PERSON|RAIL|iously furious accounts boost. carefully|
-4640|156|1|5|15|15842.25|0.03|0.02|N|O|1996-03-19|1996-02-09|1996-04-11|TAKE BACK RETURN|FOB|y regular instructions doze furiously. reg|
-4641|190|1|1|45|49058.55|0.07|0.03|R|F|1993-05-11|1993-04-19|1993-05-21|DELIVER IN PERSON|MAIL| about the close |
-4641|95|7|2|39|38808.51|0.06|0.00|R|F|1993-02-10|1993-03-06|1993-02-15|TAKE BACK RETURN|REG AIR| the bold reque|
-4641|36|7|3|15|14040.45|0.01|0.08|R|F|1993-01-25|1993-04-09|1993-02-05|TAKE BACK RETURN|AIR|s. carefully even exc|
-4642|194|7|1|11|12036.09|0.04|0.07|A|F|1995-05-23|1995-04-26|1995-06-04|COLLECT COD|TRUCK|lithely express asympt|
-4642|180|10|2|34|36726.12|0.04|0.07|R|F|1995-04-01|1995-05-11|1995-04-23|COLLECT COD|SHIP|theodolites detect among the ironically sp|
-4642|21|2|3|10|9210.20|0.04|0.02|R|F|1995-04-16|1995-04-28|1995-04-24|COLLECT COD|RAIL|urts. even deposits nag beneath |
-4642|94|7|4|18|17893.62|0.00|0.04|N|F|1995-06-16|1995-04-16|1995-06-21|NONE|TRUCK|ily pending accounts hag|
-4642|179|10|5|41|44245.97|0.10|0.00|R|F|1995-04-08|1995-04-13|1995-05-01|DELIVER IN PERSON|MAIL|s are blithely. requests wake above the fur|
-4643|185|6|1|50|54259.00|0.08|0.05|N|O|1995-09-11|1995-08-13|1995-09-30|DELIVER IN PERSON|SHIP|. ironic deposits cajo|
-4644|177|7|1|4|4308.68|0.06|0.03|N|O|1998-05-06|1998-03-19|1998-05-28|NONE|MAIL|gular requests? pendi|
-4644|97|8|2|16|15953.44|0.03|0.04|N|O|1998-03-13|1998-02-21|1998-04-03|COLLECT COD|SHIP|lar excuses across the |
-4644|115|9|3|10|10151.10|0.02|0.02|N|O|1998-02-21|1998-02-28|1998-03-19|COLLECT COD|REG AIR|osits according to the|
-4644|154|2|4|45|47436.75|0.10|0.07|N|O|1998-02-02|1998-04-08|1998-02-15|COLLECT COD|SHIP| carefully a|
-4644|87|8|5|10|9870.80|0.08|0.08|N|O|1998-03-12|1998-03-11|1998-03-19|TAKE BACK RETURN|REG AIR| the slow, final fo|
-4645|50|7|1|45|42752.25|0.09|0.05|A|F|1994-12-27|1994-11-02|1994-12-31|DELIVER IN PERSON|AIR|ular ideas. slyly|
-4645|66|7|2|32|30913.92|0.10|0.08|A|F|1994-11-17|1994-10-30|1994-11-18|COLLECT COD|REG AIR| final accounts alongside|
-4645|54|5|3|25|23851.25|0.03|0.00|R|F|1994-10-25|1994-12-11|1994-11-14|NONE|REG AIR|braids. ironic dependencies main|
-4645|37|8|4|42|39355.26|0.10|0.02|R|F|1994-12-02|1994-12-18|1994-12-16|COLLECT COD|TRUCK|regular pinto beans amon|
-4645|161|10|5|35|37140.60|0.03|0.07|A|F|1994-12-08|1994-11-25|1994-12-09|TAKE BACK RETURN|FOB|sias believe bl|
-4645|42|9|6|27|25435.08|0.09|0.08|R|F|1994-11-26|1994-10-25|1994-12-04|NONE|SHIP|ously express pinto beans. ironic depos|
-4645|31|2|7|42|39103.26|0.10|0.06|A|F|1994-12-31|1994-10-22|1995-01-28|DELIVER IN PERSON|AIR|e slyly regular pinto beans. thin|
-4646|191|3|1|24|26188.56|0.02|0.05|N|O|1996-09-18|1996-08-09|1996-09-21|TAKE BACK RETURN|RAIL|ic platelets lose carefully. blithely unu|
-4646|178|6|2|26|28032.42|0.07|0.00|N|O|1996-10-02|1996-08-25|1996-10-27|DELIVER IN PERSON|MAIL|ix according to the slyly spe|
-4646|34|10|3|18|16812.54|0.01|0.00|N|O|1996-06-30|1996-08-10|1996-07-12|TAKE BACK RETURN|TRUCK|beans sleep car|
-4646|40|1|4|38|35721.52|0.08|0.01|N|O|1996-09-01|1996-08-23|1996-09-27|COLLECT COD|SHIP|al platelets cajole. slyly final dol|
-4646|26|1|5|22|20372.44|0.01|0.08|N|O|1996-07-14|1996-08-06|1996-07-29|DELIVER IN PERSON|MAIL|cies are blithely after the slyly reg|
-4647|93|6|1|16|15889.44|0.09|0.07|R|F|1994-09-07|1994-07-15|1994-10-06|COLLECT COD|RAIL|o beans about the fluffily special the|
-4647|129|2|2|34|34990.08|0.01|0.02|R|F|1994-05-20|1994-06-20|1994-05-29|COLLECT COD|TRUCK|ly sly accounts|
-4647|147|8|3|27|28272.78|0.03|0.08|R|F|1994-05-20|1994-06-26|1994-05-30|NONE|FOB|ully even ti|
-4647|139|10|4|2|2078.26|0.04|0.07|R|F|1994-07-03|1994-07-22|1994-07-22|TAKE BACK RETURN|RAIL|dolites wake furiously special pinto be|
-4647|187|8|5|2|2174.36|0.07|0.06|A|F|1994-05-27|1994-08-05|1994-06-10|TAKE BACK RETURN|FOB| pinto beans believe furiously slyly silent|
-4647|29|4|6|28|26012.56|0.02|0.03|A|F|1994-08-25|1994-08-06|1994-09-18|DELIVER IN PERSON|FOB| are above the fluffily fin|
-4672|59|7|1|22|21099.10|0.01|0.07|N|O|1995-12-03|1995-12-08|1995-12-17|COLLECT COD|AIR|l instructions. blithely ironic packages |
-4672|61|10|2|41|39403.46|0.00|0.00|N|O|1995-12-01|1995-12-15|1995-12-12|COLLECT COD|RAIL| slyly quie|
-4672|163|10|3|24|25515.84|0.04|0.03|N|O|1995-11-11|1995-12-28|1995-12-04|NONE|REG AIR|y fluffily stealt|
-4672|57|2|4|13|12441.65|0.10|0.03|N|O|1996-02-02|1995-12-13|1996-03-02|DELIVER IN PERSON|RAIL|ar requests? pending accounts against|
-4672|55|10|5|45|42977.25|0.08|0.07|N|O|1996-02-07|1996-01-16|1996-02-14|DELIVER IN PERSON|MAIL| platelets use amon|
-4672|141|8|6|20|20822.80|0.02|0.07|N|O|1995-12-08|1996-01-25|1995-12-19|COLLECT COD|REG AIR|s boost at the ca|
-4672|72|10|7|38|36938.66|0.01|0.01|N|O|1995-11-28|1995-12-08|1995-12-13|COLLECT COD|SHIP|ests. idle, regular ex|
-4673|17|8|1|8|7336.08|0.08|0.01|N|O|1996-10-12|1996-10-05|1996-11-04|TAKE BACK RETURN|FOB|lithely final re|
-4673|101|2|2|44|44048.40|0.06|0.01|N|O|1996-12-11|1996-10-31|1997-01-08|DELIVER IN PERSON|RAIL| gifts cajole dari|
-4673|123|2|3|9|9208.08|0.04|0.07|N|O|1996-10-15|1996-09-30|1996-10-30|DELIVER IN PERSON|MAIL|ages nag across |
-4674|150|7|1|50|52507.50|0.07|0.08|A|F|1994-05-13|1994-06-15|1994-06-05|COLLECT COD|RAIL|haggle about the blithel|
-4674|189|10|2|35|38121.30|0.02|0.05|A|F|1994-08-02|1994-06-04|1994-08-21|COLLECT COD|FOB|le quickly after the express sent|
-4674|111|5|3|3|3033.33|0.01|0.05|A|F|1994-07-19|1994-05-28|1994-07-23|TAKE BACK RETURN|RAIL| regular requests na|
-4674|13|7|4|21|19173.21|0.02|0.08|R|F|1994-05-08|1994-07-02|1994-06-04|COLLECT COD|RAIL|ent accounts sublate deposits. instruc|
-4675|171|2|1|6|6427.02|0.00|0.05|R|F|1994-01-22|1994-01-06|1994-02-12|TAKE BACK RETURN|TRUCK| unusual ideas thrash bl|
-4675|144|7|2|12|12529.68|0.00|0.04|A|F|1993-12-22|1994-01-12|1993-12-23|TAKE BACK RETURN|AIR|posits affix carefully|
-4675|181|2|3|5|5405.90|0.05|0.05|A|F|1994-01-16|1994-01-05|1994-01-18|DELIVER IN PERSON|RAIL|lent pinto beans|
-4675|34|10|4|26|24284.78|0.03|0.01|A|F|1993-12-16|1993-12-29|1993-12-23|DELIVER IN PERSON|SHIP|nts. express requests are quickly |
-4675|81|2|5|18|17659.44|0.01|0.08|R|F|1994-02-23|1994-01-18|1994-03-05|TAKE BACK RETURN|FOB|cajole unusual dep|
-4675|119|10|6|1|1019.11|0.10|0.06|R|F|1994-03-18|1994-02-14|1994-04-17|NONE|SHIP|unts. caref|
-4676|165|2|1|47|50062.52|0.03|0.06|N|O|1995-12-20|1995-10-04|1996-01-09|NONE|AIR|lithely about the carefully special requ|
-4676|6|1|2|33|29898.00|0.08|0.05|N|O|1995-12-29|1995-10-01|1996-01-18|TAKE BACK RETURN|FOB|yly express |
-4676|146|3|3|4|4184.56|0.10|0.06|N|O|1995-12-12|1995-10-22|1995-12-13|TAKE BACK RETURN|TRUCK|detect above the ironic platelets. fluffily|
-4676|111|2|4|50|50555.50|0.07|0.01|N|O|1995-09-20|1995-11-20|1995-10-18|TAKE BACK RETURN|AIR|r deposits boost boldly quickly quick asymp|
-4676|122|7|5|29|29641.48|0.01|0.02|N|O|1995-12-29|1995-11-12|1996-01-06|TAKE BACK RETURN|RAIL|ly regular theodolites sleep.|
-4676|46|7|6|8|7568.32|0.08|0.08|N|O|1995-12-05|1995-10-18|1996-01-02|COLLECT COD|AIR|cuses boost above|
-4676|64|1|7|13|12532.78|0.05|0.07|N|O|1995-11-18|1995-11-07|1995-12-10|TAKE BACK RETURN|TRUCK| at the slyly bold attainments. silently e|
-4677|128|3|1|25|25703.00|0.04|0.04|N|O|1998-04-11|1998-05-11|1998-04-18|TAKE BACK RETURN|REG AIR|unts doubt furiousl|
-4678|58|6|1|35|33531.75|0.04|0.08|N|O|1998-11-27|1998-10-02|1998-12-17|TAKE BACK RETURN|AIR|he accounts. fluffily bold sheaves b|
-4678|117|1|2|18|18307.98|0.03|0.06|N|O|1998-10-30|1998-09-22|1998-11-25|TAKE BACK RETURN|SHIP|usly ironic |
-4678|96|9|3|13|12949.17|0.10|0.07|N|O|1998-11-03|1998-10-17|1998-11-06|TAKE BACK RETURN|SHIP|its. carefully final fr|
-4678|22|1|4|23|21206.46|0.06|0.05|N|O|1998-09-03|1998-09-20|1998-09-04|DELIVER IN PERSON|SHIP|ily sly deposi|
-4678|178|9|5|40|43126.80|0.03|0.07|N|O|1998-11-11|1998-10-27|1998-11-24|TAKE BACK RETURN|AIR|. final, unusual requests sleep thinl|
-4679|190|1|1|7|7631.33|0.10|0.05|R|F|1993-05-11|1993-04-11|1993-05-16|NONE|TRUCK|kages. bold, regular packa|
-4704|78|6|1|14|13692.98|0.04|0.04|N|O|1996-10-27|1996-11-02|1996-11-07|DELIVER IN PERSON|TRUCK| above the slyly final requests. quickly |
-4704|28|3|2|7|6496.14|0.03|0.04|N|O|1996-12-04|1996-10-30|1996-12-23|DELIVER IN PERSON|SHIP|ers wake car|
-4704|64|5|3|44|42418.64|0.02|0.05|N|O|1996-09-02|1996-10-07|1996-09-17|DELIVER IN PERSON|REG AIR|out the care|
-4705|111|8|1|22|22244.42|0.04|0.04|R|F|1992-07-05|1992-05-11|1992-07-29|DELIVER IN PERSON|SHIP| fluffily pending accounts ca|
-4705|31|7|2|14|13034.42|0.00|0.08|R|F|1992-07-14|1992-05-23|1992-07-25|DELIVER IN PERSON|TRUCK|ain carefully amon|
-4705|56|1|3|16|15296.80|0.07|0.08|R|F|1992-07-02|1992-06-06|1992-07-06|DELIVER IN PERSON|RAIL|special ideas nag sl|
-4705|130|3|4|31|31934.03|0.03|0.03|R|F|1992-04-03|1992-05-30|1992-04-05|COLLECT COD|TRUCK|furiously final accou|
-4705|163|10|5|28|29768.48|0.10|0.01|A|F|1992-06-03|1992-06-07|1992-06-22|DELIVER IN PERSON|MAIL|tes wake according to the unusual plate|
-4705|184|5|6|23|24936.14|0.06|0.03|R|F|1992-06-22|1992-06-11|1992-07-18|DELIVER IN PERSON|MAIL| above the furiously ev|
-4705|89|10|7|40|39563.20|0.08|0.06|A|F|1992-04-19|1992-04-28|1992-05-07|COLLECT COD|TRUCK|blithely. sly|
-4706|182|3|1|37|40040.66|0.02|0.06|A|F|1993-02-20|1993-03-05|1993-03-03|DELIVER IN PERSON|TRUCK|kly final deposits c|
-4706|122|3|2|23|23508.76|0.03|0.01|A|F|1993-04-01|1993-03-13|1993-05-01|COLLECT COD|FOB|deas across t|
-4706|68|5|3|6|5808.36|0.01|0.04|R|F|1993-01-20|1993-03-18|1993-01-26|NONE|MAIL|efully eve|
-4706|116|10|4|5|5080.55|0.06|0.06|R|F|1993-02-14|1993-01-31|1993-02-26|NONE|REG AIR|ptotes haggle ca|
-4706|50|7|5|27|25651.35|0.06|0.08|A|F|1993-04-04|1993-03-11|1993-04-09|COLLECT COD|REG AIR|into beans. finally special instruct|
-4707|34|5|1|7|6538.21|0.02|0.05|R|F|1995-05-14|1995-04-06|1995-06-06|COLLECT COD|SHIP|ecial sheaves boost blithely accor|
-4707|136|7|2|49|50770.37|0.00|0.07|N|F|1995-06-17|1995-05-16|1995-06-25|COLLECT COD|FOB| alongside of the slyly ironic instructio|
-4708|191|4|1|18|19641.42|0.02|0.04|A|F|1994-11-11|1994-11-15|1994-11-26|NONE|REG AIR|special, eve|
-4708|75|3|2|5|4875.35|0.05|0.05|A|F|1994-10-15|1994-12-02|1994-11-12|COLLECT COD|MAIL|ely. carefully sp|
-4708|77|7|3|32|31266.24|0.04|0.07|A|F|1994-11-12|1994-11-14|1994-11-23|TAKE BACK RETURN|MAIL|the accounts. e|
-4709|25|6|1|25|23125.50|0.03|0.05|N|O|1996-02-21|1996-02-11|1996-03-17|DELIVER IN PERSON|AIR|deposits grow. fluffily unusual accounts |
-4709|177|5|2|25|26929.25|0.05|0.03|N|O|1996-01-22|1996-03-03|1996-02-21|DELIVER IN PERSON|REG AIR|inst the ironic, regul|
-4710|183|4|1|40|43327.20|0.10|0.08|A|F|1995-03-09|1995-02-25|1995-03-29|TAKE BACK RETURN|AIR|cross the blithely bold packages. silen|
-4710|128|3|2|47|48321.64|0.04|0.01|R|F|1995-02-22|1995-01-12|1995-02-28|NONE|RAIL|blithely express packages. even, ironic re|
-4711|133|4|1|7|7231.91|0.03|0.01|N|O|1998-05-12|1998-06-24|1998-05-24|COLLECT COD|MAIL|ly. bold accounts use fluff|
-4711|145|6|2|15|15677.10|0.08|0.07|N|O|1998-06-09|1998-07-30|1998-06-18|COLLECT COD|SHIP| beans wake. deposits could bo|
-4711|150|1|3|22|23103.30|0.02|0.03|N|O|1998-06-21|1998-06-18|1998-07-19|TAKE BACK RETURN|REG AIR|along the quickly careful packages. bli|
-4711|65|10|4|8|7720.48|0.07|0.00|N|O|1998-06-17|1998-06-13|1998-06-27|TAKE BACK RETURN|SHIP|g to the carefully ironic deposits. specia|
-4711|49|2|5|15|14235.60|0.05|0.01|N|O|1998-09-03|1998-07-15|1998-09-13|TAKE BACK RETURN|SHIP|ld requests: furiously final inst|
-4711|116|7|6|45|45724.95|0.05|0.06|N|O|1998-05-19|1998-07-14|1998-05-21|COLLECT COD|SHIP| ironic theodolites |
-4711|46|5|7|18|17028.72|0.05|0.04|N|O|1998-07-03|1998-07-31|1998-07-23|DELIVER IN PERSON|RAIL| blithely. bold asymptote|
-4736|196|10|1|26|28500.94|0.03|0.03|N|O|1996-02-02|1996-01-18|1996-02-09|DELIVER IN PERSON|AIR|efully speci|
-4736|4|1|2|43|38872.00|0.06|0.07|N|O|1996-02-05|1995-12-21|1996-02-06|COLLECT COD|MAIL|quests. carefully |
-4737|191|5|1|37|40374.03|0.03|0.04|R|F|1993-05-17|1993-04-10|1993-05-30|DELIVER IN PERSON|TRUCK|s. fluffily regular |
-4737|69|8|2|22|21319.32|0.04|0.04|A|F|1993-03-29|1993-05-22|1993-04-16|TAKE BACK RETURN|RAIL| hang fluffily around t|
-4738|187|8|1|9|9784.62|0.04|0.04|A|F|1992-06-01|1992-06-26|1992-06-02|COLLECT COD|TRUCK|posits serve slyly. unusual pint|
-4738|173|3|2|16|17170.72|0.07|0.08|A|F|1992-06-17|1992-06-20|1992-06-21|NONE|MAIL|nic deposits are slyly! carefu|
-4738|100|2|3|50|50005.00|0.04|0.02|A|F|1992-06-18|1992-07-04|1992-07-07|TAKE BACK RETURN|TRUCK|the blithely ironic braids sleep slyly|
-4738|29|4|4|22|20438.44|0.02|0.08|A|F|1992-05-25|1992-05-19|1992-06-12|COLLECT COD|SHIP|ld, even packages. furio|
-4738|187|8|5|13|14133.34|0.04|0.05|R|F|1992-05-30|1992-06-11|1992-06-26|COLLECT COD|AIR| wake. unusual platelets for the|
-4738|159|1|6|10|10591.50|0.10|0.01|R|F|1992-07-10|1992-06-16|1992-07-25|TAKE BACK RETURN|SHIP|hins above the|
-4738|83|4|7|28|27526.24|0.05|0.07|A|F|1992-06-09|1992-07-05|1992-06-25|NONE|AIR|e furiously ironic excuses. care|
-4739|168|9|1|8|8545.28|0.07|0.07|R|F|1993-06-22|1993-05-10|1993-07-11|TAKE BACK RETURN|SHIP|cording to the |
-4739|185|6|2|31|33640.58|0.09|0.06|R|F|1993-06-20|1993-05-18|1993-06-26|COLLECT COD|SHIP|blithely special pin|
-4739|100|4|3|30|30003.00|0.09|0.00|A|F|1993-05-29|1993-04-12|1993-06-18|NONE|TRUCK|ly even packages use across th|
-4740|3|4|1|22|19866.00|0.06|0.01|N|O|1996-10-04|1996-08-17|1996-10-05|TAKE BACK RETURN|RAIL|final dependencies nag |
-4740|153|5|2|24|25275.60|0.08|0.02|N|O|1996-09-10|1996-09-27|1996-10-07|TAKE BACK RETURN|TRUCK|hely regular deposits|
-4741|73|2|1|24|23353.68|0.00|0.01|A|F|1992-09-16|1992-09-19|1992-09-20|DELIVER IN PERSON|RAIL|deas boost furiously slyly regular id|
-4741|113|4|2|16|16209.76|0.01|0.07|R|F|1992-08-25|1992-08-10|1992-08-29|TAKE BACK RETURN|FOB|final foxes haggle r|
-4741|156|8|3|24|25347.60|0.05|0.08|A|F|1992-11-04|1992-08-14|1992-11-06|TAKE BACK RETURN|MAIL|even requests.|
-4741|51|3|4|39|37090.95|0.09|0.06|R|F|1992-10-28|1992-10-03|1992-11-11|COLLECT COD|SHIP|t, regular requests|
-4741|179|10|5|40|43166.80|0.09|0.03|R|F|1992-09-20|1992-09-23|1992-10-09|TAKE BACK RETURN|REG AIR| fluffily slow deposits. fluffily regu|
-4741|157|5|6|34|35943.10|0.02|0.07|R|F|1992-08-25|1992-08-18|1992-09-20|DELIVER IN PERSON|RAIL|sly special packages after the furiously|
-4742|156|4|1|32|33796.80|0.10|0.08|R|F|1995-04-04|1995-06-12|1995-04-19|COLLECT COD|RAIL|eposits boost blithely. carefully regular a|
-4742|155|7|2|29|30599.35|0.02|0.03|N|F|1995-06-15|1995-05-05|1995-06-24|COLLECT COD|REG AIR|integrate closely among t|
-4742|72|10|3|15|14581.05|0.06|0.04|N|O|1995-07-20|1995-05-26|1995-08-11|NONE|SHIP|terns are sl|
-4742|188|9|4|31|33733.58|0.05|0.08|N|F|1995-06-13|1995-05-08|1995-06-24|COLLECT COD|REG AIR|ke slyly among the furiousl|
-4742|100|1|5|45|45004.50|0.05|0.00|R|F|1995-05-12|1995-05-14|1995-06-07|TAKE BACK RETURN|RAIL|ke carefully. do|
-4743|60|5|1|19|18241.14|0.04|0.07|A|F|1993-06-23|1993-05-03|1993-07-20|COLLECT COD|AIR|hely even accounts|
-4743|159|4|2|3|3177.45|0.01|0.03|R|F|1993-04-14|1993-06-08|1993-05-09|NONE|TRUCK|al requests. express idea|
-4743|73|2|3|21|20434.47|0.08|0.03|A|F|1993-07-02|1993-06-15|1993-07-26|DELIVER IN PERSON|RAIL|ake blithely against the packages. reg|
-4743|34|5|4|27|25218.81|0.08|0.05|R|F|1993-07-26|1993-05-27|1993-08-24|DELIVER IN PERSON|AIR|aids use. express deposits|
-4768|36|7|1|5|4680.15|0.00|0.03|R|F|1993-12-27|1994-02-09|1994-01-11|NONE|MAIL|egular accounts. bravely final fra|
-4769|35|1|1|16|14960.48|0.08|0.05|N|O|1995-07-16|1995-07-05|1995-07-22|TAKE BACK RETURN|FOB| deposits. slyly even asymptote|
-4769|63|8|2|34|32744.04|0.06|0.07|N|O|1995-07-26|1995-05-18|1995-08-03|COLLECT COD|REG AIR|ven instructions. ca|
-4769|47|10|3|36|34093.44|0.10|0.03|N|O|1995-07-22|1995-06-16|1995-08-11|NONE|RAIL|. slyly even deposit|
-4769|69|10|4|45|43607.70|0.08|0.06|R|F|1995-06-01|1995-07-13|1995-06-04|TAKE BACK RETURN|RAIL|accounts are. even accounts sleep|
-4769|112|6|5|15|15181.65|0.07|0.08|N|F|1995-06-12|1995-07-07|1995-07-04|NONE|SHIP|egular platelets can cajole across the |
-4770|32|8|1|41|38213.23|0.00|0.08|N|O|1995-09-04|1995-08-08|1995-09-10|COLLECT COD|FOB|ithely even packages sleep caref|
-4770|157|5|2|30|31714.50|0.09|0.07|N|O|1995-08-25|1995-08-27|1995-09-07|COLLECT COD|SHIP|ffily carefully ironic ideas. ironic d|
-4771|49|10|1|9|8541.36|0.01|0.00|R|F|1993-02-28|1993-02-19|1993-03-25|NONE|FOB|riously after the packages. fina|
-4771|16|7|2|21|19236.21|0.09|0.01|R|F|1993-01-19|1993-02-10|1993-02-01|NONE|FOB|fluffily pendi|
-4771|12|3|3|5|4560.05|0.06|0.08|R|F|1993-01-07|1993-01-19|1993-01-26|NONE|RAIL|ar, quiet accounts nag furiously express id|
-4771|9|4|4|21|19089.00|0.05|0.04|A|F|1992-12-20|1993-01-22|1992-12-26|TAKE BACK RETURN|SHIP| carefully re|
-4772|87|8|1|1|987.08|0.10|0.00|R|F|1994-11-13|1994-10-25|1994-11-15|DELIVER IN PERSON|AIR|ans. slyly even acc|
-4772|146|9|2|16|16738.24|0.07|0.06|R|F|1994-10-27|1994-12-07|1994-10-29|TAKE BACK RETURN|MAIL|egular accounts wake s|
-4772|95|6|3|31|30847.79|0.02|0.04|A|F|1994-10-02|1994-10-21|1994-10-13|TAKE BACK RETURN|FOB|ests are thinly. furiously unusua|
-4772|71|10|4|15|14566.05|0.02|0.07|R|F|1994-09-19|1994-10-22|1994-09-26|COLLECT COD|TRUCK| requests. express, regular th|
-4773|144|5|1|23|24015.22|0.00|0.08|N|O|1996-01-01|1996-03-19|1996-01-04|NONE|FOB|ly express grouches wak|
-4773|197|9|2|36|39498.84|0.09|0.04|N|O|1996-04-08|1996-03-03|1996-05-01|COLLECT COD|REG AIR| dependencies. quickly|
-4773|167|8|3|49|52290.84|0.05|0.02|N|O|1996-01-26|1996-02-29|1996-01-27|TAKE BACK RETURN|FOB|y final reque|
-4773|20|10|4|49|45080.98|0.09|0.04|N|O|1996-01-12|1996-02-17|1996-02-05|TAKE BACK RETURN|TRUCK|ly pending theodolites cajole caref|
-4773|150|3|5|20|21003.00|0.02|0.07|N|O|1995-12-28|1996-02-17|1996-01-15|COLLECT COD|TRUCK| blithely final deposits nag after t|
-4773|190|1|6|11|11992.09|0.10|0.06|N|O|1996-01-02|1996-01-29|1996-01-24|DELIVER IN PERSON|REG AIR|en accounts. slyly b|
-4773|158|3|7|6|6348.90|0.07|0.01|N|O|1996-03-09|1996-03-18|1996-03-27|NONE|AIR|latelets haggle s|
-4774|84|5|1|45|44283.60|0.10|0.00|R|F|1993-07-07|1993-06-08|1993-07-31|COLLECT COD|TRUCK| haggle busily afte|
-4774|39|5|2|4|3756.12|0.02|0.03|A|F|1993-08-03|1993-05-30|1993-08-19|COLLECT COD|FOB|xes according to the foxes wake above the f|
-4774|173|4|3|47|50438.99|0.10|0.08|R|F|1993-06-13|1993-07-04|1993-07-09|TAKE BACK RETURN|FOB|regular dolphins above the furi|
-4774|130|3|4|30|30903.90|0.05|0.08|A|F|1993-08-18|1993-06-08|1993-08-21|DELIVER IN PERSON|REG AIR|tions against the blithely final theodolit|
-4775|74|4|1|1|974.07|0.10|0.02|N|O|1995-09-06|1995-09-28|1995-09-29|DELIVER IN PERSON|MAIL|furiously ironic theodolite|
-4775|153|1|2|37|38966.55|0.02|0.01|N|O|1995-09-06|1995-09-28|1995-09-28|COLLECT COD|TRUCK|ts. pinto beans use according to th|
-4775|153|5|3|34|35807.10|0.09|0.06|N|O|1995-09-14|1995-10-15|1995-09-21|DELIVER IN PERSON|MAIL|onic epitaphs. f|
-4775|119|9|4|39|39745.29|0.07|0.04|N|O|1995-08-30|1995-10-12|1995-09-20|NONE|AIR|eep never with the slyly regular acc|
-4800|97|10|1|11|10967.99|0.03|0.03|R|F|1992-01-27|1992-03-16|1992-02-19|TAKE BACK RETURN|RAIL|ic dependenc|
-4800|26|5|2|1|926.02|0.06|0.06|A|F|1992-02-23|1992-03-16|1992-03-20|TAKE BACK RETURN|MAIL|nal accounts are blithely deposits. bol|
-4800|11|8|3|21|19131.21|0.09|0.05|A|F|1992-02-14|1992-03-15|1992-02-26|NONE|SHIP|ithely according to |
-4800|176|7|4|38|40894.46|0.10|0.08|R|F|1992-02-01|1992-02-28|1992-02-21|NONE|TRUCK|s sleep fluffily. furiou|
-4800|53|4|5|24|22873.20|0.08|0.04|R|F|1992-01-14|1992-02-23|1992-01-25|NONE|TRUCK|ully carefully r|
-4801|184|5|1|37|40114.66|0.10|0.02|N|O|1996-03-09|1996-02-29|1996-03-25|TAKE BACK RETURN|FOB|uests hinder blithely against the instr|
-4801|26|1|2|34|31484.68|0.03|0.02|N|O|1996-02-05|1996-04-16|1996-02-23|NONE|SHIP|y final requests |
-4801|110|1|3|4|4040.44|0.04|0.04|N|O|1996-03-23|1996-04-04|1996-03-25|COLLECT COD|RAIL|pitaphs. regular, reg|
-4801|92|3|4|39|38691.51|0.07|0.01|N|O|1996-03-19|1996-03-21|1996-04-17|TAKE BACK RETURN|REG AIR|warhorses wake never for the care|
-4802|40|1|1|6|5640.24|0.00|0.06|N|O|1997-04-16|1997-03-25|1997-04-21|TAKE BACK RETURN|SHIP|unusual accounts wake blithely. b|
-4803|132|3|1|2|2064.26|0.08|0.03|N|O|1996-04-16|1996-03-20|1996-05-15|NONE|REG AIR|gular reque|
-4803|176|4|2|47|50579.99|0.10|0.00|N|O|1996-03-14|1996-03-30|1996-03-15|DELIVER IN PERSON|FOB|ly final excuses. slyly express requ|
-4803|196|8|3|42|46039.98|0.04|0.08|N|O|1996-04-27|1996-05-05|1996-05-17|NONE|TRUCK| accounts affix quickly ar|
-4803|22|1|4|24|22128.48|0.10|0.04|N|O|1996-02-24|1996-04-02|1996-02-28|NONE|MAIL|t blithely slyly special decoys. |
-4803|189|10|5|21|22872.78|0.03|0.06|N|O|1996-05-25|1996-03-15|1996-06-09|COLLECT COD|FOB| silent packages use. b|
-4803|194|5|6|19|20789.61|0.07|0.00|N|O|1996-04-20|1996-03-25|1996-04-27|TAKE BACK RETURN|RAIL|sts. enticing, even|
-4804|128|1|1|44|45237.28|0.06|0.08|A|F|1992-05-02|1992-03-24|1992-05-28|TAKE BACK RETURN|AIR|aggle quickly among the slyly fi|
-4804|35|6|2|41|38336.23|0.10|0.02|R|F|1992-04-06|1992-04-12|1992-05-03|COLLECT COD|MAIL|. deposits haggle express tithes?|
-4804|65|2|3|33|31846.98|0.09|0.05|A|F|1992-03-02|1992-04-14|1992-03-13|DELIVER IN PERSON|AIR|, thin excuses. |
-4805|150|1|1|7|7351.05|0.09|0.03|A|F|1992-05-01|1992-07-09|1992-05-09|NONE|FOB| requests. regular deposit|
-4805|189|10|2|45|49013.10|0.02|0.03|R|F|1992-06-16|1992-06-08|1992-07-03|NONE|TRUCK|the furiously sly t|
-4805|154|6|3|44|46382.60|0.01|0.02|R|F|1992-05-14|1992-06-23|1992-05-25|DELIVER IN PERSON|SHIP|eposits sleep furiously qui|
-4805|65|2|4|13|12545.78|0.04|0.04|R|F|1992-07-16|1992-06-07|1992-08-10|COLLECT COD|AIR|its serve about the accounts. slyly regu|
-4805|9|10|5|42|38178.00|0.03|0.03|R|F|1992-08-17|1992-07-03|1992-09-14|NONE|REG AIR|the regular, fina|
-4805|136|7|6|18|18650.34|0.06|0.04|A|F|1992-06-07|1992-07-10|1992-06-12|COLLECT COD|TRUCK|o use pending, unusu|
-4806|16|7|1|26|23816.26|0.10|0.05|R|F|1993-05-28|1993-06-07|1993-05-29|DELIVER IN PERSON|SHIP| bold pearls sublate blithely. quickly pe|
-4806|72|10|2|6|5832.42|0.01|0.06|A|F|1993-05-17|1993-07-19|1993-05-29|TAKE BACK RETURN|SHIP|even theodolites. packages sl|
-4806|29|4|3|8|7432.16|0.09|0.00|A|F|1993-05-08|1993-07-16|1993-05-28|NONE|TRUCK|requests boost blithely. qui|
-4807|122|1|1|9|9199.08|0.04|0.08|N|O|1997-04-23|1997-03-01|1997-05-15|TAKE BACK RETURN|TRUCK|may are blithely. carefully even pinto b|
-4807|10|1|2|41|37310.41|0.07|0.08|N|O|1997-05-02|1997-03-31|1997-05-15|TAKE BACK RETURN|AIR| fluffily re|
-4807|145|6|3|34|35534.76|0.06|0.02|N|O|1997-01-31|1997-03-13|1997-02-01|NONE|SHIP|ecial ideas. deposits according to the fin|
-4807|190|1|4|32|34886.08|0.05|0.00|N|O|1997-04-04|1997-03-21|1997-04-16|NONE|RAIL|efully even dolphins slee|
-4807|159|1|5|2|2118.30|0.02|0.05|N|O|1997-05-09|1997-04-03|1997-06-05|TAKE BACK RETURN|RAIL|deas wake bli|
-4807|160|1|6|22|23323.52|0.09|0.06|N|O|1997-03-13|1997-02-23|1997-04-01|NONE|FOB|es use final excuses. furiously final|
-4832|15|6|1|23|21045.23|0.03|0.01|N|O|1997-12-05|1998-01-05|1997-12-10|NONE|RAIL|y express depo|
-4832|152|4|2|10|10521.50|0.00|0.06|N|O|1998-01-08|1998-02-01|1998-01-11|DELIVER IN PERSON|MAIL|ly. blithely bold pinto beans should have|
-4832|149|6|3|4|4196.56|0.04|0.01|N|O|1998-01-16|1998-02-12|1998-02-08|TAKE BACK RETURN|AIR|ages. slyly express deposits cajole car|
-4832|64|5|4|6|5784.36|0.02|0.01|N|O|1997-12-08|1998-02-03|1997-12-10|COLLECT COD|TRUCK|ages cajole after the bold requests. furi|
-4832|138|4|5|43|44639.59|0.10|0.08|N|O|1997-12-31|1998-02-20|1998-01-26|COLLECT COD|RAIL|oze according to the accou|
-4833|107|10|1|31|31220.10|0.08|0.04|N|O|1996-06-24|1996-07-15|1996-07-02|NONE|SHIP|ven instructions cajole against the caref|
-4833|117|7|2|11|11188.21|0.03|0.01|N|O|1996-08-24|1996-07-26|1996-09-19|NONE|REG AIR|s nag above the busily sile|
-4833|18|9|3|26|23868.26|0.08|0.04|N|O|1996-05-13|1996-07-12|1996-05-31|NONE|SHIP|s packages. even gif|
-4833|36|7|4|19|17784.57|0.07|0.07|N|O|1996-08-21|1996-07-09|1996-09-10|TAKE BACK RETURN|AIR|y quick theodolit|
-4833|35|1|5|4|3740.12|0.10|0.02|N|O|1996-08-16|1996-06-29|1996-08-22|NONE|AIR|y pending packages sleep blithely regular r|
-4834|183|4|1|27|29245.86|0.06|0.02|N|O|1997-01-09|1996-10-27|1997-01-27|DELIVER IN PERSON|RAIL|es nag blithe|
-4834|71|1|2|26|25247.82|0.01|0.00|N|O|1996-10-04|1996-10-21|1996-10-10|DELIVER IN PERSON|TRUCK|ages dazzle carefully. slyly daring foxes|
-4834|23|2|3|34|31382.68|0.03|0.01|N|O|1996-12-09|1996-11-26|1996-12-10|NONE|MAIL|ounts haggle bo|
-4834|143|10|4|38|39639.32|0.03|0.06|N|O|1997-01-10|1996-12-06|1997-01-22|COLLECT COD|FOB|alongside of the carefully even plate|
-4835|179|10|1|18|19425.06|0.00|0.03|R|F|1995-02-17|1994-12-14|1995-03-17|DELIVER IN PERSON|MAIL|eat furiously against the slyly |
-4835|91|3|2|3|2973.27|0.09|0.06|R|F|1995-01-24|1995-01-12|1995-02-16|COLLECT COD|AIR|etimes final pac|
-4835|86|7|3|27|26624.16|0.05|0.00|A|F|1994-12-10|1994-12-13|1995-01-02|DELIVER IN PERSON|REG AIR| accounts after the car|
-4835|102|7|4|23|23048.30|0.08|0.07|A|F|1995-02-05|1995-01-04|1995-02-28|NONE|SHIP|e carefully regular foxes. deposits are sly|
-4836|162|1|1|22|23367.52|0.01|0.03|N|O|1997-03-03|1997-02-23|1997-03-04|NONE|SHIP|al pinto beans. care|
-4836|48|5|2|16|15168.64|0.07|0.08|N|O|1997-01-14|1997-03-05|1997-01-30|COLLECT COD|MAIL|gular packages against the express reque|
-4836|76|4|3|14|13664.98|0.03|0.08|N|O|1997-02-21|1997-02-06|1997-03-08|COLLECT COD|MAIL|lites. unusual, bold dolphins ar|
-4836|106|1|4|15|15091.50|0.10|0.00|N|O|1997-03-08|1997-03-14|1997-03-30|TAKE BACK RETURN|TRUCK|eep slyly. even requests cajole|
-4836|51|6|5|12|11412.60|0.01|0.04|N|O|1997-02-02|1997-02-10|1997-02-03|COLLECT COD|TRUCK|sly ironic accoun|
-4837|42|1|1|16|15072.64|0.09|0.04|N|O|1998-08-12|1998-06-06|1998-08-26|COLLECT COD|FOB|ing requests are blithely regular instructi|
-4837|193|5|2|16|17491.04|0.01|0.02|N|O|1998-08-19|1998-06-18|1998-08-26|NONE|RAIL|counts cajole slyly furiou|
-4837|68|5|3|42|40658.52|0.10|0.00|N|O|1998-06-19|1998-07-06|1998-06-23|COLLECT COD|MAIL|o the furiously final theodolites boost|
-4838|122|3|1|35|35774.20|0.01|0.00|R|F|1992-10-30|1992-10-23|1992-11-21|TAKE BACK RETURN|RAIL|ly blithely unusual foxes. even package|
-4838|148|5|2|2|2096.28|0.03|0.08|R|F|1992-08-11|1992-09-16|1992-08-26|COLLECT COD|MAIL|hely final notornis are furiously blithe|
-4838|52|3|3|26|24753.30|0.06|0.04|R|F|1992-09-03|1992-10-25|1992-09-11|TAKE BACK RETURN|FOB|ular requests boost about the packages. r|
-4839|60|2|1|5|4800.30|0.10|0.07|A|F|1994-09-07|1994-07-15|1994-10-05|DELIVER IN PERSON|FOB|ses integrate. regular deposits are about |
-4839|10|1|2|25|22750.25|0.02|0.02|R|F|1994-05-20|1994-07-08|1994-05-30|NONE|REG AIR|regular packages ab|
-4839|60|1|3|18|17281.08|0.06|0.01|R|F|1994-05-18|1994-06-13|1994-06-09|TAKE BACK RETURN|FOB|blithely ironic theodolites use along|
-4839|100|1|4|19|19001.90|0.07|0.08|R|F|1994-05-20|1994-07-14|1994-05-30|NONE|REG AIR| deposits sublate furiously ir|
-4839|71|10|5|9|8739.63|0.05|0.01|R|F|1994-06-17|1994-06-18|1994-07-10|NONE|SHIP|ounts haggle carefully above|
-4864|150|9|1|28|29404.20|0.06|0.08|A|F|1993-02-06|1992-12-15|1993-02-10|COLLECT COD|REG AIR|thely around the bli|
-4864|38|4|2|38|35645.14|0.10|0.02|R|F|1992-12-20|1993-01-07|1993-01-06|TAKE BACK RETURN|SHIP|ording to the ironic, ir|
-4864|133|4|3|45|46490.85|0.02|0.01|A|F|1992-11-17|1993-01-02|1992-11-26|COLLECT COD|SHIP|round the furiously careful pa|
-4864|31|2|4|46|42827.38|0.07|0.03|A|F|1993-02-24|1993-01-02|1993-03-17|TAKE BACK RETURN|RAIL|sts use carefully across the carefull|
-4865|162|7|1|16|16994.56|0.07|0.05|N|O|1997-10-02|1997-08-20|1997-10-04|COLLECT COD|TRUCK|osits haggle. fur|
-4865|137|8|2|4|4148.52|0.07|0.01|N|O|1997-07-24|1997-07-25|1997-08-07|TAKE BACK RETURN|FOB|sts. blithely special instruction|
-4865|68|3|3|44|42594.64|0.10|0.08|N|O|1997-07-25|1997-08-20|1997-08-22|COLLECT COD|FOB|even deposits sleep against the quickly r|
-4865|50|3|4|21|19951.05|0.04|0.02|N|O|1997-07-17|1997-08-10|1997-07-21|NONE|RAIL|eposits detect sly|
-4865|54|9|5|33|31483.65|0.00|0.05|N|O|1997-07-17|1997-08-16|1997-07-30|TAKE BACK RETURN|FOB|y pending notornis ab|
-4865|65|2|6|47|45357.82|0.00|0.05|N|O|1997-08-26|1997-08-07|1997-08-31|NONE|RAIL|y unusual packages. packages|
-4866|11|8|1|9|8199.09|0.01|0.05|N|O|1997-08-30|1997-09-18|1997-09-24|TAKE BACK RETURN|MAIL|ven dependencies x-ray. quic|
-4866|102|3|2|1|1002.10|0.06|0.00|N|O|1997-10-15|1997-10-01|1997-11-14|TAKE BACK RETURN|AIR|latelets nag. q|
-4866|131|7|3|17|17529.21|0.07|0.00|N|O|1997-11-26|1997-10-11|1997-12-12|COLLECT COD|TRUCK|ess packages doubt. even somas wake f|
-4867|82|3|1|7|6874.56|0.09|0.03|A|F|1992-07-17|1992-08-17|1992-07-22|COLLECT COD|FOB|e carefully even packages. slyly ironic i|
-4867|160|8|2|3|3180.48|0.04|0.08|R|F|1992-07-04|1992-07-15|1992-07-21|NONE|AIR|yly silent deposits|
-4868|73|3|1|47|45734.29|0.03|0.03|N|O|1997-04-29|1997-04-27|1997-05-11|DELIVER IN PERSON|SHIP|gle unusual, fluffy packages. foxes cajol|
-4868|180|1|2|8|8641.44|0.10|0.08|N|O|1997-03-26|1997-05-09|1997-04-16|NONE|RAIL|ly special th|
-4868|191|2|3|49|53468.31|0.09|0.03|N|O|1997-04-23|1997-05-07|1997-04-26|NONE|SHIP|ys engage. th|
-4868|80|1|4|34|33322.72|0.04|0.02|N|O|1997-05-19|1997-04-27|1997-06-15|NONE|RAIL|en instructions about th|
-4868|122|3|5|22|22486.64|0.07|0.06|N|O|1997-04-26|1997-05-16|1997-05-01|DELIVER IN PERSON|FOB|osits. final foxes boost regular,|
-4869|41|8|1|31|29172.24|0.10|0.01|A|F|1995-01-17|1994-11-30|1995-02-02|NONE|SHIP|ins. always unusual ideas across the ir|
-4869|58|3|2|24|22993.20|0.09|0.06|A|F|1994-11-17|1994-11-07|1994-11-27|COLLECT COD|MAIL|olites cajole after the ideas. special t|
-4869|157|8|3|25|26428.75|0.00|0.05|R|F|1994-11-25|1994-11-14|1994-12-19|DELIVER IN PERSON|AIR|e according t|
-4869|103|8|4|24|24074.40|0.10|0.07|R|F|1994-11-23|1994-11-18|1994-12-11|DELIVER IN PERSON|MAIL|se deposits above the sly, q|
-4869|173|2|5|42|45073.14|0.07|0.04|R|F|1994-10-16|1994-12-10|1994-11-07|TAKE BACK RETURN|REG AIR| slyly even instructions. |
-4869|122|5|6|30|30663.60|0.00|0.05|A|F|1995-01-09|1994-11-20|1995-02-02|COLLECT COD|RAIL|gedly even requests. s|
-4870|48|5|1|49|46453.96|0.05|0.05|R|F|1994-11-14|1994-10-24|1994-12-12|TAKE BACK RETURN|SHIP| regular packages |
-4870|127|10|2|6|6162.72|0.06|0.08|A|F|1994-09-09|1994-10-16|1994-09-21|DELIVER IN PERSON|TRUCK|ress requests. bold, silent pinto bea|
-4870|31|2|3|5|4655.15|0.05|0.00|R|F|1994-10-11|1994-10-07|1994-10-24|NONE|AIR|s haggle furiously. slyly ironic dinos|
-4870|6|9|4|4|3624.00|0.03|0.08|A|F|1994-10-23|1994-09-16|1994-11-04|COLLECT COD|RAIL|its wake quickly. slyly quick|
-4870|71|1|5|36|34958.52|0.09|0.06|A|F|1994-09-06|1994-09-17|1994-10-01|COLLECT COD|REG AIR| instructions. carefully pending pac|
-4871|177|5|1|14|15080.38|0.07|0.03|N|O|1995-09-30|1995-07-29|1995-10-18|TAKE BACK RETURN|REG AIR|inst the never ironic |
-4871|161|6|2|17|18039.72|0.07|0.03|N|O|1995-09-09|1995-09-01|1995-10-02|DELIVER IN PERSON|AIR|es. carefully ev|
-4871|63|4|3|3|2889.18|0.03|0.06|N|O|1995-10-03|1995-08-10|1995-10-06|DELIVER IN PERSON|TRUCK|y special packages wak|
-4871|149|8|4|35|36719.90|0.08|0.07|N|O|1995-08-11|1995-07-18|1995-08-29|DELIVER IN PERSON|TRUCK|ackages sle|
-4871|152|3|5|10|10521.50|0.09|0.02|N|O|1995-09-12|1995-09-02|1995-10-05|TAKE BACK RETURN|AIR|s integrate after the a|
-4871|136|2|6|36|37300.68|0.02|0.08|N|O|1995-09-18|1995-08-29|1995-10-05|TAKE BACK RETURN|AIR|ely according|
-4871|140|6|7|10|10401.40|0.10|0.02|N|O|1995-07-13|1995-08-19|1995-07-29|NONE|REG AIR|p ironic theodolites. slyly even platel|
-4896|41|2|1|19|17879.76|0.09|0.05|A|F|1992-12-13|1992-11-13|1993-01-09|NONE|AIR|nusual requ|
-4896|140|1|2|44|45766.16|0.04|0.03|A|F|1992-11-24|1992-11-15|1992-12-18|COLLECT COD|MAIL|e after the slowly f|
-4896|58|10|3|6|5748.30|0.04|0.04|A|F|1992-10-30|1992-11-12|1992-11-28|DELIVER IN PERSON|TRUCK|usly regular deposits|
-4896|23|4|4|5|4615.10|0.08|0.02|R|F|1992-12-02|1992-11-11|1992-12-19|COLLECT COD|SHIP|eposits hang carefully. sly|
-4896|86|7|5|21|20707.68|0.07|0.08|R|F|1992-11-18|1992-11-18|1992-11-29|DELIVER IN PERSON|TRUCK|ly express deposits. carefully pending depo|
-4897|55|6|1|26|24831.30|0.01|0.01|R|F|1992-12-22|1992-10-25|1992-12-27|DELIVER IN PERSON|TRUCK|. carefully ironic dep|
-4897|143|6|2|34|35466.76|0.02|0.00|R|F|1992-12-31|1992-11-11|1993-01-30|COLLECT COD|AIR|ts. special dependencies use fluffily |
-4897|55|7|3|42|40112.10|0.09|0.03|A|F|1992-09-23|1992-10-28|1992-10-02|DELIVER IN PERSON|FOB|sts. blithely regular deposits will have|
-4897|104|5|4|19|19077.90|0.03|0.00|A|F|1992-11-08|1992-12-14|1992-12-03|DELIVER IN PERSON|FOB|! ironic, pending dependencies doze furiou|
-4898|72|1|1|44|42771.08|0.07|0.02|A|F|1994-09-13|1994-08-18|1994-09-16|NONE|FOB|y regular grouches about|
-4899|34|10|1|14|13076.42|0.06|0.00|R|F|1993-11-10|1994-01-10|1993-11-20|NONE|REG AIR| foxes eat|
-4900|116|3|1|40|40644.40|0.10|0.03|A|F|1992-09-02|1992-09-25|1992-09-21|COLLECT COD|TRUCK|heodolites. request|
-4900|77|8|2|33|32243.31|0.06|0.06|R|F|1992-08-18|1992-09-20|1992-08-19|COLLECT COD|MAIL|nto beans nag slyly reg|
-4900|103|8|3|48|48148.80|0.02|0.00|R|F|1992-09-18|1992-08-14|1992-09-28|TAKE BACK RETURN|MAIL|uickly ironic ideas kindle s|
-4900|32|3|4|20|18640.60|0.05|0.00|R|F|1992-09-22|1992-09-23|1992-09-27|TAKE BACK RETURN|MAIL|yers. accounts affix somet|
-4900|105|8|5|40|40204.00|0.03|0.02|R|F|1992-07-14|1992-09-05|1992-07-20|NONE|REG AIR|luffily final dol|
-4900|103|6|6|46|46142.60|0.06|0.08|R|F|1992-07-11|1992-09-19|1992-07-16|TAKE BACK RETURN|SHIP|ly final acco|
-4901|141|10|1|37|38522.18|0.00|0.04|N|O|1998-01-26|1998-02-20|1998-01-31|DELIVER IN PERSON|TRUCK| furiously ev|
-4901|165|4|2|12|12781.92|0.00|0.04|N|O|1998-01-12|1998-02-06|1998-02-03|COLLECT COD|REG AIR|y unusual deposits prom|
-4901|120|4|3|16|16321.92|0.05|0.08|N|O|1998-04-19|1998-03-18|1998-04-21|NONE|AIR|deposits. blithely fin|
-4901|36|7|4|41|38377.23|0.03|0.00|N|O|1998-03-18|1998-02-18|1998-04-14|TAKE BACK RETURN|AIR|efully bold packages affix carefully eve|
-4901|116|7|5|40|40644.40|0.06|0.02|N|O|1998-01-08|1998-01-30|1998-01-15|DELIVER IN PERSON|MAIL|ect across the furiou|
-4902|196|10|1|22|24116.18|0.00|0.04|N|O|1998-10-17|1998-08-10|1998-10-21|COLLECT COD|RAIL|r the furiously final fox|
-4902|83|4|2|1|983.08|0.09|0.04|N|O|1998-10-12|1998-08-20|1998-11-08|NONE|RAIL|daring foxes? even, bold requests wake f|
-4903|121|2|1|1|1021.12|0.06|0.03|R|F|1992-04-23|1992-06-13|1992-05-03|NONE|SHIP|nusual requests|
-4903|165|6|2|6|6390.96|0.09|0.07|R|F|1992-04-01|1992-05-16|1992-04-11|DELIVER IN PERSON|SHIP|azzle quickly along the blithely final pla|
-4903|120|10|3|27|27543.24|0.07|0.06|A|F|1992-06-29|1992-06-09|1992-07-08|COLLECT COD|RAIL|pinto beans are; |
-4928|100|1|1|4|4000.40|0.04|0.02|R|F|1993-10-25|1993-12-24|1993-11-16|TAKE BACK RETURN|REG AIR|bout the slyly final accounts. carefull|
-4928|93|4|2|20|19861.80|0.03|0.08|A|F|1994-01-19|1993-11-29|1994-02-13|DELIVER IN PERSON|SHIP|quiet theodolites ca|
-4928|149|8|3|34|35670.76|0.06|0.05|A|F|1993-10-12|1993-12-31|1993-10-14|DELIVER IN PERSON|AIR|, regular depos|
-4929|14|1|1|20|18280.20|0.00|0.04|N|O|1996-03-12|1996-05-23|1996-03-20|COLLECT COD|REG AIR| final pinto beans detect. final,|
-4929|79|7|2|40|39162.80|0.08|0.03|N|O|1996-05-30|1996-04-13|1996-06-22|TAKE BACK RETURN|AIR|unts against |
-4929|77|7|3|32|31266.24|0.08|0.02|N|O|1996-04-28|1996-05-23|1996-04-30|COLLECT COD|TRUCK|usly at the blithely pending pl|
-4929|109|4|4|26|26236.60|0.00|0.05|N|O|1996-06-10|1996-05-29|1996-06-26|DELIVER IN PERSON|RAIL| slyly. fl|
-4929|67|8|5|24|23209.44|0.09|0.05|N|O|1996-04-15|1996-04-30|1996-05-09|NONE|MAIL| accounts boost|
-4930|187|8|1|35|38051.30|0.03|0.01|A|F|1994-07-09|1994-07-30|1994-07-15|NONE|RAIL|lose slyly regular dependencies. fur|
-4930|115|5|2|20|20302.20|0.02|0.04|A|F|1994-08-21|1994-06-17|1994-08-24|COLLECT COD|FOB|he carefully|
-4930|168|7|3|28|29908.48|0.00|0.08|R|F|1994-08-27|1994-06-27|1994-09-18|COLLECT COD|TRUCK|e ironic, unusual courts. regula|
-4930|166|7|4|42|44778.72|0.00|0.00|A|F|1994-06-18|1994-06-22|1994-07-10|COLLECT COD|AIR|ions haggle. furiously regular ideas use |
-4930|190|1|5|38|41427.22|0.02|0.03|A|F|1994-06-06|1994-06-18|1994-07-03|TAKE BACK RETURN|AIR|bold requests sleep never|
-4931|194|7|1|1|1094.19|0.08|0.06|A|F|1995-01-24|1994-12-19|1995-02-07|DELIVER IN PERSON|SHIP| furiously |
-4931|151|3|2|8|8409.20|0.06|0.02|R|F|1994-12-15|1995-01-14|1995-01-06|NONE|SHIP|ts boost. packages wake sly|
-4931|144|5|3|20|20882.80|0.09|0.00|A|F|1995-01-25|1994-12-21|1995-02-06|DELIVER IN PERSON|MAIL|the furious|
-4931|200|4|4|50|55010.00|0.04|0.01|A|F|1994-12-15|1994-12-18|1994-12-23|COLLECT COD|REG AIR|s haggle al|
-4931|150|7|5|25|26253.75|0.05|0.05|R|F|1994-12-19|1995-01-05|1994-12-21|COLLECT COD|FOB|aggle bravely according to the quic|
-4931|103|6|6|8|8024.80|0.02|0.03|A|F|1995-02-16|1994-12-30|1995-03-15|DELIVER IN PERSON|SHIP|dependencies are slyly|
-4932|51|3|1|13|12363.65|0.04|0.03|A|F|1993-09-13|1993-10-16|1993-09-20|DELIVER IN PERSON|SHIP|slyly according to the furiously fin|
-4932|103|10|2|15|15046.50|0.01|0.02|R|F|1993-11-15|1993-10-25|1993-11-29|NONE|REG AIR|yly. unusu|
-4932|87|8|3|5|4935.40|0.06|0.06|A|F|1993-10-01|1993-09-13|1993-10-04|NONE|MAIL| haggle furiously. slyly ironic packages sl|
-4932|98|1|4|11|10978.99|0.09|0.06|A|F|1993-09-21|1993-09-30|1993-09-23|COLLECT COD|SHIP|as. special depende|
-4933|32|8|1|48|44737.44|0.08|0.00|N|O|1995-10-10|1995-10-03|1995-11-04|COLLECT COD|SHIP|ideas. sly|
-4933|82|3|2|2|1964.16|0.09|0.00|N|O|1995-10-01|1995-09-29|1995-10-19|DELIVER IN PERSON|MAIL|ctions nag final instructions. accou|
-4934|97|10|1|48|47860.32|0.00|0.01|N|O|1997-05-20|1997-04-22|1997-06-02|TAKE BACK RETURN|SHIP| ideas cajol|
-4934|110|1|2|41|41414.51|0.06|0.06|N|O|1997-06-04|1997-04-11|1997-06-25|TAKE BACK RETURN|FOB|wake final, ironic f|
-4934|140|1|3|8|8321.12|0.03|0.06|N|O|1997-05-20|1997-04-30|1997-05-27|TAKE BACK RETURN|MAIL|arefully express pains cajo|
-4934|148|5|4|9|9433.26|0.06|0.08|N|O|1997-06-10|1997-04-09|1997-06-12|TAKE BACK RETURN|REG AIR| haggle alongside of the|
-4934|138|9|5|29|30105.77|0.09|0.03|N|O|1997-04-10|1997-05-05|1997-05-04|DELIVER IN PERSON|AIR|aggle furiously among the busily final re|
-4934|52|3|6|42|39986.10|0.00|0.07|N|O|1997-03-19|1997-05-05|1997-03-25|NONE|MAIL|ven, ironic ideas|
-4934|11|5|7|2|1822.02|0.10|0.06|N|O|1997-06-05|1997-03-26|1997-06-09|COLLECT COD|MAIL|ongside of the brave, regula|
-4935|161|2|1|13|13795.08|0.09|0.01|A|F|1993-06-20|1993-08-13|1993-06-27|COLLECT COD|REG AIR|ly requests. final deposits might |
-4935|40|6|2|37|34781.48|0.01|0.05|R|F|1993-08-30|1993-07-23|1993-09-07|TAKE BACK RETURN|RAIL|y even dependencies nag a|
-4935|11|8|3|24|21864.24|0.06|0.04|A|F|1993-05-29|1993-08-17|1993-06-22|NONE|RAIL|ly quickly s|
-4935|45|6|4|49|46306.96|0.06|0.01|A|F|1993-09-16|1993-08-21|1993-10-12|COLLECT COD|TRUCK|ffily after the furiou|
-4935|10|1|5|14|12740.14|0.08|0.08|A|F|1993-05-30|1993-07-25|1993-05-31|COLLECT COD|FOB|slowly. blith|
-4935|188|9|6|36|39174.48|0.10|0.00|R|F|1993-07-11|1993-07-04|1993-08-01|DELIVER IN PERSON|RAIL|requests across the quick|
-4960|18|5|1|36|33048.36|0.01|0.05|R|F|1995-03-06|1995-05-04|1995-04-05|TAKE BACK RETURN|RAIL|c, unusual accou|
-4960|45|8|2|6|5670.24|0.03|0.08|R|F|1995-03-21|1995-05-13|1995-04-14|TAKE BACK RETURN|SHIP|ual package|
-4960|149|8|3|9|9442.26|0.01|0.03|A|F|1995-03-20|1995-05-05|1995-04-17|COLLECT COD|RAIL|e blithely carefully fina|
-4960|120|7|4|14|14281.68|0.00|0.06|A|F|1995-04-03|1995-04-17|1995-04-07|NONE|RAIL|accounts. warhorses are. grouches |
-4960|98|1|5|8|7984.72|0.07|0.04|R|F|1995-03-14|1995-04-18|1995-04-09|NONE|FOB|as. busily regular packages nag. |
-4960|146|7|6|37|38707.18|0.10|0.04|R|F|1995-05-23|1995-04-12|1995-06-01|DELIVER IN PERSON|MAIL|ending theodolites w|
-4960|170|1|7|42|44947.14|0.08|0.07|A|F|1995-04-19|1995-04-11|1995-05-08|NONE|SHIP|s requests cajole. |
-4961|44|7|1|38|35873.52|0.10|0.07|N|O|1998-07-09|1998-06-03|1998-07-11|TAKE BACK RETURN|FOB|e on the blithely bold accounts. unu|
-4961|60|5|2|1|960.06|0.08|0.08|N|O|1998-07-08|1998-05-25|1998-07-12|DELIVER IN PERSON|MAIL|s affix carefully silent dependen|
-4961|162|3|3|41|43548.56|0.02|0.02|N|O|1998-07-15|1998-06-15|1998-08-05|TAKE BACK RETURN|REG AIR|ily against the n|
-4961|100|3|4|10|10001.00|0.02|0.04|N|O|1998-04-15|1998-07-03|1998-04-18|DELIVER IN PERSON|MAIL|quests. regular, ironic ideas at the ironi|
-4962|19|6|1|46|42274.46|0.01|0.07|R|F|1993-08-23|1993-09-04|1993-08-27|COLLECT COD|REG AIR| pinto beans grow about the sl|
-4963|168|5|1|38|40590.08|0.08|0.02|N|O|1996-12-25|1996-12-12|1997-01-02|COLLECT COD|AIR|tegrate daringly accou|
-4963|76|4|2|16|15617.12|0.00|0.03|N|O|1996-11-20|1997-01-13|1996-12-06|COLLECT COD|MAIL| carefully slyly u|
-4964|133|9|1|29|29960.77|0.04|0.01|N|O|1997-10-18|1997-08-30|1997-11-01|NONE|AIR|k accounts nag carefully-- ironic, fin|
-4964|148|5|2|46|48214.44|0.06|0.06|N|O|1997-10-05|1997-09-12|1997-10-11|NONE|TRUCK|althy deposits|
-4964|143|4|3|18|18776.52|0.00|0.06|N|O|1997-10-13|1997-09-01|1997-11-10|DELIVER IN PERSON|AIR| platelets. furio|
-4964|180|10|4|12|12962.16|0.08|0.01|N|O|1997-09-03|1997-10-25|1997-09-15|NONE|TRUCK|ully silent instructions ca|
-4964|41|10|5|42|39523.68|0.06|0.04|N|O|1997-09-04|1997-08-28|1997-10-02|TAKE BACK RETURN|AIR| hinder. idly even|
-4964|193|7|6|22|24050.18|0.04|0.08|N|O|1997-09-11|1997-10-06|1997-09-29|NONE|AIR|equests doubt quickly. caref|
-4964|173|4|7|28|30048.76|0.00|0.05|N|O|1997-08-30|1997-09-15|1997-09-18|COLLECT COD|RAIL|among the carefully regula|
-4965|131|2|1|28|28871.64|0.05|0.03|A|F|1994-01-02|1993-11-20|1994-01-04|TAKE BACK RETURN|REG AIR| deposits. requests sublate quickly |
-4965|13|10|2|25|22825.25|0.10|0.02|R|F|1994-02-05|1993-12-15|1994-02-24|TAKE BACK RETURN|MAIL|wake at the carefully speci|
-4965|101|8|3|27|27029.70|0.05|0.06|R|F|1993-11-06|1993-12-24|1993-11-30|TAKE BACK RETURN|SHIP|efully final foxes|
-4965|138|9|4|33|34258.29|0.04|0.04|A|F|1993-12-31|1993-11-29|1994-01-27|DELIVER IN PERSON|REG AIR|iously slyly|
-4966|76|6|1|10|9760.70|0.06|0.03|N|O|1996-09-23|1996-11-02|1996-10-07|TAKE BACK RETURN|SHIP| requests. carefully pending requests|
-4966|194|6|2|6|6565.14|0.02|0.01|N|O|1996-12-09|1996-11-29|1996-12-30|NONE|AIR|d deposits are sly excuses. slyly iro|
-4966|165|6|3|7|7456.12|0.00|0.01|N|O|1996-12-08|1996-10-09|1997-01-06|COLLECT COD|MAIL|ckly ironic tithe|
-4966|16|6|4|26|23816.26|0.08|0.03|N|O|1996-11-14|1996-11-29|1996-12-05|COLLECT COD|REG AIR|nt pearls haggle carefully slyly even |
-4966|144|1|5|12|12529.68|0.02|0.07|N|O|1996-12-07|1996-11-23|1996-12-20|DELIVER IN PERSON|RAIL|eodolites. ironic requests across the exp|
-4967|71|1|1|50|48553.50|0.07|0.01|N|O|1997-05-27|1997-05-13|1997-06-12|NONE|REG AIR|kages. final, unusual accounts c|
-4967|53|5|2|43|40981.15|0.00|0.07|N|O|1997-05-28|1997-04-10|1997-06-09|NONE|TRUCK|ons. slyly ironic requests|
-4967|50|1|3|15|14250.75|0.08|0.02|N|O|1997-04-16|1997-04-12|1997-05-08|TAKE BACK RETURN|MAIL|y. blithel|
-4967|123|2|4|1|1023.12|0.10|0.07|N|O|1997-06-04|1997-03-29|1997-06-23|NONE|FOB|osits. unusual frets thrash furiously|
-4992|184|5|1|42|45535.56|0.07|0.01|R|F|1992-07-19|1992-06-16|1992-08-17|TAKE BACK RETURN|RAIL|foxes about the quickly final platele|
-4992|147|4|2|47|49215.58|0.10|0.08|A|F|1992-09-04|1992-08-05|1992-09-21|COLLECT COD|MAIL|atterns use fluffily.|
-4992|144|7|3|17|17750.38|0.03|0.03|A|F|1992-07-05|1992-07-19|1992-07-30|TAKE BACK RETURN|FOB|s along the perma|
-4992|70|7|4|25|24251.75|0.04|0.06|R|F|1992-08-06|1992-07-11|1992-08-20|NONE|SHIP|ly about the never ironic requests. pe|
-4992|139|5|5|23|23899.99|0.01|0.08|R|F|1992-06-28|1992-07-15|1992-07-12|DELIVER IN PERSON|MAIL|uickly regul|
-4992|163|8|6|44|46779.04|0.05|0.02|A|F|1992-06-01|1992-07-22|1992-06-03|NONE|RAIL|rmanent, sly packages print slyly. regula|
-4993|38|4|1|34|31893.02|0.05|0.00|R|F|1994-09-21|1994-10-31|1994-09-24|TAKE BACK RETURN|REG AIR|ular, pending packages at the even packa|
-4993|129|4|2|39|40135.68|0.03|0.08|R|F|1994-09-10|1994-09-04|1994-09-26|COLLECT COD|SHIP|pending, regular requests solve caref|
-4993|166|1|3|42|44778.72|0.06|0.00|A|F|1994-08-27|1994-09-24|1994-09-05|NONE|MAIL| final packages at the q|
-4993|158|6|4|31|32802.65|0.10|0.06|A|F|1994-10-02|1994-10-29|1994-10-15|NONE|AIR|nwind thinly platelets. a|
-4994|156|8|1|36|38021.40|0.00|0.06|N|O|1996-09-29|1996-07-30|1996-10-03|TAKE BACK RETURN|TRUCK|ess ideas. blithely silent brai|
-4994|80|9|2|47|46063.76|0.04|0.05|N|O|1996-09-20|1996-08-04|1996-10-15|COLLECT COD|TRUCK|sts. blithely close ideas sleep quic|
-4994|183|4|3|29|31412.22|0.08|0.01|N|O|1996-08-26|1996-09-27|1996-09-25|DELIVER IN PERSON|RAIL|ptotes boost carefully|
-4994|39|10|4|40|37561.20|0.01|0.06|N|O|1996-08-25|1996-08-16|1996-09-07|TAKE BACK RETURN|REG AIR|eposits. regula|
-4994|42|9|5|24|22608.96|0.01|0.07|N|O|1996-08-19|1996-09-24|1996-08-25|TAKE BACK RETURN|FOB|s. slyly ironic deposits cajole f|
-4994|73|4|6|6|5838.42|0.01|0.02|N|O|1996-09-05|1996-08-04|1996-09-30|TAKE BACK RETURN|FOB|grate carefully around th|
-4994|130|1|7|31|31934.03|0.07|0.04|N|O|1996-10-14|1996-09-23|1996-11-08|TAKE BACK RETURN|RAIL|lar decoys cajole fluffil|
-4995|65|4|1|16|15440.96|0.02|0.05|N|O|1996-02-27|1996-04-03|1996-02-29|DELIVER IN PERSON|MAIL|egular, bold packages. accou|
-4995|81|2|2|43|42186.44|0.00|0.06|N|O|1996-02-24|1996-02-20|1996-03-07|NONE|AIR|ts. blithely silent ideas after t|
-4995|156|7|3|22|23235.30|0.03|0.06|N|O|1996-03-17|1996-03-12|1996-04-01|DELIVER IN PERSON|MAIL|s wake furious, express dependencies.|
-4995|40|1|4|9|8460.36|0.07|0.07|N|O|1996-03-07|1996-03-17|1996-03-11|DELIVER IN PERSON|FOB| ironic packages cajole across t|
-4995|148|7|5|48|50310.72|0.08|0.07|N|O|1996-03-22|1996-04-01|1996-04-07|NONE|SHIP|t blithely. requests affix blithely. |
-4995|110|5|6|48|48485.28|0.09|0.07|N|O|1996-04-14|1996-04-04|1996-05-07|DELIVER IN PERSON|RAIL|nstructions. carefully final depos|
-4996|56|1|1|35|33461.75|0.07|0.01|A|F|1992-10-30|1992-10-27|1992-11-05|TAKE BACK RETURN|SHIP|s. unusual, regular dolphins integrate care|
-4996|156|7|2|39|41189.85|0.02|0.07|A|F|1992-09-19|1992-10-19|1992-10-06|COLLECT COD|FOB|equests are carefully final|
-4996|128|7|3|12|12337.44|0.04|0.06|R|F|1993-01-09|1992-11-22|1993-02-04|DELIVER IN PERSON|SHIP|usly bold requests sleep dogge|
-4996|144|3|4|13|13573.82|0.00|0.00|A|F|1992-09-17|1992-12-02|1992-10-07|DELIVER IN PERSON|TRUCK|o beans use about the furious|
-4997|79|7|1|44|43079.08|0.02|0.05|N|O|1998-06-09|1998-06-12|1998-07-07|NONE|RAIL|r escapades ca|
-4997|17|7|2|5|4585.05|0.02|0.04|N|O|1998-05-16|1998-06-05|1998-06-07|COLLECT COD|REG AIR|cuses are furiously unusual asymptotes|
-4997|58|9|3|24|22993.20|0.04|0.06|N|O|1998-04-20|1998-04-23|1998-05-16|NONE|AIR|xpress, bo|
-4997|40|6|4|5|4700.20|0.10|0.03|N|O|1998-06-12|1998-04-24|1998-06-13|DELIVER IN PERSON|TRUCK|aggle slyly alongside of the slyly i|
-4997|22|7|5|46|42412.92|0.00|0.04|N|O|1998-04-28|1998-06-04|1998-05-08|TAKE BACK RETURN|SHIP|ecial courts are carefully|
-4997|29|2|6|2|1858.04|0.07|0.01|N|O|1998-07-09|1998-06-10|1998-07-21|TAKE BACK RETURN|REG AIR|counts. slyl|
-4998|154|2|1|12|12649.80|0.04|0.03|A|F|1992-02-20|1992-03-06|1992-03-01|TAKE BACK RETURN|RAIL| sleep slyly furiously final accounts. ins|
-4998|183|4|2|15|16247.70|0.06|0.00|R|F|1992-04-24|1992-03-21|1992-05-02|NONE|REG AIR|heodolites sleep quickly.|
-4998|59|10|3|27|25894.35|0.06|0.02|R|F|1992-03-17|1992-02-26|1992-04-05|DELIVER IN PERSON|MAIL|the blithely ironic |
-4998|63|10|4|47|45263.82|0.10|0.04|A|F|1992-02-07|1992-03-07|1992-02-19|DELIVER IN PERSON|TRUCK|mong the careful|
-4998|145|4|5|24|25083.36|0.01|0.04|R|F|1992-01-25|1992-03-16|1992-01-27|COLLECT COD|REG AIR| unwind about|
-4998|99|1|6|8|7992.72|0.03|0.07|A|F|1992-05-01|1992-03-03|1992-05-24|TAKE BACK RETURN|AIR|ions nag quickly according to the theodolit|
-4999|153|8|1|30|31594.50|0.00|0.02|A|F|1993-08-20|1993-08-15|1993-08-30|NONE|AIR|ades cajole carefully unusual ide|
-4999|10|1|2|44|40040.44|0.03|0.01|A|F|1993-08-01|1993-08-04|1993-08-17|COLLECT COD|REG AIR|ependencies. slowly regu|
-4999|86|7|3|30|29582.40|0.09|0.01|R|F|1993-07-21|1993-08-11|1993-08-20|DELIVER IN PERSON|RAIL|s cajole among the blithel|
-5024|166|3|1|17|18124.72|0.10|0.02|N|O|1996-11-24|1997-01-10|1996-12-04|NONE|AIR| to the expre|
-5024|58|6|2|41|39280.05|0.06|0.01|N|O|1996-11-09|1996-12-03|1996-12-01|COLLECT COD|REG AIR|osits hinder carefully |
-5024|112|6|3|18|18217.98|0.04|0.03|N|O|1996-12-02|1997-01-16|1996-12-05|NONE|MAIL|zle carefully sauternes. quickly|
-5024|123|8|4|42|42971.04|0.03|0.06|N|O|1996-12-02|1996-12-08|1996-12-04|DELIVER IN PERSON|RAIL|tegrate. busily spec|
-5025|30|9|1|11|10230.33|0.00|0.04|N|O|1997-02-21|1997-04-16|1997-03-14|COLLECT COD|SHIP|the carefully final esc|
-5025|78|7|2|10|9780.70|0.07|0.04|N|O|1997-06-04|1997-04-29|1997-06-28|COLLECT COD|RAIL|lly silent deposits boost busily again|
-5026|96|8|1|13|12949.17|0.02|0.04|N|O|1997-12-23|1997-11-02|1998-01-03|TAKE BACK RETURN|SHIP|endencies sleep carefully alongs|
-5027|98|2|1|6|5988.54|0.04|0.05|N|O|1997-09-28|1997-11-24|1997-10-25|NONE|FOB|ar, ironic deposi|
-5027|62|3|2|39|37520.34|0.06|0.01|N|O|1997-09-09|1997-11-13|1997-09-21|TAKE BACK RETURN|FOB|ess requests! quickly regular pac|
-5027|126|5|3|32|32835.84|0.00|0.01|N|O|1997-11-13|1997-10-29|1997-11-18|TAKE BACK RETURN|RAIL|cording to|
-5027|26|7|4|37|34262.74|0.02|0.00|N|O|1997-10-05|1997-10-30|1997-10-26|NONE|REG AIR|ost slyly fluffily|
-5027|143|4|5|3|3129.42|0.03|0.06|N|O|1997-09-30|1997-11-26|1997-10-05|DELIVER IN PERSON|AIR|t the even mu|
-5027|87|8|6|25|24677.00|0.06|0.00|N|O|1997-09-16|1997-11-25|1997-10-08|TAKE BACK RETURN|RAIL|ic ideas. requests sleep fluffily am|
-5027|81|2|7|50|49054.00|0.07|0.02|N|O|1997-09-18|1997-11-07|1997-10-05|DELIVER IN PERSON|MAIL| beans dazzle according to the fluffi|
-5028|14|1|1|15|13710.15|0.07|0.07|R|F|1992-07-17|1992-07-16|1992-08-05|COLLECT COD|REG AIR|es are quickly final pains. furiously pend|
-5028|199|10|2|15|16487.85|0.03|0.07|R|F|1992-08-02|1992-07-09|1992-08-30|NONE|REG AIR|gular, bold pinto bea|
-5029|154|5|1|17|17920.55|0.02|0.01|A|F|1993-03-12|1992-12-18|1993-04-02|DELIVER IN PERSON|FOB|! packages boost blithely. furious|
-5029|97|9|2|2|1994.18|0.00|0.04|A|F|1992-11-25|1993-01-04|1992-12-20|DELIVER IN PERSON|MAIL|packages. furiously ironi|
-5030|102|3|1|22|22046.20|0.04|0.06|N|O|1998-09-01|1998-08-15|1998-09-30|TAKE BACK RETURN|TRUCK|. quickly regular foxes believe|
-5030|80|9|2|50|49004.00|0.05|0.06|N|O|1998-08-22|1998-07-25|1998-09-18|TAKE BACK RETURN|FOB|ss excuses serve bli|
-5031|50|1|1|15|14250.75|0.02|0.05|R|F|1995-04-01|1995-02-24|1995-04-12|DELIVER IN PERSON|AIR|yly pending theodolites.|
-5031|161|6|2|40|42446.40|0.10|0.04|A|F|1994-12-04|1995-01-27|1995-01-01|NONE|TRUCK|ns hang blithely across th|
-5031|154|6|3|4|4216.60|0.01|0.07|R|F|1994-12-26|1995-02-24|1995-01-11|NONE|RAIL|after the even frays: ironic, unusual th|
-5031|181|2|4|31|33516.58|0.10|0.08|R|F|1995-01-15|1995-01-08|1995-02-09|COLLECT COD|MAIL|ts across the even requests doze furiously|
-5056|48|7|1|7|6636.28|0.09|0.01|N|O|1997-04-28|1997-04-07|1997-05-15|DELIVER IN PERSON|TRUCK|rouches after the pending instruc|
-5056|197|1|2|19|20846.61|0.04|0.00|N|O|1997-03-24|1997-05-05|1997-04-23|DELIVER IN PERSON|AIR|c theodolites. ironic a|
-5056|90|1|3|23|22772.07|0.02|0.05|N|O|1997-05-12|1997-04-28|1997-05-25|NONE|SHIP|ickly regular requests cajole. depos|
-5056|87|8|4|14|13819.12|0.08|0.00|N|O|1997-06-09|1997-04-13|1997-07-06|COLLECT COD|SHIP|sts haggle carefully along the slyl|
-5057|37|3|1|38|35607.14|0.02|0.03|N|O|1997-10-24|1997-09-07|1997-10-30|TAKE BACK RETURN|MAIL|packages. stealthily bold wa|
-5057|8|1|2|45|40860.00|0.08|0.07|N|O|1997-09-20|1997-10-02|1997-10-20|NONE|FOB| asymptotes wake slyl|
-5058|193|5|1|16|17491.04|0.09|0.07|N|O|1998-07-12|1998-06-09|1998-07-15|DELIVER IN PERSON|SHIP| the special foxes |
-5059|70|5|1|5|4850.35|0.03|0.08|R|F|1993-12-23|1994-01-12|1993-12-24|TAKE BACK RETURN|FOB|ts affix slyly accordi|
-5059|123|2|2|19|19439.28|0.06|0.04|R|F|1994-03-02|1993-12-26|1994-03-14|TAKE BACK RETURN|MAIL| special ideas poach blithely qu|
-5059|77|7|3|45|43968.15|0.02|0.00|A|F|1994-01-28|1994-01-08|1994-02-18|DELIVER IN PERSON|MAIL|enly. requests doze. express, close pa|
-5060|25|8|1|27|24975.54|0.10|0.07|R|F|1992-07-23|1992-09-05|1992-08-07|COLLECT COD|SHIP|s. ironic |
-5060|32|8|2|28|26096.84|0.04|0.04|R|F|1992-09-25|1992-08-11|1992-10-09|NONE|REG AIR|c requests|
-5060|161|2|3|15|15917.40|0.06|0.01|A|F|1992-08-28|1992-08-20|1992-09-01|DELIVER IN PERSON|AIR|ular deposits sl|
-5061|165|2|1|18|19172.88|0.03|0.00|A|F|1993-10-20|1993-10-05|1993-10-28|TAKE BACK RETURN|SHIP|atelets among the ca|
-5061|198|1|2|8|8785.52|0.01|0.02|R|F|1993-09-07|1993-10-31|1993-10-04|DELIVER IN PERSON|REG AIR|regular foxes. ir|
-5061|24|5|3|26|24024.52|0.02|0.05|A|F|1993-11-07|1993-09-13|1993-11-13|NONE|REG AIR| cajole slyly. carefully spe|
-5062|101|4|1|9|9009.90|0.08|0.00|R|F|1993-01-02|1992-12-01|1993-01-20|TAKE BACK RETURN|MAIL| silent theodolites wake. c|
-5062|75|6|2|4|3900.28|0.02|0.02|R|F|1993-02-06|1992-12-14|1993-03-03|DELIVER IN PERSON|AIR|ke furiously express theodolites. |
-5062|159|10|3|50|52957.50|0.09|0.07|A|F|1992-12-25|1992-12-13|1992-12-29|TAKE BACK RETURN|MAIL| the regular, unusual pains. specia|
-5062|161|10|4|18|19100.88|0.03|0.07|R|F|1992-11-04|1992-12-25|1992-11-05|NONE|SHIP|furiously pending requests are ruthles|
-5062|194|8|5|25|27354.75|0.08|0.02|R|F|1992-12-15|1992-11-17|1993-01-01|NONE|TRUCK|uthless excuses ag|
-5063|129|10|1|31|31902.72|0.08|0.01|N|O|1997-06-02|1997-06-20|1997-06-27|NONE|RAIL|kages. ironic, ironic courts wake. carefu|
-5063|174|2|2|43|46189.31|0.04|0.08|N|O|1997-09-14|1997-07-05|1997-10-05|TAKE BACK RETURN|TRUCK|latelets might nod blithely regular requ|
-5063|167|4|3|2|2134.32|0.02|0.03|N|O|1997-06-17|1997-07-27|1997-06-24|COLLECT COD|SHIP|kly regular i|
-5063|135|6|4|18|18632.34|0.08|0.05|N|O|1997-06-02|1997-06-18|1997-06-06|TAKE BACK RETURN|RAIL|refully quiet reques|
-5063|161|8|5|1|1061.16|0.06|0.07|N|O|1997-09-03|1997-06-26|1997-10-03|NONE|FOB|ously special |
-5088|78|6|1|23|22495.61|0.06|0.06|R|F|1993-03-03|1993-03-07|1993-03-08|NONE|FOB|cording to the fluffily expr|
-5088|51|3|2|41|38993.05|0.09|0.00|R|F|1993-01-22|1993-03-07|1993-02-09|TAKE BACK RETURN|TRUCK|ing requests. |
-5088|86|7|3|36|35498.88|0.10|0.05|A|F|1993-04-16|1993-04-03|1993-05-14|NONE|TRUCK|the furiously final deposits. furiously re|
-5088|109|6|4|10|10091.00|0.04|0.05|R|F|1993-04-07|1993-02-06|1993-04-26|NONE|FOB|beans. special requests af|
-5089|158|6|1|4|4232.60|0.05|0.06|R|F|1992-09-18|1992-09-28|1992-10-13|DELIVER IN PERSON|TRUCK|nts sleep blithely |
-5089|162|3|2|20|21243.20|0.00|0.07|R|F|1992-10-10|1992-10-07|1992-11-06|COLLECT COD|RAIL| ironic accounts|
-5089|124|7|3|46|47109.52|0.03|0.04|A|F|1992-11-09|1992-10-13|1992-11-10|TAKE BACK RETURN|RAIL|above the express accounts. exc|
-5089|34|10|4|38|35493.14|0.05|0.03|R|F|1992-11-23|1992-09-11|1992-12-22|TAKE BACK RETURN|SHIP|regular instructions are|
-5090|22|3|1|22|20284.44|0.07|0.00|N|O|1997-05-10|1997-05-25|1997-05-24|TAKE BACK RETURN|TRUCK|ets integrate ironic, regul|
-5090|129|10|2|46|47339.52|0.05|0.00|N|O|1997-04-05|1997-04-14|1997-05-01|COLLECT COD|REG AIR|lose theodolites sleep blit|
-5090|2|9|3|22|19844.00|0.09|0.05|N|O|1997-07-03|1997-04-12|1997-07-26|NONE|REG AIR|ular requests su|
-5090|114|8|4|2|2028.22|0.03|0.06|N|O|1997-04-07|1997-04-23|1997-05-01|TAKE BACK RETURN|AIR|tes. slowly iro|
-5090|48|9|5|21|19908.84|0.10|0.02|N|O|1997-03-29|1997-04-24|1997-04-25|TAKE BACK RETURN|FOB|ly express accounts. slyly even r|
-5090|80|9|6|30|29402.40|0.02|0.03|N|O|1997-05-04|1997-04-14|1997-05-30|COLLECT COD|MAIL|osits nag slyly. fluffily ex|
-5091|78|6|1|50|48903.50|0.05|0.03|N|O|1998-07-21|1998-06-22|1998-07-26|COLLECT COD|REG AIR|al dependencies. r|
-5092|164|1|1|30|31924.80|0.06|0.00|N|O|1995-12-27|1995-12-08|1996-01-09|DELIVER IN PERSON|MAIL|ss, ironic deposits. furiously stea|
-5092|45|4|2|34|32131.36|0.04|0.02|N|O|1995-12-09|1995-12-26|1995-12-21|TAKE BACK RETURN|AIR|ckages nag |
-5092|140|6|3|13|13521.82|0.06|0.01|N|O|1995-11-21|1996-01-05|1995-12-19|TAKE BACK RETURN|SHIP|es detect sly|
-5092|180|1|4|14|15122.52|0.04|0.00|N|O|1996-02-20|1995-11-30|1996-03-20|DELIVER IN PERSON|REG AIR| deposits cajole furiously against the sly|
-5092|186|7|5|42|45619.56|0.01|0.02|N|O|1995-11-06|1996-01-01|1995-12-06|DELIVER IN PERSON|AIR|s use along t|
-5092|178|6|6|11|11859.87|0.03|0.03|N|O|1995-12-02|1995-12-27|1995-12-11|COLLECT COD|MAIL|ly against the slyly silen|
-5092|159|10|7|50|52957.50|0.10|0.03|N|O|1995-11-30|1996-01-14|1995-12-19|NONE|REG AIR|r platelets maintain car|
-5093|168|9|1|40|42726.40|0.05|0.01|R|F|1993-09-16|1993-11-04|1993-10-05|TAKE BACK RETURN|REG AIR|ing pinto beans. quickly bold dependenci|
-5093|74|2|2|15|14611.05|0.01|0.04|A|F|1993-12-02|1993-11-18|1994-01-01|DELIVER IN PERSON|FOB|ly among the unusual foxe|
-5093|151|9|3|31|32585.65|0.00|0.02|R|F|1993-09-22|1993-11-14|1993-09-26|TAKE BACK RETURN|REG AIR| against the|
-5093|156|1|4|37|39077.55|0.04|0.00|A|F|1993-10-26|1993-12-02|1993-10-27|NONE|TRUCK|courts. qui|
-5093|115|2|5|30|30453.30|0.06|0.05|A|F|1993-11-22|1993-11-27|1993-12-14|DELIVER IN PERSON|TRUCK|ithely ironic sheaves use fluff|
-5093|121|6|6|31|31654.72|0.01|0.08|A|F|1993-12-17|1993-11-14|1994-01-02|NONE|SHIP|he final foxes. fluffily ironic |
-5094|143|10|1|19|19819.66|0.03|0.03|R|F|1993-03-31|1993-06-12|1993-04-04|NONE|AIR|ronic foxes. furi|
-5094|108|5|2|23|23186.30|0.05|0.07|R|F|1993-06-13|1993-05-19|1993-07-06|NONE|MAIL|st furiously above the fluffily care|
-5094|92|6|3|11|10912.99|0.04|0.08|A|F|1993-06-25|1993-06-24|1993-07-18|TAKE BACK RETURN|MAIL|s cajole quickly against the furiously ex|
-5094|79|10|4|21|20560.47|0.09|0.08|R|F|1993-07-26|1993-05-03|1993-08-16|NONE|MAIL| blithely furiously final re|
-5095|65|10|1|46|44392.76|0.07|0.01|A|F|1992-06-26|1992-06-25|1992-07-05|COLLECT COD|RAIL|egular instruction|
-5095|106|3|2|2|2012.20|0.07|0.08|A|F|1992-07-09|1992-05-25|1992-07-21|DELIVER IN PERSON|REG AIR|detect car|
-5095|123|8|3|28|28647.36|0.01|0.04|A|F|1992-06-20|1992-06-27|1992-06-22|DELIVER IN PERSON|AIR| into the final courts. ca|
-5095|178|7|4|42|45283.14|0.08|0.08|R|F|1992-05-23|1992-06-01|1992-06-18|COLLECT COD|TRUCK|ccounts. packages could have t|
-5095|166|7|5|9|9595.44|0.10|0.07|R|F|1992-08-14|1992-06-23|1992-08-16|TAKE BACK RETURN|REG AIR|bold theodolites wake about the expr|
-5095|97|8|6|15|14956.35|0.01|0.06|A|F|1992-07-11|1992-07-12|1992-08-09|COLLECT COD|AIR| to the packages wake sly|
-5095|169|10|7|40|42766.40|0.05|0.02|A|F|1992-07-11|1992-06-07|1992-07-26|DELIVER IN PERSON|MAIL|carefully unusual plat|
-5120|133|4|1|28|28927.64|0.06|0.03|N|O|1996-07-20|1996-08-31|1996-08-06|NONE|RAIL| across the silent requests. caref|
-5121|184|5|1|23|24936.14|0.06|0.01|A|F|1992-05-18|1992-06-20|1992-06-02|TAKE BACK RETURN|REG AIR|even courts are blithely ironically |
-5121|111|1|2|45|45499.95|0.08|0.04|A|F|1992-08-13|1992-07-27|1992-09-12|NONE|TRUCK|pecial accounts cajole ca|
-5121|97|10|3|27|26921.43|0.08|0.07|R|F|1992-06-17|1992-06-11|1992-06-19|NONE|MAIL|ly silent theodolit|
-5121|68|7|4|10|9680.60|0.04|0.05|R|F|1992-06-08|1992-07-10|1992-07-02|TAKE BACK RETURN|FOB|e quickly according |
-5121|89|10|5|46|45497.68|0.03|0.02|R|F|1992-05-27|1992-07-19|1992-05-28|TAKE BACK RETURN|FOB|use express foxes. slyly |
-5121|1|8|6|2|1802.00|0.04|0.07|R|F|1992-08-10|1992-06-28|1992-08-11|NONE|FOB| final, regular account|
-5122|183|4|1|28|30329.04|0.03|0.00|N|O|1996-04-20|1996-03-29|1996-04-29|DELIVER IN PERSON|FOB|g the busily ironic accounts boos|
-5122|82|3|2|43|42229.44|0.09|0.03|N|O|1996-05-31|1996-04-12|1996-06-13|NONE|MAIL|ut the carefully special foxes. idle,|
-5122|45|6|3|12|11340.48|0.07|0.03|N|O|1996-04-02|1996-04-27|1996-04-10|DELIVER IN PERSON|AIR|lar instructions |
-5123|26|7|1|13|12038.26|0.08|0.07|N|O|1998-05-17|1998-03-23|1998-06-02|COLLECT COD|MAIL|regular pearls|
-5124|55|7|1|43|41067.15|0.00|0.02|N|O|1997-07-10|1997-05-13|1997-07-31|COLLECT COD|AIR|onic package|
-5124|6|3|2|41|37146.00|0.02|0.06|N|O|1997-07-05|1997-06-29|1997-07-23|DELIVER IN PERSON|RAIL|wake across the|
-5124|125|6|3|44|45105.28|0.03|0.03|N|O|1997-07-13|1997-06-26|1997-08-01|DELIVER IN PERSON|RAIL|equests. carefully unusual d|
-5124|70|9|4|36|34922.52|0.10|0.07|N|O|1997-04-20|1997-07-03|1997-05-04|TAKE BACK RETURN|AIR|r deposits ab|
-5125|6|9|1|38|34428.00|0.09|0.05|N|O|1998-03-20|1998-04-14|1998-03-22|COLLECT COD|MAIL|ily even deposits w|
-5125|160|1|2|5|5300.80|0.08|0.06|N|O|1998-04-07|1998-04-14|1998-04-29|COLLECT COD|RAIL| thinly even pack|
-5126|24|3|1|33|30492.66|0.02|0.02|R|F|1993-02-04|1992-12-23|1993-02-14|NONE|RAIL|ipliers promise furiously whithout the |
-5126|101|6|2|43|43047.30|0.09|0.04|R|F|1993-01-07|1992-12-19|1993-01-16|COLLECT COD|MAIL|e silently. ironic, unusual accounts|
-5126|78|8|3|23|22495.61|0.08|0.01|R|F|1993-01-02|1993-01-02|1993-01-05|COLLECT COD|TRUCK|egular, blithe packages.|
-5127|19|3|1|33|30327.33|0.08|0.04|N|O|1997-03-25|1997-03-02|1997-04-04|NONE|SHIP| bold deposits use carefully a|
-5127|32|8|2|20|18640.60|0.01|0.03|N|O|1997-05-11|1997-02-26|1997-05-12|TAKE BACK RETURN|SHIP|dolites about the final platelets w|
-5152|105|2|1|9|9045.90|0.04|0.03|N|O|1997-04-11|1997-02-11|1997-04-18|COLLECT COD|AIR| cajole furiously alongside of the bo|
-5152|134|10|2|50|51706.50|0.04|0.04|N|O|1997-03-10|1997-02-04|1997-03-15|COLLECT COD|FOB| the final deposits. slyly ironic warth|
-5153|35|1|1|42|39271.26|0.03|0.01|N|O|1995-10-03|1995-11-09|1995-10-11|COLLECT COD|RAIL|re thinly. ironic|
-5153|53|5|2|14|13342.70|0.05|0.05|N|O|1995-11-29|1995-10-21|1995-12-08|TAKE BACK RETURN|TRUCK| slyly daring pinto beans lose blithely fi|
-5153|68|7|3|30|29041.80|0.09|0.01|N|O|1995-11-10|1995-11-14|1995-11-16|DELIVER IN PERSON|AIR|beans sleep bl|
-5153|173|2|4|32|34341.44|0.10|0.08|N|O|1995-12-05|1995-09-25|1996-01-03|DELIVER IN PERSON|MAIL|egular deposits. ironi|
-5153|112|2|5|36|36435.96|0.01|0.03|N|O|1995-12-15|1995-11-08|1995-12-30|COLLECT COD|TRUCK| ironic instru|
-5153|136|2|6|42|43517.46|0.00|0.03|N|O|1995-10-19|1995-11-23|1995-11-06|TAKE BACK RETURN|RAIL|ickly even deposi|
-5154|190|1|1|11|11992.09|0.02|0.05|N|O|1997-08-06|1997-06-30|1997-09-04|NONE|RAIL|luffily bold foxes. final|
-5154|144|5|2|15|15662.10|0.07|0.08|N|O|1997-06-23|1997-07-11|1997-07-11|NONE|AIR|even packages. packages use|
-5155|48|9|1|1|948.04|0.00|0.00|A|F|1994-07-03|1994-08-11|1994-07-29|COLLECT COD|FOB|oze slyly after the silent, regular idea|
-5155|188|9|2|5|5440.90|0.08|0.02|A|F|1994-06-30|1994-08-13|1994-07-15|TAKE BACK RETURN|AIR|ole blithely slyly ironic |
-5155|106|3|3|28|28170.80|0.05|0.02|R|F|1994-07-01|1994-07-19|1994-07-18|COLLECT COD|REG AIR|s cajole. accounts wake. thinly quiet pla|
-5155|79|7|4|39|38183.73|0.09|0.06|A|F|1994-08-25|1994-09-01|1994-09-18|COLLECT COD|TRUCK|l dolphins nag caref|
-5156|117|4|1|21|21359.31|0.06|0.03|N|O|1997-01-01|1997-01-30|1997-01-11|TAKE BACK RETURN|TRUCK|ts detect against the furiously reg|
-5156|148|1|2|36|37733.04|0.04|0.07|N|O|1997-02-12|1996-12-10|1997-03-13|TAKE BACK RETURN|REG AIR| slyly even orbi|
-5157|55|7|1|35|33426.75|0.06|0.08|N|O|1997-07-28|1997-09-30|1997-08-15|TAKE BACK RETURN|REG AIR|to the furiously sil|
-5157|138|9|2|18|18686.34|0.10|0.04|N|O|1997-09-06|1997-10-03|1997-09-19|COLLECT COD|MAIL|y bold deposits nag blithely. final reque|
-5157|167|8|3|15|16007.40|0.09|0.00|N|O|1997-07-27|1997-08-30|1997-08-08|DELIVER IN PERSON|RAIL|cajole. spec|
-5157|59|7|4|25|23976.25|0.00|0.03|N|O|1997-08-24|1997-09-23|1997-08-28|COLLECT COD|REG AIR| packages detect. even requests against th|
-5157|149|8|5|40|41965.60|0.09|0.06|N|O|1997-08-11|1997-08-28|1997-09-01|TAKE BACK RETURN|FOB|ial packages according to |
-5157|150|9|6|26|27303.90|0.10|0.01|N|O|1997-07-28|1997-08-22|1997-08-22|NONE|FOB|nto beans cajole car|
-5157|49|8|7|12|11388.48|0.10|0.08|N|O|1997-10-19|1997-08-07|1997-10-26|NONE|FOB|es. busily |
-5158|45|4|1|43|40636.72|0.10|0.04|N|O|1997-04-10|1997-03-06|1997-04-15|DELIVER IN PERSON|AIR|nusual platelets. slyly even foxes cajole |
-5158|85|6|2|18|17731.44|0.04|0.04|N|O|1997-04-30|1997-03-28|1997-05-12|COLLECT COD|REG AIR|hely regular pa|
-5158|142|9|3|41|42727.74|0.05|0.05|N|O|1997-02-25|1997-03-19|1997-03-03|COLLECT COD|AIR|deposits. quickly special |
-5158|131|7|4|49|50525.37|0.05|0.01|N|O|1997-04-10|1997-03-21|1997-04-30|NONE|REG AIR|r requests sleep q|
-5158|119|9|5|20|20382.20|0.01|0.04|N|O|1997-02-03|1997-02-20|1997-02-08|TAKE BACK RETURN|AIR|latelets use accordin|
-5158|88|9|6|39|38535.12|0.08|0.04|N|O|1997-05-15|1997-04-04|1997-06-02|DELIVER IN PERSON|FOB|lithely fina|
-5158|91|5|7|38|37661.42|0.10|0.05|N|O|1997-05-09|1997-03-03|1997-06-04|NONE|SHIP|uffily regular ac|
-5159|124|7|1|39|39940.68|0.06|0.07|N|O|1996-12-17|1996-12-08|1997-01-10|COLLECT COD|MAIL|re furiously after the pending dolphin|
-5159|17|1|2|46|42182.46|0.01|0.01|N|O|1996-12-15|1996-12-07|1996-12-30|DELIVER IN PERSON|SHIP|s kindle slyly carefully regular|
-5159|152|4|3|22|23147.30|0.01|0.02|N|O|1996-11-06|1996-11-04|1996-11-15|TAKE BACK RETURN|SHIP|he furiously sile|
-5159|52|3|4|5|4760.25|0.10|0.00|N|O|1996-11-25|1996-12-19|1996-12-25|TAKE BACK RETURN|FOB|nal deposits. pending, ironic ideas grow|
-5159|198|10|5|36|39534.84|0.06|0.01|N|O|1997-01-24|1996-11-07|1997-02-08|NONE|REG AIR|packages wake.|
-5184|153|8|1|33|34753.95|0.07|0.04|N|O|1998-08-17|1998-10-16|1998-08-24|TAKE BACK RETURN|AIR|posits. carefully express asympto|
-5184|16|6|2|47|43052.47|0.05|0.01|N|O|1998-11-02|1998-08-19|1998-11-07|COLLECT COD|TRUCK|se. carefully express pinto beans x|
-5184|88|9|3|39|38535.12|0.03|0.06|N|O|1998-10-27|1998-10-17|1998-11-19|DELIVER IN PERSON|FOB|es above the care|
-5184|176|7|4|26|27980.42|0.05|0.08|N|O|1998-11-11|1998-08-26|1998-12-01|TAKE BACK RETURN|TRUCK| packages are|
-5184|124|9|5|19|19458.28|0.06|0.03|N|O|1998-11-15|1998-10-12|1998-11-21|COLLECT COD|REG AIR|refully express platelets sleep carefull|
-5184|80|9|6|49|48023.92|0.02|0.00|N|O|1998-09-18|1998-08-28|1998-10-14|COLLECT COD|FOB|thlessly closely even reque|
-5185|197|1|1|37|40596.03|0.00|0.04|N|O|1997-08-08|1997-09-08|1997-08-14|COLLECT COD|SHIP|gainst the courts dazzle care|
-5185|25|8|2|32|29600.64|0.06|0.00|N|O|1997-08-17|1997-09-30|1997-08-24|TAKE BACK RETURN|REG AIR|ackages. slyly even requests|
-5185|196|9|3|41|44943.79|0.00|0.05|N|O|1997-10-15|1997-10-11|1997-11-02|COLLECT COD|REG AIR|ly blithe deposits. furi|
-5185|96|7|4|30|29882.70|0.09|0.04|N|O|1997-10-17|1997-09-16|1997-10-23|TAKE BACK RETURN|SHIP|ress packages are furiously|
-5185|128|9|5|8|8224.96|0.04|0.00|N|O|1997-08-30|1997-09-02|1997-09-22|COLLECT COD|REG AIR|sts around the slyly perma|
-5185|146|9|6|50|52307.00|0.03|0.04|N|O|1997-10-15|1997-10-19|1997-11-06|TAKE BACK RETURN|FOB|final platelets. ideas sleep careful|
-5186|55|10|1|38|36291.90|0.06|0.02|N|O|1996-11-23|1996-09-21|1996-12-11|DELIVER IN PERSON|MAIL|y ruthless foxes. fluffily |
-5186|91|2|2|31|30723.79|0.09|0.03|N|O|1996-10-19|1996-09-26|1996-10-25|TAKE BACK RETURN|REG AIR| accounts use furiously slyly spe|
-5186|89|10|3|26|25716.08|0.03|0.02|N|O|1996-08-08|1996-10-05|1996-08-21|DELIVER IN PERSON|FOB|capades. accounts sublate. pinto|
-5186|90|1|4|8|7920.72|0.10|0.05|N|O|1996-09-23|1996-09-29|1996-09-30|COLLECT COD|RAIL|y regular notornis k|
-5186|18|2|5|28|25704.28|0.09|0.03|N|O|1996-10-05|1996-10-27|1996-10-19|TAKE BACK RETURN|RAIL|al decoys. blit|
-5186|82|3|6|35|34372.80|0.00|0.05|N|O|1996-10-20|1996-10-12|1996-11-12|TAKE BACK RETURN|RAIL|sly silent pack|
-5186|198|10|7|44|48320.36|0.00|0.08|N|O|1996-09-23|1996-10-14|1996-10-01|NONE|TRUCK|old, final accounts cajole sl|
-5187|11|1|1|49|44639.49|0.04|0.06|N|O|1997-10-20|1997-10-12|1997-10-26|DELIVER IN PERSON|AIR|l, regular platelets instead of the foxes w|
-5187|83|4|2|1|983.08|0.10|0.08|N|O|1997-08-08|1997-08-24|1997-08-22|DELIVER IN PERSON|REG AIR|aggle never bold |
-5188|118|2|1|18|18325.98|0.04|0.03|N|O|1995-06-19|1995-05-19|1995-06-25|DELIVER IN PERSON|AIR|p according to the sometimes regu|
-5188|194|8|2|36|39390.84|0.04|0.02|A|F|1995-03-09|1995-05-16|1995-03-19|NONE|TRUCK|packages? blithely s|
-5188|148|1|3|9|9433.26|0.06|0.08|A|F|1995-05-09|1995-05-22|1995-05-19|TAKE BACK RETURN|REG AIR|r attainments are across the |
-5189|138|9|1|44|45677.72|0.02|0.06|A|F|1994-01-13|1994-02-07|1994-01-21|DELIVER IN PERSON|MAIL|y finally pendin|
-5189|16|3|2|38|34808.38|0.06|0.00|A|F|1994-03-26|1994-01-28|1994-04-20|DELIVER IN PERSON|REG AIR|ideas. idle, final deposits de|
-5189|110|5|3|4|4040.44|0.09|0.02|A|F|1993-12-21|1994-02-23|1994-01-09|DELIVER IN PERSON|REG AIR|. blithely exp|
-5189|94|7|4|49|48710.41|0.05|0.01|R|F|1994-01-22|1994-01-19|1994-02-04|TAKE BACK RETURN|SHIP| requests |
-5189|123|2|5|14|14323.68|0.02|0.03|A|F|1994-01-23|1994-01-05|1994-02-12|DELIVER IN PERSON|REG AIR|unusual packag|
-5189|17|8|6|41|37597.41|0.02|0.06|R|F|1993-12-12|1994-02-05|1994-01-09|DELIVER IN PERSON|RAIL|ial theodolites cajole slyly. slyly unus|
-5190|56|1|1|43|41110.15|0.09|0.06|A|F|1992-08-19|1992-06-10|1992-09-01|DELIVER IN PERSON|FOB|encies use fluffily unusual requests? hoc|
-5190|132|3|2|6|6192.78|0.10|0.08|A|F|1992-08-08|1992-07-14|1992-08-22|COLLECT COD|RAIL|furiously regular pinto beans. furiously i|
-5190|89|10|3|45|44508.60|0.04|0.03|A|F|1992-07-23|1992-06-16|1992-08-04|NONE|FOB|y carefully final ideas. f|
-5191|115|6|1|41|41619.51|0.00|0.08|A|F|1995-02-05|1995-02-27|1995-02-15|DELIVER IN PERSON|AIR|uests! ironic theodolites cajole care|
-5191|168|7|2|40|42726.40|0.02|0.01|A|F|1995-03-31|1995-02-21|1995-04-02|NONE|AIR|nes haggle sometimes. requests eng|
-5191|43|4|3|27|25462.08|0.07|0.05|A|F|1994-12-26|1995-01-24|1995-01-14|DELIVER IN PERSON|RAIL|tructions nag bravely within the re|
-5191|183|4|4|7|7582.26|0.01|0.04|A|F|1995-03-24|1995-01-30|1995-03-30|NONE|RAIL|eposits. express|
-5216|69|10|1|17|16474.02|0.04|0.06|N|O|1997-08-20|1997-11-07|1997-09-14|COLLECT COD|FOB|s according to the accounts bo|
-5217|80|1|1|50|49004.00|0.05|0.02|N|O|1995-12-26|1995-11-21|1996-01-24|DELIVER IN PERSON|MAIL|s. express, express accounts c|
-5217|16|7|2|23|21068.23|0.06|0.07|N|O|1996-01-18|1995-12-24|1996-02-10|COLLECT COD|RAIL|ven ideas. requests amo|
-5217|102|7|3|23|23048.30|0.03|0.02|N|O|1995-11-15|1995-12-17|1995-11-27|DELIVER IN PERSON|FOB|pending packages cajole ne|
-5217|81|2|4|47|46110.76|0.04|0.00|N|O|1995-11-24|1995-12-25|1995-11-25|COLLECT COD|AIR|ronic packages i|
-5218|83|4|1|43|42272.44|0.05|0.04|A|F|1992-08-04|1992-09-12|1992-08-17|DELIVER IN PERSON|SHIP|k theodolites. express, even id|
-5218|125|4|2|33|33828.96|0.06|0.01|R|F|1992-09-16|1992-09-30|1992-09-27|NONE|TRUCK|ronic instructi|
-5219|135|6|1|2|2070.26|0.08|0.00|N|O|1997-06-26|1997-04-29|1997-07-08|TAKE BACK RETURN|FOB| blithely according to the stea|
-5219|119|9|2|20|20382.20|0.05|0.00|N|O|1997-04-20|1997-05-26|1997-05-13|COLLECT COD|FOB|e along the ironic,|
-5220|83|4|1|27|26543.16|0.10|0.04|R|F|1992-09-21|1992-08-29|1992-10-16|DELIVER IN PERSON|RAIL|s cajole blithely furiously iron|
-5221|104|9|1|24|24098.40|0.07|0.03|N|O|1995-10-04|1995-08-11|1995-10-30|COLLECT COD|REG AIR|s pinto beans sleep. sly|
-5221|9|10|2|34|30906.00|0.01|0.05|N|O|1995-09-11|1995-07-17|1995-10-10|COLLECT COD|SHIP|eans. furio|
-5221|180|10|3|16|17282.88|0.04|0.01|N|O|1995-08-29|1995-09-06|1995-09-12|TAKE BACK RETURN|TRUCK|ending request|
-5222|151|3|1|1|1051.15|0.00|0.00|A|F|1994-08-19|1994-07-16|1994-09-08|TAKE BACK RETURN|FOB|idle requests. carefully pending pinto bean|
-5223|45|4|1|24|22680.96|0.00|0.00|A|F|1994-10-03|1994-09-20|1994-10-11|TAKE BACK RETURN|TRUCK|refully bold courts besides the regular,|
-5223|124|9|2|25|25603.00|0.09|0.02|R|F|1994-07-12|1994-08-13|1994-08-01|NONE|FOB|y express ideas impress|
-5223|6|3|3|19|17214.00|0.04|0.01|R|F|1994-10-28|1994-08-26|1994-10-31|COLLECT COD|REG AIR|ntly. furiously even excuses a|
-5223|130|9|4|40|41205.20|0.01|0.04|R|F|1994-10-01|1994-09-18|1994-10-28|COLLECT COD|SHIP|kly pending |
-5248|81|2|1|39|38262.12|0.05|0.03|N|O|1995-08-10|1995-07-04|1995-09-09|TAKE BACK RETURN|MAIL|yly even accounts. spe|
-5248|138|9|2|45|46715.85|0.00|0.06|A|F|1995-05-09|1995-07-12|1995-05-27|DELIVER IN PERSON|FOB|. bold, pending foxes h|
-5249|50|9|1|31|29451.55|0.07|0.03|A|F|1994-11-21|1994-11-19|1994-12-08|NONE|REG AIR|f the excuses. furiously fin|
-5249|31|7|2|44|40965.32|0.05|0.00|A|F|1994-12-28|1994-11-29|1994-12-29|TAKE BACK RETURN|MAIL|ole furiousl|
-5249|32|8|3|13|12116.39|0.09|0.00|R|F|1994-09-27|1994-10-20|1994-10-05|DELIVER IN PERSON|SHIP|ites. finally exp|
-5249|146|3|4|29|30338.06|0.00|0.05|A|F|1994-09-16|1994-11-03|1994-10-06|NONE|TRUCK| players. f|
-5249|158|6|5|12|12697.80|0.01|0.08|R|F|1994-12-28|1994-11-07|1995-01-15|COLLECT COD|MAIL|press depths could have to sleep carefu|
-5250|44|3|1|2|1888.08|0.08|0.04|N|O|1995-08-09|1995-10-10|1995-08-13|COLLECT COD|AIR|its. final pinto|
-5250|192|6|2|27|29489.13|0.10|0.05|N|O|1995-10-24|1995-09-03|1995-11-18|COLLECT COD|TRUCK|l forges are. furiously unusual pin|
-5251|139|10|1|36|37408.68|0.10|0.01|N|O|1995-07-16|1995-07-05|1995-07-28|DELIVER IN PERSON|FOB|slowly! bli|
-5252|141|10|1|13|13534.82|0.02|0.01|N|O|1996-03-02|1996-05-10|1996-03-11|NONE|FOB|boost fluffily across |
-5252|139|5|2|39|40526.07|0.06|0.05|N|O|1996-05-17|1996-04-23|1996-05-23|COLLECT COD|AIR|gular requests.|
-5252|195|9|3|9|9856.71|0.09|0.03|N|O|1996-05-30|1996-05-03|1996-06-26|TAKE BACK RETURN|RAIL|x. slyly special depos|
-5252|87|8|4|48|47379.84|0.01|0.06|N|O|1996-04-17|1996-03-19|1996-05-03|COLLECT COD|AIR|bold requests. furious|
-5252|68|5|5|24|23233.44|0.04|0.05|N|O|1996-05-11|1996-04-17|1996-05-12|COLLECT COD|REG AIR|posits after the fluffi|
-5252|3|10|6|41|37023.00|0.02|0.03|N|O|1996-03-16|1996-04-18|1996-03-17|NONE|TRUCK|ording to the blithely express somas sho|
-5253|31|2|1|35|32586.05|0.02|0.00|N|O|1995-07-23|1995-06-12|1995-08-03|DELIVER IN PERSON|AIR|ven deposits. careful|
-5253|150|7|2|38|39905.70|0.02|0.06|N|O|1995-08-03|1995-06-14|1995-08-27|DELIVER IN PERSON|REG AIR|onic dependencies are furiou|
-5253|14|5|3|9|8226.09|0.03|0.08|N|F|1995-06-08|1995-05-12|1995-06-23|DELIVER IN PERSON|REG AIR|lyly express deposits use furiou|
-5253|166|1|4|25|26654.00|0.04|0.03|A|F|1995-05-21|1995-06-13|1995-06-09|COLLECT COD|TRUCK|urts. even theodoli|
-5254|111|2|1|35|35388.85|0.01|0.07|A|F|1992-07-28|1992-09-05|1992-08-07|COLLECT COD|REG AIR|ntegrate carefully among the pending|
-5254|135|6|2|10|10351.30|0.05|0.04|A|F|1992-11-19|1992-10-20|1992-12-15|COLLECT COD|SHIP| accounts. silent deposit|
-5254|192|5|3|32|34950.08|0.00|0.08|A|F|1992-08-10|1992-09-21|1992-08-16|NONE|RAIL|ts impress closely furi|
-5254|163|2|4|45|47842.20|0.05|0.06|A|F|1992-11-11|1992-09-01|1992-12-07|COLLECT COD|REG AIR| wake. blithely silent excuse|
-5254|29|8|5|23|21367.46|0.02|0.06|A|F|1992-08-16|1992-09-05|1992-09-15|COLLECT COD|RAIL|lyly regular accounts. furiously pendin|
-5254|158|3|6|34|35977.10|0.09|0.02|R|F|1992-08-29|1992-10-16|1992-09-20|TAKE BACK RETURN|RAIL| furiously above the furiously |
-5254|20|7|7|9|8280.18|0.09|0.03|R|F|1992-07-29|1992-10-15|1992-08-20|TAKE BACK RETURN|REG AIR| wake blithely fluff|
-5255|131|7|1|2|2062.26|0.04|0.08|N|O|1996-09-27|1996-10-04|1996-10-04|DELIVER IN PERSON|RAIL|ajole blithely fluf|
-5255|172|10|2|30|32165.10|0.04|0.08|N|O|1996-09-20|1996-08-18|1996-10-09|TAKE BACK RETURN|AIR| to the silent requests cajole b|
-5255|130|3|3|41|42235.33|0.09|0.03|N|O|1996-08-21|1996-09-24|1996-09-05|COLLECT COD|FOB|tect blithely against t|
-5280|97|9|1|16|15953.44|0.02|0.03|N|O|1998-03-29|1998-01-28|1998-04-03|TAKE BACK RETURN|SHIP| foxes are furiously. theodoli|
-5280|176|5|2|46|49503.82|0.01|0.06|N|O|1998-01-04|1998-01-21|1998-02-03|TAKE BACK RETURN|FOB|efully carefully pen|
-5281|114|1|1|37|37522.07|0.05|0.02|N|O|1995-11-10|1996-01-31|1995-11-22|DELIVER IN PERSON|MAIL|ronic dependencies. fluffily final p|
-5281|105|2|2|38|38193.80|0.00|0.05|N|O|1996-02-17|1995-12-19|1996-02-29|NONE|RAIL|n asymptotes could wake about th|
-5281|127|2|3|23|23623.76|0.08|0.00|N|O|1995-12-30|1996-01-26|1996-01-23|COLLECT COD|REG AIR|. final theodolites cajole. ironic p|
-5281|87|8|4|48|47379.84|0.03|0.05|N|O|1996-01-31|1995-12-23|1996-02-08|TAKE BACK RETURN|REG AIR|ss the furiously |
-5281|43|10|5|33|31120.32|0.01|0.07|N|O|1996-03-01|1995-12-28|1996-03-05|COLLECT COD|RAIL|ly brave foxes. bold deposits above the |
-5282|118|2|1|36|36651.96|0.05|0.02|N|O|1998-05-20|1998-04-10|1998-06-14|DELIVER IN PERSON|TRUCK|re slyly accor|
-5282|52|10|2|32|30465.60|0.02|0.05|N|O|1998-03-01|1998-03-31|1998-03-03|NONE|FOB|onic deposits; furiou|
-5282|58|10|3|28|26825.40|0.03|0.06|N|O|1998-05-06|1998-04-24|1998-05-30|COLLECT COD|SHIP|fily final instruc|
-5283|5|2|1|20|18100.00|0.05|0.02|A|F|1994-09-16|1994-08-03|1994-10-15|TAKE BACK RETURN|TRUCK|al deposits? blithely even pinto beans|
-5283|186|7|2|1|1086.18|0.10|0.08|R|F|1994-06-20|1994-08-03|1994-07-01|COLLECT COD|FOB|deposits within the furio|
-5284|173|1|1|16|17170.72|0.04|0.02|N|O|1995-08-17|1995-08-23|1995-08-26|DELIVER IN PERSON|TRUCK|unts detect furiously even d|
-5284|44|7|2|24|22656.96|0.03|0.08|N|O|1995-10-21|1995-08-23|1995-10-27|COLLECT COD|AIR| haggle according |
-5285|193|5|1|31|33888.89|0.08|0.00|A|F|1994-04-17|1994-04-05|1994-05-09|NONE|RAIL|ubt. quickly blithe |
-5285|31|2|2|37|34448.11|0.09|0.02|R|F|1994-02-26|1994-02-18|1994-03-27|NONE|SHIP|uffily regu|
-5285|34|10|3|24|22416.72|0.02|0.04|A|F|1994-04-19|1994-04-03|1994-04-25|DELIVER IN PERSON|FOB|ess packages. quick, even deposits snooze b|
-5285|43|2|4|12|11316.48|0.05|0.06|A|F|1994-04-22|1994-04-07|1994-05-19|NONE|AIR| deposits-- quickly bold requests hag|
-5285|71|2|5|1|971.07|0.03|0.05|R|F|1994-03-14|1994-02-20|1994-04-10|COLLECT COD|TRUCK|e fluffily about the slyly special pa|
-5285|146|7|6|1|1046.14|0.06|0.01|R|F|1994-02-08|1994-04-02|1994-02-17|COLLECT COD|SHIP|ing deposits integra|
-5286|199|1|1|1|1099.19|0.01|0.07|N|O|1997-11-25|1997-11-07|1997-12-17|COLLECT COD|REG AIR|ly! furiously final pack|
-5286|97|1|2|7|6979.63|0.06|0.05|N|O|1997-10-23|1997-12-10|1997-11-20|TAKE BACK RETURN|RAIL|y express instructions sleep carefull|
-5286|16|10|3|3|2748.03|0.06|0.08|N|O|1997-12-04|1997-11-06|1997-12-09|COLLECT COD|MAIL|re fluffily|
-5286|40|6|4|6|5640.24|0.04|0.03|N|O|1997-10-15|1997-12-05|1997-11-12|COLLECT COD|RAIL|y special a|
-5286|186|7|5|38|41274.84|0.07|0.05|N|O|1997-11-29|1997-11-26|1997-12-15|TAKE BACK RETURN|SHIP|fluffily. special, ironic deposit|
-5286|138|9|6|24|24915.12|0.08|0.00|N|O|1997-09-27|1997-12-21|1997-09-30|COLLECT COD|TRUCK|s. express foxes of the|
-5287|39|10|1|32|30048.96|0.01|0.01|A|F|1994-01-29|1994-01-27|1994-02-08|NONE|RAIL|heodolites haggle caref|
-5312|61|6|1|27|25948.62|0.04|0.08|A|F|1995-04-20|1995-04-09|1995-04-25|COLLECT COD|SHIP|tructions cajol|
-5312|2|5|2|43|38786.00|0.05|0.08|A|F|1995-03-24|1995-05-07|1995-03-28|NONE|TRUCK|ly unusual|
-5313|17|1|1|34|31178.34|0.10|0.02|N|O|1997-08-07|1997-08-12|1997-08-24|DELIVER IN PERSON|FOB|ccording to the blithely final account|
-5313|13|10|2|17|15521.17|0.00|0.02|N|O|1997-09-02|1997-08-20|1997-09-07|NONE|SHIP|uests wake|
-5313|112|9|3|47|47569.17|0.06|0.08|N|O|1997-08-12|1997-08-18|1997-08-13|TAKE BACK RETURN|RAIL|pinto beans across the |
-5313|197|1|4|16|17555.04|0.08|0.00|N|O|1997-10-04|1997-08-02|1997-10-25|COLLECT COD|REG AIR|ckages wake carefully aga|
-5313|72|1|5|30|29162.10|0.06|0.08|N|O|1997-06-27|1997-07-18|1997-06-30|NONE|SHIP|nding packages use|
-5313|120|7|6|21|21422.52|0.05|0.05|N|O|1997-09-26|1997-09-02|1997-10-18|COLLECT COD|FOB|he blithely regular packages. quickly|
-5314|118|9|1|10|10181.10|0.07|0.05|N|O|1995-09-26|1995-07-24|1995-10-19|DELIVER IN PERSON|RAIL|latelets haggle final|
-5314|125|6|2|16|16401.92|0.00|0.04|N|O|1995-09-25|1995-07-08|1995-10-17|COLLECT COD|SHIP|hely unusual packages acc|
-5315|35|1|1|12|11220.36|0.08|0.06|R|F|1992-12-18|1993-01-16|1993-01-10|NONE|AIR|ccounts. furiously ironi|
-5315|179|10|2|39|42087.63|0.00|0.06|R|F|1992-11-09|1992-12-29|1992-12-07|NONE|SHIP|ly alongside of the ca|
-5316|108|1|1|29|29234.90|0.10|0.05|R|F|1994-03-28|1994-04-29|1994-04-09|DELIVER IN PERSON|REG AIR|ckly unusual foxes bo|
-5316|136|7|2|31|32120.03|0.00|0.08|A|F|1994-04-01|1994-04-21|1994-04-12|DELIVER IN PERSON|MAIL|s. deposits cajole around t|
-5317|82|3|1|29|28480.32|0.02|0.06|A|F|1994-11-28|1994-11-27|1994-12-16|COLLECT COD|FOB|oss the carefull|
-5317|171|2|2|18|19281.06|0.06|0.06|A|F|1995-01-02|1994-10-29|1995-01-16|NONE|RAIL|g to the blithely p|
-5317|120|4|3|37|37744.44|0.09|0.00|R|F|1994-09-15|1994-10-24|1994-09-23|NONE|TRUCK|totes nag theodolites. pend|
-5317|67|6|4|50|48353.00|0.09|0.01|A|F|1994-10-17|1994-10-25|1994-11-03|NONE|REG AIR|cajole furiously. accounts use quick|
-5317|95|8|5|19|18906.71|0.07|0.07|R|F|1994-12-15|1994-10-18|1994-12-27|NONE|MAIL|onic requests boost bli|
-5317|115|9|6|48|48725.28|0.01|0.03|A|F|1994-09-19|1994-11-25|1994-10-03|COLLECT COD|MAIL|ts about the packages cajole furio|
-5317|169|4|7|30|32074.80|0.07|0.07|A|F|1994-10-13|1994-10-31|1994-10-28|NONE|AIR|cross the attainments. slyly |
-5318|61|6|1|13|12493.78|0.10|0.04|R|F|1993-07-15|1993-06-25|1993-08-13|COLLECT COD|REG AIR|ly silent ideas. ideas haggle among the |
-5318|180|1|2|26|28084.68|0.00|0.04|R|F|1993-07-07|1993-05-23|1993-07-28|COLLECT COD|SHIP|al, express foxes. bold requests sleep alwa|
-5318|7|10|3|37|33559.00|0.07|0.05|A|F|1993-07-09|1993-06-22|1993-07-21|COLLECT COD|SHIP|ickly final deposi|
-5318|142|5|4|31|32306.34|0.01|0.04|R|F|1993-07-28|1993-05-06|1993-08-06|DELIVER IN PERSON|REG AIR|requests must sleep slyly quickly|
-5319|150|9|1|31|32554.65|0.04|0.07|N|O|1996-03-26|1996-03-07|1996-04-24|COLLECT COD|TRUCK|d carefully about the courts. fluffily spe|
-5319|44|3|2|39|36817.56|0.09|0.05|N|O|1996-05-17|1996-03-14|1996-06-11|NONE|TRUCK|unts. furiously silent|
-5344|19|3|1|6|5514.06|0.07|0.01|N|O|1998-08-04|1998-09-03|1998-08-11|TAKE BACK RETURN|REG AIR|ithely about the pending plate|
-5344|79|9|2|37|36225.59|0.03|0.07|N|O|1998-10-09|1998-07-26|1998-11-08|NONE|TRUCK|thely express packages|
-5344|67|8|3|26|25143.56|0.02|0.06|N|O|1998-08-27|1998-08-22|1998-09-24|NONE|AIR|furiously pending, silent multipliers.|
-5344|39|10|4|21|19719.63|0.03|0.01|N|O|1998-08-31|1998-09-06|1998-09-02|NONE|MAIL|xes. furiously even pinto beans sleep f|
-5345|83|4|1|3|2949.24|0.05|0.01|N|O|1997-12-10|1997-10-03|1998-01-05|COLLECT COD|SHIP|ites wake carefully unusual |
-5345|146|5|2|2|2092.28|0.10|0.02|N|O|1997-11-18|1997-10-12|1997-12-08|NONE|MAIL|ut the slyly specia|
-5345|192|5|3|46|50240.74|0.06|0.04|N|O|1997-10-06|1997-09-27|1997-10-18|COLLECT COD|REG AIR|slyly special deposits. fin|
-5345|114|4|4|37|37522.07|0.01|0.01|N|O|1997-11-01|1997-10-09|1997-11-26|DELIVER IN PERSON|AIR| along the ironically fina|
-5345|34|10|5|22|20548.66|0.02|0.02|N|O|1997-08-27|1997-11-22|1997-09-10|TAKE BACK RETURN|MAIL|leep slyly regular fox|
-5346|149|8|1|21|22031.94|0.07|0.08|R|F|1994-03-11|1994-03-07|1994-04-04|DELIVER IN PERSON|RAIL|integrate blithely a|
-5346|192|5|2|13|14198.47|0.04|0.04|A|F|1994-02-03|1994-02-05|1994-02-09|COLLECT COD|TRUCK|y. fluffily bold accounts grow. furio|
-5346|109|2|3|7|7063.70|0.08|0.05|A|F|1994-01-30|1994-03-26|1994-01-31|DELIVER IN PERSON|SHIP|equests use carefully care|
-5346|162|3|4|35|37175.60|0.06|0.02|A|F|1994-02-09|1994-03-01|1994-02-14|TAKE BACK RETURN|FOB|nic excuses cajole entic|
-5346|121|2|5|25|25528.00|0.05|0.06|R|F|1993-12-28|1994-03-19|1994-01-09|TAKE BACK RETURN|REG AIR|he ironic ideas are boldly slyly ironi|
-5346|33|9|6|6|5598.18|0.08|0.04|R|F|1994-03-01|1994-02-04|1994-03-09|NONE|REG AIR|escapades sleep furiously beside the |
-5346|80|9|7|41|40183.28|0.05|0.04|R|F|1994-01-10|1994-02-15|1994-01-26|TAKE BACK RETURN|REG AIR|fully close instructi|
-5347|83|4|1|48|47187.84|0.04|0.08|A|F|1995-02-25|1995-04-26|1995-03-26|NONE|SHIP|equests are slyly. blithely regu|
-5347|124|3|2|47|48133.64|0.02|0.01|N|F|1995-06-05|1995-03-29|1995-06-28|COLLECT COD|AIR|across the slyly bol|
-5347|23|2|3|34|31382.68|0.06|0.00|A|F|1995-05-18|1995-04-04|1995-06-02|DELIVER IN PERSON|SHIP| pending deposits. fluffily regular senti|
-5347|40|1|4|4|3760.16|0.06|0.03|A|F|1995-03-24|1995-04-03|1995-04-01|NONE|SHIP|ldly pending asymptotes ki|
-5347|131|2|5|21|21653.73|0.08|0.04|R|F|1995-04-01|1995-04-16|1995-04-23|NONE|SHIP|sly slyly final requests. careful|
-5347|56|1|6|6|5736.30|0.06|0.02|A|F|1995-04-11|1995-04-14|1995-05-02|NONE|TRUCK|lly unusual ideas. sl|
-5347|50|7|7|18|17100.90|0.01|0.01|N|F|1995-05-24|1995-05-07|1995-06-19|NONE|FOB|he ideas among the requests |
-5348|69|4|1|21|20350.26|0.10|0.04|N|O|1997-12-11|1997-12-24|1997-12-28|NONE|REG AIR| regular theodolites haggle car|
-5348|156|1|2|31|32740.65|0.07|0.02|N|O|1998-01-04|1997-12-09|1998-01-17|COLLECT COD|RAIL|are finally|
-5348|17|8|3|16|14672.16|0.06|0.08|N|O|1998-02-28|1997-12-25|1998-03-12|DELIVER IN PERSON|AIR|uriously thin pinto beans |
-5348|20|4|4|7|6440.14|0.04|0.00|N|O|1998-01-29|1997-12-20|1998-02-10|DELIVER IN PERSON|RAIL|even foxes. epitap|
-5348|2|5|5|37|33374.00|0.06|0.07|N|O|1997-12-01|1998-02-02|1997-12-07|NONE|FOB|y according to the carefully pending acco|
-5348|143|10|6|14|14603.96|0.06|0.05|N|O|1997-12-16|1998-01-12|1997-12-24|COLLECT COD|FOB|en pinto beans. somas cajo|
-5349|156|7|1|19|20066.85|0.06|0.01|N|O|1996-09-11|1996-11-18|1996-09-22|TAKE BACK RETURN|FOB|endencies use whithout the special |
-5349|168|3|2|14|14954.24|0.06|0.00|N|O|1996-11-07|1996-11-17|1996-11-20|TAKE BACK RETURN|TRUCK|fully regular |
-5349|4|5|3|6|5424.00|0.10|0.01|N|O|1996-12-30|1996-10-08|1997-01-01|DELIVER IN PERSON|MAIL|inal deposits affix carefully|
-5350|122|3|1|19|19420.28|0.02|0.06|R|F|1993-10-20|1993-11-15|1993-11-17|DELIVER IN PERSON|RAIL|romise slyly alongsi|
-5350|191|4|2|44|48012.36|0.04|0.06|R|F|1993-10-30|1993-11-23|1993-11-25|DELIVER IN PERSON|AIR|p above the ironic, pending dep|
-5350|54|9|3|12|11448.60|0.10|0.04|A|F|1994-01-30|1993-11-21|1994-02-15|COLLECT COD|REG AIR| cajole. even instructions haggle. blithe|
-5350|155|10|4|7|7386.05|0.08|0.00|R|F|1993-10-19|1993-12-28|1993-11-04|NONE|SHIP|alongside of th|
-5350|129|10|5|27|27786.24|0.07|0.04|A|F|1993-11-25|1993-12-27|1993-12-08|COLLECT COD|TRUCK|es. blithe theodolites haggl|
-5351|7|2|1|36|32652.00|0.06|0.05|N|O|1998-07-27|1998-07-06|1998-08-25|NONE|MAIL|ss the ironic, regular asymptotes cajole |
-5351|33|9|2|47|43852.41|0.04|0.01|N|O|1998-05-30|1998-08-08|1998-06-23|DELIVER IN PERSON|REG AIR|s. grouches cajole. sile|
-5351|106|3|3|2|2012.20|0.00|0.02|N|O|1998-05-12|1998-07-15|1998-05-24|NONE|TRUCK|g accounts wake furiously slyly even dolph|
-5376|61|6|1|42|40364.52|0.10|0.04|A|F|1994-09-20|1994-08-30|1994-09-29|TAKE BACK RETURN|REG AIR|y even asymptotes. courts are unusual pa|
-5376|91|4|2|44|43607.96|0.05|0.02|R|F|1994-08-30|1994-08-05|1994-09-07|COLLECT COD|AIR|ithe packages detect final theodolites. f|
-5376|65|6|3|18|17371.08|0.02|0.08|A|F|1994-10-29|1994-09-13|1994-11-01|COLLECT COD|MAIL| accounts boo|
-5377|79|8|1|40|39162.80|0.00|0.04|N|O|1997-05-21|1997-06-15|1997-05-26|DELIVER IN PERSON|AIR|lithely ironic theodolites are care|
-5377|30|3|2|17|15810.51|0.09|0.00|N|O|1997-07-05|1997-05-25|1997-07-22|COLLECT COD|RAIL|dencies. carefully regular re|
-5377|103|8|3|23|23071.30|0.07|0.08|N|O|1997-06-26|1997-07-13|1997-07-08|COLLECT COD|RAIL| silent wa|
-5377|104|7|4|12|12049.20|0.05|0.07|N|O|1997-05-08|1997-06-15|1997-05-15|DELIVER IN PERSON|MAIL| ironic, final|
-5377|173|3|5|27|28975.59|0.08|0.02|N|O|1997-07-11|1997-06-12|1997-08-08|TAKE BACK RETURN|MAIL|press theodolites. e|
-5378|155|3|1|39|41150.85|0.07|0.04|R|F|1992-11-25|1992-12-22|1992-12-02|COLLECT COD|AIR|ts are quickly around the|
-5378|62|9|2|46|44254.76|0.01|0.04|A|F|1993-02-17|1993-01-20|1993-02-26|COLLECT COD|REG AIR|into beans sleep. fu|
-5378|10|7|3|18|16380.18|0.02|0.03|R|F|1992-11-25|1992-12-21|1992-12-10|COLLECT COD|FOB|onic accounts was bold, |
-5379|199|1|1|40|43967.60|0.01|0.08|N|O|1995-10-01|1995-10-19|1995-10-30|COLLECT COD|MAIL|carefully final accounts haggle blithely. |
-5380|182|3|1|14|15150.52|0.10|0.01|N|O|1997-12-18|1997-12-03|1998-01-06|NONE|RAIL|final platelets.|
-5380|147|6|2|10|10471.40|0.09|0.05|N|O|1997-11-24|1998-01-10|1997-12-21|COLLECT COD|AIR|refully pending deposits. special, even t|
-5380|184|5|3|40|43367.20|0.02|0.08|N|O|1997-12-30|1997-11-27|1998-01-09|DELIVER IN PERSON|SHIP|ar asymptotes. blithely r|
-5380|66|3|4|6|5796.36|0.09|0.05|N|O|1997-11-15|1998-01-08|1997-12-11|COLLECT COD|MAIL|es. fluffily brave accounts across t|
-5380|107|8|5|48|48340.80|0.04|0.03|N|O|1997-12-01|1997-12-28|1997-12-05|DELIVER IN PERSON|FOB|encies haggle car|
-5381|188|9|1|37|40262.66|0.04|0.01|A|F|1993-04-08|1993-04-07|1993-04-12|DELIVER IN PERSON|SHIP|ly final deposits print carefully. unusua|
-5381|111|8|2|48|48533.28|0.04|0.03|R|F|1993-04-22|1993-04-17|1993-05-14|TAKE BACK RETURN|FOB|luffily spec|
-5381|192|3|3|13|14198.47|0.08|0.03|R|F|1993-05-09|1993-04-26|1993-05-25|NONE|FOB|s after the f|
-5381|168|3|4|17|18158.72|0.05|0.05|R|F|1993-05-25|1993-04-14|1993-06-17|NONE|MAIL|ckly final requests haggle qui|
-5381|63|8|5|49|47189.94|0.06|0.02|R|F|1993-05-08|1993-04-07|1993-06-03|NONE|FOB| accounts. regular, regula|
-5381|132|3|6|33|34060.29|0.10|0.00|A|F|1993-04-09|1993-04-03|1993-04-22|DELIVER IN PERSON|SHIP|ly special deposits |
-5381|44|3|7|31|29265.24|0.04|0.05|A|F|1993-04-10|1993-03-22|1993-04-13|TAKE BACK RETURN|MAIL|the carefully expre|
-5382|153|8|1|34|35807.10|0.03|0.03|R|F|1992-02-22|1992-02-18|1992-03-02|DELIVER IN PERSON|FOB|gular accounts. even accounts integrate|
-5382|55|3|2|13|12415.65|0.09|0.06|A|F|1992-01-16|1992-03-12|1992-02-06|NONE|MAIL|eodolites. final foxes |
-5382|149|10|3|3|3147.42|0.10|0.06|A|F|1992-03-22|1992-03-06|1992-04-19|TAKE BACK RETURN|AIR|efully unusua|
-5382|62|9|4|20|19241.20|0.08|0.02|A|F|1992-03-26|1992-02-17|1992-04-15|DELIVER IN PERSON|FOB|carefully regular accounts. slyly ev|
-5382|177|8|5|14|15080.38|0.02|0.02|A|F|1992-04-05|1992-04-05|1992-05-04|TAKE BACK RETURN|FOB| brave platelets. ev|
-5382|180|9|6|6|6481.08|0.02|0.01|A|F|1992-03-07|1992-04-02|1992-03-18|TAKE BACK RETURN|FOB|y final foxes by the sl|
-5382|105|2|7|48|48244.80|0.05|0.05|A|F|1992-02-14|1992-03-19|1992-02-25|DELIVER IN PERSON|REG AIR|nts integrate quickly ca|
-5383|96|7|1|12|11953.08|0.04|0.00|N|O|1995-07-02|1995-08-16|1995-08-01|TAKE BACK RETURN|AIR|y regular instructi|
-5408|102|7|1|2|2004.20|0.07|0.04|R|F|1992-08-21|1992-10-03|1992-08-28|DELIVER IN PERSON|MAIL|cross the dolphins h|
-5408|118|2|2|35|35633.85|0.04|0.05|R|F|1992-10-02|1992-10-17|1992-10-13|TAKE BACK RETURN|AIR|thely ironic requests alongside of the sl|
-5408|76|6|3|34|33186.38|0.10|0.02|A|F|1992-10-22|1992-08-25|1992-11-16|DELIVER IN PERSON|TRUCK|requests detect blithely a|
-5408|54|2|4|48|45794.40|0.04|0.05|R|F|1992-09-30|1992-08-27|1992-10-27|NONE|TRUCK|. furiously regular |
-5408|183|4|5|8|8665.44|0.03|0.07|A|F|1992-10-24|1992-09-06|1992-11-03|NONE|AIR|thely regular hocke|
-5409|194|8|1|27|29543.13|0.01|0.02|A|F|1992-02-14|1992-03-18|1992-02-23|DELIVER IN PERSON|AIR|eodolites |
-5409|104|5|2|38|38155.80|0.01|0.02|A|F|1992-03-17|1992-03-29|1992-04-13|NONE|REG AIR|onic, regular accounts! blithely even|
-5409|141|10|3|17|17699.38|0.07|0.00|A|F|1992-01-13|1992-04-05|1992-01-20|DELIVER IN PERSON|AIR|cross the sil|
-5409|1|8|4|9|8109.00|0.07|0.03|A|F|1992-02-15|1992-04-02|1992-02-28|DELIVER IN PERSON|AIR| unusual, unusual reques|
-5409|159|10|5|37|39188.55|0.06|0.04|R|F|1992-05-07|1992-02-10|1992-05-20|DELIVER IN PERSON|FOB|ously regular packages. packages|
-5409|64|3|6|14|13496.84|0.03|0.08|R|F|1992-02-14|1992-03-26|1992-02-29|DELIVER IN PERSON|AIR|osits cajole furiously|
-5410|117|8|1|48|48821.28|0.04|0.08|N|O|1998-09-27|1998-09-11|1998-10-01|TAKE BACK RETURN|AIR| about the slyly even courts. quickly regul|
-5410|105|8|2|41|41209.10|0.01|0.07|N|O|1998-08-25|1998-10-20|1998-09-01|DELIVER IN PERSON|REG AIR|sly. slyly ironic theodolites|
-5410|29|4|3|40|37160.80|0.07|0.08|N|O|1998-11-17|1998-10-02|1998-11-27|COLLECT COD|TRUCK|iously special accounts are along th|
-5410|50|7|4|8|7600.40|0.05|0.04|N|O|1998-09-12|1998-10-22|1998-09-22|DELIVER IN PERSON|TRUCK|ly. fluffily ironic platelets alon|
-5411|96|9|1|17|16933.53|0.05|0.01|N|O|1997-07-22|1997-07-14|1997-07-30|TAKE BACK RETURN|REG AIR| slyly slyly even deposits. carefully b|
-5411|113|7|2|10|10131.10|0.08|0.01|N|O|1997-07-19|1997-08-04|1997-07-26|TAKE BACK RETURN|MAIL|nding, special foxes unw|
-5411|56|7|3|5|4780.25|0.10|0.01|N|O|1997-09-12|1997-08-03|1997-09-23|DELIVER IN PERSON|FOB| bold, ironic theodo|
-5411|129|8|4|15|15436.80|0.08|0.05|N|O|1997-07-01|1997-07-15|1997-07-07|COLLECT COD|RAIL|attainments sleep slyly ironic|
-5411|4|5|5|19|17176.00|0.05|0.08|N|O|1997-05-25|1997-07-30|1997-06-19|COLLECT COD|RAIL|ial accounts according to the f|
-5412|54|9|1|2|1908.10|0.03|0.07|N|O|1998-04-14|1998-04-02|1998-04-19|TAKE BACK RETURN|REG AIR| sleep above the furiou|
-5412|66|1|2|48|46370.88|0.01|0.08|N|O|1998-02-22|1998-03-28|1998-03-18|TAKE BACK RETURN|TRUCK|s. slyly final packages cajole blithe|
-5412|74|2|3|31|30196.17|0.05|0.08|N|O|1998-03-23|1998-04-17|1998-04-10|NONE|SHIP|t the accounts detect slyly about the c|
-5412|97|10|4|26|25924.34|0.02|0.08|N|O|1998-01-22|1998-04-19|1998-02-17|NONE|AIR| the blithel|
-5413|126|7|1|48|49253.76|0.02|0.08|N|O|1998-01-25|1997-11-20|1998-02-22|COLLECT COD|SHIP| theodolites. furiously ironic instr|
-5413|142|9|2|37|38559.18|0.02|0.07|N|O|1997-12-08|1998-01-01|1997-12-13|COLLECT COD|TRUCK|usly bold instructions affix idly unusual, |
-5413|111|8|3|36|36399.96|0.02|0.07|N|O|1997-12-12|1997-11-28|1997-12-25|NONE|TRUCK|ular, regular ideas mold! final requests|
-5413|110|3|4|22|22222.42|0.02|0.08|N|O|1997-11-10|1997-11-24|1997-11-22|DELIVER IN PERSON|FOB|posits. quick|
-5413|189|10|5|5|5445.90|0.10|0.01|N|O|1997-11-28|1997-11-24|1997-12-05|NONE|RAIL|tes are al|
-5413|190|1|6|32|34886.08|0.02|0.03|N|O|1997-10-28|1998-01-03|1997-11-10|NONE|TRUCK|refully special package|
-5413|31|7|7|32|29792.96|0.06|0.07|N|O|1997-10-23|1997-12-09|1997-11-17|NONE|TRUCK|he quickly ironic ideas. slyly ironic ide|
-5414|68|9|1|40|38722.40|0.07|0.06|R|F|1993-04-07|1993-05-18|1993-04-23|COLLECT COD|AIR|ts are evenly across|
-5414|123|8|2|48|49109.76|0.06|0.07|R|F|1993-06-08|1993-05-14|1993-07-06|DELIVER IN PERSON|FOB| silent dolphins; fluffily regular tithe|
-5414|35|1|3|23|21505.69|0.10|0.00|A|F|1993-07-22|1993-05-26|1993-08-08|COLLECT COD|MAIL|e bold, express dolphins. spec|
-5414|133|4|4|15|15496.95|0.06|0.08|R|F|1993-05-18|1993-06-09|1993-05-27|DELIVER IN PERSON|REG AIR|e slyly about the carefully regula|
-5414|9|2|5|19|17271.00|0.01|0.05|R|F|1993-04-06|1993-05-12|1993-05-02|DELIVER IN PERSON|RAIL|ffily silent theodolites na|
-5414|98|1|6|28|27946.52|0.10|0.05|A|F|1993-03-27|1993-06-04|1993-04-07|TAKE BACK RETURN|SHIP|ts sleep sl|
-5415|102|5|1|44|44092.40|0.00|0.06|A|F|1992-08-19|1992-10-26|1992-09-17|TAKE BACK RETURN|TRUCK| requests. unusual theodolites sleep agains|
-5415|31|7|2|16|14896.48|0.08|0.00|A|F|1992-09-29|1992-09-12|1992-10-10|NONE|AIR|pinto beans haggle furiously|
-5415|102|7|3|6|6012.60|0.10|0.03|A|F|1992-10-28|1992-09-09|1992-11-20|COLLECT COD|RAIL|ges around the fur|
-5415|16|7|4|43|39388.43|0.01|0.02|R|F|1992-11-17|1992-09-14|1992-12-14|DELIVER IN PERSON|SHIP|yly blithely stealthy deposits. carefu|
-5415|161|6|5|11|11672.76|0.00|0.01|R|F|1992-11-22|1992-10-19|1992-12-10|DELIVER IN PERSON|SHIP|gle among t|
-5415|144|1|6|46|48030.44|0.03|0.03|R|F|1992-08-25|1992-09-10|1992-09-22|DELIVER IN PERSON|REG AIR|ve the fluffily |
-5415|153|4|7|11|11584.65|0.08|0.06|A|F|1992-08-21|1992-09-04|1992-08-23|NONE|TRUCK|unts maintain carefully unusual|
-5440|115|2|1|3|3045.33|0.02|0.08|N|O|1997-02-18|1997-02-28|1997-03-15|NONE|SHIP|y. accounts haggle along the blit|
-5441|164|1|1|3|3192.48|0.00|0.02|R|F|1994-08-12|1994-10-14|1994-09-01|TAKE BACK RETURN|REG AIR|are. unusual, |
-5441|131|2|2|49|50525.37|0.02|0.03|A|F|1994-09-23|1994-09-22|1994-10-22|NONE|FOB|ording to the furio|
-5441|144|3|3|33|34456.62|0.09|0.02|R|F|1994-10-09|1994-10-06|1994-10-30|DELIVER IN PERSON|TRUCK|ges. final instruction|
-5441|67|4|4|47|45451.82|0.07|0.08|R|F|1994-11-19|1994-10-16|1994-12-16|TAKE BACK RETURN|FOB|ounts wake slyly about the express instr|
-5442|42|5|1|16|15072.64|0.00|0.00|N|O|1998-04-12|1998-03-03|1998-05-04|TAKE BACK RETURN|RAIL|r packages. accounts haggle dependencies. f|
-5442|88|9|2|45|44463.60|0.08|0.01|N|O|1998-03-30|1998-02-24|1998-04-18|TAKE BACK RETURN|AIR|old slyly after |
-5442|61|8|3|12|11532.72|0.01|0.08|N|O|1998-04-15|1998-03-18|1998-05-05|DELIVER IN PERSON|TRUCK|fully final|
-5442|158|9|4|21|22221.15|0.07|0.06|N|O|1998-03-13|1998-02-19|1998-04-06|COLLECT COD|MAIL|ffily furiously ironic theodolites. furio|
-5442|16|7|5|25|22900.25|0.04|0.00|N|O|1998-03-29|1998-02-13|1998-04-13|TAKE BACK RETURN|REG AIR|ake furiously. slyly express th|
-5442|144|3|6|26|27147.64|0.08|0.07|N|O|1998-03-21|1998-03-21|1998-03-25|TAKE BACK RETURN|AIR|have to sleep furiously bold ideas. blith|
-5443|178|9|1|14|15094.38|0.02|0.00|N|O|1996-10-27|1996-11-11|1996-11-21|DELIVER IN PERSON|RAIL|s after the regular, regular deposits hag|
-5443|72|3|2|39|37910.73|0.03|0.07|N|O|1996-11-01|1996-11-30|1996-11-19|NONE|RAIL|gage carefully across the furiously|
-5443|160|5|3|25|26504.00|0.05|0.00|N|O|1996-12-07|1997-01-08|1997-01-05|NONE|FOB|use carefully above the pinto bea|
-5443|191|4|4|6|6547.14|0.05|0.02|N|O|1996-11-17|1996-12-03|1996-11-30|TAKE BACK RETURN|AIR|p fluffily foxe|
-5443|83|4|5|40|39323.20|0.03|0.03|N|O|1997-01-28|1996-12-10|1997-02-13|NONE|FOB|n courts. special re|
-5444|186|7|1|21|22809.78|0.01|0.07|A|F|1995-04-11|1995-04-25|1995-04-21|DELIVER IN PERSON|RAIL|ar packages haggle above th|
-5444|43|6|2|40|37721.60|0.05|0.08|N|O|1995-07-09|1995-04-25|1995-07-19|COLLECT COD|TRUCK|ously bold ideas. instructions wake slyl|
-5444|150|9|3|40|42006.00|0.08|0.01|A|F|1995-04-06|1995-05-08|1995-05-06|DELIVER IN PERSON|AIR| even packages.|
-5444|59|4|4|33|31648.65|0.05|0.04|N|O|1995-06-24|1995-04-24|1995-07-13|DELIVER IN PERSON|SHIP|ut the courts cajole blithely excuses|
-5444|171|9|5|21|22494.57|0.04|0.00|R|F|1995-05-05|1995-05-25|1995-05-29|TAKE BACK RETURN|REG AIR|aves serve sly|
-5444|20|7|6|21|19320.42|0.07|0.01|A|F|1995-03-30|1995-05-01|1995-03-31|COLLECT COD|AIR|furiously even theodolites.|
-5445|90|1|1|33|32672.97|0.08|0.07|A|F|1993-10-21|1993-10-14|1993-10-28|DELIVER IN PERSON|REG AIR|ests. final instructions|
-5445|131|2|2|12|12373.56|0.09|0.08|R|F|1993-11-02|1993-09-05|1993-11-26|COLLECT COD|FOB| slyly pending pinto beans was slyly al|
-5445|103|8|3|46|46142.60|0.04|0.07|A|F|1993-10-06|1993-09-15|1993-10-28|DELIVER IN PERSON|RAIL|old depend|
-5445|149|10|4|10|10491.40|0.08|0.06|A|F|1993-09-16|1993-10-05|1993-10-01|NONE|TRUCK|ncies abou|
-5445|13|10|5|14|12782.14|0.00|0.02|R|F|1993-11-19|1993-10-18|1993-12-07|NONE|RAIL| requests. bravely i|
-5446|190|1|1|27|29435.13|0.05|0.07|R|F|1994-07-21|1994-08-25|1994-08-17|TAKE BACK RETURN|RAIL|ously across the quic|
-5447|99|1|1|31|30971.79|0.09|0.03|N|O|1996-07-14|1996-05-07|1996-07-17|COLLECT COD|SHIP| foxes sleep. blithely unusual accounts det|
-5472|59|10|1|27|25894.35|0.09|0.06|A|F|1993-08-04|1993-07-07|1993-09-03|COLLECT COD|TRUCK|fily pending attainments. unus|
-5472|68|3|2|28|27105.68|0.00|0.03|A|F|1993-07-28|1993-05-28|1993-08-11|TAKE BACK RETURN|FOB|ffily pendin|
-5472|178|7|3|45|48517.65|0.06|0.02|R|F|1993-06-05|1993-05-14|1993-06-10|NONE|TRUCK| idle packages. furi|
-5472|184|5|4|37|40114.66|0.07|0.05|R|F|1993-06-15|1993-07-03|1993-07-09|DELIVER IN PERSON|RAIL|egrate carefully dependencies. |
-5472|75|6|5|40|39002.80|0.02|0.05|A|F|1993-04-13|1993-07-04|1993-05-04|NONE|REG AIR|e requests detect furiously. ruthlessly un|
-5472|167|2|6|39|41619.24|0.02|0.03|R|F|1993-04-18|1993-07-10|1993-05-12|TAKE BACK RETURN|MAIL|uriously carefully |
-5472|15|5|7|1|915.01|0.03|0.02|A|F|1993-04-14|1993-06-28|1993-04-16|NONE|RAIL|s use furiou|
-5473|48|5|1|9|8532.36|0.03|0.07|R|F|1992-06-03|1992-05-30|1992-06-09|TAKE BACK RETURN|AIR| excuses sleep blithely! regular dep|
-5473|70|1|2|27|26191.89|0.01|0.03|A|F|1992-04-06|1992-04-26|1992-04-29|TAKE BACK RETURN|MAIL|the deposits. warthogs wake fur|
-5473|15|5|3|33|30195.33|0.09|0.00|R|F|1992-05-18|1992-06-10|1992-06-13|TAKE BACK RETURN|MAIL|efully above the even, |
-5474|184|5|1|38|41198.84|0.01|0.08|A|F|1992-07-15|1992-07-16|1992-07-20|NONE|REG AIR| slyly beneath |
-5474|94|8|2|10|9940.90|0.06|0.00|R|F|1992-08-08|1992-08-10|1992-08-24|TAKE BACK RETURN|TRUCK|pinto bean|
-5474|48|1|3|31|29389.24|0.00|0.08|R|F|1992-08-02|1992-07-12|1992-08-04|NONE|TRUCK|the furiously express ideas. speci|
-5474|90|1|4|46|45544.14|0.03|0.04|A|F|1992-06-07|1992-07-11|1992-06-22|NONE|TRUCK|nstructions. furio|
-5475|183|4|1|10|10831.80|0.09|0.08|N|O|1996-07-19|1996-08-22|1996-07-23|COLLECT COD|AIR|ding to the deposits wake fina|
-5476|48|1|1|13|12324.52|0.01|0.04|N|O|1997-12-27|1997-12-08|1997-12-29|COLLECT COD|TRUCK|iously special ac|
-5476|20|4|2|17|15640.34|0.10|0.01|N|O|1998-02-02|1998-01-28|1998-02-14|COLLECT COD|FOB|ng dependencies until the f|
-5477|80|8|1|20|19601.60|0.03|0.01|N|O|1998-03-21|1998-02-09|1998-04-07|TAKE BACK RETURN|SHIP|platelets about the ironic|
-5477|77|7|2|21|20518.47|0.03|0.00|N|O|1998-01-28|1998-02-15|1998-02-24|TAKE BACK RETURN|SHIP|blate slyly. silent|
-5477|134|5|3|31|32058.03|0.04|0.01|N|O|1998-01-11|1998-01-30|1998-02-04|DELIVER IN PERSON|MAIL| special Tiresias cajole furiously. pending|
-5477|193|6|4|16|17491.04|0.00|0.01|N|O|1998-03-07|1998-03-12|1998-04-06|COLLECT COD|RAIL|regular, s|
-5477|96|9|5|23|22910.07|0.00|0.06|N|O|1998-01-04|1998-02-23|1998-01-24|NONE|REG AIR|telets wake blithely ab|
-5477|121|6|6|19|19401.28|0.10|0.03|N|O|1998-02-03|1998-01-30|1998-03-04|TAKE BACK RETURN|MAIL|ost carefully packages.|
-5478|8|9|1|39|35412.00|0.09|0.06|N|O|1996-08-19|1996-06-25|1996-09-08|DELIVER IN PERSON|SHIP|s. furiously |
-5478|2|5|2|47|42394.00|0.10|0.01|N|O|1996-08-15|1996-07-12|1996-08-31|NONE|RAIL| instructions; slyly even accounts hagg|
-5478|119|3|3|25|25477.75|0.09|0.07|N|O|1996-06-08|1996-07-12|1996-07-07|NONE|TRUCK|unusual, pending requests haggle accoun|
-5479|138|4|1|50|51906.50|0.02|0.02|A|F|1993-12-24|1994-02-14|1994-01-18|DELIVER IN PERSON|MAIL|ironic gifts. even dependencies sno|
-5479|104|5|2|19|19077.90|0.05|0.03|A|F|1994-01-22|1994-03-07|1994-02-11|DELIVER IN PERSON|SHIP|arefully bo|
-5504|68|5|1|4|3872.24|0.10|0.07|A|F|1993-04-30|1993-03-01|1993-05-22|DELIVER IN PERSON|AIR|into beans boost. |
-5504|177|8|2|7|7540.19|0.03|0.05|R|F|1993-04-25|1993-03-15|1993-05-06|NONE|TRUCK|packages detect furiously express reques|
-5504|160|2|3|29|30744.64|0.05|0.03|A|F|1993-01-28|1993-02-13|1993-02-27|NONE|SHIP|ajole carefully. care|
-5505|25|8|1|43|39775.86|0.07|0.01|N|O|1997-12-30|1997-11-28|1998-01-09|TAKE BACK RETURN|TRUCK|y alongside of the special requests.|
-5505|182|3|2|33|35711.94|0.05|0.08|N|O|1998-01-11|1997-11-11|1998-01-30|TAKE BACK RETURN|AIR|ithely unusual excuses integrat|
-5505|155|10|3|10|10551.50|0.06|0.01|N|O|1997-10-28|1997-11-27|1997-10-29|DELIVER IN PERSON|AIR| furiously special asym|
-5505|40|1|4|18|16920.72|0.04|0.04|N|O|1997-10-25|1997-12-12|1997-10-30|TAKE BACK RETURN|RAIL| to the quickly express pac|
-5505|162|9|5|46|48859.36|0.05|0.00|N|O|1998-01-06|1997-11-04|1998-02-04|TAKE BACK RETURN|SHIP|usly ironic dependencies haggle across |
-5506|140|1|1|2|2080.28|0.00|0.03|R|F|1994-02-04|1994-01-13|1994-02-17|COLLECT COD|MAIL|onic theodolites are fluffil|
-5506|160|1|2|6|6360.96|0.07|0.06|R|F|1994-02-21|1994-01-30|1994-02-27|DELIVER IN PERSON|MAIL|hely according to the furiously unusua|
-5507|10|5|1|23|20930.23|0.05|0.04|N|O|1998-09-04|1998-07-04|1998-09-18|TAKE BACK RETURN|AIR|ously slow packages poach whithout the|
-5507|138|9|2|48|49830.24|0.03|0.01|N|O|1998-08-03|1998-08-10|1998-08-24|DELIVER IN PERSON|AIR|yly idle deposits. final, final fox|
-5507|45|2|3|4|3780.16|0.04|0.06|N|O|1998-06-06|1998-07-02|1998-06-27|TAKE BACK RETURN|RAIL|into beans are|
-5507|67|6|4|22|21275.32|0.07|0.01|N|O|1998-07-08|1998-08-10|1998-07-22|DELIVER IN PERSON|TRUCK|gular ideas. carefully unu|
-5507|132|3|5|48|49542.24|0.06|0.01|N|O|1998-07-21|1998-07-15|1998-07-31|DELIVER IN PERSON|SHIP|uriously regular acc|
-5508|117|7|1|4|4068.44|0.10|0.04|N|O|1996-09-01|1996-08-02|1996-09-17|COLLECT COD|AIR|fluffily about the even |
-5509|197|10|1|3|3291.57|0.03|0.02|A|F|1994-06-14|1994-05-11|1994-06-17|NONE|SHIP| quickly fin|
-5509|99|3|2|17|16984.53|0.03|0.07|R|F|1994-07-01|1994-06-30|1994-07-31|COLLECT COD|AIR|ccounts wake ar|
-5509|93|7|3|30|29792.70|0.04|0.04|A|F|1994-07-23|1994-06-01|1994-08-08|NONE|AIR|counts haggle pinto beans. furiously |
-5509|100|3|4|45|45004.50|0.00|0.07|A|F|1994-07-24|1994-05-28|1994-08-20|COLLECT COD|AIR|counts sleep. f|
-5509|156|8|5|35|36965.25|0.04|0.03|A|F|1994-04-17|1994-06-29|1994-04-24|COLLECT COD|RAIL|c accounts. ca|
-5510|16|6|1|8|7328.08|0.01|0.01|A|F|1993-03-16|1993-03-29|1993-03-24|DELIVER IN PERSON|FOB|n packages boost sly|
-5510|20|10|2|46|42320.92|0.02|0.07|A|F|1993-03-12|1993-02-09|1993-03-19|NONE|TRUCK|silent packages cajole doggedly regular |
-5510|162|3|3|47|49921.52|0.03|0.01|A|F|1993-01-20|1993-03-25|1993-02-15|DELIVER IN PERSON|SHIP|riously even requests. slyly bold accou|
-5510|24|7|4|29|26796.58|0.09|0.08|A|F|1993-02-28|1993-03-28|1993-03-12|COLLECT COD|AIR|lithely fluffily ironic req|
-5511|165|4|1|16|17042.56|0.10|0.05|A|F|1995-02-02|1995-01-06|1995-02-19|TAKE BACK RETURN|RAIL|thely bold theodolites |
-5511|165|10|2|31|33019.96|0.09|0.01|A|F|1995-02-23|1995-01-21|1995-03-02|COLLECT COD|REG AIR|gular excuses. fluffily even pinto beans c|
-5511|128|3|3|49|50377.88|0.05|0.05|R|F|1994-12-21|1995-01-27|1994-12-26|NONE|REG AIR|bout the requests. theodolites |
-5511|122|7|4|4|4088.48|0.08|0.02|R|F|1994-12-28|1995-01-16|1995-01-24|TAKE BACK RETURN|RAIL|lphins. carefully blithe de|
-5511|9|2|5|23|20907.00|0.10|0.07|A|F|1995-03-11|1995-01-21|1995-03-27|TAKE BACK RETURN|TRUCK|ing dugouts |
-5511|188|9|6|5|5440.90|0.08|0.05|R|F|1994-12-29|1995-01-16|1995-01-24|DELIVER IN PERSON|MAIL|al theodolites. blithely final de|
-5511|143|2|7|23|23992.22|0.02|0.07|R|F|1995-02-03|1995-01-05|1995-02-18|COLLECT COD|REG AIR|ully deposits. warthogs hagg|
-5536|90|1|1|14|13861.26|0.08|0.06|N|O|1998-05-18|1998-05-08|1998-06-05|COLLECT COD|MAIL|instructions sleep |
-5536|62|1|2|20|19241.20|0.08|0.04|N|O|1998-05-08|1998-05-10|1998-05-31|DELIVER IN PERSON|REG AIR|equests mo|
-5536|197|9|3|35|38401.65|0.07|0.02|N|O|1998-05-19|1998-06-08|1998-06-05|NONE|MAIL|c, final theo|
-5536|9|10|4|30|27270.00|0.05|0.07|N|O|1998-04-15|1998-05-23|1998-05-03|NONE|FOB|arefully regular theodolites according|
-5536|141|2|5|11|11452.54|0.02|0.08|N|O|1998-03-18|1998-05-12|1998-03-28|TAKE BACK RETURN|FOB| snooze furio|
-5537|45|8|1|10|9450.40|0.05|0.08|N|O|1997-01-13|1996-12-25|1997-01-28|TAKE BACK RETURN|AIR| sleep carefully slyly bold depos|
-5537|150|9|2|15|15752.25|0.07|0.04|N|O|1997-01-13|1996-12-25|1997-01-27|COLLECT COD|AIR|eposits. permanently pending packag|
-5537|151|6|3|39|40994.85|0.03|0.00|N|O|1996-12-17|1996-11-08|1997-01-15|COLLECT COD|REG AIR| slyly bold packages are. qu|
-5537|97|1|4|38|37889.42|0.01|0.00|N|O|1996-11-06|1996-11-23|1996-11-12|TAKE BACK RETURN|MAIL|s above the carefully ironic deposits |
-5538|154|9|1|42|44274.30|0.05|0.00|A|F|1994-04-08|1994-03-17|1994-05-05|DELIVER IN PERSON|REG AIR|vely ironic accounts. furiously unusual acc|
-5538|121|2|2|4|4084.48|0.02|0.03|R|F|1994-03-21|1994-02-17|1994-04-11|TAKE BACK RETURN|REG AIR|ithely along the c|
-5538|19|3|3|38|34922.38|0.03|0.06|R|F|1994-03-17|1994-02-11|1994-04-10|TAKE BACK RETURN|FOB|ular pinto beans. silent ideas above |
-5538|78|6|4|9|8802.63|0.00|0.01|R|F|1993-12-26|1994-01-31|1994-01-03|TAKE BACK RETURN|REG AIR|encies across the blithely fina|
-5539|65|10|1|42|40532.52|0.10|0.08|A|F|1994-09-29|1994-09-17|1994-10-20|DELIVER IN PERSON|RAIL|ons across the carefully si|
-5540|181|2|1|42|45409.56|0.02|0.08|N|O|1996-11-12|1996-12-18|1996-12-05|TAKE BACK RETURN|RAIL|ss dolphins haggle |
-5540|102|3|2|2|2004.20|0.06|0.02|N|O|1996-12-12|1997-01-09|1996-12-25|DELIVER IN PERSON|MAIL|nic asymptotes could hav|
-5540|64|3|3|19|18317.14|0.01|0.03|N|O|1997-02-06|1996-11-18|1997-02-20|DELIVER IN PERSON|SHIP| slyly slyl|
-5540|72|10|4|24|23329.68|0.10|0.05|N|O|1997-01-09|1996-12-02|1997-01-23|COLLECT COD|FOB|deposits! ironic depths may engage-- b|
-5541|96|8|1|39|38847.51|0.08|0.05|N|O|1997-11-17|1997-12-27|1997-12-11|TAKE BACK RETURN|RAIL|ding theodolites haggle against the slyly |
-5542|189|10|1|6|6535.08|0.03|0.01|N|O|1996-06-14|1996-05-28|1996-07-11|DELIVER IN PERSON|TRUCK| foxes doubt. theodolites ca|
-5543|143|10|1|14|14603.96|0.02|0.03|R|F|1993-10-09|1993-12-09|1993-10-21|NONE|SHIP|ecial reque|
-5543|162|7|2|22|23367.52|0.04|0.00|A|F|1993-11-06|1993-11-02|1993-12-02|DELIVER IN PERSON|SHIP|instructions. deposits use quickly. ir|
-5543|67|6|3|3|2901.18|0.08|0.05|R|F|1993-11-18|1993-11-05|1993-12-17|NONE|FOB|ress, even |
-5543|147|10|4|8|8377.12|0.05|0.01|R|F|1993-10-28|1993-11-18|1993-11-07|NONE|SHIP|totes? iron|
-5543|80|1|5|32|31362.56|0.03|0.03|R|F|1993-10-04|1993-11-14|1993-11-03|DELIVER IN PERSON|AIR|ully around the |
-5543|184|5|6|1|1084.18|0.03|0.07|A|F|1993-10-29|1993-11-11|1993-11-23|TAKE BACK RETURN|FOB|uriously. slyly|
-5543|129|8|7|39|40135.68|0.06|0.00|R|F|1993-10-07|1993-11-15|1993-10-28|TAKE BACK RETURN|MAIL|l excuses are furiously. slyly unusual requ|
-5568|166|5|1|50|53308.00|0.05|0.05|N|O|1995-07-14|1995-09-04|1995-08-03|COLLECT COD|TRUCK|furious ide|
-5568|44|5|2|18|16992.72|0.01|0.08|N|O|1995-08-19|1995-08-18|1995-08-24|DELIVER IN PERSON|SHIP|structions haggle. carefully regular |
-5568|89|10|3|35|34617.80|0.08|0.07|N|O|1995-09-17|1995-09-04|1995-10-14|NONE|SHIP|lyly. blit|
-5569|29|4|1|25|23225.50|0.10|0.03|R|F|1993-06-29|1993-07-18|1993-07-05|TAKE BACK RETURN|TRUCK| deposits cajole above|
-5569|58|10|2|26|24909.30|0.09|0.06|A|F|1993-08-21|1993-07-22|1993-09-09|DELIVER IN PERSON|MAIL|pitaphs. ironic req|
-5569|55|3|3|48|45842.40|0.02|0.03|R|F|1993-06-16|1993-06-15|1993-07-09|COLLECT COD|SHIP|the fluffily|
-5569|147|10|4|19|19895.66|0.10|0.08|R|F|1993-07-30|1993-06-21|1993-08-13|TAKE BACK RETURN|FOB| detect ca|
-5569|59|1|5|15|14385.75|0.02|0.06|A|F|1993-06-29|1993-07-06|1993-07-05|DELIVER IN PERSON|MAIL|lithely bold requests boost fur|
-5570|161|6|1|37|39262.92|0.08|0.02|N|O|1996-08-29|1996-10-23|1996-09-11|NONE|RAIL|y ironic pin|
-5570|39|10|2|15|14085.45|0.09|0.02|N|O|1996-10-04|1996-10-05|1996-10-28|TAKE BACK RETURN|REG AIR|beans nag slyly special, regular pack|
-5570|60|1|3|29|27841.74|0.02|0.05|N|O|1996-10-12|1996-10-20|1996-11-08|TAKE BACK RETURN|SHIP|he silent, enticing requests.|
-5571|154|2|1|32|33732.80|0.05|0.01|R|F|1992-12-25|1993-03-01|1993-01-23|NONE|FOB| the blithely even packages nag q|
-5571|94|8|2|31|30816.79|0.09|0.07|R|F|1993-01-05|1993-01-18|1993-02-04|DELIVER IN PERSON|SHIP|uffily even accounts. quickly re|
-5571|92|6|3|18|17857.62|0.10|0.05|R|F|1993-03-11|1993-02-28|1993-04-03|COLLECT COD|REG AIR|uests haggle furiously pending d|
-5572|22|1|1|24|22128.48|0.08|0.08|R|F|1994-10-30|1994-10-02|1994-11-27|TAKE BACK RETURN|MAIL|ests cajole. evenly ironic exc|
-5572|172|10|2|27|28948.59|0.03|0.04|A|F|1994-08-29|1994-09-10|1994-08-30|TAKE BACK RETURN|SHIP| accounts. carefully final accoun|
-5572|87|8|3|19|18754.52|0.10|0.00|A|F|1994-08-12|1994-10-07|1994-09-01|DELIVER IN PERSON|RAIL|es. final, final requests wake blithely ag|
-5572|135|1|4|46|47615.98|0.02|0.01|R|F|1994-09-08|1994-10-14|1994-10-01|NONE|REG AIR|ully regular platelet|
-5572|24|3|5|34|31416.68|0.10|0.08|R|F|1994-10-22|1994-08-16|1994-11-08|NONE|TRUCK|asymptotes integrate. s|
-5572|101|2|6|14|14015.40|0.04|0.05|A|F|1994-11-02|1994-09-20|1994-11-03|COLLECT COD|RAIL|he fluffily express packages. fluffily fina|
-5572|26|1|7|24|22224.48|0.01|0.05|R|F|1994-09-26|1994-09-04|1994-10-22|DELIVER IN PERSON|FOB| beans. foxes sleep fluffily across th|
-5573|21|6|1|32|29472.64|0.05|0.07|N|O|1996-09-30|1996-10-25|1996-10-15|DELIVER IN PERSON|RAIL|egular depths haggl|
-5573|50|3|2|2|1900.10|0.01|0.07|N|O|1996-08-26|1996-09-29|1996-09-04|COLLECT COD|TRUCK| even foxes. specia|
-5573|11|8|3|46|41906.46|0.06|0.01|N|O|1996-11-04|1996-10-02|1996-11-15|DELIVER IN PERSON|MAIL|s haggle qu|
-5573|169|4|4|43|45973.88|0.10|0.03|N|O|1996-10-22|1996-11-03|1996-11-02|TAKE BACK RETURN|FOB| furiously pending packages against |
-5573|138|9|5|43|44639.59|0.05|0.04|N|O|1996-09-09|1996-09-24|1996-09-28|COLLECT COD|AIR| bold package|
-5574|185|6|1|46|49918.28|0.02|0.07|A|F|1992-06-20|1992-04-19|1992-07-11|NONE|FOB|arefully express requests wake furiousl|
-5574|33|4|2|21|19593.63|0.05|0.08|A|F|1992-03-22|1992-04-26|1992-04-16|TAKE BACK RETURN|TRUCK|fully final dugouts. express foxes nag |
-5574|119|6|3|27|27515.97|0.10|0.06|R|F|1992-05-08|1992-05-19|1992-06-05|TAKE BACK RETURN|REG AIR|ecial realms. furiously entici|
-5574|94|6|4|14|13917.26|0.09|0.01|R|F|1992-05-20|1992-04-09|1992-05-23|COLLECT COD|REG AIR| use slyly carefully special requests? slyl|
-5574|85|6|5|19|18716.52|0.05|0.03|A|F|1992-05-28|1992-04-24|1992-06-11|TAKE BACK RETURN|REG AIR|old deposits int|
-5575|58|10|1|7|6706.35|0.01|0.07|N|O|1995-10-01|1995-09-30|1995-10-06|NONE|FOB|s. slyly pending theodolites prin|
-5575|31|7|2|23|21413.69|0.04|0.02|N|O|1995-10-26|1995-10-09|1995-11-13|TAKE BACK RETURN|AIR|enticingly final requests. ironically|
-5575|63|8|3|16|15408.96|0.00|0.07|N|O|1995-08-17|1995-10-14|1995-08-30|NONE|RAIL|jole boldly beyond the final as|
-5575|110|1|4|7|7070.77|0.01|0.04|N|O|1995-10-15|1995-09-14|1995-10-18|DELIVER IN PERSON|RAIL|special requests. final, final |
-5600|187|8|1|34|36964.12|0.02|0.00|N|O|1997-03-22|1997-04-05|1997-04-09|TAKE BACK RETURN|MAIL|ly above the stealthy ideas. permane|
-5600|8|5|2|19|17252.00|0.00|0.01|N|O|1997-04-10|1997-03-24|1997-04-16|TAKE BACK RETURN|TRUCK|dencies. carefully p|
-5601|38|4|1|29|27202.87|0.09|0.04|A|F|1992-04-06|1992-02-24|1992-04-29|DELIVER IN PERSON|TRUCK| ironic ideas. final|
-5601|164|1|2|45|47887.20|0.10|0.07|A|F|1992-03-25|1992-04-03|1992-04-04|TAKE BACK RETURN|MAIL|ts-- blithely final accounts cajole. carefu|
-5601|73|4|3|38|36976.66|0.07|0.00|A|F|1992-01-08|1992-03-01|1992-01-09|TAKE BACK RETURN|REG AIR|ter the evenly final deposit|
-5601|148|5|4|12|12577.68|0.03|0.01|A|F|1992-02-27|1992-03-16|1992-03-27|COLLECT COD|TRUCK|ep carefully a|
-5602|176|4|1|9|9685.53|0.08|0.03|N|O|1997-10-14|1997-09-14|1997-11-11|COLLECT COD|FOB|lar foxes; quickly ironic ac|
-5602|62|7|2|31|29823.86|0.04|0.08|N|O|1997-09-04|1997-10-24|1997-09-07|NONE|TRUCK|rate fluffily regular platelets. blithel|
-5602|68|5|3|30|29041.80|0.04|0.00|N|O|1997-09-20|1997-10-25|1997-10-12|DELIVER IN PERSON|FOB|e slyly even packages. careful|
-5603|98|2|1|50|49904.50|0.03|0.02|A|F|1992-10-06|1992-08-20|1992-10-08|COLLECT COD|SHIP|final theodolites accor|
-5603|116|6|2|49|49789.39|0.06|0.05|A|F|1992-06-24|1992-07-28|1992-07-01|DELIVER IN PERSON|FOB|fully silent requests. carefully fin|
-5603|32|8|3|49|45669.47|0.00|0.02|R|F|1992-10-07|1992-07-21|1992-10-10|DELIVER IN PERSON|TRUCK|nic, pending dependencies print|
-5604|136|7|1|44|45589.72|0.05|0.01|N|O|1998-08-06|1998-07-08|1998-09-04|NONE|RAIL|efully ironi|
-5604|136|2|2|49|50770.37|0.10|0.00|N|O|1998-05-02|1998-07-07|1998-05-20|NONE|FOB|ove the regula|
-5604|78|8|3|10|9780.70|0.07|0.05|N|O|1998-08-03|1998-06-23|1998-08-04|COLLECT COD|SHIP|ly final realms wake blit|
-5605|87|8|1|50|49354.00|0.08|0.05|N|O|1996-08-26|1996-10-15|1996-09-04|TAKE BACK RETURN|RAIL|instructions sleep carefully ironic req|
-5605|151|2|2|7|7358.05|0.06|0.01|N|O|1996-12-13|1996-10-13|1996-12-15|TAKE BACK RETURN|FOB|lowly special courts nag among the furi|
-5605|173|2|3|3|3219.51|0.01|0.02|N|O|1996-09-01|1996-10-02|1996-09-20|TAKE BACK RETURN|AIR|posits. accounts boost. t|
-5605|55|3|4|45|42977.25|0.00|0.01|N|O|1996-09-05|1996-10-04|1996-09-13|COLLECT COD|FOB|ly unusual instructions. carefully ironic p|
-5605|70|7|5|39|37832.73|0.00|0.08|N|O|1996-12-13|1996-11-03|1996-12-24|DELIVER IN PERSON|REG AIR|cial deposits. theodolites w|
-5605|166|7|6|29|30918.64|0.08|0.08|N|O|1996-09-19|1996-10-22|1996-10-06|DELIVER IN PERSON|SHIP| quickly. quickly pending sen|
-5606|174|5|1|47|50485.99|0.10|0.04|N|O|1996-12-23|1997-01-31|1997-01-20|DELIVER IN PERSON|REG AIR|carefully final foxes. pending, final|
-5606|92|3|2|34|33731.06|0.09|0.06|N|O|1997-02-23|1997-02-08|1997-03-09|TAKE BACK RETURN|REG AIR|uses. slyly final |
-5606|127|8|3|46|47247.52|0.04|0.00|N|O|1997-03-11|1997-01-13|1997-03-23|DELIVER IN PERSON|REG AIR|ter the ironic accounts. even, ironic depos|
-5606|82|3|4|30|29462.40|0.08|0.04|N|O|1997-02-06|1997-01-26|1997-02-16|DELIVER IN PERSON|REG AIR| nag always. blithely express packages |
-5606|7|2|5|25|22675.00|0.06|0.00|N|O|1996-12-25|1997-01-12|1997-01-11|TAKE BACK RETURN|AIR|breach about the furiously bold |
-5606|154|5|6|3|3162.45|0.04|0.06|N|O|1997-01-11|1997-01-04|1997-02-08|COLLECT COD|AIR| sauternes. asympto|
-5606|74|5|7|46|44807.22|0.07|0.01|N|O|1997-02-01|1997-01-31|1997-02-15|DELIVER IN PERSON|TRUCK|ow requests wake around the regular accoun|
-5607|132|8|1|23|23738.99|0.02|0.06|R|F|1992-04-17|1992-02-12|1992-04-30|DELIVER IN PERSON|MAIL|the special, final patterns |
-5632|10|3|1|48|43680.48|0.06|0.06|N|O|1996-05-08|1996-03-24|1996-06-04|TAKE BACK RETURN|FOB|unts. decoys u|
-5632|106|7|2|21|21128.10|0.02|0.08|N|O|1996-03-22|1996-03-10|1996-04-10|NONE|AIR|refully regular pinto beans. ironic reques|
-5632|67|2|3|24|23209.44|0.04|0.06|N|O|1996-03-23|1996-04-02|1996-03-30|TAKE BACK RETURN|MAIL|beans detect. quickly final i|
-5633|160|2|1|28|29684.48|0.02|0.00|N|O|1998-08-14|1998-07-24|1998-08-26|TAKE BACK RETURN|SHIP|as boost quickly. unusual pinto |
-5633|102|3|2|10|10021.00|0.09|0.04|N|O|1998-07-15|1998-08-03|1998-08-03|COLLECT COD|AIR|its cajole fluffily fluffily special pinto|
-5633|46|7|3|27|25543.08|0.03|0.02|N|O|1998-09-28|1998-07-28|1998-10-12|DELIVER IN PERSON|AIR|ructions. even ideas haggle carefully r|
-5633|164|5|4|50|53208.00|0.02|0.05|N|O|1998-07-23|1998-07-09|1998-08-21|DELIVER IN PERSON|TRUCK|ts. slyly regular |
-5633|100|2|5|48|48004.80|0.01|0.05|N|O|1998-06-24|1998-07-22|1998-07-18|DELIVER IN PERSON|TRUCK|even courts haggle slyly at the requ|
-5633|107|2|6|1|1007.10|0.02|0.03|N|O|1998-09-29|1998-08-28|1998-10-19|NONE|RAIL|thely notornis: |
-5633|11|5|7|39|35529.39|0.02|0.08|N|O|1998-07-12|1998-07-03|1998-07-13|COLLECT COD|TRUCK|ding ideas cajole furiously after|
-5634|185|6|1|26|28214.68|0.10|0.08|N|O|1996-10-29|1996-09-15|1996-11-24|COLLECT COD|REG AIR|ptotes mold qu|
-5634|175|3|2|22|23653.74|0.02|0.05|N|O|1996-09-01|1996-08-31|1996-09-05|DELIVER IN PERSON|MAIL|silently unusual foxes above the blithely|
-5634|109|6|3|16|16145.60|0.08|0.02|N|O|1996-11-15|1996-09-14|1996-12-04|NONE|AIR|ess ideas are carefully pending, even re|
-5634|182|3|4|29|31383.22|0.00|0.01|N|O|1996-08-10|1996-10-29|1996-08-11|TAKE BACK RETURN|MAIL|ely final ideas. deposits sleep. reg|
-5634|1|2|5|1|901.00|0.04|0.02|N|O|1996-10-02|1996-10-21|1996-10-27|COLLECT COD|MAIL|ctions haggle carefully. carefully clo|
-5635|83|4|1|43|42272.44|0.03|0.00|R|F|1992-10-12|1992-09-29|1992-11-01|TAKE BACK RETURN|TRUCK|cross the d|
-5635|72|3|2|5|4860.35|0.05|0.08|R|F|1992-10-02|1992-11-05|1992-10-26|TAKE BACK RETURN|REG AIR|yly along the ironic, fi|
-5635|72|1|3|12|11664.84|0.09|0.02|A|F|1992-10-18|1992-09-24|1992-11-17|NONE|REG AIR|ke slyly against the carefully final req|
-5635|8|5|4|40|36320.00|0.03|0.01|A|F|1992-09-25|1992-11-05|1992-10-11|NONE|FOB|pending foxes. regular packages|
-5635|169|10|5|38|40628.08|0.05|0.06|A|F|1992-10-09|1992-09-25|1992-10-18|NONE|MAIL|ckly pendin|
-5635|162|9|6|23|24429.68|0.05|0.04|A|F|1992-08-24|1992-11-10|1992-09-21|NONE|AIR|ily pending packages. bold,|
-5635|137|3|7|32|33188.16|0.03|0.08|R|F|1992-11-24|1992-09-20|1992-12-17|TAKE BACK RETURN|TRUCK|slyly even|
-5636|70|9|1|18|17461.26|0.05|0.03|R|F|1995-05-14|1995-05-17|1995-06-12|DELIVER IN PERSON|REG AIR|slyly express requests. furiously pen|
-5636|70|5|2|26|25221.82|0.03|0.06|A|F|1995-03-05|1995-05-16|1995-03-23|TAKE BACK RETURN|AIR| furiously final pinto beans o|
-5636|90|1|3|21|20791.89|0.03|0.03|A|F|1995-03-13|1995-05-11|1995-03-24|COLLECT COD|AIR| are furiously unusual |
-5636|109|6|4|15|15136.50|0.03|0.04|R|F|1995-04-21|1995-04-30|1995-05-05|DELIVER IN PERSON|REG AIR|efully special|
-5636|47|4|5|13|12311.52|0.10|0.03|A|F|1995-05-11|1995-04-27|1995-05-26|COLLECT COD|AIR|en, fluffy accounts amon|
-5636|12|3|6|33|30096.33|0.06|0.04|A|F|1995-03-09|1995-04-05|1995-03-23|DELIVER IN PERSON|MAIL|ding to the |
-5636|134|10|7|24|24819.12|0.10|0.05|R|F|1995-04-12|1995-03-27|1995-04-16|DELIVER IN PERSON|RAIL|counts sleep furiously b|
-5637|47|4|1|14|13258.56|0.03|0.05|N|O|1996-07-20|1996-07-26|1996-08-14|COLLECT COD|MAIL|y bold deposits wak|
-5637|172|3|2|35|37525.95|0.09|0.08|N|O|1996-08-01|1996-08-04|1996-08-20|NONE|AIR|s sleep blithely alongside of the ironic|
-5637|96|10|3|22|21913.98|0.01|0.07|N|O|1996-08-28|1996-07-30|1996-09-17|COLLECT COD|REG AIR|nding requests are ca|
-5637|66|1|4|16|15456.96|0.03|0.03|N|O|1996-09-08|1996-08-31|1996-09-29|TAKE BACK RETURN|TRUCK|d packages. express requests|
-5637|196|7|5|10|10961.90|0.01|0.00|N|O|1996-08-25|1996-08-11|1996-09-23|TAKE BACK RETURN|MAIL|ickly ironic gifts. blithely even cour|
-5637|129|4|6|27|27786.24|0.01|0.05|N|O|1996-06-27|1996-08-09|1996-07-27|DELIVER IN PERSON|REG AIR|oss the carefully express warhorses|
-5638|138|9|1|45|46715.85|0.09|0.07|A|F|1994-05-17|1994-03-09|1994-06-15|NONE|TRUCK|ar foxes. fluffily pending accounts |
-5638|168|3|2|12|12817.92|0.02|0.05|A|F|1994-02-05|1994-04-01|1994-02-25|COLLECT COD|TRUCK|n, even requests. furiously ironic not|
-5638|162|9|3|21|22305.36|0.08|0.00|A|F|1994-03-13|1994-03-27|1994-03-17|DELIVER IN PERSON|TRUCK|press courts use f|
-5639|47|10|1|11|10417.44|0.09|0.02|R|F|1994-09-18|1994-07-10|1994-10-12|TAKE BACK RETURN|SHIP|g the unusual pinto beans caj|
-5664|122|1|1|25|25553.00|0.00|0.06|N|O|1998-10-29|1998-09-23|1998-11-25|COLLECT COD|FOB|eposits: furiously ironic grouch|
-5664|173|2|2|9|9658.53|0.07|0.05|N|O|1998-07-31|1998-08-26|1998-08-12|COLLECT COD|RAIL| ironic deposits haggle furiously. re|
-5664|53|4|3|31|29544.55|0.01|0.03|N|O|1998-11-10|1998-09-12|1998-12-07|TAKE BACK RETURN|FOB|ainst the never silent request|
-5664|138|9|4|33|34258.29|0.08|0.03|N|O|1998-08-29|1998-09-17|1998-09-25|DELIVER IN PERSON|RAIL|d the final |
-5664|112|2|5|44|44532.84|0.01|0.06|N|O|1998-09-24|1998-09-26|1998-10-23|NONE|TRUCK|ang thinly bold pa|
-5664|68|5|6|34|32914.04|0.09|0.01|N|O|1998-09-10|1998-10-05|1998-09-15|COLLECT COD|RAIL|st. fluffily pending foxes na|
-5664|182|3|7|9|9739.62|0.01|0.05|N|O|1998-11-04|1998-10-15|1998-11-20|TAKE BACK RETURN|REG AIR|yly. express ideas agai|
-5665|101|2|1|32|32035.20|0.00|0.02|A|F|1993-08-11|1993-08-01|1993-09-07|NONE|AIR|f the slyly even requests! regular request|
-5665|5|8|2|14|12670.00|0.02|0.00|R|F|1993-06-29|1993-09-16|1993-07-16|DELIVER IN PERSON|AIR|- special pinto beans sleep quickly blithel|
-5665|158|9|3|41|43384.15|0.09|0.02|A|F|1993-08-23|1993-09-22|1993-09-11|COLLECT COD|REG AIR| idle ideas across |
-5665|46|9|4|47|44463.88|0.01|0.01|A|F|1993-10-06|1993-09-19|1993-11-01|NONE|RAIL|s mold fluffily. final deposits along the|
-5666|122|5|1|7|7154.84|0.09|0.08|R|F|1994-05-10|1994-04-06|1994-05-21|NONE|FOB| ideas. regular packag|
-5666|36|7|2|14|13104.42|0.08|0.01|A|F|1994-02-27|1994-04-11|1994-03-06|DELIVER IN PERSON|TRUCK|lar deposits nag against the slyly final d|
-5666|193|6|3|39|42634.41|0.00|0.01|A|F|1994-05-13|1994-04-02|1994-06-12|DELIVER IN PERSON|TRUCK|the even, final foxes. quickly iron|
-5666|131|2|4|24|24747.12|0.07|0.01|R|F|1994-02-14|1994-03-09|1994-03-06|DELIVER IN PERSON|FOB|on the carefully pending asympto|
-5666|109|10|5|36|36327.60|0.07|0.07|R|F|1994-03-15|1994-03-16|1994-03-18|COLLECT COD|TRUCK|accounts. furiousl|
-5667|145|4|1|37|38670.18|0.09|0.06|N|O|1995-09-24|1995-09-17|1995-10-03|NONE|REG AIR|s cajole blit|
-5668|4|9|1|15|13560.00|0.03|0.04|A|F|1995-04-06|1995-05-12|1995-04-17|COLLECT COD|FOB| the express, pending requests. bo|
-5669|191|2|1|7|7638.33|0.06|0.06|N|O|1996-06-19|1996-07-07|1996-07-11|COLLECT COD|SHIP|yly regular requests lose blithely. careful|
-5669|156|8|2|2|2112.30|0.06|0.07|N|O|1996-08-04|1996-06-15|1996-08-20|NONE|SHIP| blithely excuses. slyly|
-5669|158|9|3|40|42326.00|0.00|0.02|N|O|1996-08-30|1996-06-15|1996-09-07|TAKE BACK RETURN|FOB|ar accounts alongside of the final, p|
-5669|90|1|4|31|30692.79|0.04|0.05|N|O|1996-08-05|1996-06-10|1996-08-29|COLLECT COD|AIR|to beans against the regular depo|
-5669|140|6|5|30|31204.20|0.07|0.01|N|O|1996-07-14|1996-07-28|1996-08-10|TAKE BACK RETURN|TRUCK|l accounts. care|
-5670|90|1|1|27|26732.43|0.10|0.06|R|F|1993-05-09|1993-05-30|1993-06-06|TAKE BACK RETURN|REG AIR| ideas promise bli|
-5670|186|7|2|43|46705.74|0.06|0.00|A|F|1993-07-09|1993-06-03|1993-07-14|DELIVER IN PERSON|FOB|ests in place of the carefully sly depos|
-5670|7|8|3|24|21768.00|0.09|0.04|A|F|1993-07-17|1993-07-01|1993-08-03|NONE|AIR|press, express requests haggle|
-5670|142|9|4|11|11463.54|0.06|0.06|R|F|1993-07-11|1993-06-26|1993-07-24|DELIVER IN PERSON|MAIL|etect furiously among the even pin|
-5671|120|7|1|25|25503.00|0.00|0.08|N|O|1998-04-17|1998-03-28|1998-05-06|DELIVER IN PERSON|AIR|cording to the quickly final requests-- |
-5671|129|8|2|46|47339.52|0.05|0.08|N|O|1998-03-28|1998-04-22|1998-04-19|TAKE BACK RETURN|MAIL|lar pinto beans detect care|
-5671|172|10|3|13|13938.21|0.10|0.06|N|O|1998-03-02|1998-04-03|1998-03-08|TAKE BACK RETURN|TRUCK|bold theodolites about|
-5671|111|1|4|42|42466.62|0.00|0.07|N|O|1998-02-17|1998-04-24|1998-03-17|TAKE BACK RETURN|SHIP|carefully slyly special deposit|
-5671|129|4|5|13|13378.56|0.09|0.00|N|O|1998-04-24|1998-03-26|1998-04-27|NONE|REG AIR|ers according to the ironic, unusual excu|
-5671|114|1|6|30|30423.30|0.09|0.07|N|O|1998-06-06|1998-04-15|1998-07-01|DELIVER IN PERSON|TRUCK|fily ironi|
-5696|137|3|1|28|29039.64|0.03|0.06|N|O|1995-07-03|1995-06-14|1995-07-27|COLLECT COD|REG AIR| the fluffily brave pearls |
-5696|59|1|2|46|44116.30|0.01|0.00|N|O|1995-08-10|1995-07-08|1995-08-25|COLLECT COD|AIR|ter the instruct|
-5696|167|2|3|42|44820.72|0.04|0.01|N|F|1995-06-06|1995-06-11|1995-06-19|TAKE BACK RETURN|SHIP|te furious|
-5696|98|10|4|20|19961.80|0.08|0.00|N|O|1995-06-25|1995-07-18|1995-07-16|NONE|TRUCK|silent, pending ideas sleep fluffil|
-5696|124|9|5|19|19458.28|0.07|0.05|N|O|1995-08-31|1995-06-13|1995-09-10|COLLECT COD|SHIP|unusual requests sleep furiously ru|
-5696|132|8|6|37|38188.81|0.04|0.05|N|O|1995-07-21|1995-06-23|1995-08-19|NONE|RAIL| carefully expres|
-5696|102|9|7|6|6012.60|0.07|0.05|N|O|1995-08-03|1995-07-15|1995-09-01|DELIVER IN PERSON|REG AIR|n patterns lose slyly fina|
-5697|55|7|1|24|22921.20|0.10|0.07|R|F|1992-10-27|1992-11-28|1992-11-20|NONE|RAIL|uffily iro|
-5697|16|10|2|43|39388.43|0.06|0.02|R|F|1992-12-08|1992-12-03|1992-12-17|TAKE BACK RETURN|FOB|blithely reg|
-5697|56|8|3|42|40154.10|0.03|0.01|A|F|1992-12-19|1992-12-08|1993-01-03|COLLECT COD|TRUCK|inal theodolites cajole after the bli|
-5698|11|8|1|30|27330.30|0.01|0.05|A|F|1994-05-26|1994-08-16|1994-06-19|COLLECT COD|AIR|its. quickly regular foxes aro|
-5698|163|4|2|25|26579.00|0.08|0.07|R|F|1994-08-06|1994-06-21|1994-08-25|NONE|SHIP| asymptotes sleep slyly above the|
-5698|155|3|3|45|47481.75|0.03|0.01|A|F|1994-06-23|1994-08-13|1994-07-02|NONE|FOB|ng excuses. slyly express asymptotes|
-5698|58|6|4|15|14370.75|0.07|0.08|R|F|1994-06-29|1994-07-03|1994-07-02|COLLECT COD|REG AIR|ly ironic frets haggle carefully |
-5698|140|1|5|37|38485.18|0.06|0.06|A|F|1994-06-30|1994-06-23|1994-07-22|TAKE BACK RETURN|SHIP|ts. even, ironic |
-5698|188|9|6|1|1088.18|0.06|0.04|R|F|1994-05-31|1994-07-10|1994-06-03|DELIVER IN PERSON|MAIL|nts. slyly quiet pinto beans nag carefu|
-5699|2|7|1|24|21648.00|0.01|0.07|A|F|1992-10-21|1992-09-04|1992-11-04|COLLECT COD|AIR|kages. fin|
-5699|55|10|2|26|24831.30|0.06|0.06|R|F|1992-08-11|1992-09-21|1992-08-14|COLLECT COD|MAIL|y final deposits wake fluffily u|
-5699|18|2|3|48|44064.48|0.10|0.05|R|F|1992-11-23|1992-10-20|1992-11-29|DELIVER IN PERSON|TRUCK|s. carefully regul|
-5699|55|3|4|46|43932.30|0.08|0.02|A|F|1992-11-28|1992-09-23|1992-12-27|TAKE BACK RETURN|FOB|o the slyly|
-5699|28|7|5|21|19488.42|0.02|0.02|A|F|1992-10-13|1992-09-30|1992-10-19|NONE|MAIL|lyly final pla|
-5699|191|5|6|30|32735.70|0.08|0.05|R|F|1992-11-13|1992-10-01|1992-12-11|DELIVER IN PERSON|AIR| the carefully final |
-5699|129|8|7|45|46310.40|0.09|0.06|A|F|1992-09-23|1992-10-22|1992-10-04|DELIVER IN PERSON|SHIP|rmanent packages sleep across the f|
-5700|168|5|1|24|25635.84|0.09|0.00|N|O|1997-12-26|1998-01-28|1998-01-18|DELIVER IN PERSON|REG AIR|ix carefully |
-5700|123|8|2|30|30693.60|0.00|0.06|N|O|1998-04-19|1998-03-13|1998-04-27|COLLECT COD|MAIL|ly blithely final instructions. fl|
-5700|126|5|3|23|23600.76|0.03|0.05|N|O|1998-01-30|1998-01-31|1998-01-31|NONE|REG AIR| wake quickly carefully fluffy hockey|
-5701|54|2|1|17|16218.85|0.02|0.05|N|O|1997-03-27|1997-04-08|1997-04-21|DELIVER IN PERSON|RAIL|tes. quickly final a|
-5702|77|7|1|44|42991.08|0.06|0.02|R|F|1994-01-04|1993-11-25|1994-01-22|NONE|RAIL|lites. carefully final requests doze b|
-5702|86|7|2|37|36484.96|0.10|0.05|R|F|1993-12-14|1993-10-21|1994-01-08|NONE|FOB|ix slyly. regular instructions slee|
-5702|131|7|3|44|45369.72|0.00|0.02|R|F|1993-11-28|1993-12-02|1993-12-22|NONE|TRUCK|ake according to th|
-5702|63|8|4|31|29854.86|0.00|0.04|A|F|1994-01-04|1993-10-22|1994-01-26|DELIVER IN PERSON|TRUCK|pinto beans. blithely |
-5703|88|9|1|2|1976.16|0.09|0.01|R|F|1993-05-29|1993-07-26|1993-06-05|TAKE BACK RETURN|REG AIR|nts against the blithely sile|
-5728|44|1|1|47|44369.88|0.10|0.05|A|F|1994-12-13|1995-01-25|1994-12-25|TAKE BACK RETURN|MAIL|nd the bravely final deposits. final ideas|
-5728|159|1|2|40|42366.00|0.05|0.08|A|F|1995-03-28|1995-01-17|1995-04-14|TAKE BACK RETURN|SHIP|final deposits. theodolite|
-5729|143|4|1|5|5215.70|0.07|0.00|R|F|1994-11-27|1994-11-11|1994-12-23|TAKE BACK RETURN|MAIL|s. even sheaves nag courts. |
-5729|107|10|2|39|39276.90|0.10|0.00|A|F|1995-01-22|1994-11-21|1995-02-13|TAKE BACK RETURN|MAIL|. special pl|
-5729|12|3|3|50|45600.50|0.00|0.05|R|F|1994-12-09|1994-12-31|1994-12-24|TAKE BACK RETURN|AIR|ly special sentiments. car|
-5730|151|2|1|2|2102.30|0.08|0.00|N|O|1998-02-24|1998-03-15|1998-03-11|COLLECT COD|SHIP|ely ironic foxes. carefu|
-5730|200|1|2|9|9901.80|0.10|0.01|N|O|1998-03-05|1998-02-02|1998-03-28|DELIVER IN PERSON|MAIL|s lose blithely. specia|
-5731|192|6|1|13|14198.47|0.02|0.04|N|O|1997-07-30|1997-06-23|1997-08-13|COLLECT COD|RAIL|ngside of the quickly regular depos|
-5731|105|6|2|11|11056.10|0.00|0.08|N|O|1997-06-06|1997-07-08|1997-06-25|NONE|MAIL| furiously final accounts wake. d|
-5731|111|2|3|6|6066.66|0.01|0.04|N|O|1997-07-02|1997-07-01|1997-07-08|COLLECT COD|SHIP|sits integrate slyly close platelets. quick|
-5731|14|1|4|6|5484.06|0.03|0.06|N|O|1997-09-07|1997-06-20|1997-09-20|TAKE BACK RETURN|RAIL|rs. quickly regular theo|
-5731|195|6|5|19|20808.61|0.08|0.02|N|O|1997-06-29|1997-06-27|1997-07-15|NONE|REG AIR|ly unusual ideas above the |
-5732|139|5|1|26|27017.38|0.02|0.07|N|O|1997-08-18|1997-10-25|1997-09-12|TAKE BACK RETURN|TRUCK|totes cajole according to the theodolites.|
-5733|33|4|1|39|36388.17|0.01|0.07|A|F|1993-03-22|1993-05-24|1993-04-04|DELIVER IN PERSON|FOB|side of the|
-5734|183|4|1|29|31412.22|0.05|0.01|N|O|1997-12-01|1997-12-08|1997-12-23|NONE|RAIL|structions cajole final, express |
-5734|150|3|2|6|6300.90|0.07|0.00|N|O|1997-10-27|1997-12-19|1997-11-02|COLLECT COD|RAIL|s. regular platelets cajole furiously. regu|
-5734|67|8|3|10|9670.60|0.01|0.03|N|O|1997-12-28|1997-12-24|1998-01-24|DELIVER IN PERSON|TRUCK|equests; accounts above|
-5735|60|1|1|41|39362.46|0.01|0.01|R|F|1994-12-23|1995-02-10|1995-01-22|COLLECT COD|MAIL|lthily ruthless i|
-5760|1|8|1|6|5406.00|0.09|0.03|R|F|1994-07-30|1994-07-31|1994-08-16|COLLECT COD|REG AIR|ng the acco|
-5760|6|1|2|24|21744.00|0.04|0.05|A|F|1994-07-15|1994-07-04|1994-08-08|NONE|MAIL|s. bravely ironic accounts among|
-5760|148|5|3|8|8385.12|0.07|0.04|A|F|1994-09-06|1994-08-03|1994-10-06|NONE|AIR|l accounts among the carefully even de|
-5760|123|4|4|19|19439.28|0.10|0.01|R|F|1994-08-02|1994-08-02|1994-08-15|COLLECT COD|SHIP|sits nag. even, regular ideas cajole b|
-5760|166|1|5|6|6396.96|0.03|0.07|R|F|1994-06-09|1994-07-06|1994-06-16|DELIVER IN PERSON|MAIL| shall have to cajole along the |
-5761|47|6|1|41|38828.64|0.08|0.00|N|O|1998-07-31|1998-08-09|1998-08-08|TAKE BACK RETURN|TRUCK|pecial deposits. qu|
-5761|108|9|2|36|36291.60|0.00|0.07|N|O|1998-09-07|1998-09-21|1998-09-11|TAKE BACK RETURN|TRUCK| pinto beans thrash alongside of the pendi|
-5761|198|2|3|49|53811.31|0.04|0.08|N|O|1998-07-14|1998-08-20|1998-07-25|NONE|SHIP|ly bold accounts wake above the|
-5762|175|6|1|6|6451.02|0.05|0.02|N|O|1997-04-07|1997-03-25|1997-05-02|NONE|AIR|ironic dependencies doze carefu|
-5762|102|9|2|27|27056.70|0.02|0.08|N|O|1997-02-21|1997-05-08|1997-03-23|NONE|REG AIR|across the bold ideas. carefully sp|
-5762|89|10|3|40|39563.20|0.00|0.08|N|O|1997-04-30|1997-05-09|1997-05-08|COLLECT COD|SHIP|al instructions. furiousl|
-5762|133|4|4|47|48557.11|0.05|0.06|N|O|1997-03-02|1997-03-23|1997-03-19|NONE|RAIL|equests sleep after the furiously ironic pa|
-5762|25|6|5|28|25900.56|0.02|0.06|N|O|1997-02-22|1997-03-25|1997-02-24|TAKE BACK RETURN|SHIP|ic foxes among the blithely qui|
-5762|12|6|6|12|10944.12|0.00|0.06|N|O|1997-04-18|1997-04-27|1997-05-11|DELIVER IN PERSON|REG AIR|ages are abo|
-5763|131|2|1|32|32996.16|0.02|0.06|N|O|1998-07-16|1998-09-13|1998-08-02|DELIVER IN PERSON|FOB|ding instruct|
-5763|136|2|2|23|23830.99|0.09|0.04|N|O|1998-07-25|1998-09-21|1998-08-15|DELIVER IN PERSON|SHIP|re after the blithel|
-5763|13|3|3|25|22825.25|0.01|0.02|N|O|1998-10-04|1998-08-16|1998-10-09|DELIVER IN PERSON|REG AIR|inal theodolites. even re|
-5763|121|6|4|47|47992.64|0.09|0.00|N|O|1998-08-22|1998-09-22|1998-09-04|NONE|REG AIR|gle slyly. slyly final re|
-5763|123|4|5|8|8184.96|0.06|0.05|N|O|1998-09-23|1998-09-15|1998-09-27|DELIVER IN PERSON|TRUCK|foxes wake slyly. car|
-5763|190|1|6|9|9811.71|0.08|0.02|N|O|1998-09-24|1998-09-01|1998-10-02|NONE|AIR| deposits. instru|
-5764|101|2|1|28|28030.80|0.04|0.04|A|F|1993-12-07|1993-12-20|1993-12-26|TAKE BACK RETURN|RAIL|sleep furi|
-5764|200|3|2|20|22004.00|0.10|0.05|A|F|1993-10-17|1993-12-24|1993-10-18|TAKE BACK RETURN|FOB|ng to the fluffily qu|
-5764|188|9|3|4|4352.72|0.03|0.05|A|F|1993-10-25|1993-12-23|1993-11-06|DELIVER IN PERSON|AIR|ily regular courts haggle|
-5765|162|7|1|31|32926.96|0.00|0.06|A|F|1995-01-11|1995-02-13|1995-01-23|TAKE BACK RETURN|AIR|r foxes. ev|
-5765|124|9|2|29|29699.48|0.07|0.08|A|F|1994-12-29|1995-02-01|1995-01-26|NONE|RAIL|nic requests. deposits wake quickly among |
-5765|139|10|3|31|32213.03|0.05|0.01|R|F|1995-03-01|1995-01-23|1995-03-31|TAKE BACK RETURN|REG AIR|the furiou|
-5765|152|4|4|46|48398.90|0.07|0.07|R|F|1995-03-13|1995-02-12|1995-03-20|DELIVER IN PERSON|MAIL|ccounts sleep about th|
-5765|174|3|5|48|51560.16|0.09|0.02|A|F|1995-03-30|1995-01-14|1995-04-09|DELIVER IN PERSON|SHIP|theodolites integrate furiously|
-5765|83|4|6|41|40306.28|0.04|0.00|A|F|1994-12-31|1995-02-11|1995-01-17|TAKE BACK RETURN|SHIP| furiously. slyly sile|
-5765|42|5|7|21|19782.84|0.05|0.04|R|F|1995-04-05|1995-02-12|1995-05-05|COLLECT COD|TRUCK|ole furiously. quick, special dependencies |
-5766|188|9|1|1|1088.18|0.10|0.01|R|F|1994-01-16|1993-11-16|1994-01-23|NONE|MAIL|blithely regular the|
-5766|149|8|2|39|40916.46|0.02|0.07|A|F|1993-10-24|1993-12-07|1993-11-08|DELIVER IN PERSON|SHIP| furiously unusual courts. slyly final pear|
-5766|118|8|3|4|4072.44|0.08|0.08|R|F|1993-11-10|1993-10-30|1993-12-01|COLLECT COD|TRUCK|ly even requests. furiou|
-5767|167|8|1|11|11738.76|0.08|0.01|A|F|1992-06-02|1992-05-30|1992-06-08|NONE|TRUCK|instructions. carefully final accou|
-5767|69|8|2|15|14535.90|0.07|0.05|R|F|1992-06-05|1992-07-28|1992-06-08|DELIVER IN PERSON|MAIL|warthogs. carefully unusual g|
-5767|191|3|3|42|45829.98|0.06|0.01|R|F|1992-07-31|1992-06-09|1992-08-09|COLLECT COD|TRUCK| blithe deposi|
-5767|153|4|4|34|35807.10|0.06|0.01|R|F|1992-06-02|1992-06-23|1992-06-17|NONE|FOB|sits among the|
-5767|46|7|5|36|34057.44|0.03|0.00|A|F|1992-07-17|1992-06-10|1992-07-19|COLLECT COD|AIR|ake carefully. packages |
-5792|178|8|1|34|36657.78|0.08|0.07|R|F|1993-05-23|1993-06-25|1993-06-12|NONE|RAIL|requests are against t|
-5792|157|5|2|47|49686.05|0.10|0.00|A|F|1993-06-08|1993-05-10|1993-06-26|COLLECT COD|AIR|regular, ironic excuses n|
-5792|183|4|3|32|34661.76|0.05|0.08|R|F|1993-06-26|1993-05-23|1993-07-07|COLLECT COD|RAIL|s are slyly against the ev|
-5792|14|8|4|14|12796.14|0.09|0.02|A|F|1993-07-28|1993-06-17|1993-08-27|DELIVER IN PERSON|RAIL|olites print carefully|
-5792|102|9|5|31|31065.10|0.02|0.01|A|F|1993-06-17|1993-05-05|1993-07-01|COLLECT COD|TRUCK|s? furiously even instructions |
-5793|53|5|1|20|19061.00|0.05|0.03|N|O|1997-10-05|1997-09-04|1997-10-30|COLLECT COD|AIR|e carefully ex|
-5793|170|5|2|41|43876.97|0.06|0.06|N|O|1997-08-04|1997-10-10|1997-08-12|DELIVER IN PERSON|TRUCK|snooze quick|
-5793|43|4|3|8|7544.32|0.07|0.03|N|O|1997-08-16|1997-09-08|1997-08-28|COLLECT COD|AIR|al foxes l|
-5793|148|7|4|48|50310.72|0.02|0.02|N|O|1997-09-27|1997-08-23|1997-10-27|DELIVER IN PERSON|REG AIR|quickly enticing excuses use slyly abov|
-5794|158|9|1|42|44442.30|0.06|0.05|R|F|1993-06-29|1993-05-30|1993-07-28|COLLECT COD|REG AIR|he careful|
-5794|115|2|2|14|14211.54|0.09|0.02|R|F|1993-04-19|1993-07-02|1993-05-18|COLLECT COD|SHIP|uriously carefully ironic reque|
-5794|7|8|3|15|13605.00|0.09|0.06|R|F|1993-06-25|1993-06-27|1993-07-09|NONE|MAIL|blithely regular ideas. final foxes haggle |
-5794|137|3|4|47|48745.11|0.00|0.08|A|F|1993-07-16|1993-06-21|1993-08-05|TAKE BACK RETURN|REG AIR|quests. blithely final excu|
-5795|193|6|1|34|37168.46|0.09|0.05|A|F|1992-08-21|1992-07-30|1992-08-27|COLLECT COD|REG AIR|al instructions must affix along the ironic|
-5796|58|3|1|27|25867.35|0.10|0.00|N|O|1996-04-06|1996-02-29|1996-04-20|DELIVER IN PERSON|RAIL|s wake quickly aro|
-5797|61|6|1|17|16338.02|0.09|0.03|N|O|1997-12-13|1998-01-12|1997-12-23|NONE|REG AIR|the ironic, even theodoli|
-5798|127|8|1|2|2054.24|0.09|0.00|N|O|1998-05-25|1998-06-22|1998-06-09|COLLECT COD|FOB|e furiously across |
-5798|124|9|2|14|14337.68|0.06|0.05|N|O|1998-04-01|1998-06-14|1998-04-27|NONE|RAIL|he special, bold packages. carefully iron|
-5798|134|5|3|22|22750.86|0.02|0.01|N|O|1998-06-24|1998-06-06|1998-07-20|COLLECT COD|TRUCK|sits poach carefully|
-5798|146|3|4|40|41845.60|0.08|0.06|N|O|1998-07-09|1998-06-24|1998-07-16|NONE|TRUCK| integrate carefu|
-5798|149|8|5|7|7343.98|0.06|0.07|N|O|1998-06-06|1998-05-10|1998-06-07|NONE|SHIP|ts against the blithely final p|
-5798|38|4|6|9|8442.27|0.06|0.02|N|O|1998-05-05|1998-05-25|1998-05-09|DELIVER IN PERSON|REG AIR|e blithely|
-5798|115|9|7|32|32483.52|0.08|0.01|N|O|1998-04-27|1998-05-03|1998-05-08|TAKE BACK RETURN|REG AIR|ubt blithely above the |
-5799|95|6|1|41|40798.69|0.04|0.02|N|O|1995-11-13|1995-10-31|1995-11-16|COLLECT COD|TRUCK|al accounts sleep ruthlessl|
-5799|100|3|2|30|30003.00|0.03|0.08|N|O|1995-09-12|1995-09-13|1995-09-19|NONE|RAIL| furiously s|
-5824|77|7|1|40|39082.80|0.06|0.06|N|O|1997-01-14|1997-01-17|1997-02-02|NONE|REG AIR|he final packag|
-5824|182|3|2|42|45451.56|0.09|0.00|N|O|1997-02-01|1997-02-20|1997-02-07|COLLECT COD|SHIP|ts sleep. carefully regular accounts h|
-5824|73|1|3|16|15569.12|0.03|0.02|N|O|1997-02-13|1997-01-07|1997-02-17|TAKE BACK RETURN|TRUCK|sly express Ti|
-5824|92|5|4|32|31746.88|0.03|0.02|N|O|1997-02-16|1997-01-24|1997-02-20|DELIVER IN PERSON|RAIL|ven requests. |
-5824|107|8|5|44|44312.40|0.08|0.03|N|O|1997-01-24|1997-01-31|1997-02-11|COLLECT COD|TRUCK|fily fluffily bold|
-5825|159|7|1|23|24360.45|0.10|0.05|R|F|1995-05-10|1995-04-28|1995-05-13|DELIVER IN PERSON|TRUCK| special pinto beans. dependencies haggl|
-5826|144|1|1|4|4176.56|0.03|0.06|N|O|1998-07-31|1998-09-10|1998-08-27|NONE|AIR| packages across the fluffily spec|
-5826|64|5|2|18|17353.08|0.04|0.01|N|O|1998-07-17|1998-09-03|1998-07-22|NONE|SHIP|atelets use above t|
-5827|187|8|1|30|32615.40|0.03|0.05|N|O|1998-11-11|1998-09-27|1998-11-30|DELIVER IN PERSON|RAIL|ounts may c|
-5827|103|6|2|23|23071.30|0.09|0.05|N|O|1998-11-16|1998-09-14|1998-11-17|COLLECT COD|RAIL|ans. furiously special instruct|
-5827|164|1|3|3|3192.48|0.03|0.06|N|O|1998-10-17|1998-09-29|1998-10-28|DELIVER IN PERSON|MAIL|uses eat along the furiously|
-5827|200|1|4|26|28605.20|0.06|0.00|N|O|1998-07-29|1998-09-24|1998-07-30|DELIVER IN PERSON|SHIP|arefully special packages wake thin|
-5827|112|9|5|38|38460.18|0.03|0.06|N|O|1998-10-18|1998-08-27|1998-10-23|TAKE BACK RETURN|TRUCK|ly ruthless accounts|
-5827|17|4|6|14|12838.14|0.05|0.01|N|O|1998-08-31|1998-09-06|1998-09-13|TAKE BACK RETURN|RAIL|rges. fluffily pending |
-5828|2|9|1|28|25256.00|0.10|0.03|A|F|1994-05-15|1994-05-20|1994-06-08|DELIVER IN PERSON|MAIL| special ideas haggle slyly ac|
-5828|158|3|2|37|39151.55|0.01|0.00|R|F|1994-06-07|1994-05-30|1994-06-17|NONE|RAIL|e carefully spec|
-5829|40|1|1|4|3760.16|0.01|0.02|N|O|1997-03-01|1997-02-17|1997-03-22|NONE|TRUCK|ithely; accounts cajole ideas. regular foxe|
-5829|107|10|2|40|40284.00|0.04|0.01|N|O|1997-04-21|1997-02-12|1997-05-04|COLLECT COD|TRUCK| the carefully ironic accounts. a|
-5829|129|8|3|6|6174.72|0.05|0.06|N|O|1997-01-22|1997-03-12|1997-02-02|TAKE BACK RETURN|AIR|sts. slyly special fo|
-5829|90|1|4|42|41583.78|0.02|0.07|N|O|1997-03-26|1997-04-01|1997-03-30|COLLECT COD|REG AIR|pearls. slyly bold deposits solve final|
-5829|191|5|5|49|53468.31|0.05|0.01|N|O|1997-01-31|1997-03-13|1997-02-18|NONE|MAIL| ironic excuses use fluf|
-5829|18|5|6|17|15606.17|0.09|0.02|N|O|1997-04-10|1997-03-29|1997-04-22|COLLECT COD|AIR|after the furiously ironic ideas no|
-5829|78|9|7|27|26407.89|0.08|0.04|N|O|1997-02-25|1997-03-31|1997-03-03|DELIVER IN PERSON|AIR|ns about the excuses are c|
-5830|160|2|1|29|30744.64|0.10|0.02|R|F|1993-06-19|1993-05-10|1993-07-13|DELIVER IN PERSON|REG AIR|y bold excuses|
-5831|191|2|1|2|2182.38|0.10|0.01|N|O|1997-02-09|1997-01-20|1997-03-07|TAKE BACK RETURN|TRUCK|quickly silent req|
-5831|74|3|2|33|32144.31|0.04|0.03|N|O|1996-11-20|1997-01-18|1996-12-18|TAKE BACK RETURN|MAIL| instructions wake. slyly sil|
-5831|82|3|3|6|5892.48|0.05|0.07|N|O|1997-01-29|1997-01-14|1997-02-09|NONE|MAIL|ly ironic accounts nag pendin|
-5831|13|10|4|46|41998.46|0.06|0.02|N|O|1997-02-24|1997-01-18|1997-03-02|COLLECT COD|MAIL|ly final pa|
-5831|43|4|5|37|34892.48|0.05|0.01|N|O|1997-01-17|1997-02-08|1997-02-01|NONE|FOB|uriously even requests|
-5856|4|1|1|1|904.00|0.03|0.02|A|F|1994-12-29|1995-01-07|1995-01-10|TAKE BACK RETURN|MAIL|tly. special deposits wake blithely even|
-5856|35|6|2|35|32726.05|0.09|0.02|R|F|1994-11-24|1994-12-23|1994-11-30|COLLECT COD|AIR|excuses. finally ir|
-5856|153|4|3|39|41072.85|0.05|0.03|A|F|1995-01-18|1995-01-11|1995-01-19|DELIVER IN PERSON|TRUCK|uickly quickly fluffy in|
-5857|58|9|1|25|23951.25|0.03|0.02|N|O|1997-12-02|1997-12-17|1997-12-08|DELIVER IN PERSON|REG AIR|ding platelets. pending excu|
-5857|195|9|2|50|54759.50|0.06|0.07|N|O|1997-12-04|1997-12-16|1997-12-20|NONE|TRUCK|y regular d|
-5857|68|3|3|1|968.06|0.03|0.01|N|O|1998-02-01|1997-12-09|1998-02-20|TAKE BACK RETURN|SHIP|instructions detect final reques|
-5857|118|2|4|12|12217.32|0.03|0.08|N|O|1998-01-24|1997-12-27|1998-02-10|TAKE BACK RETURN|AIR|counts. express, final|
-5857|192|4|5|14|15290.66|0.07|0.07|N|O|1997-12-10|1998-01-06|1998-01-04|TAKE BACK RETURN|TRUCK|ffily pendin|
-5857|93|5|6|49|48661.41|0.00|0.04|N|O|1998-01-23|1997-12-12|1998-01-28|DELIVER IN PERSON|REG AIR|egular pinto beans|
-5858|121|4|1|20|20422.40|0.02|0.06|A|F|1992-07-23|1992-08-26|1992-07-24|COLLECT COD|SHIP|uffily unusual pinto beans sleep|
-5858|16|7|2|36|32976.36|0.00|0.05|A|F|1992-09-25|1992-08-16|1992-10-11|NONE|SHIP|osits wake quickly quickly sile|
-5858|148|5|3|7|7336.98|0.08|0.02|A|F|1992-10-07|1992-08-16|1992-10-15|TAKE BACK RETURN|REG AIR|. doggedly regular packages use pendin|
-5858|164|9|4|46|48951.36|0.07|0.06|R|F|1992-09-07|1992-10-06|1992-10-06|DELIVER IN PERSON|MAIL|posits withi|
-5858|161|8|5|18|19100.88|0.00|0.07|A|F|1992-11-05|1992-10-08|1992-12-03|NONE|TRUCK|al excuses. bold|
-5858|154|9|6|7|7379.05|0.04|0.00|A|F|1992-09-14|1992-10-01|1992-10-01|TAKE BACK RETURN|RAIL|dly pending ac|
-5858|11|5|7|50|45550.50|0.06|0.00|R|F|1992-07-20|1992-10-07|1992-07-25|NONE|TRUCK|r the ironic ex|
-5859|175|4|1|50|53758.50|0.07|0.01|N|O|1997-07-08|1997-06-20|1997-07-27|COLLECT COD|MAIL|ly regular deposits use. ironic|
-5859|9|6|2|17|15453.00|0.03|0.03|N|O|1997-05-15|1997-06-30|1997-05-26|DELIVER IN PERSON|AIR|ly ironic requests. quickly unusual pin|
-5859|46|3|3|33|31219.32|0.10|0.04|N|O|1997-07-08|1997-06-22|1997-07-18|TAKE BACK RETURN|TRUCK|eposits unwind furiously final pinto bea|
-5859|93|4|4|40|39723.60|0.09|0.02|N|O|1997-08-05|1997-06-17|1997-08-20|NONE|REG AIR|l dependenci|
-5859|153|8|5|35|36860.25|0.00|0.08|N|O|1997-05-28|1997-07-14|1997-06-15|COLLECT COD|TRUCK|egular acco|
-5859|44|5|6|9|8496.36|0.01|0.02|N|O|1997-06-15|1997-06-06|1997-06-20|NONE|RAIL|ges boost quickly. blithely r|
-5859|191|5|7|27|29462.13|0.05|0.08|N|O|1997-07-30|1997-07-08|1997-08-08|NONE|MAIL| across th|
-5860|51|3|1|10|9510.50|0.04|0.04|A|F|1992-03-11|1992-03-30|1992-03-31|NONE|MAIL|ual patterns try to eat carefully above|
-5861|191|5|1|32|34918.08|0.00|0.03|N|O|1997-05-27|1997-05-29|1997-05-28|TAKE BACK RETURN|MAIL|nt asymptotes. carefully express request|
-5861|86|7|2|6|5916.48|0.10|0.03|N|O|1997-07-28|1997-05-18|1997-08-24|TAKE BACK RETURN|TRUCK|olites. slyly|
-5862|113|7|1|4|4052.44|0.09|0.06|N|O|1997-06-04|1997-04-26|1997-06-19|NONE|TRUCK|yly silent deposit|
-5862|2|7|2|29|26158.00|0.03|0.05|N|O|1997-04-02|1997-04-16|1997-04-04|NONE|FOB|e fluffily. furiously|
-5863|161|10|1|45|47752.20|0.07|0.06|A|F|1993-12-19|1994-01-25|1994-01-05|NONE|REG AIR| deposits are ab|
-5863|160|8|2|21|22263.36|0.09|0.03|R|F|1994-01-13|1994-01-09|1994-01-28|DELIVER IN PERSON|FOB|atelets nag blithely furi|
-5888|62|7|1|46|44254.76|0.02|0.00|N|O|1996-11-18|1996-11-05|1996-12-08|TAKE BACK RETURN|FOB|yly final accounts hag|
-5888|112|3|2|24|24290.64|0.03|0.01|N|O|1996-11-07|1996-11-30|1996-11-20|COLLECT COD|SHIP|ing to the spe|
-5889|77|7|1|17|16610.19|0.09|0.02|N|O|1995-07-01|1995-08-12|1995-07-25|NONE|AIR|blithely pending packages. flu|
-5890|113|4|1|38|38498.18|0.01|0.08|A|F|1993-02-14|1992-12-09|1993-02-27|COLLECT COD|FOB| accounts. carefully final asymptotes|
-5891|85|6|1|22|21671.76|0.00|0.06|R|F|1993-01-01|1993-02-18|1993-01-14|DELIVER IN PERSON|TRUCK|iresias cajole deposits. special, ir|
-5891|186|7|2|9|9775.62|0.03|0.07|R|F|1993-01-20|1993-02-27|1993-02-10|COLLECT COD|REG AIR|cajole carefully |
-5891|30|9|3|10|9300.30|0.08|0.01|A|F|1993-04-14|1993-02-07|1993-04-15|DELIVER IN PERSON|RAIL|nding requests. b|
-5892|148|9|1|7|7336.98|0.02|0.03|N|O|1995-06-26|1995-07-18|1995-07-25|COLLECT COD|AIR|e furiously. quickly even deposits da|
-5892|150|9|2|37|38855.55|0.09|0.06|N|O|1995-08-12|1995-06-11|1995-09-05|NONE|REG AIR|maintain. bold, expre|
-5892|3|4|3|28|25284.00|0.03|0.06|N|O|1995-08-16|1995-07-06|1995-08-22|DELIVER IN PERSON|MAIL|ithely unusual accounts will have to integ|
-5892|75|6|4|23|22426.61|0.08|0.04|R|F|1995-05-18|1995-07-06|1995-05-29|COLLECT COD|MAIL| foxes nag slyly about the qui|
-5893|134|10|1|43|44467.59|0.05|0.02|R|F|1992-11-02|1992-09-27|1992-11-21|TAKE BACK RETURN|RAIL|s. regular courts above the carefully silen|
-5893|2|9|2|2|1804.00|0.10|0.04|R|F|1992-07-18|1992-09-10|1992-08-12|NONE|RAIL|ckages wake sly|
-5894|8|5|1|23|20884.00|0.04|0.08|A|F|1994-09-05|1994-10-27|1994-09-13|NONE|TRUCK| furiously even deposits haggle alw|
-5894|79|8|2|48|46995.36|0.04|0.08|A|F|1994-09-04|1994-11-03|1994-09-17|NONE|TRUCK| asymptotes among the blithely silent |
-5895|15|9|1|38|34770.38|0.05|0.08|N|O|1997-04-05|1997-03-06|1997-05-03|DELIVER IN PERSON|RAIL|ts are furiously. regular, final excuses |
-5895|122|3|2|47|48039.64|0.04|0.06|N|O|1997-04-27|1997-03-17|1997-05-07|DELIVER IN PERSON|AIR|r packages wake carefull|
-5895|84|5|3|49|48219.92|0.03|0.07|N|O|1997-03-15|1997-02-17|1997-04-04|NONE|TRUCK|permanent foxes. packages|
-5895|146|7|4|31|32430.34|0.03|0.01|N|O|1997-03-03|1997-03-30|1997-03-08|TAKE BACK RETURN|TRUCK| final deposits nod slyly careful|
-5895|200|1|5|20|22004.00|0.07|0.00|N|O|1997-04-30|1997-02-07|1997-05-08|DELIVER IN PERSON|AIR|gular deposits wake blithely carefully fin|
-5895|78|7|6|15|14671.05|0.08|0.08|N|O|1997-04-19|1997-03-09|1997-05-13|TAKE BACK RETURN|RAIL|silent package|
-5920|187|8|1|50|54359.00|0.06|0.00|A|F|1995-03-13|1995-01-03|1995-03-31|TAKE BACK RETURN|RAIL|across the carefully pending platelets|
-5920|58|9|2|24|22993.20|0.01|0.05|A|F|1994-12-28|1995-01-21|1994-12-31|DELIVER IN PERSON|FOB|fully regular dolphins. furiousl|
-5920|117|1|3|2|2034.22|0.08|0.07|A|F|1995-02-18|1995-01-13|1995-03-04|NONE|SHIP| evenly spe|
-5920|12|2|4|28|25536.28|0.06|0.02|R|F|1994-12-17|1995-02-13|1994-12-31|NONE|SHIP|le slyly slyly even deposits. f|
-5920|100|4|5|42|42004.20|0.09|0.08|A|F|1994-12-18|1995-01-07|1995-01-14|COLLECT COD|AIR|lar, ironic dependencies sno|
-5921|99|3|1|44|43959.96|0.07|0.01|R|F|1994-07-14|1994-06-30|1994-07-15|NONE|TRUCK|ain about the special|
-5921|146|9|2|25|26153.50|0.06|0.01|A|F|1994-05-19|1994-06-15|1994-06-17|COLLECT COD|TRUCK|nd the slyly regular deposits. quick|
-5921|68|5|3|17|16457.02|0.06|0.01|R|F|1994-05-20|1994-05-26|1994-05-23|NONE|FOB|final asymptotes. even packages boost |
-5921|28|7|4|26|24128.52|0.03|0.04|A|F|1994-05-03|1994-07-06|1994-05-06|NONE|AIR|hy dependenc|
-5921|143|10|5|41|42768.74|0.04|0.02|R|F|1994-04-13|1994-05-31|1994-04-26|DELIVER IN PERSON|AIR|nusual, regular theodol|
-5921|115|6|6|5|5075.55|0.02|0.00|R|F|1994-06-01|1994-05-07|1994-06-10|COLLECT COD|TRUCK|eas cajole across the final, fi|
-5922|196|10|1|9|9865.71|0.07|0.00|N|O|1996-12-04|1997-01-20|1996-12-08|DELIVER IN PERSON|RAIL|haggle slyly even packages. packages|
-5922|157|2|2|37|39114.55|0.01|0.04|N|O|1996-12-19|1996-12-16|1997-01-15|COLLECT COD|RAIL|s wake slyly. requests cajole furiously asy|
-5922|90|1|3|35|34653.15|0.08|0.00|N|O|1996-12-12|1997-01-21|1997-01-01|DELIVER IN PERSON|SHIP|accounts. regu|
-5922|66|7|4|13|12558.78|0.08|0.07|N|O|1997-03-08|1996-12-26|1997-04-03|DELIVER IN PERSON|FOB|sly special accounts wake ironically.|
-5922|57|5|5|39|37324.95|0.04|0.07|N|O|1997-03-04|1997-01-17|1997-03-25|TAKE BACK RETURN|SHIP|e of the instructions. quick|
-5922|179|9|6|10|10791.70|0.04|0.01|N|O|1997-02-23|1996-12-26|1997-03-04|NONE|REG AIR|sly regular deposits haggle quickly ins|
-5923|177|8|1|27|29083.59|0.08|0.03|N|O|1997-08-16|1997-06-27|1997-08-29|DELIVER IN PERSON|RAIL|arefully i|
-5923|119|3|2|42|42802.62|0.01|0.08|N|O|1997-09-16|1997-07-23|1997-09-27|COLLECT COD|REG AIR|y regular theodolites w|
-5923|108|5|3|2|2016.20|0.06|0.05|N|O|1997-06-19|1997-07-31|1997-06-28|TAKE BACK RETURN|TRUCK|express patterns. even deposits|
-5923|174|4|4|46|49411.82|0.05|0.04|N|O|1997-07-29|1997-07-23|1997-08-23|COLLECT COD|SHIP|nto beans cajole blithe|
-5923|59|4|5|35|33566.75|0.04|0.05|N|O|1997-07-21|1997-07-11|1997-08-01|DELIVER IN PERSON|AIR|sts affix unusual, final requests. request|
-5924|176|5|1|38|40894.46|0.06|0.05|N|O|1995-12-17|1995-12-11|1996-01-06|TAKE BACK RETURN|AIR|ions cajole carefully along the |
-5924|53|1|2|49|46699.45|0.04|0.00|N|O|1995-10-25|1995-12-11|1995-11-08|NONE|MAIL|inly final excuses. blithely regular requ|
-5924|17|8|3|24|22008.24|0.09|0.08|N|O|1996-01-12|1995-12-13|1996-01-25|COLLECT COD|REG AIR| use carefully. special, e|
-5925|87|8|1|42|41457.36|0.05|0.02|N|O|1996-03-05|1996-01-13|1996-03-10|COLLECT COD|SHIP|to the furiously|
-5925|125|4|2|31|31778.72|0.03|0.03|N|O|1996-01-02|1995-12-14|1996-01-07|TAKE BACK RETURN|FOB|e slyly. furiously regular deposi|
-5925|89|10|3|50|49454.00|0.03|0.04|N|O|1996-02-14|1996-01-10|1996-02-15|NONE|TRUCK|es. stealthily express pains print bli|
-5925|54|9|4|30|28621.50|0.02|0.07|N|O|1996-02-21|1996-02-11|1996-03-10|NONE|TRUCK| the packa|
-5925|160|1|5|41|43466.56|0.00|0.06|N|O|1996-02-03|1995-12-24|1996-02-20|NONE|SHIP| across the pending deposits nag caref|
-5925|50|9|6|48|45602.40|0.02|0.00|N|O|1996-02-03|1996-01-19|1996-03-04|DELIVER IN PERSON|REG AIR| haggle after the fo|
-5926|90|1|1|8|7920.72|0.02|0.00|R|F|1994-07-17|1994-07-20|1994-08-11|COLLECT COD|MAIL|gle furiously express foxes. bo|
-5926|50|9|2|27|25651.35|0.09|0.05|A|F|1994-07-05|1994-08-11|1994-08-02|DELIVER IN PERSON|MAIL|ironic requests|
-5926|127|8|3|46|47247.52|0.01|0.03|R|F|1994-09-05|1994-08-12|1994-09-11|COLLECT COD|RAIL|ts integrate. courts haggl|
-5926|190|1|4|23|25074.37|0.01|0.02|A|F|1994-07-23|1994-08-10|1994-07-27|DELIVER IN PERSON|FOB|ickly special packages among |
-5927|90|1|1|44|43563.96|0.04|0.05|N|O|1997-11-29|1997-11-21|1997-12-13|DELIVER IN PERSON|TRUCK|rding to the special, final decoy|
-5927|115|2|2|8|8120.88|0.04|0.05|N|O|1997-09-24|1997-11-15|1997-10-22|TAKE BACK RETURN|SHIP|ilent dependencies nod c|
-5927|167|6|3|32|34149.12|0.10|0.07|N|O|1997-12-26|1997-10-27|1997-12-31|COLLECT COD|AIR|telets. carefully bold accounts was|
-5952|200|2|1|49|53909.80|0.10|0.02|N|O|1997-06-30|1997-07-10|1997-07-02|COLLECT COD|AIR|e furiously regular|
-5952|191|5|2|11|12003.09|0.10|0.05|N|O|1997-05-13|1997-06-04|1997-05-27|DELIVER IN PERSON|FOB|y nag blithely aga|
-5952|71|2|3|43|41756.01|0.01|0.01|N|O|1997-06-29|1997-06-06|1997-07-15|COLLECT COD|MAIL|posits sleep furiously quickly final p|
-5952|158|3|4|23|24337.45|0.00|0.07|N|O|1997-05-13|1997-06-27|1997-05-20|NONE|TRUCK|e blithely packages. eve|
-5953|129|10|1|36|37048.32|0.03|0.00|R|F|1992-05-28|1992-06-24|1992-05-29|DELIVER IN PERSON|FOB| cajole furio|
-5953|13|7|2|34|31042.34|0.03|0.04|A|F|1992-05-04|1992-06-12|1992-06-02|NONE|RAIL|hockey players use furiously against th|
-5953|162|9|3|5|5310.80|0.07|0.06|A|F|1992-04-10|1992-04-27|1992-04-14|NONE|SHIP|s. blithely |
-5953|169|8|4|23|24590.68|0.09|0.02|R|F|1992-06-05|1992-06-03|1992-06-29|TAKE BACK RETURN|FOB|he silent ideas. silent foxes po|
-5954|147|6|1|8|8377.12|0.03|0.00|A|F|1993-03-27|1993-01-22|1993-04-04|TAKE BACK RETURN|AIR|unusual th|
-5954|81|2|2|40|39243.20|0.02|0.01|A|F|1992-12-30|1993-01-16|1993-01-09|COLLECT COD|RAIL|iously ironic deposits after|
-5954|94|8|3|20|19881.80|0.09|0.07|A|F|1992-12-25|1993-02-05|1992-12-31|COLLECT COD|REG AIR| accounts wake carefu|
-5954|145|4|4|20|20902.80|0.00|0.01|R|F|1993-02-27|1993-01-04|1993-03-08|NONE|TRUCK|ke furiously blithely special packa|
-5954|100|4|5|35|35003.50|0.04|0.06|A|F|1993-03-17|1993-02-06|1993-04-10|NONE|SHIP|tions maintain slyly. furious|
-5954|193|5|6|39|42634.41|0.04|0.08|A|F|1993-02-27|1993-02-25|1993-03-29|DELIVER IN PERSON|REG AIR| always regular dolphins. furiously p|
-5955|140|1|1|14|14561.96|0.08|0.08|N|O|1995-06-22|1995-05-23|1995-06-24|DELIVER IN PERSON|TRUCK| unusual, bold theodolit|
-5955|62|7|2|15|14430.90|0.08|0.07|R|F|1995-04-22|1995-05-28|1995-04-27|NONE|FOB|y final accounts above the regu|
-5955|112|9|3|40|40484.40|0.03|0.00|R|F|1995-04-01|1995-06-11|1995-04-27|NONE|FOB|oss the fluffily regular|
-5956|155|3|1|10|10551.50|0.04|0.05|N|O|1998-07-27|1998-07-04|1998-08-21|NONE|MAIL|ic packages am|
-5956|55|7|2|23|21966.15|0.08|0.03|N|O|1998-06-06|1998-07-10|1998-06-15|DELIVER IN PERSON|RAIL|ly slyly special |
-5956|175|5|3|47|50532.99|0.04|0.06|N|O|1998-09-06|1998-06-29|1998-09-18|TAKE BACK RETURN|MAIL|lyly express theodol|
-5956|20|10|4|40|36800.80|0.09|0.05|N|O|1998-06-11|1998-07-19|1998-06-21|NONE|MAIL|final theodolites sleep carefully ironic c|
-5957|15|9|1|37|33855.37|0.07|0.00|A|F|1994-04-18|1994-02-19|1994-05-11|NONE|AIR| ideas use ruthlessly.|
-5957|59|4|2|46|44116.30|0.04|0.08|A|F|1994-01-23|1994-01-30|1994-02-07|NONE|SHIP|platelets. furiously unusual requests |
-5957|2|7|3|17|15334.00|0.01|0.01|A|F|1994-01-24|1994-02-16|1994-02-08|TAKE BACK RETURN|SHIP|. final, pending packages|
-5957|132|3|4|29|29931.77|0.01|0.03|R|F|1994-02-24|1994-03-04|1994-03-08|COLLECT COD|REG AIR|sits. final, even asymptotes cajole quickly|
-5957|88|9|5|40|39523.20|0.04|0.04|R|F|1994-01-07|1994-02-05|1994-01-26|DELIVER IN PERSON|SHIP|ironic asymptotes sleep blithely again|
-5957|6|1|6|41|37146.00|0.10|0.07|R|F|1994-03-25|1994-02-20|1994-03-31|DELIVER IN PERSON|MAIL|es across the regular requests maint|
-5957|159|1|7|32|33892.80|0.10|0.07|A|F|1994-03-05|1994-02-20|1994-03-09|NONE|TRUCK| boost carefully across the |
-5958|149|8|1|33|34621.62|0.02|0.04|N|O|1995-09-24|1995-12-12|1995-10-05|COLLECT COD|MAIL|lar, regular accounts wake furi|
-5958|43|6|2|23|21689.92|0.03|0.04|N|O|1995-09-26|1995-10-19|1995-09-27|COLLECT COD|SHIP|regular requests. bold, bold deposits unwin|
-5958|153|8|3|42|44232.30|0.10|0.00|N|O|1995-12-12|1995-10-19|1996-01-09|NONE|AIR|n accounts. final, ironic packages |
-5958|39|10|4|18|16902.54|0.04|0.05|N|O|1995-12-02|1995-10-17|1995-12-22|COLLECT COD|FOB|regular requests haggle|
-5958|132|8|5|32|33028.16|0.06|0.00|N|O|1995-09-20|1995-12-10|1995-10-14|COLLECT COD|REG AIR|e carefully special theodolites. carefully |
-5959|135|1|1|49|50721.37|0.07|0.03|R|F|1992-07-16|1992-08-09|1992-08-14|DELIVER IN PERSON|SHIP|usual packages haggle slyly pi|
-5959|147|8|2|17|17801.38|0.09|0.07|R|F|1992-06-10|1992-07-06|1992-06-23|COLLECT COD|MAIL|ackages. blithely ex|
-5959|5|6|3|4|3620.00|0.04|0.03|R|F|1992-06-14|1992-07-05|1992-07-01|NONE|MAIL|gular requests ar|
-5959|196|7|4|13|14250.47|0.03|0.00|A|F|1992-07-29|1992-07-13|1992-08-20|COLLECT COD|SHIP|ar forges. deposits det|
-5959|40|6|5|37|34781.48|0.04|0.01|R|F|1992-06-05|1992-07-18|1992-06-29|NONE|TRUCK|endencies. brai|
-5959|119|3|6|35|35668.85|0.03|0.00|A|F|1992-05-27|1992-06-19|1992-06-23|NONE|TRUCK|ely silent deposits. |
-5959|43|10|7|47|44322.88|0.02|0.01|R|F|1992-08-28|1992-07-24|1992-09-09|TAKE BACK RETURN|RAIL|deposits. slyly special cou|
-5984|70|5|1|13|12610.91|0.06|0.07|R|F|1994-10-16|1994-09-06|1994-11-11|NONE|MAIL|lar platelets. f|
-5984|102|3|2|25|25052.50|0.05|0.08|R|F|1994-10-06|1994-07-21|1994-10-28|COLLECT COD|RAIL|gular accounts. even packages nag slyly|
-5984|1|4|3|8|7208.00|0.10|0.00|R|F|1994-09-17|1994-08-28|1994-09-25|COLLECT COD|RAIL|its. express,|
-5984|190|1|4|35|38156.65|0.00|0.01|A|F|1994-08-25|1994-08-05|1994-08-31|DELIVER IN PERSON|SHIP|le fluffily regula|
-5985|86|7|1|4|3944.32|0.02|0.02|A|F|1995-05-04|1995-04-01|1995-05-17|DELIVER IN PERSON|MAIL|ole along the quickly slow d|
-5986|79|7|1|26|25455.82|0.00|0.00|R|F|1992-08-10|1992-05-23|1992-08-24|TAKE BACK RETURN|SHIP|e fluffily ironic ideas. silent |
-5986|196|8|2|25|27404.75|0.03|0.06|A|F|1992-06-16|1992-07-17|1992-06-29|TAKE BACK RETURN|MAIL| instructions. slyly regular de|
-5986|30|5|3|1|930.03|0.07|0.06|A|F|1992-05-21|1992-06-21|1992-05-24|DELIVER IN PERSON|REG AIR|fix quickly quickly final deposits. fluffil|
-5986|90|1|4|31|30692.79|0.00|0.03|A|F|1992-08-21|1992-06-29|1992-09-14|NONE|AIR|structions! furiously pending instructi|
-5986|136|7|5|6|6216.78|0.05|0.02|A|F|1992-07-16|1992-06-10|1992-07-29|DELIVER IN PERSON|RAIL|al foxes within the slyly speci|
-5987|23|2|1|1|923.02|0.01|0.04|N|O|1996-09-13|1996-10-29|1996-09-21|DELIVER IN PERSON|REG AIR|refully final excuses haggle furiously ag|
-5987|176|5|2|20|21523.40|0.10|0.06|N|O|1996-11-28|1996-09-17|1996-12-05|TAKE BACK RETURN|RAIL|ing excuses nag quickly always bold|
-5987|92|3|3|43|42659.87|0.08|0.04|N|O|1996-10-30|1996-10-13|1996-11-12|NONE|AIR|theodolites wake above the furiously b|
-5987|97|1|4|37|36892.33|0.08|0.08|N|O|1996-10-15|1996-10-27|1996-11-09|NONE|MAIL|le furiously carefully special |
-5988|172|1|1|41|43958.97|0.08|0.03|R|F|1994-01-20|1994-02-06|1994-02-10|COLLECT COD|AIR|the pending, express reque|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/nation.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/nation.tbl
deleted file mode 100644
index ed3fd5b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/nation.tbl
+++ /dev/null
@@ -1,25 +0,0 @@
-0|ALGERIA|0| haggle. carefully final deposits detect slyly agai|
-1|ARGENTINA|1|al foxes promise slyly according to the regular accounts. bold requests alon|
-2|BRAZIL|1|y alongside of the pending deposits. carefully special packages are about the ironic forges. slyly special |
-3|CANADA|1|eas hang ironic, silent packages. slyly regular packages are furiously over the tithes. fluffily bold|
-4|EGYPT|4|y above the carefully unusual theodolites. final dugouts are quickly across the furiously regular d|
-5|ETHIOPIA|0|ven packages wake quickly. regu|
-6|FRANCE|3|refully final requests. regular, ironi|
-7|GERMANY|3|l platelets. regular accounts x-ray: unusual, regular acco|
-8|INDIA|2|ss excuses cajole slyly across the packages. deposits print aroun|
-9|INDONESIA|2| slyly express asymptotes. regular deposits haggle slyly. carefully ironic hockey players sleep blithely. carefull|
-10|IRAN|4|efully alongside of the slyly final dependencies. |
-11|IRAQ|4|nic deposits boost atop the quickly final requests? quickly regula|
-12|JAPAN|2|ously. final, express gifts cajole a|
-13|JORDAN|4|ic deposits are blithely about the carefully regular pa|
-14|KENYA|0| pending excuses haggle furiously deposits. pending, express pinto beans wake fluffily past t|
-15|MOROCCO|0|rns. blithely bold courts among the closely regular packages use furiously bold platelets?|
-16|MOZAMBIQUE|0|s. ironic, unusual asymptotes wake blithely r|
-17|PERU|1|platelets. blithely pending dependencies use fluffily across the even pinto beans. carefully silent accoun|
-18|CHINA|2|c dependencies. furiously express notornis sleep slyly regular accounts. ideas sleep. depos|
-19|ROMANIA|3|ular asymptotes are about the furious multipliers. express dependencies nag above the ironically ironic account|
-20|SAUDI ARABIA|4|ts. silent requests haggle. closely express packages sleep across the blithely|
-21|VIETNAM|2|hely enticingly express accounts. even, final |
-22|RUSSIA|3| requests against the platelets use never according to the quickly regular pint|
-23|UNITED KINGDOM|3|eans boost carefully special requests. accounts are. carefull|
-24|UNITED STATES|1|y final packages. slow foxes cajole quickly. quickly silent platelets breach ironic accounts. unusual pinto be|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/orders.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/orders.tbl
deleted file mode 100644
index 1ebd663..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/orders.tbl
+++ /dev/null
@@ -1,1500 +0,0 @@
-1|37|O|131251.81|1996-01-02|5-LOW|Clerk#000000951|0|nstructions sleep furiously among |
-2|79|O|40183.29|1996-12-01|1-URGENT|Clerk#000000880|0| foxes. pending accounts at the pending, silent asymptot|
-3|124|F|160882.76|1993-10-14|5-LOW|Clerk#000000955|0|sly final accounts boost. carefully regular ideas cajole carefully. depos|
-4|137|O|31084.79|1995-10-11|5-LOW|Clerk#000000124|0|sits. slyly regular warthogs cajole. regular, regular theodolites acro|
-5|46|F|86615.25|1994-07-30|5-LOW|Clerk#000000925|0|quickly. bold deposits sleep slyly. packages use slyly|
-6|56|F|36468.55|1992-02-21|4-NOT SPECIFIED|Clerk#000000058|0|ggle. special, final requests are against the furiously specia|
-7|40|O|171488.73|1996-01-10|2-HIGH|Clerk#000000470|0|ly special requests |
-32|131|O|116923.00|1995-07-16|2-HIGH|Clerk#000000616|0|ise blithely bold, regular requests. quickly unusual dep|
-33|67|F|99798.76|1993-10-27|3-MEDIUM|Clerk#000000409|0|uriously. furiously final request|
-34|62|O|41670.02|1998-07-21|3-MEDIUM|Clerk#000000223|0|ly final packages. fluffily final deposits wake blithely ideas. spe|
-35|128|O|148789.52|1995-10-23|4-NOT SPECIFIED|Clerk#000000259|0|zzle. carefully enticing deposits nag furio|
-36|116|O|38988.98|1995-11-03|1-URGENT|Clerk#000000358|0| quick packages are blithely. slyly silent accounts wake qu|
-37|88|F|113701.89|1992-06-03|3-MEDIUM|Clerk#000000456|0|kly regular pinto beans. carefully unusual waters cajole never|
-38|125|O|46366.56|1996-08-21|4-NOT SPECIFIED|Clerk#000000604|0|haggle blithely. furiously express ideas haggle blithely furiously regular re|
-39|82|O|219707.84|1996-09-20|3-MEDIUM|Clerk#000000659|0|ole express, ironic requests: ir|
-64|34|F|20065.73|1994-07-16|3-MEDIUM|Clerk#000000661|0|wake fluffily. sometimes ironic pinto beans about the dolphin|
-65|17|P|65883.92|1995-03-18|1-URGENT|Clerk#000000632|0|ular requests are blithely pending orbits-- even requests against the deposit|
-66|130|F|79258.24|1994-01-20|5-LOW|Clerk#000000743|0|y pending requests integrate|
-67|58|O|116227.05|1996-12-19|4-NOT SPECIFIED|Clerk#000000547|0|symptotes haggle slyly around the furiously iron|
-68|29|O|215135.72|1998-04-18|3-MEDIUM|Clerk#000000440|0| pinto beans sleep carefully. blithely ironic deposits haggle furiously acro|
-69|85|F|162176.23|1994-06-04|4-NOT SPECIFIED|Clerk#000000330|0| depths atop the slyly thin deposits detect among the furiously silent accou|
-70|65|F|84651.80|1993-12-18|5-LOW|Clerk#000000322|0| carefully ironic request|
-71|4|O|178821.73|1998-01-24|4-NOT SPECIFIED|Clerk#000000271|0| express deposits along the blithely regul|
-96|109|F|55090.67|1994-04-17|2-HIGH|Clerk#000000395|0|oost furiously. pinto|
-97|22|F|68908.31|1993-01-29|3-MEDIUM|Clerk#000000547|0|hang blithely along the regular accounts. furiously even ideas after the|
-98|106|F|51004.44|1994-09-25|1-URGENT|Clerk#000000448|0|c asymptotes. quickly regular packages should have to nag re|
-99|89|F|92326.79|1994-03-13|4-NOT SPECIFIED|Clerk#000000973|0|e carefully ironic packages. pending|
-100|148|O|141311.01|1998-02-28|4-NOT SPECIFIED|Clerk#000000577|0|heodolites detect slyly alongside of the ent|
-101|28|O|95591.40|1996-03-17|3-MEDIUM|Clerk#000000419|0|ding accounts above the slyly final asymptote|
-102|1|O|113954.89|1997-05-09|2-HIGH|Clerk#000000596|0| slyly according to the asymptotes. carefully final packages integrate furious|
-103|31|O|95563.95|1996-06-20|4-NOT SPECIFIED|Clerk#000000090|0|ges. carefully unusual instructions haggle quickly regular f|
-128|74|F|36333.34|1992-06-15|1-URGENT|Clerk#000000385|0|ns integrate fluffily. ironic asymptotes after the regular excuses nag around |
-129|73|F|188124.55|1992-11-19|5-LOW|Clerk#000000859|0|ing tithes. carefully pending deposits boost about the silently express |
-130|37|F|115717.37|1992-05-08|2-HIGH|Clerk#000000036|0|le slyly unusual, regular packages? express deposits det|
-131|94|F|96596.81|1994-06-08|3-MEDIUM|Clerk#000000625|0|after the fluffily special foxes integrate s|
-132|28|F|118802.62|1993-06-11|3-MEDIUM|Clerk#000000488|0|sits are daringly accounts. carefully regular foxes sleep slyly about the|
-133|44|O|80437.72|1997-11-29|1-URGENT|Clerk#000000738|0|usly final asymptotes |
-134|7|F|154260.84|1992-05-01|4-NOT SPECIFIED|Clerk#000000711|0|lar theodolites boos|
-135|61|O|174569.88|1995-10-21|4-NOT SPECIFIED|Clerk#000000804|0|l platelets use according t|
-160|83|O|86076.86|1996-12-19|4-NOT SPECIFIED|Clerk#000000342|0|thely special sauternes wake slyly of t|
-161|17|F|19056.99|1994-08-31|2-HIGH|Clerk#000000322|0|carefully! special instructions sin|
-162|16|O|2158.13|1995-05-08|3-MEDIUM|Clerk#000000378|0|nts hinder fluffily ironic instructions. express, express excuses |
-163|88|O|125170.86|1997-09-05|3-MEDIUM|Clerk#000000379|0|y final packages. final foxes since the quickly even|
-164|1|F|202660.52|1992-10-21|5-LOW|Clerk#000000209|0|cajole ironic courts. slyly final ideas are slyly. blithely final Tiresias sub|
-165|28|F|141824.23|1993-01-30|4-NOT SPECIFIED|Clerk#000000292|0|across the blithely regular accounts. bold|
-166|109|O|93335.60|1995-09-12|2-HIGH|Clerk#000000440|0|lets. ironic, bold asymptotes kindle|
-167|121|F|52982.23|1993-01-04|4-NOT SPECIFIED|Clerk#000000731|0|s nag furiously bold excuses. fluffily iron|
-192|83|O|133002.55|1997-11-25|5-LOW|Clerk#000000483|0|y unusual platelets among the final instructions integrate rut|
-193|80|F|48053.18|1993-08-08|1-URGENT|Clerk#000000025|0|the furiously final pin|
-194|62|F|114097.63|1992-04-05|3-MEDIUM|Clerk#000000352|0|egular requests haggle slyly regular, regular pinto beans. asymptote|
-195|136|F|120053.52|1993-12-28|3-MEDIUM|Clerk#000000216|0|old forges are furiously sheaves. slyly fi|
-196|65|F|33248.04|1993-03-17|2-HIGH|Clerk#000000988|0|beans boost at the foxes. silent foxes|
-197|34|P|100290.07|1995-04-07|2-HIGH|Clerk#000000969|0|solve quickly about the even braids. carefully express deposits affix care|
-198|112|O|125792.83|1998-01-02|4-NOT SPECIFIED|Clerk#000000331|0|its. carefully ironic requests sleep. furiously express fox|
-199|53|O|80592.44|1996-03-07|2-HIGH|Clerk#000000489|0|g theodolites. special packag|
-224|4|F|155680.60|1994-06-18|4-NOT SPECIFIED|Clerk#000000642|0|r the quickly thin courts. carefully|
-225|34|P|165890.47|1995-05-25|1-URGENT|Clerk#000000177|0|s. blithely ironic accounts wake quickly fluffily special acc|
-226|128|F|180119.22|1993-03-10|2-HIGH|Clerk#000000756|0|s are carefully at the blithely ironic acc|
-227|10|O|46076.46|1995-11-10|5-LOW|Clerk#000000919|0| express instructions. slyly regul|
-228|46|F|2638.98|1993-02-25|1-URGENT|Clerk#000000562|0|es was slyly among the regular foxes. blithely regular dependenci|
-229|112|F|142290.77|1993-12-29|1-URGENT|Clerk#000000628|0|he fluffily even instructions. furiously i|
-230|103|F|107231.60|1993-10-27|1-URGENT|Clerk#000000520|0|odolites. carefully quick requ|
-231|91|F|141554.06|1994-09-29|2-HIGH|Clerk#000000446|0| packages haggle slyly after the carefully ironic instruct|
-256|125|F|106315.25|1993-10-19|4-NOT SPECIFIED|Clerk#000000834|0|he fluffily final ideas might are final accounts. carefully f|
-257|124|O|7102.74|1998-03-28|3-MEDIUM|Clerk#000000680|0|ts against the sly warhorses cajole slyly accounts|
-258|43|F|186669.10|1993-12-29|1-URGENT|Clerk#000000167|0|dencies. blithely quick packages cajole. ruthlessly final accounts|
-259|44|F|75661.70|1993-09-29|4-NOT SPECIFIED|Clerk#000000601|0|ages doubt blithely against the final foxes. carefully express deposits dazzle|
-260|106|O|179292.14|1996-12-10|3-MEDIUM|Clerk#000000960|0|lently regular pinto beans sleep after the slyly e|
-261|47|F|201003.12|1993-06-29|3-MEDIUM|Clerk#000000310|0|ully fluffily brave instructions. furiousl|
-262|31|O|108443.84|1995-11-25|4-NOT SPECIFIED|Clerk#000000551|0|l packages. blithely final pinto beans use carefu|
-263|118|F|79782.56|1994-05-17|2-HIGH|Clerk#000000088|0| pending instructions. blithely un|
-288|8|O|163794.53|1997-02-21|1-URGENT|Clerk#000000109|0|uriously final requests. even, final ideas det|
-289|104|O|131092.67|1997-02-10|3-MEDIUM|Clerk#000000103|0|sily. slyly special excuse|
-290|118|F|62814.89|1994-01-01|4-NOT SPECIFIED|Clerk#000000735|0|efully dogged deposits. furiou|
-291|142|F|66817.05|1994-03-13|1-URGENT|Clerk#000000923|0|dolites. carefully regular pinto beans cajol|
-292|23|F|30783.05|1992-01-13|2-HIGH|Clerk#000000193|0|g pinto beans will have to sleep f|
-293|31|F|37248.78|1992-10-02|2-HIGH|Clerk#000000629|0|re bold, ironic deposits. platelets c|
-294|52|F|30059.47|1993-07-16|3-MEDIUM|Clerk#000000499|0|kly according to the frays. final dolphins affix quickly |
-295|19|F|89345.99|1994-09-29|2-HIGH|Clerk#000000155|0| unusual pinto beans play. regular ideas haggle|
-320|1|O|39835.54|1997-11-21|2-HIGH|Clerk#000000573|0|ar foxes nag blithely|
-321|124|F|62251.15|1993-03-21|3-MEDIUM|Clerk#000000289|0|equests run. blithely final dependencies after the deposits wake caref|
-322|134|F|127068.89|1992-03-19|1-URGENT|Clerk#000000158|0|fully across the slyly bold packages. packages against the quickly regular i|
-323|40|F|79683.42|1994-03-26|1-URGENT|Clerk#000000959|0|arefully pending foxes sleep blithely. slyly express accoun|
-324|106|F|26868.85|1992-03-20|1-URGENT|Clerk#000000352|0| about the ironic, regular deposits run blithely against the excuses|
-325|41|F|71543.41|1993-10-17|5-LOW|Clerk#000000844|0|ly sometimes pending pa|
-326|76|O|229165.17|1995-06-04|2-HIGH|Clerk#000000466|0| requests. furiously ironic asymptotes mold carefully alongside of the blit|
-327|145|P|24468.16|1995-04-17|5-LOW|Clerk#000000992|0|ng the slyly final courts. slyly even escapades eat |
-352|107|F|16003.86|1994-03-08|2-HIGH|Clerk#000000932|0|ke slyly bold pinto beans. blithely regular accounts against the spe|
-353|2|F|179984.42|1993-12-31|5-LOW|Clerk#000000449|0| quiet ideas sleep. even instructions cajole slyly. silently spe|
-354|139|O|157062.70|1996-03-14|2-HIGH|Clerk#000000511|0|ly regular ideas wake across the slyly silent ideas. final deposits eat b|
-355|71|F|69447.25|1994-06-14|5-LOW|Clerk#000000532|0|s. sometimes regular requests cajole. regular, pending accounts a|
-356|148|F|162786.67|1994-06-30|4-NOT SPECIFIED|Clerk#000000944|0|as wake along the bold accounts. even, |
-357|61|O|98723.11|1996-10-09|2-HIGH|Clerk#000000301|0|e blithely about the express, final accounts. quickl|
-358|4|F|226806.66|1993-09-20|2-HIGH|Clerk#000000392|0|l, silent instructions are slyly. silently even de|
-359|79|F|142891.22|1994-12-19|3-MEDIUM|Clerk#000000934|0|n dolphins. special courts above the carefully ironic requests use|
-384|115|F|122785.82|1992-03-03|5-LOW|Clerk#000000206|0|, even accounts use furiously packages. slyly ironic pla|
-385|34|O|50724.06|1996-03-22|5-LOW|Clerk#000000600|0|hless accounts unwind bold pain|
-386|61|F|90380.40|1995-01-25|2-HIGH|Clerk#000000648|0| haggle quickly. stealthily bold asymptotes haggle among the furiously even re|
-387|4|O|130647.18|1997-01-26|4-NOT SPECIFIED|Clerk#000000768|0| are carefully among the quickly even deposits. furiously silent req|
-388|46|F|120533.46|1992-12-16|4-NOT SPECIFIED|Clerk#000000356|0|ar foxes above the furiously ironic deposits nag slyly final reque|
-389|127|F|1984.14|1994-02-17|2-HIGH|Clerk#000000062|0|ing to the regular asymptotes. final, pending foxes about the blithely sil|
-390|103|O|168562.27|1998-04-07|5-LOW|Clerk#000000404|0|xpress asymptotes use among the regular, final pinto b|
-391|112|F|13282.23|1994-11-17|2-HIGH|Clerk#000000256|0|orges thrash fluffil|
-416|41|F|71362.50|1993-09-27|5-LOW|Clerk#000000294|0| the accounts. fluffily bold depo|
-417|55|F|91982.29|1994-02-06|3-MEDIUM|Clerk#000000468|0|ironic, even packages. thinly unusual accounts sleep along the slyly unusual |
-418|95|P|33124.96|1995-04-13|4-NOT SPECIFIED|Clerk#000000643|0|. furiously ironic instruc|
-419|118|O|111597.96|1996-10-01|3-MEDIUM|Clerk#000000376|0|osits. blithely pending theodolites boost carefully|
-420|91|O|198039.23|1995-10-31|4-NOT SPECIFIED|Clerk#000000756|0|leep carefully final excuses. fluffily pending requests unwind carefully above|
-421|40|F|1084.38|1992-02-22|5-LOW|Clerk#000000405|0|egular, even packages according to the final, un|
-422|74|O|106045.89|1997-05-31|4-NOT SPECIFIED|Clerk#000000049|0|aggle carefully across the accounts. regular accounts eat fluffi|
-423|104|O|26981.31|1996-06-01|1-URGENT|Clerk#000000674|0|quests. deposits cajole quickly. furiously bold accounts haggle q|
-448|149|O|114978.03|1995-08-21|3-MEDIUM|Clerk#000000597|0| regular, express foxes use blithely. quic|
-449|97|O|41605.63|1995-07-20|2-HIGH|Clerk#000000841|0|. furiously regular theodolites affix blithely |
-450|49|P|153386.61|1995-03-05|4-NOT SPECIFIED|Clerk#000000293|0|d theodolites. boldly bold foxes since the pack|
-451|100|O|104664.40|1998-05-25|5-LOW|Clerk#000000048|0|nic pinto beans. theodolites poach carefully; |
-452|61|O|2007.48|1997-10-14|1-URGENT|Clerk#000000498|0|t, unusual instructions above the blithely bold pint|
-453|46|O|216826.73|1997-05-26|5-LOW|Clerk#000000504|0|ss foxes. furiously regular ideas sleep according to t|
-454|49|O|23198.24|1995-12-27|5-LOW|Clerk#000000890|0|dolites sleep carefully blithely regular deposits. quickly regul|
-455|13|O|138010.76|1996-12-04|1-URGENT|Clerk#000000796|0| about the final platelets. dependen|
-480|73|F|20530.97|1993-05-08|5-LOW|Clerk#000000004|0|ealthy pinto beans. fluffily regular requests along the special sheaves wake |
-481|31|F|117827.18|1992-10-08|2-HIGH|Clerk#000000230|0|ly final ideas. packages haggle fluffily|
-482|127|O|136634.34|1996-03-26|1-URGENT|Clerk#000000295|0|ts. deposits wake: final acco|
-483|35|O|39793.05|1995-07-11|2-HIGH|Clerk#000000025|0|cross the carefully final e|
-484|55|O|219920.62|1997-01-03|3-MEDIUM|Clerk#000000545|0|grouches use. furiously bold accounts maintain. bold, regular deposits|
-485|101|O|110432.76|1997-03-26|2-HIGH|Clerk#000000105|0| regular ideas nag thinly furiously s|
-486|52|O|185968.15|1996-03-11|4-NOT SPECIFIED|Clerk#000000803|0|riously dolphins. fluffily ironic requ|
-487|109|F|48502.79|1992-08-18|1-URGENT|Clerk#000000086|0|ithely unusual courts eat accordi|
-512|64|P|124661.48|1995-05-20|5-LOW|Clerk#000000814|0|ding requests. carefully express theodolites was quickly. furious|
-513|61|O|63703.92|1995-05-01|2-HIGH|Clerk#000000522|0|regular packages. pinto beans cajole carefully against the even|
-514|76|O|104585.77|1996-04-04|2-HIGH|Clerk#000000094|0| cajole furiously. slyly final excuses cajole. slyly special instructions |
-515|142|F|153720.22|1993-08-29|4-NOT SPECIFIED|Clerk#000000700|0|eposits are furiously furiously silent pinto beans. pending pack|
-516|44|O|10677.86|1998-04-21|2-HIGH|Clerk#000000305|0|lar, unusual platelets are carefully. even courts sleep bold, final pinto bea|
-517|10|O|82197.79|1997-04-07|5-LOW|Clerk#000000359|0|slyly pending deposits cajole quickly packages. furiou|
-518|145|O|223537.09|1998-02-08|2-HIGH|Clerk#000000768|0| the carefully bold accounts. quickly regular excuses are|
-519|64|O|95731.50|1997-10-31|1-URGENT|Clerk#000000985|0|ains doze furiously against the f|
-544|94|F|47627.89|1993-02-17|2-HIGH|Clerk#000000145|0|the special, final accounts. dogged dolphins|
-545|64|O|23476.12|1995-11-07|2-HIGH|Clerk#000000537|0|as. blithely final hockey players about th|
-546|145|O|14790.37|1996-11-01|2-HIGH|Clerk#000000041|0|osits sleep. slyly special dolphins about the q|
-547|100|O|96855.29|1996-06-22|3-MEDIUM|Clerk#000000976|0|ing accounts eat. carefully regular packa|
-548|124|F|99088.75|1994-09-21|1-URGENT|Clerk#000000435|0|arefully express instru|
-549|110|F|141679.41|1992-07-13|1-URGENT|Clerk#000000196|0|ideas alongside of |
-550|25|O|33123.28|1995-08-02|1-URGENT|Clerk#000000204|0|t requests. blithely |
-551|91|O|46355.83|1995-05-30|1-URGENT|Clerk#000000179|0|xpress accounts boost quic|
-576|31|O|18307.45|1997-05-13|3-MEDIUM|Clerk#000000955|0|l requests affix regular requests. final account|
-577|56|F|34768.68|1994-12-19|5-LOW|Clerk#000000154|0| deposits engage stealthil|
-578|94|O|70392.02|1997-01-10|5-LOW|Clerk#000000281|0|e blithely even packages. slyly pending platelets bes|
-579|68|O|120828.12|1998-03-11|2-HIGH|Clerk#000000862|0| regular instructions. blithely even p|
-580|61|O|88219.12|1997-07-05|2-HIGH|Clerk#000000314|0|tegrate fluffily regular accou|
-581|70|O|126066.00|1997-02-23|4-NOT SPECIFIED|Clerk#000000239|0| requests. even requests use slyly. blithely ironic |
-582|50|O|129004.81|1997-10-21|1-URGENT|Clerk#000000378|0|n pinto beans print a|
-583|49|O|127817.38|1997-03-19|3-MEDIUM|Clerk#000000792|0|efully express requests. a|
-608|26|O|62567.99|1996-02-28|3-MEDIUM|Clerk#000000995|0|nic waters wake slyly slyly expre|
-609|127|F|21088.59|1994-06-01|3-MEDIUM|Clerk#000000348|0|- ironic gifts believe furiously ca|
-610|52|O|175142.28|1995-08-02|1-URGENT|Clerk#000000610|0|totes. ironic, unusual packag|
-611|106|F|73907.63|1993-01-27|1-URGENT|Clerk#000000401|0|ounts detect furiously ac|
-612|82|F|145695.42|1992-10-21|3-MEDIUM|Clerk#000000759|0|boost quickly quickly final excuses. final foxes use bravely afte|
-613|139|O|33396.35|1995-06-18|2-HIGH|Clerk#000000172|0|ts hinder among the deposits. fluffily ironic depos|
-614|134|F|218116.21|1992-12-01|2-HIGH|Clerk#000000388|0| deposits! even, daring theodol|
-615|67|F|32890.89|1992-05-09|5-LOW|Clerk#000000388|0|t to promise asymptotes. packages haggle alongside of the fluffil|
-640|97|F|145495.62|1993-01-23|2-HIGH|Clerk#000000433|0|r, unusual accounts boost carefully final ideas. slyly silent theod|
-641|133|F|120626.49|1993-08-30|5-LOW|Clerk#000000175|0|ents cajole furiously about the quickly silent pac|
-642|40|F|22994.51|1993-12-16|3-MEDIUM|Clerk#000000357|0| among the requests wake slyly alongside of th|
-643|58|P|180396.95|1995-03-25|2-HIGH|Clerk#000000354|0|g dependencies. regular accounts |
-644|8|F|201268.06|1992-05-01|1-URGENT|Clerk#000000550|0| blithely unusual platelets haggle ironic, special excuses. excuses unwi|
-645|115|F|234763.73|1994-12-03|2-HIGH|Clerk#000000090|0|quickly daring theodolites across the regu|
-646|52|F|142070.65|1994-11-22|2-HIGH|Clerk#000000203|0|carefully even foxes. fina|
-647|143|O|56449.23|1997-08-07|1-URGENT|Clerk#000000270|0|egular pearls. carefully express asymptotes are. even account|
-672|109|F|89877.09|1994-04-14|5-LOW|Clerk#000000106|0|egular requests are furiously according to |
-673|80|F|21137.08|1994-03-10|1-URGENT|Clerk#000000448|0| special pinto beans use quickly furiously even depende|
-674|34|F|27204.60|1992-08-29|5-LOW|Clerk#000000448|0|ully special deposits. furiously final warhorses affix carefully. fluffily f|
-675|13|O|125188.72|1997-07-31|2-HIGH|Clerk#000000168|0|ffily between the careful|
-676|38|O|163966.67|1996-12-13|2-HIGH|Clerk#000000248|0|the final deposits. special, pending|
-677|124|F|147915.68|1993-11-24|3-MEDIUM|Clerk#000000824|0|uriously special pinto beans cajole carefully. fi|
-678|131|F|135761.05|1993-02-27|5-LOW|Clerk#000000530|0|. blithely final somas about the|
-679|49|O|8945.03|1995-12-15|2-HIGH|Clerk#000000853|0|tealthy, final pinto beans haggle slyly. pending platelets about the special, |
-704|85|O|56210.26|1996-11-21|3-MEDIUM|Clerk#000000682|0|blithely pending platelets wake alongside of the final, iron|
-705|43|O|83773.49|1997-02-13|4-NOT SPECIFIED|Clerk#000000294|0|ithely regular dependencies. express, even packages sleep slyly pending t|
-706|148|O|23973.60|1995-09-09|1-URGENT|Clerk#000000448|0|g the packages. deposits caj|
-707|118|F|58218.35|1994-11-20|3-MEDIUM|Clerk#000000199|0| ideas about the silent, bold deposits nag dolphins|
-708|32|O|100445.59|1998-07-03|3-MEDIUM|Clerk#000000101|0|lphins cajole about t|
-709|37|O|72055.87|1998-04-21|1-URGENT|Clerk#000000461|0|ons alongside of the carefully bold pinto bea|
-710|133|F|208974.42|1993-01-02|5-LOW|Clerk#000000026|0| regular, regular requests boost. fluffily re|
-711|64|F|92484.70|1993-09-23|4-NOT SPECIFIED|Clerk#000000856|0|its. fluffily regular gifts are furi|
-736|47|O|130204.17|1998-06-21|5-LOW|Clerk#000000881|0|refully of the final pi|
-737|121|F|12984.85|1992-04-26|5-LOW|Clerk#000000233|0|ake blithely express, ironic theodolites. blithely special accounts wa|
-738|22|F|114145.18|1993-03-02|4-NOT SPECIFIED|Clerk#000000669|0|ly even foxes. furiously regular accounts cajole ca|
-739|1|O|159171.69|1998-05-31|5-LOW|Clerk#000000900|0| against the slyly ironic packages nag slyly ironic|
-740|44|O|83490.99|1995-07-16|3-MEDIUM|Clerk#000000583|0|courts haggle furiously across the final, regul|
-741|106|O|47985.98|1998-07-07|2-HIGH|Clerk#000000295|0|ic instructions. slyly express instructions solv|
-742|103|F|207632.55|1994-12-23|5-LOW|Clerk#000000543|0|equests? slyly ironic dolphins boost carefully above the blithely|
-743|79|O|23614.89|1996-10-04|4-NOT SPECIFIED|Clerk#000000933|0|eans. furiously ironic deposits sleep carefully carefully qui|
-768|98|O|220636.82|1996-08-20|3-MEDIUM|Clerk#000000411|0|jole slyly ironic packages. slyly even idea|
-769|80|F|43092.76|1993-06-02|3-MEDIUM|Clerk#000000172|0|ggle furiously. ironic packages haggle slyly. bold platelets affix s|
-770|32|O|64271.75|1998-05-23|5-LOW|Clerk#000000572|0|heodolites. furiously special pinto beans cajole pac|
-771|46|O|105302.05|1995-06-17|1-URGENT|Clerk#000000105|0|s. furiously final instructions across the deposit|
-772|97|F|128234.96|1993-04-17|2-HIGH|Clerk#000000430|0|s boost blithely fluffily idle ideas? fluffily even pin|
-773|133|F|146862.27|1993-09-26|3-MEDIUM|Clerk#000000307|0|tions are quickly accounts. accounts use bold, even pinto beans. gifts ag|
-774|80|O|145857.60|1995-12-04|1-URGENT|Clerk#000000883|0|tealthily even depths|
-775|134|F|59455.61|1995-03-18|1-URGENT|Clerk#000000191|0|kly express requests. fluffily silent accounts poach furiously|
-800|56|O|87892.38|1998-07-14|2-HIGH|Clerk#000000213|0|y alongside of the pending packages? final platelets nag fluffily carefu|
-801|118|F|127717.72|1992-02-18|1-URGENT|Clerk#000000186|0|iously from the furiously enticing reques|
-802|137|F|156381.95|1995-01-05|1-URGENT|Clerk#000000516|0|posits. ironic, pending requests cajole. even theodol|
-803|16|O|27629.66|1997-04-29|5-LOW|Clerk#000000260|0|ic instructions. even deposits haggle furiously at the deposits-- regular de|
-804|50|F|94400.43|1993-03-12|3-MEDIUM|Clerk#000000931|0|s. blithely final foxes are about the packag|
-805|127|O|90042.41|1995-07-05|4-NOT SPECIFIED|Clerk#000000856|0|y according to the fluffily |
-806|131|O|26839.16|1996-06-20|2-HIGH|Clerk#000000240|0| the ironic packages wake carefully fina|
-807|145|F|222392.53|1993-11-24|3-MEDIUM|Clerk#000000012|0|refully special tithes. blithely regular accoun|
-832|29|F|68494.08|1992-04-19|5-LOW|Clerk#000000495|0|xes. bravely regular packages sleep up the furiously bold accou|
-833|56|F|49033.69|1994-02-13|3-MEDIUM|Clerk#000000437|0|ts haggle quickly across the slyl|
-834|43|F|46459.92|1994-05-23|3-MEDIUM|Clerk#000000805|0| sleep. quickly even foxes are boldly. slyly express requests use slyly|
-835|65|O|62430.67|1995-10-08|4-NOT SPECIFIED|Clerk#000000416|0|s about the carefully special foxes haggle quickly about the|
-836|70|O|72843.48|1996-11-25|4-NOT SPECIFIED|Clerk#000000729|0|ely bold excuses sleep regular ideas. furiously unusual ideas wake furiou|
-837|116|F|60918.41|1994-06-15|4-NOT SPECIFIED|Clerk#000000563|0|kages sleep slyly above the ironic, final orbits|
-838|17|O|82918.36|1998-01-29|5-LOW|Clerk#000000213|0| slyly around the slyly even|
-839|28|O|70182.63|1995-08-08|1-URGENT|Clerk#000000951|0|the carefully even platelets. furiously unusual fo|
-864|139|O|74710.74|1997-08-17|1-URGENT|Clerk#000000036|0|ly after the slyly regular deposits. express, regular asymptotes nag ca|
-865|4|F|70430.54|1993-05-04|3-MEDIUM|Clerk#000000337|0|. special packages wake after the carefully final accounts. express pinto be|
-866|40|F|4766.19|1992-11-28|3-MEDIUM|Clerk#000000718|0|ins after the even, even accounts nod blithel|
-867|26|F|7471.75|1993-11-16|3-MEDIUM|Clerk#000000877|0|pades nag quickly final, |
-868|104|F|127345.45|1992-06-09|4-NOT SPECIFIED|Clerk#000000782|0|onic theodolites print carefully. blithely dogge|
-869|136|O|58932.19|1997-01-12|2-HIGH|Clerk#000000245|0|ar sheaves are slowly. slyly even attainments boost theodolites. furiously|
-870|34|F|40492.37|1993-06-20|4-NOT SPECIFIED|Clerk#000000123|0|blithely ironic ideas nod. sly, r|
-871|16|O|172861.58|1995-11-15|5-LOW|Clerk#000000882|0|oss the ironic theodolites.|
-896|2|F|169847.63|1993-03-09|1-URGENT|Clerk#000000187|0|inal packages eat blithely according to the warhorses. furiously quiet de|
-897|49|P|57697.44|1995-03-20|1-URGENT|Clerk#000000316|0| wake quickly against |
-898|55|F|101020.75|1993-06-03|2-HIGH|Clerk#000000611|0|. unusual pinto beans haggle quickly across |
-899|109|O|125562.09|1998-04-08|5-LOW|Clerk#000000575|0|rts engage carefully final theodolites.|
-900|46|F|120073.51|1994-10-01|4-NOT SPECIFIED|Clerk#000000060|0| fluffily express deposits nag furiousl|
-901|13|O|81826.12|1998-07-21|4-NOT SPECIFIED|Clerk#000000929|0|lyly even foxes are furious, silent requests. requests about the quickly |
-902|10|F|37348.62|1994-07-27|4-NOT SPECIFIED|Clerk#000000811|0|yly final requests over the furiously regula|
-903|11|O|109351.87|1995-07-07|4-NOT SPECIFIED|Clerk#000000793|0|e slyly about the final pl|
-928|67|F|228136.49|1995-03-02|5-LOW|Clerk#000000450|0|ithely express pinto beans. |
-929|83|F|109301.02|1992-10-02|2-HIGH|Clerk#000000160|0|its. furiously even foxes affix carefully finally silent accounts. express req|
-930|131|F|199102.23|1994-12-17|1-URGENT|Clerk#000000004|0| accounts nag slyly. ironic, ironic accounts wake blithel|
-931|103|F|117909.23|1992-12-07|1-URGENT|Clerk#000000881|0|ss packages haggle furiously express, regular deposits. even, e|
-932|41|O|40234.50|1997-05-16|2-HIGH|Clerk#000000218|0|ly express instructions boost furiously reg|
-933|97|F|71349.30|1992-08-05|4-NOT SPECIFIED|Clerk#000000752|0|ial courts wake permanently against the furiously regular ideas. unusual |
-934|52|O|17213.59|1996-07-03|1-URGENT|Clerk#000000229|0|ts integrate carefully. sly, regular deposits af|
-935|50|O|97733.87|1997-09-24|5-LOW|Clerk#000000180|0|iously final deposits cajole. blithely even packages |
-960|35|F|63537.13|1994-09-21|3-MEDIUM|Clerk#000000120|0|regular accounts. requests|
-961|56|P|158893.16|1995-06-04|4-NOT SPECIFIED|Clerk#000000720|0|ons nag furiously among the quickl|
-962|37|F|98258.73|1994-05-06|5-LOW|Clerk#000000463|0|ments nag deposits. fluffily ironic a|
-963|26|F|53287.25|1994-05-26|3-MEDIUM|Clerk#000000497|0|uses haggle carefully. slyly even dependencies after the packages ha|
-964|76|O|131146.47|1995-05-20|3-MEDIUM|Clerk#000000657|0|print blithely ironic, careful theodolit|
-965|70|P|41758.44|1995-05-15|5-LOW|Clerk#000000218|0|iously special packages. slyly pending requests are carefully |
-966|14|O|120516.93|1998-04-30|2-HIGH|Clerk#000000239|0|special deposits. furious|
-967|110|F|179287.95|1992-06-21|3-MEDIUM|Clerk#000000167|0|excuses engage quickly bold dep|
-992|55|O|133665.12|1997-11-11|3-MEDIUM|Clerk#000000875|0|ts. regular pinto beans thrash carefully sl|
-993|80|O|198238.65|1995-09-10|3-MEDIUM|Clerk#000000894|0|quickly express accounts among the furiously bol|
-994|2|F|41433.48|1994-04-20|5-LOW|Clerk#000000497|0|ole. slyly bold excuses nag caref|
-995|116|P|135157.92|1995-05-31|3-MEDIUM|Clerk#000000439|0|deas. blithely final deposits play. express accounts wake blithely caref|
-996|71|O|47447.63|1997-12-29|1-URGENT|Clerk#000000497|0|arefully final packages into the slyly final requests affix blit|
-997|109|O|27561.82|1997-05-19|2-HIGH|Clerk#000000651|0|ly express depths. furiously final requests haggle furiously. carefu|
-998|32|F|65269.38|1994-11-26|4-NOT SPECIFIED|Clerk#000000956|0|ronic dolphins. ironic, bold ideas haggle furiously furious|
-999|61|F|145249.13|1993-09-05|5-LOW|Clerk#000000464|0|pitaphs sleep. regular accounts use. f|
-1024|4|O|176084.63|1997-12-23|5-LOW|Clerk#000000903|0| blithely. even, express theodolites cajole slyly across|
-1025|103|F|82034.03|1995-05-05|2-HIGH|Clerk#000000376|0|ross the slyly final pa|
-1026|73|O|36464.76|1997-06-04|5-LOW|Clerk#000000223|0|s wake blithely. special acco|
-1027|128|F|112770.89|1992-06-03|3-MEDIUM|Clerk#000000241|0|equests cajole. slyly final pinto bean|
-1028|70|F|153864.67|1994-01-01|2-HIGH|Clerk#000000131|0|ts are. final, silent deposits are among the fl|
-1029|130|F|47440.91|1994-06-21|2-HIGH|Clerk#000000700|0|quests sleep. slyly even foxes wake quickly final theodolites. clo|
-1030|134|F|16346.94|1994-06-15|5-LOW|Clerk#000000422|0|ully ironic accounts sleep carefully. requests are carefully alongside of the |
-1031|4|F|128024.71|1994-09-01|3-MEDIUM|Clerk#000000448|0|s; ironic theodolites along the carefully ex|
-1056|28|F|38446.39|1995-02-11|1-URGENT|Clerk#000000125|0|t, even deposits hang about the slyly special i|
-1057|76|F|108107.42|1992-02-20|1-URGENT|Clerk#000000124|0|cuses dazzle carefully careful, ironic pinto beans. carefully even theod|
-1058|53|F|89359.11|1993-04-26|3-MEDIUM|Clerk#000000373|0|kly pending courts haggle. blithely regular sheaves integrate carefully fi|
-1059|127|F|198360.22|1994-02-27|1-URGENT|Clerk#000000104|0|en accounts. carefully bold packages cajole daringly special depende|
-1060|140|F|121994.04|1993-02-21|3-MEDIUM|Clerk#000000989|0|l platelets sleep quickly slyly special requests. furiously |
-1061|103|O|166947.75|1998-05-15|5-LOW|Clerk#000000576|0|uests sleep at the packages. fur|
-1062|106|O|39805.04|1997-01-15|1-URGENT|Clerk#000000152|0|eposits use blithely |
-1063|37|F|41392.31|1994-04-02|2-HIGH|Clerk#000000024|0|deposits nag quickly regular deposits. quickl|
-1088|148|F|47120.41|1992-05-21|5-LOW|Clerk#000000347|0|counts are blithely. platelets print. carefully |
-1089|49|O|103192.74|1996-05-04|4-NOT SPECIFIED|Clerk#000000226|0|ns haggle ruthlessly. even requests are quickly abov|
-1090|19|O|32929.30|1997-11-15|2-HIGH|Clerk#000000300|0| furiously regular platelets haggle along the slyly unusual foxes! |
-1091|83|O|35795.22|1996-08-27|1-URGENT|Clerk#000000549|0| even pinto beans haggle quickly alongside of the eve|
-1092|124|P|85552.21|1995-03-04|3-MEDIUM|Clerk#000000006|0|re quickly along the blithe|
-1093|101|O|79189.58|1997-07-31|4-NOT SPECIFIED|Clerk#000000159|0| after the carefully ironic requests. carefully ironic packages wake fluffil|
-1094|145|O|9006.25|1997-12-24|3-MEDIUM|Clerk#000000570|0|beans affix furiously about the pending, even deposits. finally pendi|
-1095|145|O|178491.24|1995-08-22|3-MEDIUM|Clerk#000000709|0|sly bold requests cajole carefully according to|
-1120|140|O|107958.62|1997-11-07|3-MEDIUM|Clerk#000000319|0|lly special requests. slyly pending platelets are quickly pending requ|
-1121|29|O|241837.88|1997-01-13|3-MEDIUM|Clerk#000000541|0|r escapades. deposits above the fluffily bold requests hag|
-1122|121|O|179747.47|1997-01-10|1-URGENT|Clerk#000000083|0|uffily carefully final theodolites. furiously express packages affix|
-1123|73|O|93259.93|1996-08-03|3-MEDIUM|Clerk#000000929|0|uriously pending requests. slyly regular instruction|
-1124|80|O|141858.97|1998-07-30|5-LOW|Clerk#000000326|0|regular pinto beans along the fluffily silent packages|
-1125|25|F|80438.38|1994-10-27|2-HIGH|Clerk#000000510|0|ithely final requests. i|
-1126|145|O|59982.31|1998-01-28|4-NOT SPECIFIED|Clerk#000000928|0|d slyly regular ideas: special ideas believe slyly. slyly ironic sheaves w|
-1127|58|O|103320.91|1995-09-19|4-NOT SPECIFIED|Clerk#000000397|0|usly silent, regular pinto beans. blithely express requests boos|
-1152|49|F|51775.54|1994-08-14|4-NOT SPECIFIED|Clerk#000000496|0|equests. deposits ab|
-1153|121|O|220727.97|1996-04-18|5-LOW|Clerk#000000059|0| across the pending deposi|
-1154|37|F|192417.85|1992-02-15|1-URGENT|Clerk#000000268|0|old asymptotes are special requests. blithely even deposits sleep furiously|
-1155|149|O|126902.81|1997-10-06|2-HIGH|Clerk#000000164|0|c deposits haggle among the ironic, even requests. carefully ironic sheaves n|
-1156|133|O|217682.81|1996-10-19|1-URGENT|Clerk#000000200|0| blithely ironic dolphins. furiously pendi|
-1157|97|O|85394.06|1998-01-14|4-NOT SPECIFIED|Clerk#000000207|0|out the regular excuses boost carefully against the furio|
-1158|142|O|31075.51|1996-06-30|2-HIGH|Clerk#000000549|0|integrate slyly furiously ironic deposit|
-1159|70|F|55553.68|1992-09-18|3-MEDIUM|Clerk#000000992|0|ts may sleep. requests according to the|
-1184|89|O|39700.29|1997-10-26|5-LOW|Clerk#000000777|0|iously even packages haggle fluffily care|
-1185|74|F|47033.21|1992-08-24|5-LOW|Clerk#000000344|0| even escapades are. package|
-1186|59|O|82026.18|1996-08-15|4-NOT SPECIFIED|Clerk#000000798|0|ingly regular pinto beans: instructi|
-1187|134|F|85948.02|1992-11-20|3-MEDIUM|Clerk#000000047|0|s after the furiously final deposits boost slyly under the|
-1188|20|O|54655.07|1996-04-11|2-HIGH|Clerk#000000256|0|ully ironic deposits. slyl|
-1189|46|F|71017.99|1994-04-09|1-URGENT|Clerk#000000243|0|f the even accounts. courts print blithely ironic accounts. sile|
-1190|13|O|31043.39|1997-03-16|5-LOW|Clerk#000000575|0|ccounts above the foxes integrate carefully after the |
-1191|112|O|28623.04|1995-11-07|3-MEDIUM|Clerk#000000011|0|uests nag furiously. carefully even requests|
-1216|122|F|68056.57|1992-12-07|5-LOW|Clerk#000000918|0|nal foxes around the e|
-1217|7|F|40982.08|1992-04-26|4-NOT SPECIFIED|Clerk#000000538|0| foxes nag quickly. ironic excuses nod. blithely pending|
-1218|10|F|99834.47|1994-06-20|4-NOT SPECIFIED|Clerk#000000994|0|s cajole. special, silent deposits about the theo|
-1219|28|O|10163.56|1995-10-05|3-MEDIUM|Clerk#000000800|0|od carefully. slyly final dependencies across the even fray|
-1220|49|O|122157.14|1996-08-29|1-URGENT|Clerk#000000712|0|inal theodolites wake. fluffily ironic asymptotes cajol|
-1221|14|F|117397.16|1992-04-19|4-NOT SPECIFIED|Clerk#000000852|0| detect against the silent, even deposits. carefully ironic|
-1222|10|F|47623.94|1993-02-05|3-MEDIUM|Clerk#000000811|0|theodolites use quickly even accounts. carefully final asympto|
-1223|10|O|26714.67|1996-05-25|4-NOT SPECIFIED|Clerk#000000238|0|posits was blithely fr|
-1248|49|F|210713.88|1992-01-02|1-URGENT|Clerk#000000890|0|t the carefully regular dugouts. s|
-1249|149|F|45889.09|1994-01-05|1-URGENT|Clerk#000000095|0|al ideas sleep above the pending pin|
-1250|37|F|12907.62|1992-09-29|4-NOT SPECIFIED|Clerk#000000652|0|ts after the fluffily pending instructions use slyly about the s|
-1251|38|O|109536.55|1997-10-30|1-URGENT|Clerk#000000276|0|, brave sauternes. deposits boost fluffily.|
-1252|149|O|93403.05|1997-08-04|5-LOW|Clerk#000000348|0|ng the slyly regular excuses. special courts nag furiously blithely e|
-1253|115|F|92730.74|1993-01-26|1-URGENT|Clerk#000000775|0| requests sleep furiously even foxes. ruthless packag|
-1254|70|O|94649.25|1995-12-22|1-URGENT|Clerk#000000607|0| pinto beans. carefully regular request|
-1255|122|F|62518.31|1994-05-30|4-NOT SPECIFIED|Clerk#000000798|0|ct slyly regular accounts. quick|
-1280|97|F|91664.85|1993-01-11|5-LOW|Clerk#000000160|0|posits thrash quickly after the theodolites. furiously iro|
-1281|62|F|165454.51|1994-12-11|1-URGENT|Clerk#000000430|0|counts. carefully pending accounts eat |
-1282|116|F|61297.42|1992-02-29|4-NOT SPECIFIED|Clerk#000000168|0|he quickly special packages. furiously final re|
-1283|118|O|202623.92|1996-08-30|4-NOT SPECIFIED|Clerk#000000260|0| pinto beans boost slyly ac|
-1284|134|O|106122.38|1996-01-07|2-HIGH|Clerk#000000492|0|s. blithely silent deposits s|
-1285|11|F|139124.72|1992-06-01|1-URGENT|Clerk#000000423|0|cial deposits cajole after the ironic requests. p|
-1286|109|F|207291.83|1993-05-14|4-NOT SPECIFIED|Clerk#000000939|0| deposits use carefully from the excuses. slyly bold p|
-1287|19|F|131432.42|1994-07-05|2-HIGH|Clerk#000000288|0|ly ironic dolphins integrate furiously among the final packages. st|
-1312|112|F|58111.00|1994-05-19|3-MEDIUM|Clerk#000000538|0|n, express accounts across the ironic|
-1313|148|F|46598.65|1994-09-13|1-URGENT|Clerk#000000774|0|ld accounts. regular deposits cajole. ironically pending theodolites use car|
-1314|143|F|56207.66|1994-05-13|3-MEDIUM|Clerk#000000485|0|ickly blithe packages nod ideas. furiously bold braids boost around the car|
-1315|22|O|121935.23|1998-03-22|5-LOW|Clerk#000000840|0|final theodolites alongside of the carefu|
-1316|16|F|163746.47|1993-12-03|1-URGENT|Clerk#000000857|0|ully bold theodolites? pending, bold pin|
-1317|100|P|139714.71|1995-05-19|2-HIGH|Clerk#000000373|0|sts. furiously special deposits lose fur|
-1318|128|O|81663.65|1998-06-27|3-MEDIUM|Clerk#000000581|0|s hang bold requests. pending, re|
-1319|32|O|31103.83|1996-09-27|2-HIGH|Clerk#000000257|0|y across the ruthlessly ironic accounts. unusu|
-1344|17|F|43809.37|1992-04-16|5-LOW|Clerk#000000178|0|omise close, silent requests. pending theodolites boost pending |
-1345|95|F|111207.93|1992-10-28|5-LOW|Clerk#000000447|0| regular tithes. quickly fluffy de|
-1346|76|F|171975.62|1992-06-18|2-HIGH|Clerk#000000374|0|ges sleep quickly-- even pint|
-1347|41|O|173444.60|1997-06-20|5-LOW|Clerk#000000977|0|he furiously even foxes use carefully express req|
-1348|19|O|94135.77|1998-04-18|5-LOW|Clerk#000000206|0|tly. quickly even deposi|
-1349|64|O|46376.09|1997-10-26|1-URGENT|Clerk#000000543|0|yly! blithely special theodolites cajole. unusual, reg|
-1350|52|F|49305.98|1993-08-24|1-URGENT|Clerk#000000635|0|iously about the blithely special a|
-1351|106|O|24637.96|1998-04-20|1-URGENT|Clerk#000000012|0| cajole. regular, special re|
-1376|47|O|23984.88|1997-05-04|4-NOT SPECIFIED|Clerk#000000730|0|der furiously final, final frets. carefull|
-1377|20|O|108334.30|1998-04-24|4-NOT SPECIFIED|Clerk#000000625|0|lly across the blithely express accounts. ironic excuses promise carefully de|
-1378|20|O|118495.12|1996-03-09|4-NOT SPECIFIED|Clerk#000000705|0| furiously even tithes cajole slyly among the quick|
-1379|65|O|84627.76|1998-05-25|5-LOW|Clerk#000000861|0|y deposits are caref|
-1380|137|O|94969.41|1996-07-07|3-MEDIUM|Clerk#000000969|0|inal deposits wake slyly daringly even requests. bold, even foxe|
-1381|127|O|58212.22|1998-05-25|3-MEDIUM|Clerk#000000107|0|even requests breach after the bold, ironic instructions. slyly even|
-1382|133|F|173522.71|1993-08-17|5-LOW|Clerk#000000241|0|fully final packages sl|
-1383|121|F|34797.72|1993-04-27|2-HIGH|Clerk#000000785|0|ts. express requests sleep blithel|
-1408|55|O|183965.61|1997-12-26|4-NOT SPECIFIED|Clerk#000000942|0|t the quickly final asymptotes. unusual|
-1409|143|F|72440.52|1992-12-31|4-NOT SPECIFIED|Clerk#000000065|0|ructions. furiously unusual excuses are regular, unusual theodolites. fin|
-1410|113|O|114879.19|1997-04-12|5-LOW|Clerk#000000123|0|iously along the bravely regular dolphins. pinto beans cajole furiously sp|
-1411|95|F|164462.61|1994-12-21|2-HIGH|Clerk#000000566|0|s. furiously special excuses across the pending pinto beans haggle sp|
-1412|53|F|78676.54|1993-03-13|4-NOT SPECIFIED|Clerk#000000083|0|uffily daring theodolit|
-1413|91|O|75733.58|1997-06-14|3-MEDIUM|Clerk#000000342|0|, ironic instructions. carefully even packages dazzle|
-1414|77|O|38057.81|1995-08-16|1-URGENT|Clerk#000000883|0|ccounts. ironic foxes haggle car|
-1415|79|F|24654.79|1994-05-29|4-NOT SPECIFIED|Clerk#000000601|0|rays. blithely final ideas affix quickl|
-1440|98|O|50201.16|1995-08-10|5-LOW|Clerk#000000956|0| pending requests. closely s|
-1441|122|O|156477.94|1997-03-06|4-NOT SPECIFIED|Clerk#000000156|0|ter the excuses. ironic dependencies m|
-1442|112|F|7108.12|1994-07-05|4-NOT SPECIFIED|Clerk#000000935|0|nal pinto beans. slyly ironic ideas cajol|
-1443|44|O|44672.03|1996-12-16|5-LOW|Clerk#000000185|0|x blithely against the carefully final somas. even asymptotes are. quickly spe|
-1444|134|F|207907.60|1994-12-06|3-MEDIUM|Clerk#000000783|0|ove the bold accounts cajole fluffily about|
-1445|115|F|154653.32|1995-01-10|3-MEDIUM|Clerk#000000211|0|even packages wake fluffily |
-1446|41|O|27663.16|1998-02-16|5-LOW|Clerk#000000274|0|lly regular notornis above the requests sleep final accounts! |
-1447|91|F|108171.38|1992-10-15|2-HIGH|Clerk#000000880|0|inly against the blithely pending excuses. regular, pe|
-1472|149|O|65331.05|1996-10-06|5-LOW|Clerk#000000303|0|y special dolphins around the final dependencies wake quick|
-1473|94|O|80624.38|1997-03-17|3-MEDIUM|Clerk#000000960|0|furiously close accoun|
-1474|70|F|51697.18|1995-01-09|1-URGENT|Clerk#000000438|0|detect quickly above the carefully even |
-1475|5|O|185496.66|1997-11-12|2-HIGH|Clerk#000000972|0|cally final packages boost. blithely ironic packa|
-1476|145|O|18795.62|1996-06-27|2-HIGH|Clerk#000000673|0|ding accounts hinder alongside of the quickly pending requests. fluf|
-1477|76|O|231831.35|1997-08-24|5-LOW|Clerk#000000612|0|ly bold foxes. final ideas would cajo|
-1478|50|O|20791.50|1997-08-03|2-HIGH|Clerk#000000827|0|lessly. carefully express|
-1479|16|O|31471.04|1995-12-16|4-NOT SPECIFIED|Clerk#000000697|0|he furiously even foxes. thinly bold deposits|
-1504|2|F|89399.40|1992-08-28|3-MEDIUM|Clerk#000000381|0|, brave deposits. bold de|
-1505|37|F|55892.35|1992-08-21|2-HIGH|Clerk#000000544|0|s. slyly ironic packages cajole. carefully regular packages haggle |
-1506|148|F|195844.84|1992-09-21|3-MEDIUM|Clerk#000000620|0| dependencies. accounts affix blithely slowly unusual deposits. slyly regular |
-1507|121|F|96166.92|1993-10-14|3-MEDIUM|Clerk#000000305|0|stealthy, ironic de|
-1508|103|O|151282.65|1998-04-10|5-LOW|Clerk#000000117|0| after the furiously regular pinto beans hang slyly quickly ironi|
-1509|64|F|180455.98|1993-07-08|5-LOW|Clerk#000000770|0|the regular ideas. regul|
-1510|53|O|154590.05|1996-09-17|5-LOW|Clerk#000000128|0|ld carefully. furiously final asymptotes haggle furiously|
-1511|79|O|59651.38|1996-12-22|4-NOT SPECIFIED|Clerk#000000386|0|ts above the depend|
-1536|94|O|5184.26|1997-01-26|3-MEDIUM|Clerk#000000117|0|ges are! furiously final deposits cajole iron|
-1537|109|F|108317.51|1992-02-15|4-NOT SPECIFIED|Clerk#000000862|0|g to the even deposits. ironic, final packages |
-1538|29|O|179554.41|1995-06-18|4-NOT SPECIFIED|Clerk#000000258|0| instructions. regular theod|
-1539|112|F|39612.63|1995-03-10|5-LOW|Clerk#000000840|0|nstructions boost pa|
-1540|16|F|128014.15|1992-08-05|2-HIGH|Clerk#000000927|0|r ideas hinder blithe|
-1541|94|P|47286.32|1995-05-18|1-URGENT|Clerk#000000906|0|y. slyly ironic warhorses around the furiously regul|
-1542|143|F|132972.24|1993-09-15|3-MEDIUM|Clerk#000000435|0|t the furiously close deposits do was f|
-1543|52|O|139047.22|1997-02-20|1-URGENT|Clerk#000000398|0|unts. furiously pend|
-1568|17|O|76119.72|1997-01-30|4-NOT SPECIFIED|Clerk#000000554|0|d notornis. carefully |
-1569|104|O|87803.55|1998-04-02|5-LOW|Clerk#000000786|0|orbits. fluffily even decoys serve blithely. furiously furious realms nag acro|
-1570|124|O|35589.57|1998-03-16|1-URGENT|Clerk#000000745|0|pinto beans haggle furiousl|
-1571|103|F|151404.78|1992-12-05|2-HIGH|Clerk#000000565|0|ously furiously bold warthogs. slyly ironic instructions are quickly a|
-1572|11|O|47232.79|1996-02-24|2-HIGH|Clerk#000000994|0|fluffily ironic accounts haggle blithely final platelets! slyly regular foxes|
-1573|148|F|86918.57|1992-12-28|2-HIGH|Clerk#000000940|0|ess, ironic deposits use along the carefu|
-1574|134|O|179923.54|1996-12-12|3-MEDIUM|Clerk#000000809|0| ideas hinder after the carefully unusual |
-1575|145|O|197031.52|1995-09-13|3-MEDIUM|Clerk#000000497|0|. furiously regular dep|
-1600|94|F|130515.61|1993-03-03|3-MEDIUM|Clerk#000000627|0|tions cajole quietly above the regular, silent requests. slyly fin|
-1601|53|F|73962.95|1994-08-27|5-LOW|Clerk#000000469|0|ent deposits are ca|
-1602|1|F|4225.26|1993-08-05|5-LOW|Clerk#000000660|0|deposits. busily silent instructions haggle furiously. fin|
-1603|2|F|29305.47|1993-07-31|4-NOT SPECIFIED|Clerk#000000869|0|s. slyly silent deposits boo|
-1604|113|F|107139.29|1993-07-17|5-LOW|Clerk#000000512|0|lithely silent waters. blithely unusual packages alongside |
-1605|58|O|130687.64|1998-04-24|4-NOT SPECIFIED|Clerk#000000616|0|sleep furiously? ruthless, even pinto beans |
-1606|53|O|115877.40|1997-04-17|4-NOT SPECIFIED|Clerk#000000550|0|r requests. quickly even platelets breach before the ironically|
-1607|149|O|166335.03|1995-12-16|2-HIGH|Clerk#000000498|0| bold, pending foxes haggle. slyly silent |
-1632|67|O|183286.33|1997-01-08|3-MEDIUM|Clerk#000000351|0|onic requests are accounts. bold a|
-1633|16|O|52359.51|1995-10-14|2-HIGH|Clerk#000000666|0|y silent accounts sl|
-1634|70|O|145898.47|1996-09-10|1-URGENT|Clerk#000000360|0|arefully blithely ironic requests. slyly unusual instructions alongside|
-1635|4|O|70232.26|1997-02-13|3-MEDIUM|Clerk#000000958|0|s. slyly ironic requests affix slyly |
-1636|79|O|172021.87|1997-06-17|3-MEDIUM|Clerk#000000457|0|ding requests. slyly ironic courts wake quickl|
-1637|73|F|180912.15|1995-02-08|4-NOT SPECIFIED|Clerk#000000189|0| final accounts. blithely silent ideas cajole bravely. carefully express |
-1638|139|O|172436.30|1997-08-13|2-HIGH|Clerk#000000643|0|he fluffily regular asymp|
-1639|5|O|104166.56|1995-08-20|4-NOT SPECIFIED|Clerk#000000939|0|haggle furiously. final requests detect furious|
-1664|64|O|178060.22|1996-03-03|1-URGENT|Clerk#000000090|0|y quickly even asymptotes. furiously regular packages haggle quickly fin|
-1665|76|F|4819.91|1994-05-08|2-HIGH|Clerk#000000920|0|ly regular packages are fluffily even ideas. fluffily final|
-1666|95|O|128367.97|1995-10-18|1-URGENT|Clerk#000000849|0|ffily pending dependencies wake fluffily. pending, final accounts |
-1667|5|O|125030.37|1997-10-10|2-HIGH|Clerk#000000103|0|e accounts. slyly express accounts must are a|
-1668|142|O|137576.19|1997-07-12|4-NOT SPECIFIED|Clerk#000000148|0|eodolites. carefully dogged dolphins haggle q|
-1669|2|O|24362.39|1997-06-09|3-MEDIUM|Clerk#000000663|0|er ironic requests detect furiously blithely sp|
-1670|25|O|89999.72|1997-05-24|2-HIGH|Clerk#000000320|0|unusual dependencies. furiously special platelets main|
-1671|35|O|104391.11|1996-07-27|4-NOT SPECIFIED|Clerk#000000275|0|ly. slyly pending requests was above the |
-1696|4|O|102665.03|1998-01-08|4-NOT SPECIFIED|Clerk#000000041|0|bravely bold accounts above the quickly bold|
-1697|76|O|122621.31|1996-10-07|1-URGENT|Clerk#000000815|0|o x-ray blithely. pl|
-1698|40|O|141118.87|1997-04-23|2-HIGH|Clerk#000000432|0|slyly. carefully express deposit|
-1699|85|F|66408.29|1993-12-30|1-URGENT|Clerk#000000125|0|jole blithely. furiously un|
-1700|65|O|89143.36|1996-06-15|3-MEDIUM|Clerk#000000328|0|ely final dolphins wake sometimes above the quietly regular deposits. fur|
-1701|130|F|72835.95|1992-05-19|2-HIGH|Clerk#000000395|0|furiously. regular, close theodoli|
-1702|67|P|194119.31|1995-05-07|2-HIGH|Clerk#000000300|0|around the carefully final deposits cajole carefully according to the b|
-1703|134|F|121220.59|1993-01-28|3-MEDIUM|Clerk#000000463|0| pinto beans poach. bold courts boost. regular, express deposits at|
-1728|64|O|131604.34|1996-05-22|2-HIGH|Clerk#000000711|0|beans. slyly regular instructions sleep! slyly final packages|
-1729|133|F|12137.76|1992-05-19|2-HIGH|Clerk#000000158|0|pending foxes wake. accounts|
-1730|124|O|150886.49|1998-07-24|5-LOW|Clerk#000000794|0| fluffily pending deposits serve. furiously even requests wake furiou|
-1731|128|O|190490.78|1996-01-06|1-URGENT|Clerk#000000268|0|lithely regular, final instructions. ironic, express packages are above|
-1732|146|F|179854.51|1993-11-29|5-LOW|Clerk#000000903|0|inal requests integrate dolph|
-1733|148|O|165489.52|1996-05-12|2-HIGH|Clerk#000000789|0|e carefully according to the accounts. furiously pending instructions sleep|
-1734|7|F|44002.53|1994-06-11|2-HIGH|Clerk#000000722|0| final ideas haggle. blithely quick foxes sleep busily bold ideas. i|
-1735|22|F|98541.95|1992-12-27|1-URGENT|Clerk#000000458|0|ully idle requests wake qu|
-1760|115|O|82151.12|1996-05-17|5-LOW|Clerk#000000917|0| deposits. busily regular deposits wake blithely along the furiously even re|
-1761|106|F|211925.95|1993-12-24|2-HIGH|Clerk#000000817|0|efully slyly bold frets. packages boost b|
-1762|77|F|202227.17|1994-08-20|4-NOT SPECIFIED|Clerk#000000653|0|ly ironic packages. furi|
-1763|121|O|140685.01|1996-10-29|2-HIGH|Clerk#000000321|0|es. bold dependencies haggle furiously along |
-1764|29|F|47384.71|1992-03-25|1-URGENT|Clerk#000000182|0|. slyly final packages integrate carefully acro|
-1765|73|O|36551.43|1995-12-03|4-NOT SPECIFIED|Clerk#000000490|0| regular excuses wake slyly|
-1766|139|O|41032.81|1996-10-12|2-HIGH|Clerk#000000983|0|unusual deposits affix quickly beyond the carefully s|
-1767|25|P|136582.60|1995-03-14|2-HIGH|Clerk#000000327|0|eposits use carefully carefully regular platelets. quickly regular packages al|
-1792|49|F|107919.86|1993-11-09|5-LOW|Clerk#000000102|0|ructions haggle along the pending packages. carefully speci|
-1793|19|F|82504.56|1992-07-12|4-NOT SPECIFIED|Clerk#000000291|0|regular packages cajole. blithely special packages according to the final d|
-1794|140|O|179462.21|1997-09-28|1-URGENT|Clerk#000000686|0|ally silent pinto beans. regular package|
-1795|94|F|146849.33|1994-03-19|2-HIGH|Clerk#000000815|0| quickly final packages! blithely dogged accounts c|
-1796|47|F|33755.47|1992-11-21|2-HIGH|Clerk#000000245|0|eans use furiously around th|
-1797|125|O|51494.47|1996-05-07|3-MEDIUM|Clerk#000000508|0|quiet platelets haggle since the quickly ironic instructi|
-1798|52|O|46393.97|1997-07-28|1-URGENT|Clerk#000000741|0|al foxes are blithe|
-1799|61|F|46815.93|1994-03-07|4-NOT SPECIFIED|Clerk#000000339|0|ns sleep furiously final waters. blithely regular instructions h|
-1824|49|F|81351.53|1994-05-05|1-URGENT|Clerk#000000972|0|e blithely fluffily|
-1825|148|F|150582.77|1993-12-05|3-MEDIUM|Clerk#000000345|0|ironic, final accou|
-1826|82|F|124719.97|1992-04-16|4-NOT SPECIFIED|Clerk#000000718|0|the even asymptotes dazzle fluffily slyly regular asymptotes. final, unu|
-1827|106|O|210113.88|1996-06-22|4-NOT SPECIFIED|Clerk#000000369|0|luffily even requests haggle sly|
-1828|32|F|137369.50|1994-04-18|3-MEDIUM|Clerk#000000840|0|y quickly bold packag|
-1829|112|F|127532.20|1994-05-08|2-HIGH|Clerk#000000537|0| accounts wake above the furiously unusual requests. pending package|
-1830|133|F|85122.24|1995-02-23|1-URGENT|Clerk#000000045|0|according to the even,|
-1831|71|F|58032.77|1993-12-02|1-URGENT|Clerk#000000854|0| accounts. carefully even accounts boost furiously. regular ideas engage. |
-1856|106|F|189361.42|1992-03-20|4-NOT SPECIFIED|Clerk#000000952|0|. special pinto beans run acr|
-1857|133|F|102793.59|1993-01-13|2-HIGH|Clerk#000000083|0|hely final ideas slee|
-1858|143|O|30457.91|1997-12-13|1-URGENT|Clerk#000000389|0|thely. slyly final deposits sleep|
-1859|61|O|105094.09|1997-04-11|4-NOT SPECIFIED|Clerk#000000949|0| the foxes. bravely special excuses nag carefully special r|
-1860|10|O|9103.40|1996-04-04|3-MEDIUM|Clerk#000000556|0|osits. quickly bold deposits according to |
-1861|70|F|95063.41|1994-01-03|3-MEDIUM|Clerk#000000847|0|r the fluffily close sauternes. furio|
-1862|34|O|97981.06|1998-02-24|5-LOW|Clerk#000000348|0|ts snooze ironically abou|
-1863|74|F|96359.65|1993-09-23|4-NOT SPECIFIED|Clerk#000000658|0|old sentiments. careful, |
-1888|121|F|224724.11|1993-10-31|4-NOT SPECIFIED|Clerk#000000659|0|olites. pinto beans cajole. regular deposits affix. slyly regular|
-1889|25|O|96431.77|1997-03-16|1-URGENT|Clerk#000000854|0|p around the regular notornis. unusual deposits|
-1890|10|O|202364.58|1996-12-18|4-NOT SPECIFIED|Clerk#000000627|0|romise final, regular deposits. regular fox|
-1891|61|F|76848.96|1994-12-15|5-LOW|Clerk#000000495|0|unusual foxes sleep regular deposits. requests wake special pac|
-1892|25|F|133273.64|1994-03-26|5-LOW|Clerk#000000733|0|sts. slyly regular dependencies use slyly. ironic, spec|
-1893|125|O|116792.13|1997-10-30|2-HIGH|Clerk#000000111|0|olites. silent, special deposits eat slyly quickly express packages; hockey p|
-1894|76|F|44387.23|1992-03-30|1-URGENT|Clerk#000000626|0|e furiously. furiously even accounts are slyly final accounts. closely speci|
-1895|7|F|44429.81|1994-05-30|3-MEDIUM|Clerk#000000878|0|ress accounts. bold accounts cajole. slyly final pinto beans poach regul|
-1920|110|O|119605.91|1998-06-24|5-LOW|Clerk#000000018|0|hely; furiously regular excuses|
-1921|88|F|57584.12|1994-01-18|3-MEDIUM|Clerk#000000293|0|counts. slyly quiet requests along the ruthlessly regular accounts are |
-1922|56|O|11575.77|1996-07-13|3-MEDIUM|Clerk#000000984|0|side of the blithely final re|
-1923|136|O|171128.10|1997-07-07|1-URGENT|Clerk#000000471|0| express dolphins. |
-1924|76|O|169756.19|1996-09-07|4-NOT SPECIFIED|Clerk#000000823|0| of the ironic accounts. instructions near the final instr|
-1925|17|F|146382.71|1992-03-05|1-URGENT|Clerk#000000986|0|e slyly regular deposits. furiously |
-1926|94|O|100035.03|1996-01-31|2-HIGH|Clerk#000000568|0|cajole. even warhorses sleep carefully. |
-1927|140|O|23327.88|1995-09-30|3-MEDIUM|Clerk#000000616|0|riously special packages. permanent pearls wake furiously. even packages alo|
-1952|67|F|12896.25|1994-03-16|2-HIGH|Clerk#000000254|0| silent accounts boost |
-1953|149|F|57213.18|1993-11-30|3-MEDIUM|Clerk#000000891|0| fluffily along the quickly even packages. |
-1954|56|O|158853.63|1997-05-31|4-NOT SPECIFIED|Clerk#000000104|0| unusual excuses cajole according to the blithely regular theodolites.|
-1955|13|F|103085.13|1992-04-20|1-URGENT|Clerk#000000792|0|ly special ideas. sometimes final |
-1956|127|F|88704.26|1992-09-20|4-NOT SPECIFIED|Clerk#000000600|0|ironic ideas are silent ideas. furiously final deposits sleep slyly carefu|
-1957|31|O|77482.87|1998-07-21|2-HIGH|Clerk#000000639|0|nding excuses about the |
-1958|53|O|176294.34|1995-09-22|5-LOW|Clerk#000000343|0| haggle blithely. flu|
-1959|43|O|62277.18|1997-01-13|4-NOT SPECIFIED|Clerk#000000631|0| cajole about the blithely express requests. even excuses mold bl|
-1984|52|O|79230.47|1998-04-01|1-URGENT|Clerk#000000416|0| slyly special instructions. unusual foxes use packages. carefully regular req|
-1985|7|F|171522.54|1994-09-02|4-NOT SPECIFIED|Clerk#000000741|0|slyly slyly even pains. slyly reg|
-1986|149|F|34269.96|1994-05-05|2-HIGH|Clerk#000000609|0|across the theodolites. quick|
-1987|100|F|6406.29|1994-04-30|2-HIGH|Clerk#000000652|0|gular platelets alongside |
-1988|109|O|117132.72|1995-10-06|4-NOT SPECIFIED|Clerk#000000011|0|ly ironic dolphins serve quickly busy accounts. bu|
-1989|118|F|39263.28|1994-03-16|4-NOT SPECIFIED|Clerk#000000747|0|ely bold pinto beans ha|
-1990|119|F|48781.39|1994-12-16|2-HIGH|Clerk#000000114|0|e bold patterns. always regul|
-1991|19|F|139854.41|1992-09-07|4-NOT SPECIFIED|Clerk#000000854|0|ing accounts can haggle at the carefully final Tiresias-- pending, regular|
-2016|8|O|24347.36|1996-08-16|3-MEDIUM|Clerk#000000641|0|the carefully ironic foxes. requests nag bold, r|
-2017|101|O|70529.27|1998-05-13|3-MEDIUM|Clerk#000000427|0|nusual requests. blit|
-2018|19|P|25007.95|1995-04-05|4-NOT SPECIFIED|Clerk#000000920|0|gular accounts wake fur|
-2019|136|F|43789.14|1992-10-23|1-URGENT|Clerk#000000565|0| furiously bold packages. fluffily fi|
-2020|73|F|136162.13|1993-06-21|3-MEDIUM|Clerk#000000192|0|es. furiously regular packages above the furiously special theodolites are a|
-2021|70|O|27016.74|1995-07-15|1-URGENT|Clerk#000000155|0|ong the furiously regular requests. unusual deposits wake fluffily inside|
-2022|62|F|206742.11|1992-03-15|1-URGENT|Clerk#000000268|0| dependencies sleep fluffily even, ironic deposits. express, silen|
-2023|118|F|144123.37|1992-05-06|5-LOW|Clerk#000000137|0|ular courts engage according to the|
-2048|17|F|33401.77|1993-11-15|1-URGENT|Clerk#000000934|0|s cajole after the blithely final accounts. f|
-2049|31|O|153048.74|1995-12-07|2-HIGH|Clerk#000000859|0|ly regular requests thrash blithely about the fluffily even theodolites. r|
-2050|28|F|208517.98|1994-06-02|4-NOT SPECIFIED|Clerk#000000821|0|d accounts against the furiously regular packages use bli|
-2051|40|O|87988.34|1996-03-18|4-NOT SPECIFIED|Clerk#000000333|0|ctions sleep blithely. blithely regu|
-2052|91|F|141822.19|1992-04-13|2-HIGH|Clerk#000000767|0| requests sleep around the even, even courts. ironic theodolites affix furious|
-2053|142|F|125125.57|1995-02-07|1-URGENT|Clerk#000000717|0|ar requests: blithely sly accounts boost carefully across t|
-2054|41|F|144335.16|1992-06-08|4-NOT SPECIFIED|Clerk#000000103|0|l requests affix carefully about the furiously special|
-2055|97|F|57092.26|1993-09-04|1-URGENT|Clerk#000000067|0|. warhorses affix slyly blithely express instructions? fur|
-2080|95|F|45767.69|1993-06-18|5-LOW|Clerk#000000190|0|ironic, pending theodolites are carefully about the quickly regular theodolite|
-2081|121|O|145654.97|1997-07-05|2-HIGH|Clerk#000000136|0|ong the regular theo|
-2082|49|F|46753.63|1995-01-10|2-HIGH|Clerk#000000354|0|cial accounts. ironic, express dolphins nod slyly sometimes final reques|
-2083|101|F|31795.52|1993-07-14|3-MEDIUM|Clerk#000000361|0|al patterns. bold, final foxes nag bravely about the furiously express|
-2084|80|F|190652.53|1993-03-17|2-HIGH|Clerk#000000048|0|zle furiously final, careful packages. slyly ironic ideas amo|
-2085|49|F|45311.07|1993-11-21|3-MEDIUM|Clerk#000000818|0|ress, express ideas haggle|
-2086|142|F|188985.18|1994-10-19|1-URGENT|Clerk#000000046|0| permanently regular|
-2087|50|O|53581.41|1998-01-31|2-HIGH|Clerk#000000626|0|e always regular packages nod against the furiously spec|
-2112|64|O|17986.15|1997-02-05|2-HIGH|Clerk#000000351|0|against the slyly even id|
-2113|32|O|65678.21|1997-11-08|2-HIGH|Clerk#000000527|0|slyly regular instruct|
-2114|79|F|106446.02|1995-01-16|5-LOW|Clerk#000000751|0|r, unusual accounts haggle across the busy platelets. carefully |
-2115|106|O|134814.65|1998-05-23|4-NOT SPECIFIED|Clerk#000000101|0|odolites boost. carefully regular excuses cajole. quickly ironic pinto be|
-2116|23|F|60887.90|1994-08-26|1-URGENT|Clerk#000000197|0|efully after the asymptotes. furiously sp|
-2117|22|O|145713.03|1997-04-26|2-HIGH|Clerk#000000887|0|ely even dependencies. regular foxes use blithely.|
-2118|134|O|38974.67|1996-10-09|1-URGENT|Clerk#000000196|0|ial requests wake carefully special packages. f|
-2119|64|O|34632.57|1996-08-20|2-HIGH|Clerk#000000434|0|uickly pending escapades. fluffily ir|
-2144|136|F|119917.28|1994-03-29|3-MEDIUM|Clerk#000000546|0|t. carefully quick requests across the deposits wake regu|
-2145|134|F|18885.35|1992-10-03|1-URGENT|Clerk#000000886|0|sts would snooze blithely alongside of th|
-2146|118|F|179686.07|1992-09-14|4-NOT SPECIFIED|Clerk#000000476|0|ven packages. dependencies wake slyl|
-2147|100|F|91513.79|1992-09-06|4-NOT SPECIFIED|Clerk#000000424|0| haggle carefully furiously final foxes. pending escapades thrash. bold theod|
-2148|130|F|19612.03|1995-04-19|4-NOT SPECIFIED|Clerk#000000517|0|ross the furiously unusual theodolites. always expre|
-2149|101|F|105145.40|1993-03-13|5-LOW|Clerk#000000555|0|nusual accounts nag furiously special reques|
-2150|82|F|166961.06|1994-06-03|3-MEDIUM|Clerk#000000154|0|ect slyly against the even, final packages. quickly regular pinto beans wake c|
-2151|58|O|124608.69|1996-11-11|3-MEDIUM|Clerk#000000996|0|c requests. ironic platelets cajole across the quickly fluffy deposits.|
-2176|104|F|87248.17|1992-11-10|1-URGENT|Clerk#000000195|0|s haggle regularly accor|
-2177|136|O|183493.42|1997-01-20|3-MEDIUM|Clerk#000000161|0|ove the blithely unusual packages cajole carefully fluffily special request|
-2178|8|O|79594.68|1996-12-12|3-MEDIUM|Clerk#000000656|0|thely according to the instructions. furious|
-2179|41|O|77487.09|1996-09-07|2-HIGH|Clerk#000000935|0|ounts alongside of the furiously unusual braids cajol|
-2180|76|O|208481.57|1996-09-14|4-NOT SPECIFIED|Clerk#000000650|0|xpress, unusual pains. furiously ironic excu|
-2181|76|O|100954.64|1995-09-13|3-MEDIUM|Clerk#000000814|0|y against the ironic, even|
-2182|23|F|116003.11|1994-04-05|2-HIGH|Clerk#000000071|0|ccounts. quickly bold deposits across the excuses sl|
-2183|113|O|49841.12|1996-06-22|1-URGENT|Clerk#000000287|0| among the express, ironic packages. slyly ironic platelets integrat|
-2208|68|P|245388.06|1995-05-01|4-NOT SPECIFIED|Clerk#000000900|0|symptotes wake slyly blithely unusual packages.|
-2209|91|F|129086.93|1992-07-10|2-HIGH|Clerk#000000056|0|er above the slyly silent requests. furiously reg|
-2210|32|F|31689.46|1992-01-16|2-HIGH|Clerk#000000941|0| believe carefully quickly express pinto beans. deposi|
-2211|92|F|140031.23|1994-06-30|2-HIGH|Clerk#000000464|0|ffily bold courts e|
-2212|118|F|17231.05|1994-03-23|3-MEDIUM|Clerk#000000954|0|structions above the unusual requests use fur|
-2213|122|F|146136.10|1993-01-15|4-NOT SPECIFIED|Clerk#000000598|0|osits are carefully reg|
-2214|115|O|150345.63|1998-05-05|3-MEDIUM|Clerk#000000253|0|packages. fluffily even accounts haggle blithely. carefully ironic depen|
-2215|40|O|108239.46|1996-06-16|4-NOT SPECIFIED|Clerk#000000817|0|le final, final foxes. quickly regular gifts are carefully deposit|
-2240|56|F|174090.30|1992-03-06|4-NOT SPECIFIED|Clerk#000000622|0|accounts against the slyly express foxes are after the slyly regular |
-2241|103|F|165219.08|1993-05-11|1-URGENT|Clerk#000000081|0|y about the silent excuses. furiously ironic instructions along the sil|
-2242|82|O|15082.82|1997-07-20|4-NOT SPECIFIED|Clerk#000000360|0| pending multipliers. carefully express asymptotes use quickl|
-2243|49|O|10451.97|1995-06-10|2-HIGH|Clerk#000000813|0|ously regular deposits integrate s|
-2244|127|F|21207.08|1993-01-09|1-URGENT|Clerk#000001000|0|ckages. ironic, ironic accounts haggle blithely express excuses. |
-2245|58|F|150585.73|1993-04-28|3-MEDIUM|Clerk#000000528|0|ake carefully. braids haggle slyly quickly b|
-2246|113|O|85755.84|1996-05-27|4-NOT SPECIFIED|Clerk#000000739|0| final gifts sleep |
-2247|95|F|13491.31|1992-08-02|4-NOT SPECIFIED|Clerk#000000947|0|furiously regular packages. final brai|
-2272|139|F|127934.71|1993-04-13|2-HIGH|Clerk#000000449|0|s. bold, ironic pinto beans wake. silently specia|
-2273|136|O|142291.79|1996-12-14|5-LOW|Clerk#000000155|0|uickly express foxes haggle quickly against|
-2274|104|F|58273.89|1993-09-04|4-NOT SPECIFIED|Clerk#000000258|0|nstructions try to hag|
-2275|149|F|37398.90|1992-10-22|4-NOT SPECIFIED|Clerk#000000206|0| furiously furious platelets. slyly final packa|
-2276|43|O|141159.63|1996-04-29|4-NOT SPECIFIED|Clerk#000000821|0|ecial requests. fox|
-2277|89|F|79270.23|1995-01-02|4-NOT SPECIFIED|Clerk#000000385|0|accounts cajole. even i|
-2278|142|O|101878.46|1998-04-25|3-MEDIUM|Clerk#000000186|0|r pinto beans integrate after the carefully even deposits. blit|
-2279|80|F|142322.33|1993-02-23|3-MEDIUM|Clerk#000000898|0|de of the quickly unusual instructio|
-2304|46|F|93769.28|1994-01-07|4-NOT SPECIFIED|Clerk#000000415|0|onic platelets. ironic packages haggle. packages nag doggedly according to|
-2305|43|F|122964.66|1993-01-26|2-HIGH|Clerk#000000440|0|ove the furiously even acco|
-2306|28|O|244704.23|1995-07-26|2-HIGH|Clerk#000000975|0| wake furiously requests. permanent requests affix. final packages caj|
-2307|106|F|59417.76|1993-06-29|5-LOW|Clerk#000000952|0|furiously even asymptotes? carefully regular accounts|
-2308|25|F|58546.02|1992-10-25|4-NOT SPECIFIED|Clerk#000000609|0|ts. slyly final depo|
-2309|100|O|146933.07|1995-09-04|5-LOW|Clerk#000000803|0|he carefully pending packages. fluffily stealthy foxes engage carefully|
-2310|31|O|82928.12|1996-09-20|5-LOW|Clerk#000000917|0|wake carefully. unusual instructions nag ironic, regular excuse|
-2311|73|P|153233.93|1995-05-02|2-HIGH|Clerk#000000761|0|ly pending asymptotes-- furiously bold excus|
-2336|142|O|22294.51|1996-01-07|4-NOT SPECIFIED|Clerk#000000902|0|c, final excuses sleep furiously among the even theodolites. f|
-2337|142|O|45704.96|1997-06-18|4-NOT SPECIFIED|Clerk#000000754|0| quickly. final accounts haggle. carefully final acco|
-2338|140|O|28155.92|1997-09-15|2-HIGH|Clerk#000000951|0|riously final dugouts. final, ironic packages wake express, ironic id|
-2339|109|F|63470.78|1993-12-15|5-LOW|Clerk#000000847|0| against the regular |
-2340|65|O|30778.78|1996-01-12|1-URGENT|Clerk#000000964|0|ter the deposits sleep according to the slyly regular packages. carefully |
-2341|82|F|55950.21|1993-05-30|5-LOW|Clerk#000000443|0|sts-- blithely bold dolphins through the deposits nag blithely carefully re|
-2342|37|O|104038.78|1996-06-09|1-URGENT|Clerk#000000615|0|oost carefully across the regular accounts. blithely final d|
-2343|73|O|85381.00|1995-08-21|3-MEDIUM|Clerk#000000170|0|fluffily over the slyly special deposits. quickl|
-2368|13|F|101240.96|1993-08-20|1-URGENT|Clerk#000000830|0|t the bold instructions. carefully unusual |
-2369|110|O|73517.91|1996-12-24|2-HIGH|Clerk#000000752|0|iously even requests are dogged, express |
-2370|142|F|73924.21|1994-01-17|1-URGENT|Clerk#000000231|0|lyly final packages. quickly final deposits haggl|
-2371|19|O|193857.67|1998-01-07|1-URGENT|Clerk#000000028|0|ckages haggle at th|
-2372|31|O|104927.66|1997-11-21|5-LOW|Clerk#000000342|0|s: deposits haggle along the final ideas. careful|
-2373|28|F|55211.04|1994-03-12|4-NOT SPECIFIED|Clerk#000000306|0| even, special courts grow quickly. pending,|
-2374|4|F|115219.88|1993-10-29|4-NOT SPECIFIED|Clerk#000000081|0| blithely regular packages. blithely unusua|
-2375|5|O|106612.48|1996-11-20|3-MEDIUM|Clerk#000000197|0|unusual, pending theodolites cajole carefully |
-2400|37|O|92798.66|1998-07-25|5-LOW|Clerk#000000782|0|nusual courts nag against the carefully unusual pinto b|
-2401|148|O|88448.24|1997-07-29|4-NOT SPECIFIED|Clerk#000000531|0|ully unusual instructions boost carefully silently regular requests. |
-2402|67|O|70403.62|1996-09-06|4-NOT SPECIFIED|Clerk#000000162|0|slyly final sheaves sleep slyly. q|
-2403|55|O|111020.79|1998-04-11|3-MEDIUM|Clerk#000000820|0|furiously regular deposits use. furiously unusual accounts wake along the |
-2404|77|O|109077.69|1997-03-13|4-NOT SPECIFIED|Clerk#000000409|0|deposits breach furiously. ironic foxes haggle carefully bold packag|
-2405|73|O|115929.14|1996-12-23|3-MEDIUM|Clerk#000000535|0|ular, regular asympto|
-2406|7|O|182516.77|1996-10-28|5-LOW|Clerk#000000561|0|blithely regular accounts u|
-2407|55|O|112843.52|1998-06-19|2-HIGH|Clerk#000000068|0|uests affix slyly among the slyly regular depos|
-2432|103|O|62661.93|1996-07-13|1-URGENT|Clerk#000000115|0|re. slyly even deposits wake bra|
-2433|31|F|147071.86|1994-08-22|4-NOT SPECIFIED|Clerk#000000324|0|ess patterns are slyly. packages haggle carefu|
-2434|25|O|123956.25|1997-04-27|3-MEDIUM|Clerk#000000190|0|s. quickly ironic dolphins impress final deposits. blithel|
-2435|73|F|122490.66|1993-02-21|5-LOW|Clerk#000000112|0|es are carefully along the carefully final instructions. pe|
-2436|125|O|73990.08|1995-09-11|4-NOT SPECIFIED|Clerk#000000549|0|arefully. blithely bold deposits affix special accounts. final foxes nag. spe|
-2437|85|F|143411.69|1993-04-21|4-NOT SPECIFIED|Clerk#000000578|0|. theodolites wake slyly-- ironic, pending platelets above the carefully exp|
-2438|13|F|214494.39|1993-07-15|2-HIGH|Clerk#000000744|0|the final, regular warhorses. regularly |
-2439|55|O|41811.12|1997-03-15|2-HIGH|Clerk#000000819|0|lithely after the car|
-2464|145|O|30495.65|1997-11-23|5-LOW|Clerk#000000633|0|le about the instructions. courts wake carefully even|
-2465|34|O|180737.75|1995-06-24|1-URGENT|Clerk#000000078|0|al pinto beans. final, bold packages wake quickly|
-2466|19|F|161625.50|1994-03-06|1-URGENT|Clerk#000000424|0|c pinto beans. express deposits wake quickly. even, final courts nag. package|
-2467|35|O|7231.91|1995-07-16|4-NOT SPECIFIED|Clerk#000000914|0|pades sleep furiously. sometimes regular packages again|
-2468|112|O|160627.01|1997-06-09|4-NOT SPECIFIED|Clerk#000000260|0|ickly regular packages. slyly ruthless requests snooze quickly blithe|
-2469|124|O|192074.23|1996-11-26|5-LOW|Clerk#000000730|0| sleep closely regular instructions. furiously ironic instructi|
-2470|58|O|104966.33|1997-04-19|3-MEDIUM|Clerk#000000452|0|to the furiously final packages? pa|
-2471|89|O|34936.31|1998-03-12|4-NOT SPECIFIED|Clerk#000000860|0|carefully blithely regular pac|
-2496|136|F|140390.60|1994-01-09|2-HIGH|Clerk#000000142|0|slyly. pending instructions sleep. quic|
-2497|47|F|171326.48|1992-08-27|1-URGENT|Clerk#000000977|0|ily ironic pinto beans. furiously final platelets alongside of t|
-2498|97|F|45514.27|1993-11-08|5-LOW|Clerk#000000373|0|g the slyly special pinto beans. |
-2499|121|O|147243.86|1995-09-24|1-URGENT|Clerk#000000277|0|r the quickly bold foxes. bold instructi|
-2500|133|F|131122.82|1992-08-15|2-HIGH|Clerk#000000447|0|integrate slyly pending deposits. furiously ironic accounts across the s|
-2501|67|O|79380.51|1997-05-25|5-LOW|Clerk#000000144|0|ickly special theodolite|
-2502|70|F|33470.40|1993-05-28|4-NOT SPECIFIED|Clerk#000000914|0|lyly: carefully pending ideas affix again|
-2503|7|F|183671.08|1993-06-20|3-MEDIUM|Clerk#000000294|0|ly even packages was. ironic, regular deposits unwind furiously across the p|
-2528|55|F|92069.62|1994-11-20|1-URGENT|Clerk#000000789|0|ular dependencies? regular frays kindle according to the blith|
-2529|136|O|4104.30|1996-08-20|2-HIGH|Clerk#000000511|0|posits across the silent instructions wake blithely across |
-2530|128|F|58853.11|1994-03-21|3-MEDIUM|Clerk#000000291|0|ular instructions about the quic|
-2531|44|O|143212.85|1996-05-06|4-NOT SPECIFIED|Clerk#000000095|0|even accounts. furiously ironic excuses sleep fluffily. carefully silen|
-2532|94|O|116093.49|1995-10-11|2-HIGH|Clerk#000000498|0|the blithely pending accounts. regular, regular excuses boost aro|
-2533|50|O|168495.03|1997-03-24|1-URGENT|Clerk#000000594|0|ecial instructions. spec|
-2534|76|O|202784.54|1996-07-17|3-MEDIUM|Clerk#000000332|0|packages cajole ironic requests. furiously regular|
-2535|121|F|67018.30|1993-05-25|5-LOW|Clerk#000000296|0|phins cajole beneath the fluffily express asymptotes. c|
-2560|131|F|153426.79|1992-09-05|1-URGENT|Clerk#000000538|0|atelets; quickly sly requests|
-2561|58|O|137473.58|1997-11-14|1-URGENT|Clerk#000000861|0|ual requests. unusual deposits cajole furiously pending, regular platelets. |
-2562|10|F|136360.37|1992-08-01|1-URGENT|Clerk#000000467|0|elets. pending dolphins promise slyly. bo|
-2563|62|F|168952.10|1993-11-19|4-NOT SPECIFIED|Clerk#000000150|0|sly even packages after the furio|
-2564|77|F|3967.47|1994-09-09|2-HIGH|Clerk#000000718|0|usly regular pinto beans. orbits wake carefully. slyly e|
-2565|56|O|204438.57|1998-02-28|3-MEDIUM|Clerk#000000032|0|x-ray blithely along|
-2566|86|F|89992.48|1992-10-10|3-MEDIUM|Clerk#000000414|0|ructions boost bold ideas. idly ironic accounts use according to th|
-2567|70|O|263411.29|1998-02-27|2-HIGH|Clerk#000000031|0|detect. furiously ironic requests|
-2592|101|F|8225.96|1993-03-05|4-NOT SPECIFIED|Clerk#000000524|0|ts nag fluffily. quickly stealthy theodolite|
-2593|92|F|134726.09|1993-09-04|2-HIGH|Clerk#000000468|0|r the carefully final|
-2594|79|F|94866.39|1992-12-17|1-URGENT|Clerk#000000550|0|ests. theodolites above the blithely even accounts detect furio|
-2595|74|O|173130.20|1995-12-14|4-NOT SPECIFIED|Clerk#000000222|0|arefully ironic requests nag carefully ideas. |
-2596|43|O|74940.13|1996-08-17|1-URGENT|Clerk#000000242|0|requests. ironic, bold theodolites wak|
-2597|104|F|21964.66|1993-02-04|2-HIGH|Clerk#000000757|0|iously ruthless exc|
-2598|112|O|84871.50|1996-03-05|3-MEDIUM|Clerk#000000391|0| ironic notornis according to the blithely final requests should |
-2599|149|O|62807.13|1996-11-07|2-HIGH|Clerk#000000722|0|ts. slyly regular theodolites wake sil|
-2624|52|O|27148.63|1996-11-28|5-LOW|Clerk#000000930|0|ic, regular packages|
-2625|40|F|39382.74|1992-10-14|4-NOT SPECIFIED|Clerk#000000386|0| final deposits. blithely ironic ideas |
-2626|139|O|84314.51|1995-09-08|4-NOT SPECIFIED|Clerk#000000289|0|gside of the carefully special packages are furiously after the slyly express |
-2627|149|F|26798.65|1992-03-24|3-MEDIUM|Clerk#000000181|0|s. silent, ruthless requests|
-2628|56|F|165655.99|1993-10-22|5-LOW|Clerk#000000836|0|ajole across the blithely careful accounts. blithely silent deposits sl|
-2629|139|O|96458.03|1998-04-06|5-LOW|Clerk#000000680|0|uches dazzle carefully even, express excuses. ac|
-2630|85|F|127132.51|1992-10-24|5-LOW|Clerk#000000712|0|inal theodolites. ironic instructions s|
-2631|37|F|63103.32|1993-09-24|5-LOW|Clerk#000000833|0| quickly unusual deposits doubt around |
-2656|77|F|105492.37|1993-05-04|1-URGENT|Clerk#000000307|0|elets. slyly final accou|
-2657|25|O|148176.06|1995-10-17|2-HIGH|Clerk#000000160|0| foxes-- slyly final dependencies around the slyly final theodo|
-2658|14|O|163834.46|1995-09-23|3-MEDIUM|Clerk#000000400|0|bout the slyly regular accounts. ironic, |
-2659|83|F|79785.52|1993-12-18|4-NOT SPECIFIED|Clerk#000000758|0|cross the pending requests maintain |
-2660|127|O|16922.51|1995-08-05|5-LOW|Clerk#000000480|0|ly finally regular deposits. ironic theodolites cajole|
-2661|74|O|106036.84|1997-01-04|3-MEDIUM|Clerk#000000217|0|al, regular pinto beans. silently final deposits should have t|
-2662|37|O|87689.88|1996-08-21|3-MEDIUM|Clerk#000000589|0|bold pinto beans above the slyly final accounts affix furiously deposits. pac|
-2663|95|O|35131.80|1995-09-06|1-URGENT|Clerk#000000950|0|ar requests. furiously final dolphins along the fluffily spe|
-2688|98|F|181077.36|1992-01-24|2-HIGH|Clerk#000000720|0|have to nag according to the pending theodolites. sly|
-2689|103|F|41552.78|1992-04-09|4-NOT SPECIFIED|Clerk#000000698|0|press pains wake. furiously express theodolites alongsid|
-2690|94|O|224674.27|1996-03-31|3-MEDIUM|Clerk#000000760|0|ravely even theodolites |
-2691|7|F|30137.17|1992-04-30|5-LOW|Clerk#000000439|0|es at the regular deposits sleep slyly by the fluffy requests. eve|
-2692|62|O|24265.24|1997-12-02|3-MEDIUM|Clerk#000000878|0|es. regular asymptotes cajole above t|
-2693|19|O|66158.13|1996-09-04|1-URGENT|Clerk#000000370|0|ndle never. blithely regular packages nag carefully enticing platelets. ca|
-2694|121|O|102807.59|1996-03-14|5-LOW|Clerk#000000722|0| requests. bold deposits above the theodol|
-2695|58|O|138584.20|1996-08-20|1-URGENT|Clerk#000000697|0|ven deposits around the quickly regular packa|
-2720|31|F|161307.05|1993-06-08|1-URGENT|Clerk#000000948|0|quickly. special asymptotes are fluffily ironi|
-2721|79|O|59180.25|1996-01-27|2-HIGH|Clerk#000000401|0| ideas eat even, unusual ideas. theodolites are carefully|
-2722|35|F|50328.84|1994-04-09|5-LOW|Clerk#000000638|0|rding to the carefully quick deposits. bli|
-2723|61|O|104759.25|1995-10-06|5-LOW|Clerk#000000836|0|nts must have to cajo|
-2724|137|F|116069.66|1994-09-14|2-HIGH|Clerk#000000217|0| sleep blithely. blithely idle |
-2725|89|F|75144.68|1994-05-21|4-NOT SPECIFIED|Clerk#000000835|0|ular deposits. spec|
-2726|7|F|47753.00|1992-11-27|5-LOW|Clerk#000000470|0| blithely even dinos sleep care|
-2727|74|O|3089.42|1998-04-19|4-NOT SPECIFIED|Clerk#000000879|0|sual theodolites cajole enticingly above the furiously fin|
-2752|59|F|187932.30|1993-11-19|2-HIGH|Clerk#000000648|0| carefully regular foxes are quickly quickl|
-2753|16|F|159720.39|1993-11-30|2-HIGH|Clerk#000000380|0|ending instructions. unusual deposits|
-2754|145|F|25985.52|1994-04-03|2-HIGH|Clerk#000000960|0|cies detect slyly. |
-2755|118|F|101202.18|1992-02-07|4-NOT SPECIFIED|Clerk#000000177|0|ously according to the sly foxes. blithely regular pinto bean|
-2756|118|F|142323.38|1994-04-18|1-URGENT|Clerk#000000537|0|arefully special warho|
-2757|76|O|89792.48|1995-07-20|2-HIGH|Clerk#000000216|0| regular requests subl|
-2758|43|O|36671.88|1998-07-12|5-LOW|Clerk#000000863|0|s cajole according to the carefully special |
-2759|116|F|89731.10|1993-11-25|4-NOT SPECIFIED|Clerk#000000071|0|ts. regular, pending pinto beans sleep ab|
-2784|95|O|106635.21|1998-01-07|1-URGENT|Clerk#000000540|0|g deposits alongside of the silent requests s|
-2785|148|O|132854.79|1995-07-21|2-HIGH|Clerk#000000098|0|iously pending packages sleep according to the blithely unusual foxe|
-2786|79|F|178254.66|1992-03-22|2-HIGH|Clerk#000000976|0|al platelets cajole blithely ironic requests. ironic re|
-2787|103|O|3726.14|1995-09-30|1-URGENT|Clerk#000000906|0|he ironic, regular |
-2788|124|F|17172.66|1994-09-22|1-URGENT|Clerk#000000641|0|nts wake across the fluffily bold accoun|
-2789|37|O|219123.27|1998-03-14|2-HIGH|Clerk#000000972|0|gular patterns boost. carefully even re|
-2790|25|F|177458.97|1994-08-19|2-HIGH|Clerk#000000679|0| the carefully express deposits sleep slyly |
-2791|121|F|156697.55|1994-10-10|2-HIGH|Clerk#000000662|0|as. slyly ironic accounts play furiously bl|
-2816|58|F|42225.53|1994-09-20|2-HIGH|Clerk#000000289|0|kages at the final deposits cajole furious foxes. quickly |
-2817|40|F|71453.85|1994-04-19|3-MEDIUM|Clerk#000000982|0|ic foxes haggle upon the daringly even pinto beans. slyly|
-2818|49|F|120086.84|1994-12-12|3-MEDIUM|Clerk#000000413|0|eep furiously special ideas. express |
-2819|103|F|66927.16|1994-05-05|1-URGENT|Clerk#000000769|0|ngside of the blithely ironic dolphins. furio|
-2820|19|F|143813.39|1994-05-20|3-MEDIUM|Clerk#000000807|0|equests are furiously. carefu|
-2821|118|F|36592.48|1993-08-09|3-MEDIUM|Clerk#000000323|0|ng requests. even instructions are quickly express, silent instructi|
-2822|79|F|40142.15|1993-07-26|2-HIGH|Clerk#000000510|0|furiously against the accounts. unusual accounts aft|
-2823|79|O|171894.45|1995-09-09|2-HIGH|Clerk#000000567|0|encies. carefully fluffy accounts m|
-2848|70|F|116258.53|1992-03-10|1-URGENT|Clerk#000000256|0|ly fluffy foxes sleep furiously across the slyly regu|
-2849|46|O|180054.29|1996-04-30|2-HIGH|Clerk#000000659|0|al packages are after the quickly bold requests. carefully special |
-2850|100|O|122969.79|1996-10-02|2-HIGH|Clerk#000000392|0|, regular deposits. furiously pending packages hinder carefully carefully u|
-2851|145|O|7859.36|1997-09-07|5-LOW|Clerk#000000566|0|Tiresias wake quickly quickly even|
-2852|91|F|99050.81|1993-01-16|1-URGENT|Clerk#000000740|0|ruthless deposits against the final instructions use quickly al|
-2853|94|F|103641.15|1994-05-05|2-HIGH|Clerk#000000878|0|the carefully even packages.|
-2854|139|F|153568.02|1994-06-27|1-URGENT|Clerk#000000010|0| furiously ironic tithes use furiously |
-2855|49|F|48419.58|1993-04-04|4-NOT SPECIFIED|Clerk#000000973|0| silent, regular packages sleep |
-2880|8|F|145761.99|1992-03-15|2-HIGH|Clerk#000000756|0|ves maintain doggedly spec|
-2881|100|F|45695.84|1992-05-10|5-LOW|Clerk#000000864|0|uriously. slyly express requests according to the silent dol|
-2882|121|O|172872.37|1995-08-22|2-HIGH|Clerk#000000891|0|pending deposits. carefully eve|
-2883|121|F|170360.27|1995-01-23|5-LOW|Clerk#000000180|0|uses. carefully ironic accounts lose fluffil|
-2884|92|O|71683.84|1997-10-12|3-MEDIUM|Clerk#000000780|0|efully express instructions sleep against|
-2885|7|F|146896.72|1992-09-19|4-NOT SPECIFIED|Clerk#000000280|0|ly sometimes special excuses. final requests are |
-2886|109|F|94527.23|1994-11-13|4-NOT SPECIFIED|Clerk#000000619|0|uctions. ironic packages sle|
-2887|109|O|28571.39|1997-05-26|5-LOW|Clerk#000000566|0|slyly even pinto beans. slyly bold epitaphs cajole blithely above t|
-2912|94|F|27727.52|1992-03-12|5-LOW|Clerk#000000186|0|jole blithely above the quickly regular packages. carefully regular pinto bean|
-2913|43|O|130702.19|1997-07-12|3-MEDIUM|Clerk#000000118|0|mptotes doubt furiously slyly regu|
-2914|109|F|60867.14|1993-03-03|3-MEDIUM|Clerk#000000543|0|he slyly regular theodolites are furiously sile|
-2915|94|F|96015.13|1994-03-31|5-LOW|Clerk#000000410|0|ld packages. bold deposits boost blithely. ironic, unusual theodoli|
-2916|8|O|20182.22|1995-12-27|2-HIGH|Clerk#000000681|0|ithely blithe deposits sleep beyond the|
-2917|91|O|100714.13|1997-12-09|4-NOT SPECIFIED|Clerk#000000061|0| special dugouts among the special deposi|
-2918|118|O|21760.09|1996-09-08|3-MEDIUM|Clerk#000000439|0|ular deposits across th|
-2919|53|F|137223.14|1993-12-10|2-HIGH|Clerk#000000209|0|es. pearls wake quietly slyly ironic instructions--|
-2944|14|O|146581.14|1997-09-24|4-NOT SPECIFIED|Clerk#000000740|0|deas. permanently special foxes haggle carefully ab|
-2945|29|O|223507.72|1996-01-03|2-HIGH|Clerk#000000499|0|ons are carefully toward the permanent, bold pinto beans. regu|
-2946|125|O|102226.59|1996-02-05|5-LOW|Clerk#000000329|0|g instructions about the regular accounts sleep carefully along the pen|
-2947|70|P|43360.95|1995-04-26|1-URGENT|Clerk#000000464|0|ronic accounts. accounts run furiously d|
-2948|44|F|100758.71|1994-08-23|5-LOW|Clerk#000000701|0| deposits according to the blithely pending |
-2949|137|F|94231.71|1994-04-12|2-HIGH|Clerk#000000184|0|y ironic accounts use. quickly blithe accou|
-2950|136|O|183620.33|1997-07-06|1-URGENT|Clerk#000000833|0| dolphins around the furiously |
-2951|74|O|125509.17|1996-02-06|2-HIGH|Clerk#000000680|0|gular deposits above the finally regular ideas integrate idly stealthil|
-2976|29|F|145768.47|1993-12-10|4-NOT SPECIFIED|Clerk#000000159|0|. furiously ironic asymptotes haggle ruthlessly silently regular r|
-2977|73|O|25170.88|1996-08-27|3-MEDIUM|Clerk#000000252|0|quickly special platelets are furio|
-2978|44|P|139542.14|1995-05-03|1-URGENT|Clerk#000000135|0|d. even platelets are. ironic dependencies cajole slow, e|
-2979|133|O|116789.98|1996-03-23|3-MEDIUM|Clerk#000000820|0|even, ironic foxes sleep along|
-2980|4|O|187514.11|1996-09-14|3-MEDIUM|Clerk#000000661|0|y quick pinto beans wake. slyly re|
-2981|49|O|37776.79|1998-07-29|5-LOW|Clerk#000000299|0|hely among the express foxes. blithely stealthy requests cajole boldly. regu|
-2982|85|F|55582.94|1995-03-19|2-HIGH|Clerk#000000402|0|lyly. express theodolites affix slyly after the slyly speci|
-2983|62|F|58168.07|1992-01-07|1-URGENT|Clerk#000000278|0|r the even requests. accounts maintain. regular accounts|
-3008|40|O|156018.74|1995-11-08|3-MEDIUM|Clerk#000000701|0|ze quickly. blithely regular packages above the slyly bold foxes shall|
-3009|55|O|108424.94|1997-02-28|1-URGENT|Clerk#000000205|0|r ideas. carefully pe|
-3010|8|O|141647.08|1996-01-26|2-HIGH|Clerk#000000931|0| blithely final requests. special deposits are slyl|
-3011|91|F|46418.85|1992-01-14|5-LOW|Clerk#000000515|0|onic deposits kindle slyly. dependencies around the quickly iro|
-3012|32|F|91678.66|1993-05-05|1-URGENT|Clerk#000000414|0|ts after the regular pinto beans impress blithely s|
-3013|143|O|156407.40|1997-02-05|5-LOW|Clerk#000000591|0|the furiously pendin|
-3014|29|F|194159.59|1992-10-30|4-NOT SPECIFIED|Clerk#000000476|0|ep blithely according to the blith|
-3015|103|F|110826.83|1992-09-27|5-LOW|Clerk#000000013|0|ously regular deposits affix carefully. furiousl|
-3040|112|F|119201.64|1993-04-12|3-MEDIUM|Clerk#000000544|0|carefully special packages. blithe|
-3041|113|O|23039.46|1997-06-03|5-LOW|Clerk#000000092|0|s. unusual, pending deposits use carefully. thinly final|
-3042|20|F|104523.03|1994-11-21|3-MEDIUM|Clerk#000000573|0| the slyly ironic depo|
-3043|44|F|78221.69|1992-04-25|5-LOW|Clerk#000000137|0|cajole blithely furiously fina|
-3044|53|O|52433.54|1996-04-03|2-HIGH|Clerk#000000008|0|cajole final courts. ironic deposits about the quickly final re|
-3045|50|O|85822.67|1995-09-27|1-URGENT|Clerk#000000405|0| express courts sleep quickly special asymptotes. |
-3046|32|O|117817.52|1995-11-30|2-HIGH|Clerk#000000522|0|r deposits. platelets use furi|
-3047|25|O|37881.31|1997-03-21|1-URGENT|Clerk#000000962|0|as. slyly express deposits are dogged pearls. silent ide|
-3072|23|F|87475.82|1994-01-30|4-NOT SPECIFIED|Clerk#000000370|0|ely final deposits cajole carefully. ironic, re|
-3073|136|F|151419.50|1994-01-08|3-MEDIUM|Clerk#000000404|0|kly slyly bold accounts. express courts near the regular ideas sleep bli|
-3074|67|F|85861.93|1992-11-01|5-LOW|Clerk#000000546|0|yly even asymptotes shall have to haggle fluffily. deposits are|
-3075|127|F|37696.70|1994-05-07|3-MEDIUM|Clerk#000000433|0|ackages: carefully unusual reques|
-3076|92|F|93828.15|1993-07-23|2-HIGH|Clerk#000000099|0|busy foxes. deposits affix quickly ironic, pending pint|
-3077|121|O|99290.01|1997-08-06|2-HIGH|Clerk#000000228|0|kly. fluffily ironic requests use qui|
-3078|49|F|46310.83|1993-02-12|2-HIGH|Clerk#000000110|0|ounts are alongside of the blith|
-3079|100|O|148299.05|1997-09-12|5-LOW|Clerk#000000505|0|lly ironic accounts|
-3104|70|F|102693.61|1993-09-16|3-MEDIUM|Clerk#000000871|0|ges boost-- regular accounts are furiousl|
-3105|137|O|125396.80|1996-11-13|4-NOT SPECIFIED|Clerk#000000772|0|s. blithely final ins|
-3106|145|O|132494.97|1997-01-12|3-MEDIUM|Clerk#000000729|0|its use slyly final theodolites; regular dolphins hang above t|
-3107|26|O|107406.26|1997-08-21|1-URGENT|Clerk#000000669|0|ously even deposits acr|
-3108|85|F|63278.00|1993-08-05|1-URGENT|Clerk#000000574|0|s packages haggle furiously am|
-3109|124|F|216104.85|1993-07-24|5-LOW|Clerk#000000936|0|bold requests sleep quickly according to the slyly final|
-3110|88|F|115161.29|1994-12-17|2-HIGH|Clerk#000000564|0|round the fluffy instructions. carefully silent packages cajol|
-3111|133|O|154383.37|1995-08-25|5-LOW|Clerk#000000922|0|slyly regular theodolites. furious deposits cajole deposits. ironic theodoli|
-3136|23|F|145426.11|1994-08-10|4-NOT SPECIFIED|Clerk#000000891|0|tructions sleep slyly. pending di|
-3137|136|O|8958.65|1995-07-26|3-MEDIUM|Clerk#000000063|0|ymptotes wake carefully above t|
-3138|139|F|139579.18|1994-02-09|4-NOT SPECIFIED|Clerk#000000650|0|e fluffily final theodolites. even dependencies wake along the quickly ir|
-3139|17|F|40975.96|1992-01-02|3-MEDIUM|Clerk#000000855|0|ounts against the ruthlessly unusual dolphins|
-3140|145|F|54356.10|1992-04-09|1-URGENT|Clerk#000000670|0|carefully ironic deposits use furiously. blith|
-3141|26|O|115959.96|1995-11-10|1-URGENT|Clerk#000000475|0|es. furiously bold instructions after the carefully final p|
-3142|8|F|16030.15|1992-06-28|3-MEDIUM|Clerk#000000043|0|usual accounts about the carefully special requests sleep slyly quickly regul|
-3143|107|F|135647.68|1993-02-17|1-URGENT|Clerk#000000519|0| are final, ironic accounts. ironic |
-3168|136|F|69412.71|1992-01-30|5-LOW|Clerk#000000352|0|s sleep slyly? ironic, furious instructions detect. quickly final i|
-3169|19|F|126804.90|1993-12-21|3-MEDIUM|Clerk#000000252|0| even pinto beans are blithely special, special multip|
-3170|5|O|190142.17|1997-11-09|1-URGENT|Clerk#000000288|0|requests. furiously bold|
-3171|47|F|84405.78|1993-04-06|5-LOW|Clerk#000000940|0|ar deposits. idly r|
-3172|89|F|121360.83|1992-06-03|4-NOT SPECIFIED|Clerk#000000771|0|es. slyly ironic packages x-ra|
-3173|148|O|64892.73|1996-08-10|5-LOW|Clerk#000000516|0|ial requests lose along t|
-3174|127|O|92856.91|1995-11-15|5-LOW|Clerk#000000663|0|rts. silent, regular pinto beans are blithely regular packages. furiousl|
-3175|44|F|205282.63|1994-07-15|5-LOW|Clerk#000000629|0| across the slyly even realms use carefully ironic deposits: sl|
-3200|13|O|131103.31|1996-02-07|1-URGENT|Clerk#000000020|0| regular dependencies impress evenly even excuses. blithely |
-3201|97|F|90755.31|1993-07-02|4-NOT SPECIFIED|Clerk#000000738|0|. busy, express instruction|
-3202|88|F|50601.01|1992-12-24|5-LOW|Clerk#000000067|0|fluffily express requests affix carefully around th|
-3203|127|O|49357.72|1997-11-05|2-HIGH|Clerk#000000493|0|e furiously silent warhorses. slyly silent deposits wake bli|
-3204|10|F|41573.42|1992-12-26|1-URGENT|Clerk#000000693|0|ess somas cajole slyly. pending accounts cajole|
-3205|148|F|153637.79|1992-04-11|5-LOW|Clerk#000000803|0|e furiously. quickly regular dinos about the final pinto be|
-3206|122|O|64344.86|1996-08-09|1-URGENT|Clerk#000000755|0|ntegrate furiously final, express |
-3207|22|O|133038.59|1998-02-16|1-URGENT|Clerk#000000695|0|uriously accounts. fluffily i|
-3232|82|F|55619.01|1992-10-09|1-URGENT|Clerk#000000314|0|yly final accounts. packages agains|
-3233|140|F|54121.92|1994-10-24|5-LOW|Clerk#000000470|0|ly ironic epitaphs use stealthy, express deposits. quickly regular instruct|
-3234|14|O|147343.68|1996-04-05|4-NOT SPECIFIED|Clerk#000000367|0|ents according to the dependencies will sleep after the blithely even p|
-3235|46|O|104695.09|1995-11-15|5-LOW|Clerk#000000349|0| quickly pinto beans. ironi|
-3236|142|O|39470.39|1996-11-06|4-NOT SPECIFIED|Clerk#000000553|0|ithely slyly pending req|
-3237|19|F|10508.12|1992-06-03|1-URGENT|Clerk#000000606|0|inal requests. slyly even foxes detect about the furiously exp|
-3238|61|F|41375.69|1993-02-21|5-LOW|Clerk#000000818|0|lly express deposits are. furiously unusual ideas wake carefully somas. instr|
-3239|35|O|156802.80|1998-01-12|4-NOT SPECIFIED|Clerk#000000619|0| cajole carefully along the furiously pending deposits. |
-3264|94|O|162634.53|1996-11-02|5-LOW|Clerk#000000244|0|carefully. express, bold|
-3265|53|F|43315.15|1992-06-27|1-URGENT|Clerk#000000265|0|re quickly quickly pe|
-3266|4|P|68309.28|1995-03-17|5-LOW|Clerk#000000545|0|refully ironic instructions. slyly final pi|
-3267|112|O|33998.90|1997-01-07|5-LOW|Clerk#000000484|0| the packages. regular decoys about the bold dependencies grow fi|
-3268|142|F|36024.96|1994-06-25|5-LOW|Clerk#000000746|0|y brave requests unwind furiously accordin|
-3269|17|O|218697.85|1996-03-01|3-MEDIUM|Clerk#000000378|0|ts. accounts wake carefully. carefully dogged accounts wake slyly slyly i|
-3270|38|O|166669.86|1997-05-28|1-URGENT|Clerk#000000375|0|uffily pending courts ca|
-3271|34|F|86534.05|1992-01-01|1-URGENT|Clerk#000000421|0|s. furiously regular requests|
-3296|148|F|187553.35|1994-10-19|3-MEDIUM|Clerk#000000991|0|as! carefully final requests wake. furiously even|
-3297|139|F|9679.45|1992-11-03|2-HIGH|Clerk#000000220|0| after the theodolites cajole carefully according to the finally|
-3298|116|O|62716.67|1996-04-17|5-LOW|Clerk#000000241|0|even accounts boost |
-3299|91|F|42867.92|1993-12-26|3-MEDIUM|Clerk#000000853|0|bold deposits. special instructions sleep care|
-3300|118|O|27049.22|1995-07-15|5-LOW|Clerk#000000198|0|ses. carefully unusual instructions must have to detect about the blithel|
-3301|133|F|48497.09|1994-09-04|4-NOT SPECIFIED|Clerk#000000325|0|ular gifts impress enticingly carefully express deposits; instructions boo|
-3302|34|O|38330.42|1995-11-14|2-HIGH|Clerk#000000367|0|eep blithely ironic requests. quickly even courts haggle slyly|
-3303|145|O|97758.28|1997-12-14|4-NOT SPECIFIED|Clerk#000000661|0|nto beans sleep furiously above the carefully ironic |
-3328|7|F|139580.85|1992-11-19|5-LOW|Clerk#000000384|0|ake among the express accounts? carefully ironic packages cajole never.|
-3329|4|O|46107.70|1995-07-03|2-HIGH|Clerk#000000236|0|old deposits. special accounts haggle furiousl|
-3330|7|F|43255.19|1994-12-19|1-URGENT|Clerk#000000124|0|kages use. carefully regular deposits cajole carefully about |
-3331|91|F|65189.17|1993-05-21|2-HIGH|Clerk#000000901|0|uffily carefully sly accounts. blithely unu|
-3332|143|F|73739.06|1994-11-05|1-URGENT|Clerk#000000840|0|ans detect carefully furiously final deposits: regular accoun|
-3333|92|F|197973.22|1992-09-16|4-NOT SPECIFIED|Clerk#000000157|0|ctions boost slyly quickly even accounts. deposits along|
-3334|76|O|28930.68|1996-02-18|5-LOW|Clerk#000000532|0|ounts maintain carefully. furiously close request|
-3335|49|O|112603.34|1995-10-15|3-MEDIUM|Clerk#000000694|0| deposits poach. ironic ideas about the carefully ironi|
-3360|103|O|168750.48|1998-01-23|5-LOW|Clerk#000000254|0| the deposits. fluffily bold requests cajole regula|
-3361|49|F|75026.51|1992-08-23|4-NOT SPECIFIED|Clerk#000000577|0|unts detect furiously instructions. slow deposi|
-3362|140|O|183176.60|1995-07-29|5-LOW|Clerk#000000011|0|the quickly pending deposits. silent, ev|
-3363|52|O|91017.61|1995-09-23|2-HIGH|Clerk#000000615|0|posits. ironic, final deposits are furiously slyly pending |
-3364|46|O|108412.57|1997-06-21|1-URGENT|Clerk#000000280|0|y even foxes? blithely stea|
-3365|82|F|174634.12|1994-11-09|2-HIGH|Clerk#000000126|0|he slyly regular foxes nag about the accounts. fluffily |
-3366|52|O|13603.08|1997-05-18|1-URGENT|Clerk#000000160|0| pinto beans upon the quickly expres|
-3367|73|F|101339.68|1992-12-31|4-NOT SPECIFIED|Clerk#000000029|0|efully blithely ironic pinto beans. carefully close |
-3392|74|O|96057.42|1995-10-28|1-URGENT|Clerk#000000325|0|es thrash blithely depths. bold multipliers wake f|
-3393|98|O|183104.71|1995-07-04|2-HIGH|Clerk#000000076|0|even requests. excuses are carefully deposits. fluf|
-3394|149|O|162165.94|1996-05-05|4-NOT SPECIFIED|Clerk#000000105|0| blithely among the attainments. carefully final accounts nag blit|
-3395|149|F|141486.77|1994-10-30|4-NOT SPECIFIED|Clerk#000000682|0|ideas haggle beside the ev|
-3396|149|F|196443.16|1994-05-21|3-MEDIUM|Clerk#000000868|0|uffily regular platelet|
-3397|130|F|80084.61|1994-06-23|3-MEDIUM|Clerk#000000048|0|yly. final deposits wake f|
-3398|67|O|1147.42|1996-09-23|1-URGENT|Clerk#000000818|0|uthless, special courts atop the unusual accounts grow fur|
-3399|122|P|56938.16|1995-02-28|4-NOT SPECIFIED|Clerk#000000575|0|the carefully sly accounts. regular, pending theodolites wa|
-3424|103|O|42410.57|1996-08-21|1-URGENT|Clerk#000000190|0|ven requests are quickly pending accounts. blithely furious requests |
-3425|115|O|157040.57|1996-03-31|4-NOT SPECIFIED|Clerk#000000188|0|ions. deposits nag blithely alongside of the carefully f|
-3426|53|O|91929.93|1996-10-16|3-MEDIUM|Clerk#000000283|0|alongside of the slyly|
-3427|4|O|133451.14|1997-05-29|4-NOT SPECIFIED|Clerk#000000404|0|y final pinto beans snooze fluffily bold asymptot|
-3428|10|O|88047.04|1996-04-07|5-LOW|Clerk#000000953|0|lar excuses. slyly pending ideas detect p|
-3429|146|O|141902.54|1997-01-06|4-NOT SPECIFIED|Clerk#000000737|0|l deposits cajole furiously enticing deposits. blithe packages haggle careful|
-3430|113|F|161066.22|1994-12-12|4-NOT SPECIFIED|Clerk#000000664|0| regular attainments are at the final foxes. final packages along the blithe|
-3431|47|F|45536.27|1993-08-22|1-URGENT|Clerk#000000439|0| sleep. slyly busy Tiresias a|
-3456|46|F|32796.35|1993-06-01|5-LOW|Clerk#000000924|0|es promise slyly. ironicall|
-3457|25|P|174223.20|1995-04-27|4-NOT SPECIFIED|Clerk#000000849|0|ely thin asymptotes. deposits kindle. pending|
-3458|95|F|153069.14|1994-12-22|2-HIGH|Clerk#000000392|0|rges snooze. slyly unusua|
-3459|119|F|127134.05|1994-07-28|4-NOT SPECIFIED|Clerk#000000777|0|n instructions? carefully regular excuses are blithely. silent, ironi|
-3460|82|O|245976.74|1995-10-03|2-HIGH|Clerk#000000078|0|ans integrate carefu|
-3461|100|F|190960.69|1993-01-31|1-URGENT|Clerk#000000504|0|al, bold deposits cajole fluffily fluffily final foxes. pending ideas beli|
-3462|133|O|63590.17|1997-05-17|3-MEDIUM|Clerk#000000657|0|uriously express asympto|
-3463|89|F|85255.56|1993-08-18|1-URGENT|Clerk#000000545|0|ding to the carefully ironic deposits|
-3488|148|F|92716.17|1995-01-08|3-MEDIUM|Clerk#000000694|0|cording to the carefully regular deposits. re|
-3489|109|F|62453.97|1993-07-29|3-MEDIUM|Clerk#000000307|0|s detect. carefully even platelets across the fur|
-3490|91|O|100106.96|1997-05-26|5-LOW|Clerk#000000703|0|gular ideas. furiously silent deposits across the unusual accounts boost i|
-3491|83|O|50287.06|1998-06-24|1-URGENT|Clerk#000000560|0|nic orbits believe carefully across the |
-3492|103|F|168721.45|1994-11-24|5-LOW|Clerk#000000066|0|packages along the regular foxes lose final dependencie|
-3493|82|F|41686.10|1993-08-24|2-HIGH|Clerk#000000887|0|lyly special accounts use blithely across the furiously sil|
-3494|49|F|136058.70|1993-04-04|5-LOW|Clerk#000000559|0|r instructions haggle. accounts cajole. carefully final requests at the |
-3495|31|O|58666.79|1996-02-26|2-HIGH|Clerk#000000441|0|nticing excuses are carefully|
-3520|125|O|151233.65|1997-08-04|1-URGENT|Clerk#000000023|0|hely. ideas nag; even, even fo|
-3521|7|F|142029.67|1992-10-26|5-LOW|Clerk#000000812|0|y even instructions cajole carefully above the bli|
-3522|26|F|151515.08|1994-09-26|5-LOW|Clerk#000000250|0|deposits-- slyly stealthy requests boost caref|
-3523|149|O|129657.08|1998-04-07|2-HIGH|Clerk#000000688|0|are on the carefully even depe|
-3524|94|F|22767.49|1992-05-03|2-HIGH|Clerk#000000607|0|efully unusual tithes among the foxes use blithely daringly bold deposits. re|
-3525|109|O|100749.60|1995-12-22|4-NOT SPECIFIED|Clerk#000000084|0|s nag among the blithely e|
-3526|56|F|53827.34|1995-03-16|5-LOW|Clerk#000000364|0|to the quickly special deposits print agai|
-3527|56|O|145232.09|1997-06-21|5-LOW|Clerk#000000874|0|regular ideas across the quickly bold theodo|
-3552|35|O|103656.44|1997-04-23|2-HIGH|Clerk#000000973|0| the ironic packages. furiously |
-3553|91|F|119838.14|1994-05-18|3-MEDIUM|Clerk#000000270|0|counts mold furiously. slyly i|
-3554|44|O|98335.61|1995-06-17|5-LOW|Clerk#000000931|0|hely ironic requests haggl|
-3555|46|O|134442.37|1996-07-07|5-LOW|Clerk#000000585|0|s nag carefully regular, even pinto be|
-3556|16|F|114681.55|1992-09-23|4-NOT SPECIFIED|Clerk#000000140|0|e. dependencies need to haggle alongs|
-3557|121|F|85477.89|1992-11-09|2-HIGH|Clerk#000000291|0|ithely courts. furi|
-3558|28|O|112912.00|1996-02-29|1-URGENT|Clerk#000000841|0|around the furiously even requests. quickl|
-3559|106|F|30722.49|1992-10-24|3-MEDIUM|Clerk#000000634|0|sly deposits. fluffily final ideas cajole careful|
-3584|13|O|80487.97|1997-08-11|1-URGENT|Clerk#000000760|0|fully bold packages. fluffily final braids haggle final, ironic dolphins. b|
-3585|139|F|159015.39|1994-11-23|2-HIGH|Clerk#000000988|0|regular asymptotes. bold pains above the carefully pending asymptot|
-3586|121|F|112845.04|1993-12-05|2-HIGH|Clerk#000000438|0|he quickly final courts. carefully regular requests nag unusua|
-3587|79|O|174798.97|1996-05-10|4-NOT SPECIFIED|Clerk#000000443|0|ular patterns detect |
-3588|119|F|207925.83|1995-03-19|4-NOT SPECIFIED|Clerk#000000316|0|ong the pains. evenly unusual |
-3589|31|F|39103.37|1994-05-26|2-HIGH|Clerk#000000023|0|ithe deposits nag furiously. furiously pending packages sleep f|
-3590|149|P|218482.70|1995-05-13|5-LOW|Clerk#000000986|0|lyly final deposits.|
-3591|136|F|98140.86|1993-12-08|3-MEDIUM|Clerk#000000144|0|ual foxes haggle! unusual request|
-3616|128|F|60933.29|1994-02-16|4-NOT SPECIFIED|Clerk#000000268|0|uickly about the quickly final requests. fluffily final packages wake evenly|
-3617|40|O|126205.42|1996-03-19|3-MEDIUM|Clerk#000000886|0|the carefully regular platelets ha|
-3618|10|O|136954.81|1997-12-13|3-MEDIUM|Clerk#000000894|0|. ideas run carefully. thin, pending |
-3619|149|O|222274.54|1996-11-20|2-HIGH|Clerk#000000211|0|uests mold after the blithely ironic excuses. slyly pending pa|
-3620|44|O|59291.75|1997-03-07|5-LOW|Clerk#000000124|0|le quickly against the epitaphs. requests sleep slyly according to the|
-3621|142|F|106150.05|1993-05-06|3-MEDIUM|Clerk#000000643|0|kly unusual deposits. qu|
-3622|91|O|109202.90|1995-11-27|5-LOW|Clerk#000000012|0|c deposits are fluffily about the blithely final theo|
-3623|4|O|175017.68|1996-12-26|1-URGENT|Clerk#000000184|0|- ironic excuses boost quickly in place |
-3648|125|F|180417.11|1993-06-17|5-LOW|Clerk#000000717|0|foxes. unusual deposits boost quickly. slyly regular asymptotes across t|
-3649|40|F|124470.32|1994-07-06|5-LOW|Clerk#000000349|0|taphs boost above the final p|
-3650|46|F|189547.57|1992-05-28|4-NOT SPECIFIED|Clerk#000000454|0|kages sleep fluffily slyly|
-3651|100|O|113191.45|1998-04-27|1-URGENT|Clerk#000000222|0|ly unusual deposits thrash quickly after the ideas.|
-3652|107|O|107732.23|1997-02-25|4-NOT SPECIFIED|Clerk#000000024|0|sly even requests after the |
-3653|40|F|142866.39|1994-03-27|1-URGENT|Clerk#000000402|0| pearls. bold accounts are along the ironic,|
-3654|7|F|222653.54|1992-06-03|5-LOW|Clerk#000000475|0|s cajole slyly carefully special theodolites. even deposits haggl|
-3655|49|F|74882.22|1992-10-06|1-URGENT|Clerk#000000815|0|er the carefully unusual deposits sleep quickly according to|
-3680|127|F|124402.59|1992-12-10|4-NOT SPECIFIED|Clerk#000000793|0|ular platelets. carefully regular packages cajole blithely al|
-3681|52|F|36889.65|1992-04-04|1-URGENT|Clerk#000000566|0|. ironic deposits against the ironic, regular frets use pending plat|
-3682|32|O|67525.43|1997-01-22|2-HIGH|Clerk#000000001|0|es haggle carefully. decoys nag |
-3683|88|F|99960.46|1993-03-04|2-HIGH|Clerk#000000248|0|ze across the express foxes. carefully special acco|
-3684|23|F|89509.91|1993-07-20|2-HIGH|Clerk#000000835|0|bold accounts affix along the carefully ironic requ|
-3685|16|F|154958.89|1992-01-17|3-MEDIUM|Clerk#000000954|0| sleep fluffily special ide|
-3686|40|O|82190.77|1998-07-07|2-HIGH|Clerk#000000175|0|s. furiously final pinto beans poach carefully among |
-3687|43|F|99851.38|1993-02-03|1-URGENT|Clerk#000000585|0|gular accounts. slyly regular instructions can are final ide|
-3712|64|F|127527.05|1992-01-02|2-HIGH|Clerk#000000032|0| promise according |
-3713|149|O|215342.63|1998-05-07|3-MEDIUM|Clerk#000000325|0|s haggle quickly. ironic, regular Tiresi|
-3714|40|O|84493.55|1998-05-01|3-MEDIUM|Clerk#000000595|0|nding accounts. ironic pinto beans wake slyly. furiously pendin|
-3715|65|O|64000.93|1996-03-18|1-URGENT|Clerk#000000463|0| always silent requests wake pinto beans. slyly pending foxes are aga|
-3716|43|O|146221.66|1997-08-19|4-NOT SPECIFIED|Clerk#000000748|0| pending ideas haggle. ironic,|
-3717|28|O|176525.53|1998-06-03|4-NOT SPECIFIED|Clerk#000000974|0|t the carefully even ideas use sp|
-3718|31|O|63195.54|1996-10-23|2-HIGH|Clerk#000000016|0|refully. furiously final packages use carefully slyly pending deposits! final,|
-3719|118|O|139902.71|1997-02-16|2-HIGH|Clerk#000000034|0|, enticing accounts are blithely among the daringly final asymptotes. furious|
-3744|65|F|33085.68|1992-01-10|3-MEDIUM|Clerk#000000765|0|osits sublate about the regular requests. fluffily unusual accou|
-3745|112|F|19405.73|1993-09-29|5-LOW|Clerk#000000181|0|ckages poach slyly against the foxes. slyly ironic instructi|
-3746|74|F|80018.54|1994-09-11|4-NOT SPECIFIED|Clerk#000000188|0|. express, special requests nag quic|
-3747|149|O|204355.65|1996-08-20|1-URGENT|Clerk#000000226|0|refully across the final theodolites. carefully bold accounts cajol|
-3748|53|O|83804.38|1998-02-28|1-URGENT|Clerk#000000156|0|slyly special packages|
-3749|38|P|87073.89|1995-02-24|3-MEDIUM|Clerk#000000639|0|y regular instructions haggle blithel|
-3750|97|P|177181.67|1995-04-30|3-MEDIUM|Clerk#000000885|0|y. express, even packages wake after the ide|
-3751|10|F|202917.72|1994-04-27|4-NOT SPECIFIED|Clerk#000000925|0|sheaves. express, unusual t|
-3776|85|F|150349.92|1992-11-20|2-HIGH|Clerk#000000698|0|efully even platelets slee|
-3777|28|F|82467.29|1994-04-08|3-MEDIUM|Clerk#000000941|0| regular, special dolphins cajole enticingly ca|
-3778|106|F|221036.31|1993-05-26|1-URGENT|Clerk#000000187|0| above the express requests. packages maintain fluffily according to|
-3779|74|O|31538.94|1997-01-05|4-NOT SPECIFIED|Clerk#000000670|0| against the deposits. quickly bold instructions x-ray. pending fox|
-3780|41|O|65385.42|1996-04-13|5-LOW|Clerk#000000967|0| around the brave, pendin|
-3781|139|O|133864.82|1996-06-20|1-URGENT|Clerk#000000394|0|yly after the ruthless packages. pinto beans use slyly: never ironic dependenc|
-3782|65|O|145096.17|1996-08-24|1-URGENT|Clerk#000000121|0|counts are. pending, regular asym|
-3783|44|F|155017.92|1993-12-06|4-NOT SPECIFIED|Clerk#000000614|0| along the pinto beans. special packages use. regular theo|
-3808|79|F|228054.01|1994-04-24|1-URGENT|Clerk#000000717|0|odolites. blithely ironic cour|
-3809|148|O|143070.70|1996-05-01|5-LOW|Clerk#000000646|0| regular excuses. even theodolites are fluffily according to t|
-3810|100|F|124675.27|1992-09-17|1-URGENT|Clerk#000000660|0|ters sleep across the carefully final |
-3811|80|O|154967.89|1998-04-16|3-MEDIUM|Clerk#000000290|0|sits wake slyly abo|
-3812|41|O|70502.52|1996-08-13|3-MEDIUM|Clerk#000000727|0|al, final requests cajole|
-3813|146|O|77247.05|1998-06-29|1-URGENT|Clerk#000000531|0|g the furiously regular instructions|
-3814|118|P|149451.88|1995-02-22|5-LOW|Clerk#000000669|0| the furiously pending theodo|
-3815|104|O|14275.01|1997-08-26|1-URGENT|Clerk#000000249|0|es snooze carefully stealth|
-3840|100|O|187156.38|1998-07-17|4-NOT SPECIFIED|Clerk#000000713|0|yly slow theodolites. enticingly |
-3841|58|F|129033.13|1994-10-05|4-NOT SPECIFIED|Clerk#000000018|0| bold requests sleep quickly ironic packages. sometimes regular deposits nag |
-3842|28|F|131447.03|1992-04-09|5-LOW|Clerk#000000418|0|silent ideas. final deposits use furiously. blithely express excuses cajole fu|
-3843|10|O|34035.17|1997-01-04|4-NOT SPECIFIED|Clerk#000000693|0|eodolites; slyly unusual accounts nag boldly |
-3844|79|F|6793.45|1994-12-29|1-URGENT|Clerk#000000686|0|r dolphins. slyly ironic theodolites ag|
-3845|89|F|134333.33|1992-04-26|1-URGENT|Clerk#000000404|0|es among the pending, regular accounts sleep blithely blithely even de|
-3846|49|O|123120.06|1998-02-05|2-HIGH|Clerk#000000877|0|y alongside of the slyl|
-3847|34|F|7014.31|1993-03-12|5-LOW|Clerk#000000338|0|uriously even deposits. furiously pe|
-3872|134|O|198538.68|1996-09-06|5-LOW|Clerk#000000943|0|counts boost slyly against the ironic platelets-- blithely p|
-3873|55|O|95291.79|1998-03-30|4-NOT SPECIFIED|Clerk#000000791|0|express deposits-- even ideas |
-3874|119|F|66455.34|1993-06-09|3-MEDIUM|Clerk#000000208|0|ular asymptotes sleep blithely ironic ideas. blithel|
-3875|118|O|74483.95|1997-09-10|1-URGENT|Clerk#000000587|0| solve among the fluffily even |
-3876|29|O|95126.32|1996-08-02|5-LOW|Clerk#000000708|0|into beans. blithely|
-3877|17|F|178492.01|1993-05-21|5-LOW|Clerk#000000652|0|foxes. thinly bold reques|
-3878|88|O|59989.66|1997-03-23|1-URGENT|Clerk#000000314|0|e carefully regular platelets. special, express dependencies slee|
-3879|142|O|80274.22|1995-11-23|1-URGENT|Clerk#000000231|0|sts along the quickly ironic sentiments cajole carefully according to t|
-3904|149|O|39338.44|1997-11-15|4-NOT SPECIFIED|Clerk#000000883|0|sits haggle furiously across the requests. theodolites ha|
-3905|22|F|56227.04|1993-12-21|4-NOT SPECIFIED|Clerk#000000573|0|usly even accounts lose quietly above the slyly express p|
-3906|46|F|145630.76|1992-05-28|3-MEDIUM|Clerk#000000867|0|ironic theodolites haggle blithely above the final re|
-3907|67|F|240457.56|1992-08-19|3-MEDIUM|Clerk#000000084|0|gular pinto beans sleep f|
-3908|43|F|57127.71|1993-03-09|3-MEDIUM|Clerk#000000490|0|ounts cajole. regularly|
-3909|22|O|82746.74|1998-07-27|1-URGENT|Clerk#000000980|0|nic, special theodolites sleep furiously! furiously |
-3910|64|O|47272.67|1996-08-26|3-MEDIUM|Clerk#000000270|0|ickly. furiously final packag|
-3911|10|P|35019.95|1995-03-17|4-NOT SPECIFIED|Clerk#000000818|0|he fluffily final forges haggle slyly according to the blithely|
-3936|32|O|168618.39|1996-11-07|2-HIGH|Clerk#000000200|0|iously express packages engage slyly fina|
-3937|94|O|187516.29|1997-11-30|4-NOT SPECIFIED|Clerk#000000189|0|ckages boost carefully blithely q|
-3938|31|F|46918.22|1993-03-03|1-URGENT|Clerk#000000199|0|. unusual, final foxes haggle|
-3939|70|O|8720.45|1996-01-11|5-LOW|Clerk#000000647|0|ly ruthlessly silent requests. blithely regular requests haggle blithely wh|
-3940|149|O|129012.84|1996-02-14|5-LOW|Clerk#000000363|0|e above the ideas. quickly even dependencies along the blithely ir|
-3941|136|O|95453.80|1996-08-29|2-HIGH|Clerk#000000503|0|gular theodolites integrate quickly |
-3942|76|F|38596.81|1993-06-28|4-NOT SPECIFIED|Clerk#000000608|0|eas cajole bold requests. idly silent instructions |
-3943|40|O|60314.97|1996-10-09|5-LOW|Clerk#000000482|0|se alongside of the final pinto beans. regular packages boost across the ca|
-3968|25|O|121704.45|1997-02-17|4-NOT SPECIFIED|Clerk#000000431|0| the slyly special accounts; |
-3969|52|O|169797.40|1997-05-14|2-HIGH|Clerk#000000731|0|uriously final dependencies slee|
-3970|76|F|163709.85|1992-03-27|3-MEDIUM|Clerk#000000190|0|luffily furiously regular deposits. blithely special requests cajole blithely|
-3971|104|O|47925.47|1996-06-28|5-LOW|Clerk#000000287|0|alongside of the instructions ought to are |
-3972|124|F|1861.19|1994-04-21|3-MEDIUM|Clerk#000000049|0|y regular requests haggle quickly. pending, express acco|
-3973|103|F|91541.48|1992-03-24|4-NOT SPECIFIED|Clerk#000000114|0|somas according to the quickly even instructions wake fu|
-3974|94|O|56779.06|1996-03-05|4-NOT SPECIFIED|Clerk#000000938|0|deposits are furiously beneath the bl|
-3975|118|O|37804.43|1995-04-11|3-MEDIUM|Clerk#000000016|0|ts. regular, regular Tiresias play furiously. ironi|
-4000|70|F|84053.93|1992-01-04|5-LOW|Clerk#000000339|0|le carefully closely even pinto beans. regular, ironic foxes against the|
-4001|115|O|95929.46|1997-05-15|3-MEDIUM|Clerk#000000878|0|detect. asymptotes sleep furio|
-4002|104|O|76518.11|1997-04-08|5-LOW|Clerk#000000097|0| regular braids are. furiously even patterns agains|
-4003|112|F|17603.01|1993-01-27|1-URGENT|Clerk#000000177|0| blithe theodolites are slyly. slyly silent accounts toward|
-4004|70|F|220715.14|1993-05-07|3-MEDIUM|Clerk#000000273|0|accounts among the blithely regular sentiments |
-4005|140|O|129062.13|1996-11-20|2-HIGH|Clerk#000000341|0|ily according to the slyly iron|
-4006|35|F|70557.05|1995-01-04|3-MEDIUM|Clerk#000000765|0|ly ironic packages integrate. regular requests alongside of |
-4007|8|F|116193.97|1993-06-18|2-HIGH|Clerk#000000623|0|ecial packages. slyly regular accounts integrate |
-4032|10|O|62497.51|1998-02-26|3-MEDIUM|Clerk#000000686|0|iresias sleep slyly regular ideas. quickly unusual|
-4033|83|F|57740.74|1993-06-02|5-LOW|Clerk#000000181|0|ously bold instructions haggle furiously above the fluf|
-4034|94|F|186912.51|1993-11-14|4-NOT SPECIFIED|Clerk#000000548|0|ts x-ray. express requests affix fluffily regular theodolites. pending, fina|
-4035|118|F|22840.21|1992-02-19|5-LOW|Clerk#000000097|0|he ironic deposits sleep blith|
-4036|47|O|82563.10|1997-04-26|3-MEDIUM|Clerk#000000398|0|ly express deposits nag slyly. ironic, final asymptotes boost bra|
-4037|121|F|36389.43|1993-03-24|2-HIGH|Clerk#000000384|0|t carefully above the unusual the|
-4038|94|O|155045.39|1996-01-06|1-URGENT|Clerk#000000272|0|re slyly. silent requests wake quickly. regular packages play quickly |
-4039|29|O|143753.01|1997-11-16|1-URGENT|Clerk#000000358|0|ly ironic deposits. ironic reques|
-4064|130|O|148500.71|1996-10-10|4-NOT SPECIFIED|Clerk#000000598|0|ccounts. furiously unusual theodolites wake carefully about|
-4065|80|F|156345.64|1994-06-09|1-URGENT|Clerk#000000131|0|even foxes! slyly final deposits agai|
-4066|32|O|176911.21|1997-01-27|4-NOT SPECIFIED|Clerk#000000286|0|yly ironic dinos. quickly regular accounts haggle. requests wa|
-4067|16|F|136517.34|1992-10-07|2-HIGH|Clerk#000000027|0|tes boost furiously quick asymptotes. final deposits of the dolphins solv|
-4068|125|O|71852.67|1996-09-18|3-MEDIUM|Clerk#000000203|0|lly even accounts wake furiously across the unusual platelets. unusu|
-4069|73|F|198816.13|1992-05-13|3-MEDIUM|Clerk#000000359|0|deposits: slyly bold ideas detect furiously. f|
-4070|29|O|98275.37|1995-06-12|2-HIGH|Clerk#000000713|0|xpress ideas poach ab|
-4071|148|O|67789.42|1996-09-15|4-NOT SPECIFIED|Clerk#000000486|0|nal deposits. pending deposits d|
-4096|139|F|81089.61|1992-07-03|4-NOT SPECIFIED|Clerk#000000706|0|sits. quickly thin deposits x-ray blith|
-4097|10|O|134308.04|1996-05-24|1-URGENT|Clerk#000000475|0|ickly under the even accounts. even packages after the furiously express|
-4098|23|O|48478.54|1996-11-05|4-NOT SPECIFIED|Clerk#000000491|0|otes. quickly final requests after the stealthily ironic pinto bean|
-4099|17|F|207364.80|1992-08-21|1-URGENT|Clerk#000000379|0|r platelets. slyly regular requests cajole carefully against the|
-4100|4|O|3892.77|1996-03-12|3-MEDIUM|Clerk#000000429|0|posits. carefully unusual packages use pending deposits. regular she|
-4101|142|F|21640.10|1993-11-22|4-NOT SPECIFIED|Clerk#000000704|0|y around the express, careful epitaphs. accounts use fluffily. quickly p|
-4102|22|O|128786.57|1996-03-17|1-URGENT|Clerk#000000675|0|nding dependencies was slyly about the bl|
-4103|106|F|38164.23|1992-07-03|5-LOW|Clerk#000000679|0|fully ironic dependencies.|
-4128|139|O|5472.17|1995-10-07|4-NOT SPECIFIED|Clerk#000000635|0|ctions. dependencies from the slyly regular accounts nag slyly fu|
-4129|32|F|67226.28|1993-06-26|3-MEDIUM|Clerk#000000541|0|nwind. quickly final theodolites use packages. accounts|
-4130|104|O|47823.04|1996-03-10|5-LOW|Clerk#000000609|0|omise alongside of the carefully final foxes. blithel|
-4131|44|O|145971.60|1998-01-30|1-URGENT|Clerk#000000612|0| above the foxes hang |
-4132|19|P|65601.08|1995-05-29|4-NOT SPECIFIED|Clerk#000000158|0|ld asymptotes solve alongside of the express, final packages. fluffily fi|
-4133|101|F|31693.88|1992-08-07|4-NOT SPECIFIED|Clerk#000000268|0|al, express foxes. quickly pending deposits might cajole alongsi|
-4134|97|F|125191.12|1995-01-12|1-URGENT|Clerk#000000171|0|fully even deposits. regular de|
-4135|37|O|99577.55|1997-03-10|3-MEDIUM|Clerk#000000627|0|ly quietly even ideas. deposits haggle blithely|
-4160|55|O|82493.07|1996-08-20|5-LOW|Clerk#000000283|0|the carefully special accounts. furiously regular dugouts alongs|
-4161|118|F|198995.21|1993-08-21|5-LOW|Clerk#000000047|0|nts. fluffily regular foxes above the quickly daring reques|
-4162|22|F|72359.55|1992-02-10|5-LOW|Clerk#000000179|0|r packages are slyly accounts. furiously special foxes detect carefully re|
-4163|64|F|11493.80|1992-12-21|2-HIGH|Clerk#000000268|0| integrate furiously slyly regular depende|
-4164|94|O|8709.16|1998-07-03|2-HIGH|Clerk#000000720|0| regularly busy theodolites boost furiously quickly bold packages. express, s|
-4165|4|O|11405.40|1997-07-25|3-MEDIUM|Clerk#000000621|0|special foxes affix never blithely ironic pinto beans; blithely |
-4166|43|F|100671.06|1993-02-28|5-LOW|Clerk#000000757|0|quickly sly forges impress. careful foxes across the blithely even a|
-4167|28|O|62108.45|1998-06-17|1-URGENT|Clerk#000000917|0|kly furiously even deposits. unu|
-4192|146|O|197192.95|1998-04-19|1-URGENT|Clerk#000000369|0|equests above the slyly regular pinto beans unwi|
-4193|4|F|143191.54|1994-01-09|2-HIGH|Clerk#000000201|0|ng accounts haggle quickly. packages use fluffily ironic excu|
-4194|106|F|62972.29|1994-10-16|3-MEDIUM|Clerk#000000385|0| instructions are quickly even pinto beans. courts boost furiously regular, ev|
-4195|104|F|54478.95|1993-05-29|4-NOT SPECIFIED|Clerk#000000777|0| pinto beans cajole furiously theodolites-- slyly regular deposits doub|
-4196|106|O|201455.98|1998-05-15|3-MEDIUM|Clerk#000000532|0|affix carefully. quickly final requests |
-4197|92|O|217709.03|1996-08-13|4-NOT SPECIFIED|Clerk#000000264|0| pinto beans according|
-4198|143|O|105789.01|1997-06-16|3-MEDIUM|Clerk#000000583|0|g the special packages haggle pen|
-4199|5|F|30494.62|1992-02-13|1-URGENT|Clerk#000000309|0|e blithely. special deposits haggle slyly final foxes. carefully even|
-4224|70|O|150655.44|1997-07-14|1-URGENT|Clerk#000000034|0|jole quickly final dolphins. slyly pending foxes wake furiously bold pl|
-4225|128|O|72533.07|1997-06-03|3-MEDIUM|Clerk#000000992|0|r the platelets nag among the special deposits. ironic, ironic re|
-4226|92|F|29827.44|1993-03-09|5-LOW|Clerk#000000203|0|phins wake slyly regular packages. deposits haggle slowl|
-4227|133|F|92261.08|1995-02-24|1-URGENT|Clerk#000000063|0|ng the requests; ideas haggle fluffily. slyly unusual ideas c|
-4228|110|O|22072.16|1997-03-28|5-LOW|Clerk#000000309|0|pecial requests aft|
-4229|14|O|75145.87|1998-03-03|1-URGENT|Clerk#000000301|0|p furiously: final excuses hagg|
-4230|140|F|219709.60|1992-03-04|1-URGENT|Clerk#000000364|0|lly ironic deposits integrate carefully about the fu|
-4231|86|O|111403.66|1997-11-20|4-NOT SPECIFIED|Clerk#000000630|0|ly final accounts cajole furiously accounts. bravely ironic platelets am|
-4256|118|F|23067.48|1992-04-05|4-NOT SPECIFIED|Clerk#000000043|0|y alongside of the fluffily iro|
-4257|17|P|41723.86|1995-03-25|3-MEDIUM|Clerk#000000682|0|r ideas cajole along the blithely regular gifts.|
-4258|92|O|133829.35|1996-10-27|4-NOT SPECIFIED|Clerk#000000364|0|efully final platelets around the blit|
-4259|104|O|12918.70|1997-10-09|5-LOW|Clerk#000000781|0|es snooze slyly against the furiously unusual ideas. furious|
-4260|142|F|18566.14|1992-05-16|4-NOT SPECIFIED|Clerk#000000919|0|e among the fluffily bold accounts.|
-4261|118|F|83665.20|1992-10-03|1-URGENT|Clerk#000000662|0| about the even, pending packages. slyly bold deposits boost|
-4262|88|O|176278.57|1996-08-04|3-MEDIUM|Clerk#000000239|0| of the furious accounts. furiously regular accounts w|
-4263|4|O|158885.83|1998-03-16|1-URGENT|Clerk#000000265|0|sly ruthless deposits. final packages are instructions. fu|
-4288|34|F|75030.81|1992-12-04|4-NOT SPECIFIED|Clerk#000000823|0|usly carefully even theodolites: slyly express pac|
-4289|125|F|20752.62|1993-10-07|3-MEDIUM|Clerk#000000912|0|e carefully close instructions. slyly special reques|
-4290|41|F|26128.99|1995-01-15|3-MEDIUM|Clerk#000000688|0| slyly quickly bold requests. final deposits haggle pending ideas! som|
-4291|89|F|71822.86|1993-11-29|3-MEDIUM|Clerk#000000655|0| sleep fluffily between the bold packages. bold|
-4292|25|F|145906.24|1992-01-09|3-MEDIUM|Clerk#000000794|0| ruthlessly. slyly bo|
-4293|103|O|198322.91|1996-08-20|2-HIGH|Clerk#000000750|0|ly packages. regular packages nag according to t|
-4294|49|F|232194.74|1992-08-15|3-MEDIUM|Clerk#000000407|0|ng pinto beans breach. slyly express requests bo|
-4295|5|O|77754.62|1996-02-10|3-MEDIUM|Clerk#000000023|0|e boldly bold dependencies|
-4320|115|O|67049.37|1996-12-08|4-NOT SPECIFIED|Clerk#000000223|0|ages haggle after the slowly bold se|
-4321|16|F|118896.95|1994-07-18|3-MEDIUM|Clerk#000000041|0|ending deposits are carefully carefully regular packa|
-4322|142|O|149671.92|1998-03-13|3-MEDIUM|Clerk#000000433|0|totes nag across the fluffily special instructions. quickly silent hockey |
-4323|104|F|27598.17|1994-01-23|2-HIGH|Clerk#000000282|0|lve after the slyly regular multipliers. even, regular excus|
-4324|73|O|178249.05|1995-07-17|1-URGENT|Clerk#000000800|0|ccounts. slyly stealthy requests shall have t|
-4325|130|O|20214.49|1996-07-18|2-HIGH|Clerk#000000591|0|y around the always ev|
-4326|29|O|39048.94|1996-10-27|4-NOT SPECIFIED|Clerk#000000869|0|packages. carefully express deposit|
-4327|146|P|126235.35|1995-03-16|2-HIGH|Clerk#000000571|0|yly pending braids. final requests abo|
-4352|14|O|18653.09|1997-11-26|2-HIGH|Clerk#000000620|0|ly final platelets integrate carefully even requ|
-4353|73|O|21815.30|1997-12-12|2-HIGH|Clerk#000000790|0|uickly even ideas cajole|
-4354|145|F|179827.12|1994-09-30|4-NOT SPECIFIED|Clerk#000000046|0|pending notornis. requests serve |
-4355|4|O|186370.23|1996-11-16|1-URGENT|Clerk#000000362|0|ndencies use furiously across the regular |
-4356|97|F|39828.51|1994-04-11|5-LOW|Clerk#000000956|0| asymptotes sleep blithely. asymptotes sleep. blithely regul|
-4357|47|O|67045.94|1997-10-23|4-NOT SPECIFIED|Clerk#000000031|0|ages nag between the|
-4358|25|O|46298.53|1997-08-12|1-URGENT|Clerk#000000692|0|according to the fluffily special asymptotes |
-4359|16|F|107824.40|1993-03-03|1-URGENT|Clerk#000000393|0|sts. special, unusual deposits across the ironic theodo|
-4384|25|F|52562.16|1992-07-13|1-URGENT|Clerk#000000192|0|onic platelets. furiously regular asymptotes according to the special pac|
-4385|122|O|39190.62|1996-08-06|2-HIGH|Clerk#000000597|0|ully final requests. ironic, even dolphins above the regular |
-4386|61|O|134413.58|1998-02-06|5-LOW|Clerk#000000070|0| dolphins. silent, idle pinto beans |
-4387|110|O|116740.67|1995-10-23|1-URGENT|Clerk#000000025|0|ter the regular pinto beans. special, final gifts above the requests wi|
-4388|10|O|69668.22|1996-03-28|2-HIGH|Clerk#000000715|0|ts wake against the carefully final accounts. sly|
-4389|55|F|120324.82|1994-05-05|3-MEDIUM|Clerk#000000403|0|wly express excuses after the permanently even instructions are|
-4390|7|P|140608.69|1995-05-23|1-URGENT|Clerk#000000691|0|inal pinto beans. exp|
-4391|38|F|48284.06|1992-02-18|2-HIGH|Clerk#000000880|0|regular accounts. even depo|
-4416|149|F|76067.10|1992-06-30|5-LOW|Clerk#000000391|0| deposits. ideas cajole express theodolites: |
-4417|67|O|60868.39|1998-07-09|1-URGENT|Clerk#000000365|0|ideas are alongside of the blithely final reque|
-4418|61|F|47099.71|1993-03-25|3-MEDIUM|Clerk#000000731|0|pecial pinto beans. close foxes affix iron|
-4419|104|O|94030.43|1996-06-12|4-NOT SPECIFIED|Clerk#000000410|0|ages wake furiously slyly thin theodolit|
-4420|109|F|6088.41|1994-06-18|1-URGENT|Clerk#000000706|0|lly bold deposits along the bold, pending foxes detect blithely after the acco|
-4421|10|O|258779.02|1997-04-04|3-MEDIUM|Clerk#000000246|0|t the pending warhorses. express waters a|
-4422|70|P|107140.22|1995-05-22|3-MEDIUM|Clerk#000000938|0|ly bold accounts sleep special, regular foxes. doggedly regular in|
-4423|64|F|4913.06|1995-02-17|5-LOW|Clerk#000000888|0|excuses are ruthless|
-4448|70|O|127191.47|1998-05-21|2-HIGH|Clerk#000000428|0|. deposits haggle around the silent packages; slyly unusual packages|
-4449|10|O|48206.14|1998-02-08|5-LOW|Clerk#000000035|0|ourts are carefully even deposits. pending |
-4450|106|O|110194.31|1997-07-15|1-URGENT|Clerk#000000867|0|quests boost. furiously even realms are blithely bold requests. bl|
-4451|4|F|92851.80|1994-10-01|1-URGENT|Clerk#000000181|0|. carefully final foxes along the quickly express T|
-4452|13|F|64838.66|1994-06-21|5-LOW|Clerk#000000985|0|oxes are slyly. express, ironic pinto beans wake after the quickly pending re|
-4453|65|O|137030.40|1997-04-01|3-MEDIUM|Clerk#000000603|0|ages could have to nag slyly furiously even asymptotes! slowly regular |
-4454|142|F|159578.94|1994-02-02|5-LOW|Clerk#000000411|0|uriously regular pint|
-4455|19|F|102534.63|1993-10-11|3-MEDIUM|Clerk#000000924|0|even requests. bravely regular foxes according to the carefully unusual |
-4480|85|F|28658.26|1994-03-31|4-NOT SPECIFIED|Clerk#000000534|0|press, bold deposits boost blit|
-4481|148|O|77705.40|1996-03-30|5-LOW|Clerk#000000443|0|press sheaves cajole furio|
-4482|82|P|63535.56|1995-05-15|4-NOT SPECIFIED|Clerk#000000534|0|ravely bold accounts. furiously ironic instructions affix quickly. pend|
-4483|52|F|126597.21|1992-03-07|3-MEDIUM|Clerk#000000615|0|its. blithely idle accounts run; theodolites wake carefully around the fi|
-4484|131|O|237947.61|1996-12-24|1-URGENT|Clerk#000000392|0|ct across the pinto beans. quickly pending excuses engage furiously.|
-4485|53|F|182432.17|1994-11-13|3-MEDIUM|Clerk#000000038|0|es wake slyly even packages. blithely brave requests nag above the regul|
-4486|37|O|135613.18|1998-03-03|2-HIGH|Clerk#000000656|0|ffily according to the carefully pending acc|
-4487|46|F|109469.90|1993-02-23|3-MEDIUM|Clerk#000000017|0|s up the never pending excuses wake furiously special pinto beans. furiously i|
-4512|70|O|148682.82|1995-10-25|5-LOW|Clerk#000000393|0|ending instructions maintain fu|
-4513|85|O|119820.38|1996-03-15|5-LOW|Clerk#000000154|0|ests. final, final ideas|
-4514|97|F|143899.85|1994-04-30|3-MEDIUM|Clerk#000000074|0|deposits according to the carefull|
-4515|140|F|161745.44|1992-03-17|1-URGENT|Clerk#000000191|0|quests among the accounts sleep boldly about the regular f|
-4516|130|F|35949.14|1994-03-29|3-MEDIUM|Clerk#000000739|0|ing packages sleep slyly regular attainments|
-4517|113|O|47614.08|1998-03-07|4-NOT SPECIFIED|Clerk#000000231|0|uriously final deposits doze furiously furiously reg|
-4518|125|O|25861.74|1997-05-01|3-MEDIUM|Clerk#000000187|0|luffily against the spec|
-4519|136|F|68885.66|1993-03-30|4-NOT SPECIFIED|Clerk#000000938|0|ccording to the final |
-4544|112|O|151148.81|1997-08-07|3-MEDIUM|Clerk#000000435|0|g dependencies dazzle slyly ironic somas. carefu|
-4545|59|F|143276.28|1993-01-17|4-NOT SPECIFIED|Clerk#000000303|0|ep. requests use sly|
-4546|43|O|39906.87|1995-07-29|5-LOW|Clerk#000000373|0|ns sleep. regular, regular instructions maintai|
-4547|109|F|52114.01|1993-08-23|3-MEDIUM|Clerk#000000519|0|uctions thrash platelets. slyly final foxes wake slyly against th|
-4548|127|O|139915.23|1996-06-28|5-LOW|Clerk#000000798|0| in place of the blithely express sentiments haggle slyly r|
-4549|64|O|43889.17|1998-03-05|4-NOT SPECIFIED|Clerk#000000965|0|ully even deposits dazzle. fluffily pending ideas against the requests|
-4550|118|F|27461.48|1994-12-29|2-HIGH|Clerk#000000748|0|s haggle carefully acco|
-4551|109|O|82824.14|1996-02-09|2-HIGH|Clerk#000000462|0|ts. slyly quick theodolite|
-4576|139|O|56936.10|1996-08-14|5-LOW|Clerk#000000798|0|e pending deposits. |
-4577|79|O|104259.88|1998-05-02|5-LOW|Clerk#000000409|0|ly. unusual platelets are alw|
-4578|91|F|95761.93|1992-09-13|5-LOW|Clerk#000000121|0| to the furiously ironic instructions? furiou|
-4579|106|O|85927.85|1995-12-01|2-HIGH|Clerk#000000951|0|its wake quickly blithely specia|
-4580|82|F|118464.65|1993-11-15|4-NOT SPECIFIED|Clerk#000000086|0|rs wake blithely regular requests. fluffily ev|
-4581|79|F|89592.11|1992-09-04|4-NOT SPECIFIED|Clerk#000000687|0|ges. carefully pending accounts use furiously abo|
-4582|19|O|18247.86|1996-07-04|1-URGENT|Clerk#000000638|0|g the furiously regular pac|
-4583|22|F|206495.43|1994-09-25|3-MEDIUM|Clerk#000000240|0|equests. slyly even platelets was qui|
-4608|80|F|157767.86|1994-06-17|1-URGENT|Clerk#000000259|0|y even instructions detect slyly asymptotes. blithely final packa|
-4609|133|O|70462.84|1996-12-05|3-MEDIUM|Clerk#000000239|0|hang slyly slyly expre|
-4610|26|F|135934.60|1993-06-18|5-LOW|Clerk#000000616|0|e carefully express pinto|
-4611|29|F|166506.22|1993-01-10|2-HIGH|Clerk#000000152|0|. furiously regular instructions haggle dolphins. even instructions det|
-4612|61|F|82598.87|1993-09-20|3-MEDIUM|Clerk#000000397|0|bove the deposits. even deposits dazzle. slyly express packages haggle sl|
-4613|133|O|212339.55|1998-03-05|3-MEDIUM|Clerk#000000541|0|furiously blithely pending dependen|
-4614|61|O|151801.06|1996-04-22|1-URGENT|Clerk#000000974|0| sauternes wake thinly special accounts. fur|
-4615|29|F|10500.27|1993-08-27|3-MEDIUM|Clerk#000000982|0|jole after the fluffily pending foxes. packages affix carefully acco|
-4640|97|O|81138.17|1996-01-01|5-LOW|Clerk#000000902|0|requests. deposits do detect above the blithely iron|
-4641|134|F|98485.21|1993-01-20|4-NOT SPECIFIED|Clerk#000000755|0|ronic, final requests integrate slyly: specia|
-4642|148|F|117537.87|1995-02-27|1-URGENT|Clerk#000000295|0|cial requests wake carefully around the regular, unusual ideas. furi|
-4643|67|O|52414.19|1995-06-30|2-HIGH|Clerk#000000292|0|ously regular packages. unusual, special platel|
-4644|94|O|85901.70|1998-01-17|5-LOW|Clerk#000000961|0|requests. fluffily even ideas bo|
-4645|44|F|231012.22|1994-09-20|1-URGENT|Clerk#000000764|0|fully even instructions. final gifts sublate quickly final requests. bl|
-4646|83|O|124637.19|1996-06-18|1-URGENT|Clerk#000000036|0|n place of the blithely qu|
-4647|28|F|110958.36|1994-05-14|3-MEDIUM|Clerk#000000626|0|out the deposits. slyly final pinto beans haggle idly. slyly s|
-4672|79|O|199593.71|1995-11-07|1-URGENT|Clerk#000000475|0|lyly final dependencies caj|
-4673|82|O|58094.75|1996-08-13|4-NOT SPECIFIED|Clerk#000000914|0|c deposits are slyly. bravely ironic deposits cajole carefully after the |
-4674|37|F|115411.37|1994-04-19|1-URGENT|Clerk#000000122|0|careful hockey players. carefully pending deposits caj|
-4675|86|F|68817.08|1993-11-25|4-NOT SPECIFIED|Clerk#000000741|0|al deposits haggle slyly final|
-4676|14|O|182025.95|1995-09-01|2-HIGH|Clerk#000000407|0|s. slyly bold accounts sleep furiously special|
-4677|40|O|25661.87|1998-02-21|3-MEDIUM|Clerk#000000245|0|ly pending deposits after the carefully regular foxes sleep blithely after t|
-4678|88|O|131752.07|1998-08-02|4-NOT SPECIFIED|Clerk#000000175|0|side of the bold platelets detect slyly blithely ironic e|
-4679|88|F|7211.59|1993-01-20|2-HIGH|Clerk#000000905|0|ely regular accounts affix slyly. final dolphins are. furiously final de|
-4704|2|O|63873.14|1996-08-16|4-NOT SPECIFIED|Clerk#000000256|0|lithely final requests about the fluffily regular |
-4705|98|F|173340.09|1992-03-22|4-NOT SPECIFIED|Clerk#000000522|0| special instructions poa|
-4706|25|F|101709.52|1992-12-29|4-NOT SPECIFIED|Clerk#000000722|0| packages above the never regular packages nag packages. deposits c|
-4707|91|F|61052.10|1995-02-27|2-HIGH|Clerk#000000943|0|ully enticing accounts behind the regular|
-4708|85|F|56998.36|1994-10-01|1-URGENT|Clerk#000000383|0|ly thinly even accounts. unusu|
-4709|26|O|49903.57|1996-01-08|3-MEDIUM|Clerk#000000785|0|he furiously even deposits! ironic theodolites haggle blithely. r|
-4710|100|F|88966.68|1994-12-08|4-NOT SPECIFIED|Clerk#000000734|0|the final, regular foxes. carefully ironic pattern|
-4711|142|O|129546.56|1998-05-06|1-URGENT|Clerk#000000818|0|mptotes. unusual packages wake furiously qui|
-4736|139|O|67572.73|1995-11-20|2-HIGH|Clerk#000000563|0|blithely regular courts affix into the carefully ironic deposits. slyly exp|
-4737|79|F|62014.51|1993-03-11|4-NOT SPECIFIED|Clerk#000000275|0|ents use slyly among the unusual, ironic pearls. furiously pending |
-4738|5|F|149466.62|1992-04-08|2-HIGH|Clerk#000000150|0|deposits. thin acco|
-4739|148|F|68255.82|1993-02-21|5-LOW|Clerk#000000872|0|ing to the pending attainments: pending, express account|
-4740|68|O|42579.40|1996-07-05|2-HIGH|Clerk#000000420|0| dependencies haggle about the|
-4741|127|F|180692.90|1992-07-07|4-NOT SPECIFIED|Clerk#000000983|0|ly bold deposits are slyly about the r|
-4742|64|P|155356.80|1995-03-23|3-MEDIUM|Clerk#000000058|0|n packages. quickly regular ideas cajole blithely|
-4743|97|F|65702.39|1993-03-31|5-LOW|Clerk#000000048|0|pinto beans above the bold, even idea|
-4768|136|F|4820.55|1993-11-22|2-HIGH|Clerk#000000875|0|ctions snooze idly beneath the quick waters. fluffily u|
-4769|121|P|136765.03|1995-04-14|4-NOT SPECIFIED|Clerk#000000116|0|pon the asymptotes. idle, final account|
-4770|59|O|72150.68|1995-06-20|2-HIGH|Clerk#000000461|0|cial instructions believe carefully. |
-4771|95|F|49625.21|1992-12-14|1-URGENT|Clerk#000000571|0|lly express deposits serve furiously along the f|
-4772|28|F|64102.93|1994-09-14|1-URGENT|Clerk#000000708|0|es sleep. regular requests haggle furiously slyly |
-4773|122|O|196080.26|1995-12-23|1-URGENT|Clerk#000000327|0|ptotes was slyly along the|
-4774|52|F|124380.73|1993-04-20|3-MEDIUM|Clerk#000000299|0|eposits use blithely bold deposits. carefully regular gifts about the fin|
-4775|128|O|112444.42|1995-08-13|4-NOT SPECIFIED|Clerk#000000609|0|s integrate slyly slyly final instructions. carefully bold pack|
-4800|37|F|91795.13|1992-01-06|5-LOW|Clerk#000000625|0|ggle furiously along the pending pinto beans. deposits use: final foxe|
-4801|88|O|108353.08|1996-01-25|1-URGENT|Clerk#000000553|0|r the final sentiments. pending theodolites sleep doggedly across t|
-4802|130|O|5978.65|1997-01-23|3-MEDIUM|Clerk#000000400|0| ironic, thin packages wake furiously ironic, ironic deposits. the|
-4803|124|O|158776.68|1996-02-08|5-LOW|Clerk#000000892|0|lly unusual courts are ironic|
-4804|37|F|111547.31|1992-01-28|2-HIGH|Clerk#000000614|0|ly final accounts. blithely unusual theodolite|
-4805|16|F|172102.96|1992-04-25|4-NOT SPECIFIED|Clerk#000000514|0|even accounts wake furiously slyly final accounts; blithel|
-4806|7|F|35390.15|1993-04-21|5-LOW|Clerk#000000625|0|ave accounts. furiously pending wa|
-4807|53|O|138902.23|1997-01-09|3-MEDIUM|Clerk#000000310|0|kly. slyly special accounts|
-4832|34|O|84954.79|1997-12-04|3-MEDIUM|Clerk#000000548|0|final accounts sleep among the blithe|
-4833|133|O|84800.44|1996-05-12|3-MEDIUM|Clerk#000000256|0|r deposits against the slyly final excuses slee|
-4834|19|O|124539.00|1996-09-12|2-HIGH|Clerk#000000284|0|lar accounts. furiously ironic accounts haggle slyly |
-4835|146|F|70857.51|1994-10-25|1-URGENT|Clerk#000000250|0|s integrate furiously blithely expr|
-4836|65|O|78711.40|1996-12-18|1-URGENT|Clerk#000000691|0|c packages cajole carefully through the accounts. careful|
-4837|130|O|68519.84|1998-04-24|4-NOT SPECIFIED|Clerk#000000517|0|n accounts are regular, bold accounts. even instructions use request|
-4838|44|F|61811.33|1992-08-02|1-URGENT|Clerk#000000569|0|ffily bold sentiments. carefully close dolphins cajole across the |
-4839|25|F|71241.63|1994-05-10|1-URGENT|Clerk#000000925|0| even somas. slyly express ideas lose carefully. blithely unusu|
-4864|88|F|149614.34|1992-11-11|5-LOW|Clerk#000000423|0|ests nag within the quickly ironic asymptotes. ironic|
-4865|85|O|162113.46|1997-06-07|3-MEDIUM|Clerk#000000418|0|sits boost stealthily above the bl|
-4866|53|O|25767.07|1997-08-07|2-HIGH|Clerk#000000663|0|kages. unusual packages nag fluffily. qui|
-4867|10|F|9741.03|1992-05-21|1-URGENT|Clerk#000000891|0|ss the slyly regular dependencies. fluffily regular deposits within the car|
-4868|76|O|159005.35|1997-03-02|5-LOW|Clerk#000000729|0|regular asymptotes. regular packages sublate carefully al|
-4869|58|F|175422.13|1994-09-26|5-LOW|Clerk#000000802|0|boost! ironic packages un|
-4870|103|F|94534.07|1994-08-06|3-MEDIUM|Clerk#000000911|0|nto beans about the blithely regular d|
-4871|46|O|129636.99|1995-06-12|1-URGENT|Clerk#000000531|0|ven, special instructions across t|
-4896|85|F|93206.35|1992-08-22|1-URGENT|Clerk#000000622|0|sly pending deposits. final accounts boost above the sly, even|
-4897|80|F|115688.85|1992-09-17|5-LOW|Clerk#000000184|0|s. bold pinto beans sleep. evenly final accounts daz|
-4898|14|F|40572.64|1994-07-11|4-NOT SPECIFIED|Clerk#000000841|0|final patterns. special theodolites haggle ruthlessly at the blithely spec|
-4899|61|F|12291.83|1993-10-18|4-NOT SPECIFIED|Clerk#000000348|0| instructions. furiously even packages are furiously speci|
-4900|137|F|221320.76|1992-06-30|4-NOT SPECIFIED|Clerk#000000878|0|sleep quickly unusual |
-4901|79|O|146298.28|1997-12-31|4-NOT SPECIFIED|Clerk#000000980|0|inal dependencies cajole furiously. carefully express accounts na|
-4902|139|O|26011.20|1998-07-04|3-MEDIUM|Clerk#000000874|0| the slyly express dolphins. |
-4903|92|F|34363.63|1992-03-22|4-NOT SPECIFIED|Clerk#000000907|0|yly. multipliers within the fo|
-4928|4|F|59931.42|1993-10-04|4-NOT SPECIFIED|Clerk#000000952|0|slyly brave instructions after the ironic excuses haggle ruthlessly about|
-4929|149|O|135187.33|1996-02-29|3-MEDIUM|Clerk#000000109|0|uests. furiously special ideas poach. pending |
-4930|149|F|176867.34|1994-05-06|5-LOW|Clerk#000000593|0| haggle slyly quietly final theodolites. packages are furious|
-4931|50|F|115759.13|1994-11-17|1-URGENT|Clerk#000000356|0|leep. slyly express dolphins nag slyly. furiously regular s|
-4932|122|F|42927.07|1993-08-10|1-URGENT|Clerk#000000830|0|onic foxes. enticingly reg|
-4933|94|O|42945.82|1995-07-14|3-MEDIUM|Clerk#000000848|0|y special sauternes integr|
-4934|40|O|180478.16|1997-02-17|1-URGENT|Clerk#000000372|0|nes cajole; carefully special accounts haggle. special pinto beans nag |
-4935|40|F|162088.30|1993-05-25|4-NOT SPECIFIED|Clerk#000000601|0|c foxes. fluffily pendin|
-4960|124|F|153259.41|1995-02-26|5-LOW|Clerk#000000229|0|uriously even excuses. fluffily regular instructions along the furiously ironi|
-4961|58|O|89224.24|1998-04-06|3-MEDIUM|Clerk#000000731|0| braids. furiously even theodolites |
-4962|104|F|44781.32|1993-07-28|3-MEDIUM|Clerk#000000008|0| breach never ironic |
-4963|34|O|54175.35|1996-11-07|3-MEDIUM|Clerk#000000754|0|ully unusual epitaphs nod s|
-4964|101|O|204163.10|1997-07-28|4-NOT SPECIFIED|Clerk#000000144|0|ithely final theodolites. blithely regu|
-4965|52|F|110626.82|1993-10-21|5-LOW|Clerk#000000638|0|dependencies poach packages. sometim|
-4966|70|O|59186.02|1996-09-07|2-HIGH|Clerk#000000243|0|accounts. blithely ironic courts wake boldly furiously express |
-4967|98|O|103814.27|1997-02-17|3-MEDIUM|Clerk#000000397|0|e theodolites; furiously b|
-4992|62|F|203904.80|1992-05-10|1-URGENT|Clerk#000000166|0|telets nag carefully am|
-4993|13|F|145730.19|1994-08-04|4-NOT SPECIFIED|Clerk#000000258|0|ing instructions nag furiously. un|
-4994|43|O|216071.76|1996-06-29|4-NOT SPECIFIED|Clerk#000000868|0|oxes wake above the asymptotes. bold requests sleep br|
-4995|40|O|189651.76|1996-01-06|4-NOT SPECIFIED|Clerk#000000748|0|s. even deposits boost along the express, even theodolites. stealthily ir|
-4996|133|F|100750.67|1992-09-14|3-MEDIUM|Clerk#000000433|0|foxes. carefully special packages haggle quickly fluffi|
-4997|47|O|122611.05|1998-03-18|5-LOW|Clerk#000000040|0|egrate final pinto beans. fluffily special notornis use blith|
-4998|32|F|129096.80|1992-01-11|4-NOT SPECIFIED|Clerk#000000054|0|alongside of the quickly final requests hang always|
-4999|85|F|98643.17|1993-06-26|2-HIGH|Clerk#000000504|0| dolphins cajole blithely above the sly |
-5024|124|O|116127.69|1996-10-25|3-MEDIUM|Clerk#000000659|0|r foxes. regular excuses are about the quickly regular theodolites. regular, |
-5025|121|O|20099.43|1997-02-03|5-LOW|Clerk#000000805|0|ackages are slyly about the quickly |
-5026|28|O|13197.78|1997-09-06|1-URGENT|Clerk#000000955|0|y final requests us|
-5027|148|O|181346.56|1997-08-30|2-HIGH|Clerk#000000751|0|e-- final, pending requests along t|
-5028|13|F|30755.69|1992-04-17|2-HIGH|Clerk#000000180|0|ickly blithely express deposits. b|
-5029|11|F|19811.69|1992-11-14|3-MEDIUM|Clerk#000000469|0|. regular accounts haggle slyly. regul|
-5030|106|O|71781.23|1998-05-25|4-NOT SPECIFIED|Clerk#000000564|0| wake slyly furiously thin requests. ironic pinto beans ha|
-5031|139|F|91438.59|1994-12-02|3-MEDIUM|Clerk#000000788|0|lar instructions haggle blithely pending foxes? sometimes final excuses h|
-5056|52|O|62258.18|1997-02-15|5-LOW|Clerk#000000828|0|lithely above the express ideas. blithely final deposits are fluffily spec|
-5057|64|O|76164.41|1997-08-03|1-URGENT|Clerk#000000955|0|r ironic requests of the carefully ironic dependencies wake slyly a|
-5058|119|O|17031.01|1998-03-23|1-URGENT|Clerk#000000367|0| the pending packages wake after the quickly speci|
-5059|43|F|67173.82|1993-11-10|2-HIGH|Clerk#000000058|0|latelets. final, regular accounts cajole furiously ironic pinto beans? do|
-5060|112|F|65218.47|1992-07-07|4-NOT SPECIFIED|Clerk#000000333|0|e according to the excuses. express theodo|
-5061|101|F|52190.52|1993-08-14|1-URGENT|Clerk#000000009|0|e packages use fluffily according to the carefully ironic deposits. bol|
-5062|61|F|109247.00|1992-10-08|3-MEDIUM|Clerk#000000012|0|ithely. blithely bold theodolites affix. blithely final deposits haggle ac|
-5063|23|O|98753.57|1997-05-17|2-HIGH|Clerk#000000745|0|lyly after the pending foxes. express theodolites breach across t|
-5088|130|F|101616.44|1993-01-06|5-LOW|Clerk#000000930|0|ole slyly since the quickly ironic br|
-5089|130|F|109246.54|1992-07-29|1-URGENT|Clerk#000000677|0|cial platelets. quiet, final ideas cajole carefully. unusu|
-5090|89|O|132838.49|1997-03-09|1-URGENT|Clerk#000000953|0|ress accounts affix silently carefully quick accounts. carefully f|
-5091|148|O|47852.06|1998-05-21|3-MEDIUM|Clerk#000000311|0|egular decoys mold carefully fluffily unus|
-5092|22|O|195834.96|1995-10-30|5-LOW|Clerk#000000194|0|are blithely along the pin|
-5093|79|F|190693.92|1993-09-03|3-MEDIUM|Clerk#000000802|0|ully ironic theodolites sleep above the furiously ruthless instructions. bli|
-5094|106|F|74892.08|1993-03-29|4-NOT SPECIFIED|Clerk#000000406|0|uickly pending deposits haggle quickly ide|
-5095|97|F|184583.99|1992-04-22|2-HIGH|Clerk#000000964|0|accounts are carefully! slyly even packages wake slyly a|
-5120|16|O|28007.73|1996-06-05|1-URGENT|Clerk#000000332|0|against the slyly express requests. furiousl|
-5121|133|F|150334.57|1992-05-11|4-NOT SPECIFIED|Clerk#000000736|0|gular requests. furiously final pearls against the permanent, thin courts s|
-5122|70|O|79863.84|1996-02-10|5-LOW|Clerk#000000780|0|blithely. slyly ironic deposits nag. excuses s|
-5123|10|O|11850.45|1998-02-10|1-URGENT|Clerk#000000776|0|ic requests. furiously ironic packages grow above the express, ironic inst|
-5124|25|O|159170.80|1997-04-04|4-NOT SPECIFIED|Clerk#000000749|0|kly even courts. bold packages solve. |
-5125|28|O|38065.28|1998-02-07|5-LOW|Clerk#000000834|0|ructions. dolphins wake slowly carefully unusual |
-5126|112|F|92123.32|1992-10-12|4-NOT SPECIFIED|Clerk#000000270|0|s. unusual deposits |
-5127|73|O|48024.99|1997-01-15|5-LOW|Clerk#000000829|0|fully express pinto beans. slyly final accounts along the ironic dugouts use s|
-5152|44|O|60568.34|1997-01-04|3-MEDIUM|Clerk#000000963|0| for the blithely reg|
-5153|113|O|193832.28|1995-08-26|1-URGENT|Clerk#000000954|0| the furiously ironic foxes. express packages shall cajole carefully across|
-5154|8|O|28070.86|1997-04-13|3-MEDIUM|Clerk#000000316|0|inal requests. slyly regular deposits nag. even deposits haggle agains|
-5155|77|F|70183.29|1994-06-12|2-HIGH|Clerk#000000108|0|y pending deposits are ag|
-5156|125|O|59439.44|1996-11-04|5-LOW|Clerk#000000117|0|ngside of the multipliers solve slyly requests. regu|
-5157|142|O|167056.34|1997-07-06|4-NOT SPECIFIED|Clerk#000000689|0|closely above the unusual deposits. furiously|
-5158|76|O|240284.95|1997-01-21|1-URGENT|Clerk#000000541|0| regular foxes. even foxes wake blithely |
-5159|106|O|147543.26|1996-09-25|1-URGENT|Clerk#000000303|0|tegrate slyly around the slyly sly sauternes. final pa|
-5184|85|O|209155.48|1998-07-20|5-LOW|Clerk#000000250|0|nding accounts detect final, even|
-5185|148|O|206179.68|1997-07-25|3-MEDIUM|Clerk#000000195|0| regular ideas about the even ex|
-5186|52|O|208892.63|1996-08-03|1-URGENT|Clerk#000000332|0|pecial platelets. slyly final ac|
-5187|55|O|46380.69|1997-07-16|3-MEDIUM|Clerk#000000682|0|ckly according to t|
-5188|140|P|66268.86|1995-03-02|4-NOT SPECIFIED|Clerk#000000029|0|counts. finally ironic requests ab|
-5189|71|F|184172.31|1993-11-26|5-LOW|Clerk#000000940|0|e after the pending accounts. asymptotes boost. re|
-5190|58|F|89684.31|1992-04-26|5-LOW|Clerk#000000888|0|equests. slyly unusual|
-5191|77|F|119910.04|1994-12-11|4-NOT SPECIFIED|Clerk#000000318|0|ing, regular deposits alongside of the deposits boost fluffily quickly ev|
-5216|59|O|16763.95|1997-08-14|3-MEDIUM|Clerk#000000418|0|des boost across the platelets. slyly busy theodolit|
-5217|35|O|135745.58|1995-10-13|2-HIGH|Clerk#000000873|0|ons might wake quickly according to th|
-5218|82|F|73882.37|1992-07-30|4-NOT SPECIFIED|Clerk#000000683|0|y ruthless packages according to the bold, ironic package|
-5219|88|O|21267.72|1997-02-27|1-URGENT|Clerk#000000510|0|aggle always. foxes above the ironic deposits |
-5220|10|F|24844.39|1992-07-30|2-HIGH|Clerk#000000051|0| final packages. ideas detect slyly around|
-5221|13|O|71968.10|1995-06-09|4-NOT SPECIFIED|Clerk#000000324|0|lar accounts above the sl|
-5222|80|F|1051.15|1994-05-27|4-NOT SPECIFIED|Clerk#000000613|0|along the bold ideas. furiously final foxes snoo|
-5223|149|F|105561.21|1994-06-30|1-URGENT|Clerk#000000745|0|e. theodolites serve blithely unusual, final foxes. carefully pending packag|
-5248|70|P|86958.28|1995-04-15|2-HIGH|Clerk#000000737|0|theodolites cajole according to the silent packages. quickly ironic packages a|
-5249|103|F|123586.03|1994-09-06|3-MEDIUM|Clerk#000000019|0|refully bold accounts |
-5250|97|O|29673.73|1995-07-16|2-HIGH|Clerk#000000307|0|. carefully final instructions sleep among the finally regular dependen|
-5251|34|O|34004.48|1995-04-12|3-MEDIUM|Clerk#000000687|0| ironic dugouts detect. reque|
-5252|91|O|173145.37|1996-02-17|1-URGENT|Clerk#000000724|0| ironic accounts among the silent asym|
-5253|148|P|108361.46|1995-04-11|2-HIGH|Clerk#000000275|0|egular requests! blithely regular deposits alongside of t|
-5254|112|F|196989.09|1992-07-26|4-NOT SPECIFIED|Clerk#000000527|0|he express, even ideas cajole blithely special requests|
-5255|64|O|75074.07|1996-07-12|5-LOW|Clerk#000000591|0|ly slow forges. express foxes haggle. regular, even asymp|
-5280|34|O|68052.70|1997-12-03|3-MEDIUM|Clerk#000000604|0|riously ironic instructions. ironic ideas according to the accounts boost fur|
-5281|124|O|179418.31|1995-11-02|2-HIGH|Clerk#000000158|0|ackages haggle slyly a|
-5282|50|O|94446.69|1998-01-30|1-URGENT|Clerk#000000030|0|rding to the unusual, bold accounts. regular instructions|
-5283|131|F|18594.66|1994-06-04|3-MEDIUM|Clerk#000000579|0|ests. even, final ideas alongside of t|
-5284|61|O|40548.99|1995-07-09|4-NOT SPECIFIED|Clerk#000000155|0| careful dependencies use sly|
-5285|70|F|99377.51|1994-01-18|2-HIGH|Clerk#000000976|0|p across the furiously ironic deposits.|
-5286|116|O|79646.89|1997-09-26|5-LOW|Clerk#000000606|0|structions are furiously quickly ironic asymptotes. quickly iro|
-5287|25|F|30045.95|1993-12-22|5-LOW|Clerk#000000406|0|regular packages. bold instructions sleep always. carefully final p|
-5312|65|F|66697.95|1995-02-24|2-HIGH|Clerk#000000690|0|ter the even, bold foxe|
-5313|13|O|159870.44|1997-06-17|4-NOT SPECIFIED|Clerk#000000896|0|le. final courts haggle furiously according to the |
-5314|34|O|26999.83|1995-06-02|2-HIGH|Clerk#000000617|0|ions across the quickly special d|
-5315|139|F|55554.97|1992-10-29|4-NOT SPECIFIED|Clerk#000000035|0| furiously. quickly unusual packages use. sly|
-5316|100|F|62316.61|1994-01-31|1-URGENT|Clerk#000000734|0| requests haggle across the regular, pending deposits. furiously regular requ|
-5317|37|F|228002.51|1994-09-09|5-LOW|Clerk#000000687|0|jole quickly at the slyly pend|
-5318|59|F|106935.19|1993-04-04|2-HIGH|Clerk#000000663|0|efully regular dolphins. even ideas nag fluffily furiously even packa|
-5319|98|O|68619.29|1996-01-21|1-URGENT|Clerk#000000237|0|lent requests. quickly pe|
-5344|109|O|88216.32|1998-06-21|3-MEDIUM|Clerk#000000569|0|s. ironic excuses cajole across the|
-5345|31|O|111924.56|1997-08-24|1-URGENT|Clerk#000000057|0|r the slyly silent packages. pending, even pinto b|
-5346|37|F|149536.20|1993-12-26|2-HIGH|Clerk#000000220|0|gly close packages against the even, regular escapades boost evenly accordi|
-5347|49|F|173024.71|1995-02-22|3-MEDIUM|Clerk#000000180|0|onic, regular deposits. packag|
-5348|53|O|119164.96|1997-11-08|5-LOW|Clerk#000000497|0|totes. accounts after the furiously|
-5349|67|O|38038.84|1996-09-01|1-URGENT|Clerk#000000960|0|le along the carefully bold dolphins. carefully special packa|
-5350|76|F|113417.03|1993-10-10|5-LOW|Clerk#000000604|0|ccounts after the carefully pending requests believe |
-5351|122|O|76799.25|1998-05-11|1-URGENT|Clerk#000000443|0|to beans sleep furiously after the carefully even|
-5376|149|F|98422.83|1994-07-04|5-LOW|Clerk#000000392|0|. quickly ironic deposits integrate along|
-5377|64|O|117728.37|1997-04-24|2-HIGH|Clerk#000000917|0|ons nag blithely furiously regula|
-5378|43|F|101899.93|1992-10-25|1-URGENT|Clerk#000000520|0|n ideas. regular accounts haggle. ironic ideas use along the bold ideas. blith|
-5379|89|O|47010.15|1995-08-08|2-HIGH|Clerk#000000503|0|he unusual accounts. carefully special instructi|
-5380|148|O|123014.83|1997-10-12|1-URGENT|Clerk#000000481|0|le slyly about the slyly final dolphins. fu|
-5381|32|F|223995.46|1993-01-29|5-LOW|Clerk#000000531|0|arefully bold packages are slyly furiously ironic foxes. fluffil|
-5382|35|F|138423.03|1992-01-13|5-LOW|Clerk#000000809|0|lent deposits are according to the reg|
-5383|31|O|11474.95|1995-05-26|5-LOW|Clerk#000000409|0|ly bold requests hang furiously furiously unusual accounts. evenly unusu|
-5408|23|F|123477.05|1992-07-21|5-LOW|Clerk#000000735|0|egular requests according to the|
-5409|13|F|145040.38|1992-01-09|5-LOW|Clerk#000000171|0|eans. regular accounts are regul|
-5410|22|O|139104.17|1998-07-28|4-NOT SPECIFIED|Clerk#000000117|0|final deposits: pending excuses boost. ironic theodolites cajole furi|
-5411|61|O|62541.27|1997-05-16|3-MEDIUM|Clerk#000000800|0|equests cajole slyly furious|
-5412|142|O|109979.71|1998-01-20|2-HIGH|Clerk#000000151|0|ets boost furiously regular accounts. regular foxes above th|
-5413|94|O|224382.57|1997-10-17|1-URGENT|Clerk#000000066|0|e even excuses. always final depen|
-5414|100|F|167017.39|1993-03-25|4-NOT SPECIFIED|Clerk#000000242|0|lent dependencies? carefully express requests sleep furiously ac|
-5415|23|F|176864.83|1992-08-05|3-MEDIUM|Clerk#000000998|0|ly even ideas nag blithely above the final instructions|
-5440|130|O|3223.17|1997-01-12|1-URGENT|Clerk#000000154|0|posits boost regularly ironic packages. regular, ironic deposits wak|
-5441|41|F|131891.05|1994-07-21|4-NOT SPECIFIED|Clerk#000000257|0|after the furiously ironic |
-5442|43|O|139332.94|1998-01-13|4-NOT SPECIFIED|Clerk#000000954|0|ully. quickly express accounts against the|
-5443|131|O|124950.79|1996-10-10|4-NOT SPECIFIED|Clerk#000000492|0|al foxes could detect. blithely stealthy asymptotes kind|
-5444|130|P|172908.01|1995-03-18|1-URGENT|Clerk#000000677|0| asymptotes. asymptotes cajole quickly quickly bo|
-5445|115|F|114990.63|1993-07-26|5-LOW|Clerk#000000623|0|s. even, special requests cajole furiously even, |
-5446|7|F|29920.80|1994-06-21|5-LOW|Clerk#000000304|0| furiously final pac|
-5447|13|O|29029.84|1996-03-16|3-MEDIUM|Clerk#000000597|0|uternes around the furiously bold accounts wake after |
-5472|70|F|221636.83|1993-04-11|5-LOW|Clerk#000000552|0|counts. deposits about the slyly dogged pinto beans cajole slyly|
-5473|65|F|63041.33|1992-03-25|4-NOT SPECIFIED|Clerk#000000306|0|te the quickly stealthy ideas. even, regular deposits above|
-5474|55|F|131079.52|1992-06-01|4-NOT SPECIFIED|Clerk#000000487|0|gle blithely enticing ideas. final, exp|
-5475|139|O|10645.48|1996-07-07|5-LOW|Clerk#000000856|0|es shall boost slyly. furiously even deposits lose. instruc|
-5476|91|O|26906.38|1997-11-06|1-URGENT|Clerk#000000189|0|furiously final ideas. furiously bold dependencies sleep care|
-5477|107|O|130125.64|1997-12-30|5-LOW|Clerk#000000689|0|ckages. ironic deposits caj|
-5478|116|O|97502.23|1996-05-17|1-URGENT|Clerk#000000272|0|ckages. quickly pending deposits thrash furiously: bl|
-5479|70|F|70553.45|1993-12-22|3-MEDIUM|Clerk#000000335|0|ng asymptotes. pinto beans sleep care|
-5504|19|F|41492.25|1993-01-06|2-HIGH|Clerk#000000221|0|y pending packages. furiousl|
-5505|95|O|147329.51|1997-10-04|5-LOW|Clerk#000000719|0| final, regular packages according to the slyly ironic accounts nag ironica|
-5506|91|F|8413.31|1993-11-08|1-URGENT|Clerk#000000292|0|nusual theodolites. sly|
-5507|2|O|140363.70|1998-05-28|5-LOW|Clerk#000000692|0|the carefully ironic instructions are quickly iro|
-5508|56|O|3808.05|1996-06-21|1-URGENT|Clerk#000000128|0|y express packages cajole furiously. slyly unusual requests |
-5509|80|F|135335.96|1994-04-08|5-LOW|Clerk#000000164|0|usual deposits use packages. furiously final requests wake slyly about th|
-5510|37|F|126948.81|1993-01-08|3-MEDIUM|Clerk#000000819|0| nag slyly. carefully eve|
-5511|79|F|151089.96|1994-11-29|1-URGENT|Clerk#000000438|0|ng instructions integrate fluffily among the fluffily silent accounts. bli|
-5536|116|O|108196.56|1998-03-16|4-NOT SPECIFIED|Clerk#000000076|0| carefully final dolphins. ironic, ironic deposits lose. bold, |
-5537|118|O|102207.20|1996-10-03|3-MEDIUM|Clerk#000000742|0|ng to the daring, final |
-5538|139|F|90981.28|1993-12-25|1-URGENT|Clerk#000000992|0|ttainments. slyly final ideas are about the furiously silent excuses.|
-5539|119|F|39397.60|1994-07-31|5-LOW|Clerk#000000675|0|structions. slyly regular patterns solve above the carefully expres|
-5540|130|O|90707.58|1996-10-12|4-NOT SPECIFIED|Clerk#000000120|0|y ironic packages cajole blithely|
-5541|143|O|37526.68|1997-09-30|3-MEDIUM|Clerk#000000217|0|encies among the silent accounts sleep slyly quickly pending deposits|
-5542|49|O|6402.41|1996-04-20|4-NOT SPECIFIED|Clerk#000000100|0|riously among the regularly regular pac|
-5543|115|F|118201.53|1993-09-25|3-MEDIUM|Clerk#000000644|0|ckly regular epitaphs. carefully bold accounts haggle furiously|
-5568|31|O|105421.09|1995-06-07|3-MEDIUM|Clerk#000000491|0| nag. fluffily pending de|
-5569|109|F|126113.32|1993-04-30|4-NOT SPECIFIED|Clerk#000000759|0|e regular dependencies. furiously unusual ideas b|
-5570|112|O|78567.55|1996-08-12|2-HIGH|Clerk#000000795|0|eans. ironic, even requests doze |
-5571|103|F|79248.35|1992-12-19|4-NOT SPECIFIED|Clerk#000000184|0|ts cajole furiously carefully regular sheaves. un|
-5572|8|F|182966.39|1994-07-17|2-HIGH|Clerk#000000163|0|e fluffily express deposits cajole slyly across th|
-5573|37|O|158479.37|1996-08-15|3-MEDIUM|Clerk#000000055|0|lites. slyly final pinto beans about the carefully regul|
-5574|28|F|129803.03|1992-03-10|4-NOT SPECIFIED|Clerk#000000002|0|n deposits. special, regular t|
-5575|103|O|51839.94|1995-07-24|5-LOW|Clerk#000000948|0|uriously express frays breach|
-5600|95|O|53649.35|1997-02-08|4-NOT SPECIFIED|Clerk#000000019|0|lly regular deposits. car|
-5601|11|F|118570.79|1992-01-06|2-HIGH|Clerk#000000827|0|gular deposits wake platelets? blithe|
-5602|130|O|67979.49|1997-07-30|3-MEDIUM|Clerk#000000395|0|onic asymptotes haggl|
-5603|71|F|145100.47|1992-06-20|4-NOT SPECIFIED|Clerk#000000535|0| asymptotes. fluffily ironic instructions are. pending pinto bean|
-5604|46|O|98987.51|1998-04-14|4-NOT SPECIFIED|Clerk#000000123|0|ously across the blithely ironic pinto beans. sile|
-5605|35|O|172899.84|1996-08-22|2-HIGH|Clerk#000000538|0|sleep carefully final packages. dependencies wake slyly. theodol|
-5606|149|O|219959.08|1996-11-12|5-LOW|Clerk#000000688|0|uriously express pinto beans. packages sh|
-5607|92|F|24660.06|1992-01-01|4-NOT SPECIFIED|Clerk#000000137|0|c requests promise quickly fluffily ironic deposits. caref|
-5632|79|O|89503.11|1996-02-05|1-URGENT|Clerk#000000508|0|ons. blithely pending pinto beans thrash. furiously busy theodoli|
-5633|79|O|207119.83|1998-05-31|3-MEDIUM|Clerk#000000841|0|cial deposits wake final, final|
-5634|68|O|99494.67|1996-07-31|3-MEDIUM|Clerk#000000915|0|out the accounts. carefully ironic ideas are slyly. sheaves could h|
-5635|70|F|192217.86|1992-08-16|3-MEDIUM|Clerk#000000734|0|nal platelets sleep daringly. idle, final accounts about |
-5636|122|F|143350.75|1995-02-16|3-MEDIUM|Clerk#000000916|0|. boldly even Tiresias sleep. blithely ironic packages among the ca|
-5637|103|O|128776.90|1996-06-17|3-MEDIUM|Clerk#000000183|0|nic dolphins are regular packages. ironic pinto beans hagg|
-5638|109|F|79197.77|1994-01-17|1-URGENT|Clerk#000000355|0|enly bold deposits eat. special realms play against the regular, speci|
-5639|145|F|9669.46|1994-06-02|3-MEDIUM|Clerk#000000005|0|ending packages use after the blithely regular accounts. regular package|
-5664|119|O|186215.81|1998-07-23|2-HIGH|Clerk#000000789|0|the quickly ironic dolp|
-5665|100|F|129821.09|1993-06-28|4-NOT SPECIFIED|Clerk#000000513|0| carefully special instructions. ironic pinto beans nag slyly blithe|
-5666|14|F|121663.68|1994-02-02|2-HIGH|Clerk#000000396|0|mptotes. quickly final instructions are |
-5667|44|O|37301.25|1995-08-10|1-URGENT|Clerk#000000358|0|s print upon the quickly ironic packa|
-5668|109|F|13679.32|1995-03-22|4-NOT SPECIFIED|Clerk#000000047|0|p slyly slyly express accoun|
-5669|74|O|113156.30|1996-05-06|1-URGENT|Clerk#000000336|0|ng packages nag fluffily furio|
-5670|7|F|101429.61|1993-04-21|5-LOW|Clerk#000000922|0|he carefully final packages. deposits are slyly among the requests. |
-5671|43|O|176647.54|1998-02-06|2-HIGH|Clerk#000000838|0|k dependencies. slyly |
-5696|142|P|198723.30|1995-05-04|1-URGENT|Clerk#000000447|0|e quickly unusual pack|
-5697|55|F|99177.69|1992-10-05|1-URGENT|Clerk#000000112|0|pendencies impress furiously. bold, final requests solve ab|
-5698|95|F|154936.43|1994-05-21|3-MEDIUM|Clerk#000000455|0|he furiously silent accounts haggle blithely against the carefully unusual|
-5699|142|F|226314.91|1992-07-30|5-LOW|Clerk#000000311|0|o beans. ironic asymptotes boost. blithe, final courts integrate|
-5700|143|O|79901.18|1997-12-25|1-URGENT|Clerk#000000618|0|ly pending dolphins sleep carefully slyly pending i|
-5701|43|O|16689.19|1997-02-07|5-LOW|Clerk#000000798|0| blithely final pinto beans. blit|
-5702|97|F|153024.28|1993-09-07|4-NOT SPECIFIED|Clerk#000000743|0|ironic accounts. final accounts wake express deposits. final pac|
-5703|121|F|1816.28|1993-05-16|3-MEDIUM|Clerk#000000647|0|ly special instructions. slyly even reque|
-5728|80|F|85397.04|1994-12-11|4-NOT SPECIFIED|Clerk#000000426|0|furiously express pin|
-5729|44|F|88080.33|1994-10-10|2-HIGH|Clerk#000000843|0|uffily sly accounts about|
-5730|11|O|10934.84|1997-12-18|1-URGENT|Clerk#000000181|0|l platelets. ironic pinto beans wake slyly. quickly b|
-5731|8|O|57823.37|1997-05-17|5-LOW|Clerk#000000841|0| silent excuses among the express accounts wake |
-5732|37|O|28330.42|1997-08-03|1-URGENT|Clerk#000000910|0|he quickly bold asymptotes: final platelets wake quickly. blithely final pinto|
-5733|101|F|38545.97|1993-03-17|2-HIGH|Clerk#000000873|0|osits. pending accounts boost quickly. furiously permanent acco|
-5734|94|O|45860.94|1997-10-12|3-MEDIUM|Clerk#000000084|0|efully even braids detect blithely alo|
-5735|40|F|39358.51|1994-12-11|3-MEDIUM|Clerk#000000600|0| bold realms cajole slyly fu|
-5760|25|F|59404.77|1994-05-25|4-NOT SPECIFIED|Clerk#000000498|0|s among the blithely regular frays haggle ironically bold theodolites. al|
-5761|16|O|130345.90|1998-07-06|3-MEDIUM|Clerk#000000208|0|s asymptotes cajole boldly. regular, |
-5762|49|O|165019.32|1997-02-14|1-URGENT|Clerk#000000901|0|ly bold packages: slyly ironic deposits sleep quietly foxes. express a|
-5763|8|O|140838.11|1998-06-26|4-NOT SPECIFIED|Clerk#000000633|0|according to the furiously regular pinto beans. even accounts wake fu|
-5764|131|F|53212.95|1993-10-03|4-NOT SPECIFIED|Clerk#000000363|0| furiously regular deposits haggle fluffily around th|
-5765|52|F|249900.42|1994-12-15|5-LOW|Clerk#000000959|0|longside of the quickly final packages. instructions so|
-5766|49|F|47940.51|1993-09-27|5-LOW|Clerk#000000753|0|. quickly final packages print slyly. fu|
-5767|118|F|135643.87|1992-04-29|2-HIGH|Clerk#000000225|0|ts wake fluffily above the r|
-5792|26|F|158991.89|1993-04-04|2-HIGH|Clerk#000000731|0|packages. doggedly bold deposits integrate furiously across the|
-5793|37|O|119887.47|1997-07-13|2-HIGH|Clerk#000000294|0|thely. fluffily even instructi|
-5794|8|F|122823.78|1993-04-05|5-LOW|Clerk#000000855|0|t accounts kindle about the gifts. as|
-5795|37|F|35514.45|1992-05-05|2-HIGH|Clerk#000000581|0| even instructions x-ray ironic req|
-5796|149|O|23280.61|1996-01-23|3-MEDIUM|Clerk#000000326|0|eodolites. slyly ironic pinto beans at the silent, special request|
-5797|122|O|15313.61|1997-10-15|4-NOT SPECIFIED|Clerk#000000381|0|ng! packages against the blithely b|
-5798|106|O|125011.92|1998-03-30|5-LOW|Clerk#000000343|0|lent accounts affix quickly! platelets run slyly slyly final packages. f|
-5799|26|O|71381.21|1995-08-03|1-URGENT|Clerk#000000238|0| unusual deposits sleep blithely along the carefully even requests. care|
-5824|56|O|169107.85|1996-12-03|2-HIGH|Clerk#000000171|0|unusual packages. even ideas along the even requests are along th|
-5825|61|F|23020.62|1995-02-21|5-LOW|Clerk#000000494|0|regular packages use bravely.|
-5826|22|O|21119.86|1998-06-13|1-URGENT|Clerk#000000087|0|even, regular dependenc|
-5827|31|O|137297.71|1998-07-23|3-MEDIUM|Clerk#000000660|0|hely furiously blithe dolphins. slyly |
-5828|127|F|62172.34|1994-03-06|5-LOW|Clerk#000000377|0|ages boost never during the final packa|
-5829|125|O|183734.56|1997-01-11|1-URGENT|Clerk#000000196|0|gular accounts. bold accounts are blithely furiously ironic r|
-5830|85|F|28223.57|1993-03-25|3-MEDIUM|Clerk#000000233|0|lites haggle. ironic, ironic instructions maintain blit|
-5831|139|O|113505.19|1996-11-17|5-LOW|Clerk#000000585|0|s final, final pinto beans. unusual depos|
-5856|37|F|71460.49|1994-11-06|2-HIGH|Clerk#000000634|0|special excuses. slyly final theodolites cajole blithely furiou|
-5857|124|O|158345.31|1997-11-06|4-NOT SPECIFIED|Clerk#000000267|0|gage blithely. quickly special ac|
-5858|64|F|181320.50|1992-07-14|4-NOT SPECIFIED|Clerk#000000580|0|lyly pending dugouts believe through the ironic deposits. silent s|
-5859|5|O|210643.96|1997-04-23|1-URGENT|Clerk#000000993|0|requests boost. asymptotes across the deposits solve slyly furiously pendin|
-5860|13|F|9495.28|1992-02-20|4-NOT SPECIFIED|Clerk#000000079|0| beans. bold, special foxes sleep about the ir|
-5861|139|O|41450.19|1997-04-10|3-MEDIUM|Clerk#000000094|0|rthogs cajole slyly. express packages sleep blithely final |
-5862|64|O|30550.90|1997-02-20|1-URGENT|Clerk#000000039|0|leep beneath the quickly busy excuses. ironic theodolit|
-5863|65|F|67941.54|1993-11-22|3-MEDIUM|Clerk#000000774|0|ets about the slyly pending ideas sleep according to the blithely |
-5888|46|O|67167.19|1996-09-28|3-MEDIUM|Clerk#000000748|0|quickly against the furiously final requests. evenly fi|
-5889|22|O|15417.57|1995-05-23|5-LOW|Clerk#000000690|0|ites wake across the slyly ironic|
-5890|49|F|41162.24|1992-11-04|2-HIGH|Clerk#000000013|0|packages. final, final reques|
-5891|46|F|41760.00|1992-12-29|3-MEDIUM|Clerk#000000302|0|ounts haggle furiously abo|
-5892|101|P|92340.77|1995-05-09|5-LOW|Clerk#000000639|0| pending instruction|
-5893|2|F|44777.63|1992-07-08|4-NOT SPECIFIED|Clerk#000000560|0|final sentiments. instructions boost above the never speci|
-5894|71|F|70377.31|1994-08-13|2-HIGH|Clerk#000000776|0|regular deposits wake|
-5895|64|O|201419.83|1997-01-01|4-NOT SPECIFIED|Clerk#000000747|0| ironic, unusual requests cajole blithely special, special deposits. s|
-5920|119|F|142767.26|1994-11-20|2-HIGH|Clerk#000000081|0|ns: even ideas cajole slyly among the packages. never ironic patterns|
-5921|58|F|152940.00|1994-04-07|5-LOW|Clerk#000000125|0|kly special requests breach.|
-5922|143|O|142494.99|1996-11-14|5-LOW|Clerk#000000625|0| ironic instructions haggle furiously blithely regular accounts: even platele|
-5923|101|O|157968.27|1997-05-27|2-HIGH|Clerk#000000304|0|o beans haggle slyly above the regular, even dependencies|
-5924|31|O|106823.97|1995-10-10|3-MEDIUM|Clerk#000000433|0|arefully after the pains. blithely ironic pinto |
-5925|146|O|242588.87|1995-11-13|5-LOW|Clerk#000000602|0|ourts. boldly regular foxes might sleep. slyly express tithes against |
-5926|76|F|105770.53|1994-05-20|5-LOW|Clerk#000000071|0| carefully after the furiously even re|
-5927|116|O|84983.90|1997-08-28|4-NOT SPECIFIED|Clerk#000000972|0|endencies according to the slyly ironic foxes detect furiously about the furio|
-5952|148|O|128624.99|1997-04-14|3-MEDIUM|Clerk#000000950|0| regular, final pla|
-5953|7|F|95312.81|1992-03-28|1-URGENT|Clerk#000000049|0|ages are furiously. slowly bold requests|
-5954|28|F|167262.34|1992-12-03|1-URGENT|Clerk#000000968|0|requests along the blith|
-5955|94|P|67944.38|1995-03-27|5-LOW|Clerk#000000340|0|deas integrate. fluffily regular pa|
-5956|22|O|118036.54|1998-05-18|1-URGENT|Clerk#000000587|0|le even, express platelets.|
-5957|89|F|230949.45|1993-12-27|2-HIGH|Clerk#000000020|0| dependencies are slyly. bold accounts according to the carefully regular r|
-5958|115|O|145060.41|1995-09-16|3-MEDIUM|Clerk#000000787|0|e final requests detect alongside of the qu|
-5959|23|F|195515.26|1992-05-15|3-MEDIUM|Clerk#000000913|0|into beans use ironic, unusual foxes. carefully regular excuses boost caref|
-5984|70|F|83413.30|1994-06-18|5-LOW|Clerk#000000023|0|ickly final pains haggle along the furiously ironic pinto bea|
-5985|143|F|3942.73|1995-01-12|3-MEDIUM|Clerk#000000417|0|as nag fluffily slyly permanent accounts. regular depo|
-5986|115|F|92187.80|1992-04-22|2-HIGH|Clerk#000000674|0|iously unusual notornis are |
-5987|64|O|98956.82|1996-08-03|1-URGENT|Clerk#000000464|0| ideas. quietly final accounts haggle blithely pending escapade|
-5988|31|F|41655.51|1993-11-22|4-NOT SPECIFIED|Clerk#000000867|0|fully express accounts. final pi|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/part.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/part.tbl
deleted file mode 100644
index f58926e..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/part.tbl
+++ /dev/null
@@ -1,200 +0,0 @@
-1|goldenrod lavender spring chocolate lace|Manufacturer#1|Brand#13|PROMO BURNISHED COPPER|7|JUMBO PKG|901.00|ly. slyly ironi|
-2|blush thistle blue yellow saddle|Manufacturer#1|Brand#13|LARGE BRUSHED BRASS|1|LG CASE|902.00|lar accounts amo|
-3|spring green yellow purple cornsilk|Manufacturer#4|Brand#42|STANDARD POLISHED BRASS|21|WRAP CASE|903.00|egular deposits hag|
-4|cornflower chocolate smoke green pink|Manufacturer#3|Brand#34|SMALL PLATED BRASS|14|MED DRUM|904.00|p furiously r|
-5|forest brown coral puff cream|Manufacturer#3|Brand#32|STANDARD POLISHED TIN|15|SM PKG|905.00| wake carefully |
-6|bisque cornflower lawn forest magenta|Manufacturer#2|Brand#24|PROMO PLATED STEEL|4|MED BAG|906.00|sual a|
-7|moccasin green thistle khaki floral|Manufacturer#1|Brand#11|SMALL PLATED COPPER|45|SM BAG|907.00|lyly. ex|
-8|misty lace thistle snow royal|Manufacturer#4|Brand#44|PROMO BURNISHED TIN|41|LG DRUM|908.00|eposi|
-9|thistle dim navajo dark gainsboro|Manufacturer#4|Brand#43|SMALL BURNISHED STEEL|12|WRAP CASE|909.00|ironic foxe|
-10|linen pink saddle puff powder|Manufacturer#5|Brand#54|LARGE BURNISHED STEEL|44|LG CAN|910.01|ithely final deposit|
-11|spring maroon seashell almond orchid|Manufacturer#2|Brand#25|STANDARD BURNISHED NICKEL|43|WRAP BOX|911.01|ng gr|
-12|cornflower wheat orange maroon ghost|Manufacturer#3|Brand#33|MEDIUM ANODIZED STEEL|25|JUMBO CASE|912.01| quickly|
-13|ghost olive orange rosy thistle|Manufacturer#5|Brand#55|MEDIUM BURNISHED NICKEL|1|JUMBO PACK|913.01|osits.|
-14|khaki seashell rose cornsilk navajo|Manufacturer#1|Brand#13|SMALL POLISHED STEEL|28|JUMBO BOX|914.01|kages c|
-15|blanched honeydew sky turquoise medium|Manufacturer#1|Brand#15|LARGE ANODIZED BRASS|45|LG CASE|915.01|usual ac|
-16|deep sky turquoise drab peach|Manufacturer#3|Brand#32|PROMO PLATED TIN|2|MED PACK|916.01|unts a|
-17|indian navy coral pink deep|Manufacturer#4|Brand#43|ECONOMY BRUSHED STEEL|16|LG BOX|917.01| regular accounts|
-18|turquoise indian lemon lavender misty|Manufacturer#1|Brand#11|SMALL BURNISHED STEEL|42|JUMBO PACK|918.01|s cajole slyly a|
-19|chocolate navy tan deep brown|Manufacturer#2|Brand#23|SMALL ANODIZED NICKEL|33|WRAP BOX|919.01| pending acc|
-20|ivory navy honeydew sandy midnight|Manufacturer#1|Brand#12|LARGE POLISHED NICKEL|48|MED BAG|920.02|are across the asympt|
-21|lemon floral azure frosted lime|Manufacturer#3|Brand#33|SMALL BURNISHED TIN|31|MED BAG|921.02|ss packages. pendin|
-22|medium forest blue ghost black|Manufacturer#4|Brand#43|PROMO POLISHED BRASS|19|LG DRUM|922.02| even p|
-23|coral lavender seashell rosy burlywood|Manufacturer#3|Brand#35|MEDIUM BURNISHED TIN|42|JUMBO JAR|923.02|nic, fina|
-24|seashell coral metallic midnight floral|Manufacturer#5|Brand#52|MEDIUM PLATED STEEL|20|MED CASE|924.02| final the|
-25|Algebricksmarine steel firebrick light turquoise|Manufacturer#5|Brand#55|STANDARD BRUSHED COPPER|3|JUMBO BAG|925.02|requests wake|
-26|beige frosted moccasin chocolate snow|Manufacturer#3|Brand#32|SMALL BRUSHED STEEL|32|SM CASE|926.02| instructions i|
-27|saddle puff beige linen yellow|Manufacturer#1|Brand#14|LARGE ANODIZED TIN|20|MED PKG|927.02|s wake. ir|
-28|navajo yellow drab white misty|Manufacturer#4|Brand#44|SMALL PLATED COPPER|19|JUMBO PKG|928.02|x-ray pending, iron|
-29|lemon sky grey salmon orchid|Manufacturer#3|Brand#33|PROMO PLATED COPPER|7|LG DRUM|929.02| carefully fluffi|
-30|cream misty steel spring medium|Manufacturer#4|Brand#42|PROMO ANODIZED TIN|17|LG BOX|930.03|carefully bus|
-31|slate seashell steel medium moccasin|Manufacturer#5|Brand#53|STANDARD BRUSHED TIN|10|LG BAG|931.03|uriously s|
-32|sandy wheat coral spring burnished|Manufacturer#4|Brand#42|ECONOMY PLATED BRASS|31|LG CASE|932.03|urts. carefully fin|
-33|spring bisque salmon slate pink|Manufacturer#2|Brand#22|ECONOMY PLATED NICKEL|16|LG PKG|933.03|ly eve|
-34|khaki steel rose ghost salmon|Manufacturer#1|Brand#13|LARGE BRUSHED STEEL|8|JUMBO BOX|934.03|riously ironic|
-35|green blush tomato burlywood seashell|Manufacturer#4|Brand#43|MEDIUM ANODIZED BRASS|14|JUMBO PACK|935.03|e carefully furi|
-36|chiffon tan forest moccasin dark|Manufacturer#2|Brand#25|SMALL BURNISHED COPPER|3|JUMBO CAN|936.03|olites o|
-37|royal coral orange burnished navajo|Manufacturer#4|Brand#45|LARGE POLISHED TIN|48|JUMBO BOX|937.03|silent |
-38|seashell papaya white mint brown|Manufacturer#4|Brand#43|ECONOMY ANODIZED BRASS|11|SM JAR|938.03|structions inte|
-39|rose medium floral salmon powder|Manufacturer#5|Brand#53|SMALL POLISHED TIN|43|JUMBO JAR|939.03|se slowly above the fl|
-40|lemon midnight metallic sienna steel|Manufacturer#2|Brand#25|ECONOMY BURNISHED COPPER|27|SM CASE|940.04|! blithely specia|
-41|burlywood goldenrod pink peru sienna|Manufacturer#2|Brand#23|ECONOMY ANODIZED TIN|7|WRAP JAR|941.04|uriously. furiously cl|
-42|midnight turquoise lawn beige thistle|Manufacturer#5|Brand#52|MEDIUM BURNISHED TIN|45|LG BOX|942.04|the slow|
-43|medium lace midnight royal chartreuse|Manufacturer#4|Brand#44|PROMO POLISHED STEEL|5|WRAP CASE|943.04|e slyly along the ir|
-44|saddle cream wheat lemon burnished|Manufacturer#4|Brand#45|MEDIUM PLATED TIN|48|SM PACK|944.04|pinto beans. carefully|
-45|lawn peru ghost khaki maroon|Manufacturer#4|Brand#43|SMALL BRUSHED NICKEL|9|WRAP BAG|945.04|nts bo|
-46|honeydew turquoise Algebricksmarine spring tan|Manufacturer#1|Brand#11|STANDARD POLISHED TIN|45|WRAP CASE|946.04|the blithely unusual |
-47|honeydew red azure magenta brown|Manufacturer#4|Brand#45|LARGE BURNISHED BRASS|14|JUMBO PACK|947.04| even plate|
-48|slate thistle cornsilk pale forest|Manufacturer#5|Brand#53|STANDARD BRUSHED STEEL|27|JUMBO CASE|948.04|ng to the depo|
-49|light firebrick cyan puff blue|Manufacturer#2|Brand#24|SMALL BURNISHED TIN|31|MED DRUM|949.04|ar pack|
-50|linen blanched tomato slate medium|Manufacturer#3|Brand#33|LARGE ANODIZED TIN|25|WRAP PKG|950.05|kages m|
-51|lime frosted indian dodger linen|Manufacturer#4|Brand#45|ECONOMY BURNISHED NICKEL|34|JUMBO PACK|951.05|n foxes|
-52|lemon midnight lace sky deep|Manufacturer#3|Brand#35|STANDARD BURNISHED TIN|25|WRAP CASE|952.05| final deposits. fu|
-53|bisque rose cornsilk seashell purple|Manufacturer#2|Brand#23|ECONOMY BURNISHED NICKEL|32|MED BAG|953.05|mptot|
-54|blanched mint yellow papaya cyan|Manufacturer#2|Brand#21|LARGE BURNISHED COPPER|19|WRAP CASE|954.05|e blithely|
-55|sky cream deep tomato rosy|Manufacturer#2|Brand#23|ECONOMY BRUSHED COPPER|9|MED BAG|955.05|ly final pac|
-56|antique beige brown deep dodger|Manufacturer#1|Brand#12|MEDIUM PLATED STEEL|20|WRAP DRUM|956.05|ts. blithel|
-57|purple blue light sienna deep|Manufacturer#3|Brand#32|MEDIUM BURNISHED BRASS|49|MED PKG|957.05|lly abov|
-58|linen hot cornsilk drab bisque|Manufacturer#5|Brand#53|STANDARD POLISHED TIN|44|LG PACK|958.05| fluffily blithely reg|
-59|misty brown medium mint salmon|Manufacturer#5|Brand#53|MEDIUM POLISHED TIN|2|LG BAG|959.05|regular exc|
-60|snow spring sandy olive tomato|Manufacturer#1|Brand#11|LARGE POLISHED COPPER|27|JUMBO CASE|960.06| integ|
-61|light tan linen tomato peach|Manufacturer#5|Brand#54|SMALL BURNISHED NICKEL|18|WRAP DRUM|961.06|es. blithely en|
-62|tan cornsilk spring grey chocolate|Manufacturer#3|Brand#35|STANDARD BRUSHED BRASS|39|JUMBO BOX|962.06|ckly across the carefu|
-63|burnished puff coral light papaya|Manufacturer#3|Brand#32|STANDARD BURNISHED NICKEL|10|JUMBO CAN|963.06| quickly |
-64|Algebricksmarine coral lemon ivory gainsboro|Manufacturer#2|Brand#21|MEDIUM ANODIZED BRASS|1|JUMBO CAN|964.06|efully regular pi|
-65|slate drab medium puff gainsboro|Manufacturer#5|Brand#53|MEDIUM BRUSHED COPPER|3|MED CAN|965.06|posits after the quic|
-66|cornflower pale almond lemon linen|Manufacturer#3|Brand#35|PROMO ANODIZED NICKEL|46|SM CASE|966.06|haggle blithely iro|
-67|slate salmon rose spring seashell|Manufacturer#2|Brand#21|SMALL BRUSHED TIN|31|WRAP DRUM|967.06| regular, p|
-68|bisque ivory mint purple almond|Manufacturer#1|Brand#11|PROMO ANODIZED STEEL|10|WRAP BOX|968.06|eposits shall h|
-69|lace burnished rosy antique metallic|Manufacturer#5|Brand#52|MEDIUM POLISHED BRASS|2|SM BOX|969.06|ely final depo|
-70|violet seashell firebrick dark navajo|Manufacturer#1|Brand#11|STANDARD BRUSHED STEEL|42|LG PACK|970.07|inal gifts. sl|
-71|violet firebrick cream peru white|Manufacturer#3|Brand#33|STANDARD PLATED BRASS|26|WRAP DRUM|971.07| packages alongside|
-72|hot spring yellow azure dodger|Manufacturer#2|Brand#23|STANDARD ANODIZED TIN|25|JUMBO PACK|972.07|efully final the|
-73|cream moccasin royal dim chiffon|Manufacturer#2|Brand#21|SMALL BRUSHED COPPER|35|WRAP DRUM|973.07|ts haggl|
-74|frosted grey Algebricksmarine thistle papaya|Manufacturer#5|Brand#55|ECONOMY ANODIZED BRASS|25|JUMBO CASE|974.07|ent foxes|
-75|Algebricksmarine maroon wheat salmon metallic|Manufacturer#3|Brand#35|SMALL BURNISHED NICKEL|39|SM JAR|975.07|s sleep furiou|
-76|rosy light lime puff sandy|Manufacturer#3|Brand#34|MEDIUM BRUSHED COPPER|9|SM PKG|976.07|n accounts sleep qu|
-77|mint bisque chiffon snow firebrick|Manufacturer#5|Brand#52|STANDARD BRUSHED COPPER|13|MED PKG|977.07|uests.|
-78|blush forest slate seashell puff|Manufacturer#1|Brand#14|ECONOMY POLISHED STEEL|24|LG JAR|978.07|icing deposits wake|
-79|gainsboro pink grey tan almond|Manufacturer#4|Brand#45|PROMO ANODIZED BRASS|22|JUMBO BAG|979.07| foxes are slyly regu|
-80|tomato chartreuse coral turquoise linen|Manufacturer#4|Brand#44|PROMO PLATED BRASS|28|MED CAN|980.08|unusual dependencies i|
-81|misty sandy cornsilk dodger blush|Manufacturer#5|Brand#53|ECONOMY BRUSHED TIN|21|MED BAG|981.08|ove the furiou|
-82|khaki tomato purple almond tan|Manufacturer#1|Brand#15|ECONOMY POLISHED TIN|12|WRAP BOX|982.08|ial requests haggle |
-83|blush green dim lawn peru|Manufacturer#1|Brand#12|PROMO BURNISHED NICKEL|47|SM CAN|983.08|ly regul|
-84|salmon floral cream rose dark|Manufacturer#4|Brand#45|SMALL ANODIZED NICKEL|26|JUMBO PACK|984.08|ideas nag|
-85|dim deep Algebricksmarine smoke pale|Manufacturer#5|Brand#55|PROMO ANODIZED NICKEL|16|LG BAG|985.08| silent|
-86|green blanched firebrick dim cream|Manufacturer#4|Brand#44|STANDARD PLATED TIN|37|LG CASE|986.08| daring sheaves |
-87|purple lace seashell antique orange|Manufacturer#4|Brand#41|LARGE PLATED STEEL|41|WRAP PACK|987.08|yly final|
-88|lime orange bisque chartreuse lemon|Manufacturer#4|Brand#44|PROMO PLATED COPPER|16|SM CASE|988.08|e regular packages. |
-89|ghost lace lemon sienna saddle|Manufacturer#5|Brand#53|STANDARD BURNISHED STEEL|7|MED JAR|989.08|y final pinto |
-90|hot rosy violet plum pale|Manufacturer#5|Brand#51|ECONOMY POLISHED STEEL|49|JUMBO CAN|990.09|caref|
-91|misty bisque lavender spring turquoise|Manufacturer#2|Brand#21|STANDARD BRUSHED TIN|32|JUMBO PKG|991.09|counts dete|
-92|blush magenta ghost tomato rose|Manufacturer#2|Brand#22|STANDARD ANODIZED TIN|35|JUMBO PKG|992.09|he ironic accounts. sp|
-93|pale yellow cornsilk dodger moccasin|Manufacturer#2|Brand#24|LARGE ANODIZED TIN|2|WRAP DRUM|993.09| platel|
-94|blanched pink frosted mint snow|Manufacturer#3|Brand#35|STANDARD POLISHED BRASS|32|SM BOX|994.09|s accounts cajo|
-95|dodger beige wheat orchid navy|Manufacturer#3|Brand#33|LARGE BRUSHED TIN|36|WRAP DRUM|995.09| final pinto beans |
-96|chocolate light firebrick rose indian|Manufacturer#5|Brand#53|STANDARD BRUSHED STEEL|32|SM CASE|996.09|ng to the bli|
-97|coral dodger beige black chartreuse|Manufacturer#3|Brand#33|MEDIUM POLISHED BRASS|49|WRAP CAN|997.09|ss excuses sleep am|
-98|frosted peru chiffon yellow Algebricksmarine|Manufacturer#5|Brand#54|STANDARD ANODIZED BRASS|22|MED JAR|998.09|e the q|
-99|mint grey purple sienna metallic|Manufacturer#2|Brand#21|SMALL BURNISHED STEEL|11|JUMBO PKG|999.09|press|
-100|cyan orchid indian cornflower saddle|Manufacturer#3|Brand#33|ECONOMY ANODIZED TIN|4|LG BAG|1000.10|of the steal|
-101|powder deep lavender violet gainsboro|Manufacturer#3|Brand#32|LARGE ANODIZED STEEL|26|JUMBO JAR|1001.10|ly even,|
-102|papaya maroon blush powder sky|Manufacturer#3|Brand#31|MEDIUM BURNISHED BRASS|17|SM DRUM|1002.10|ular packa|
-103|navy sky spring orchid forest|Manufacturer#2|Brand#25|MEDIUM PLATED BRASS|45|WRAP DRUM|1003.10|e blithely blith|
-104|plum cyan cornflower midnight royal|Manufacturer#1|Brand#13|MEDIUM ANODIZED STEEL|36|JUMBO BAG|1004.10|ites sleep quickly|
-105|dodger slate pale mint navajo|Manufacturer#1|Brand#15|SMALL POLISHED COPPER|27|LG DRUM|1005.10|odolites was |
-106|cornsilk bisque seashell lemon frosted|Manufacturer#3|Brand#31|MEDIUM PLATED BRASS|28|WRAP DRUM|1006.10|unts maintain |
-107|violet honeydew bisque sienna orchid|Manufacturer#5|Brand#53|SMALL BURNISHED TIN|12|MED BOX|1007.10|slyly special depos|
-108|bisque peach magenta tomato yellow|Manufacturer#1|Brand#12|PROMO PLATED NICKEL|41|MED PKG|1008.10|after the carefully |
-109|lemon black indian cornflower pale|Manufacturer#3|Brand#33|ECONOMY POLISHED TIN|11|LG PACK|1009.10|instruction|
-110|firebrick navy rose beige black|Manufacturer#3|Brand#33|STANDARD BURNISHED COPPER|46|LG DRUM|1010.11|t quickly a|
-111|orange cornflower mint snow peach|Manufacturer#5|Brand#54|LARGE BRUSHED COPPER|28|JUMBO JAR|1011.11|kly bold epitaphs |
-112|hot Algebricksmarine tomato lace indian|Manufacturer#4|Brand#43|PROMO BRUSHED STEEL|42|JUMBO CAN|1012.11|the express, |
-113|almond seashell azure blanched light|Manufacturer#3|Brand#31|PROMO POLISHED TIN|23|LG CAN|1013.11|finally even |
-114|pink black blanched lace chartreuse|Manufacturer#5|Brand#51|MEDIUM POLISHED NICKEL|41|MED PACK|1014.11|ully final foxes. pint|
-115|spring chiffon cream orchid dodger|Manufacturer#4|Brand#45|STANDARD POLISHED STEEL|24|MED CAN|1015.11|counts nag! caref|
-116|goldenrod black slate forest red|Manufacturer#5|Brand#53|PROMO POLISHED NICKEL|33|SM PACK|1016.11|usly final courts |
-117|tomato honeydew pale red yellow|Manufacturer#1|Brand#14|SMALL BRUSHED TIN|25|LG BAG|1017.11|ages acc|
-118|ghost plum brown coral cornsilk|Manufacturer#2|Brand#25|PROMO ANODIZED TIN|31|MED PACK|1018.11|ly ironic pinto|
-119|olive metallic slate peach green|Manufacturer#4|Brand#43|LARGE POLISHED STEEL|30|WRAP CASE|1019.11|out the quickly r|
-120|pink powder mint moccasin navajo|Manufacturer#1|Brand#14|SMALL ANODIZED NICKEL|45|WRAP JAR|1020.12|lly a|
-121|bisque royal goldenrod medium thistle|Manufacturer#1|Brand#14|ECONOMY BRUSHED COPPER|13|SM PKG|1021.12|deposi|
-122|gainsboro royal forest dark lace|Manufacturer#2|Brand#21|MEDIUM ANODIZED TIN|8|LG DRUM|1022.12|sts c|
-123|deep dim peach light beige|Manufacturer#1|Brand#12|SMALL BURNISHED TIN|31|JUMBO PKG|1023.12|ray regula|
-124|wheat blush forest metallic navajo|Manufacturer#3|Brand#32|PROMO ANODIZED STEEL|1|LG BOX|1024.12|g the expr|
-125|mint ivory saddle peach midnight|Manufacturer#1|Brand#12|STANDARD BRUSHED BRASS|17|WRAP BAG|1025.12|kages against|
-126|burnished black blue metallic orchid|Manufacturer#4|Brand#45|MEDIUM BRUSHED NICKEL|4|LG BAG|1026.12|es sleep al|
-127|royal coral orchid spring sky|Manufacturer#5|Brand#52|SMALL BURNISHED NICKEL|14|LG JAR|1027.12|lithely expr|
-128|dark burlywood burnished snow sky|Manufacturer#2|Brand#22|PROMO PLATED TIN|5|SM BAG|1028.12|e of the furiously ex|
-129|grey spring chiffon thistle lime|Manufacturer#1|Brand#15|LARGE POLISHED TIN|20|SM JAR|1029.12| careful|
-130|gainsboro powder cyan pale rosy|Manufacturer#2|Brand#23|SMALL PLATED NICKEL|26|LG BOX|1030.13|ake slyly|
-131|tomato moccasin cyan brown goldenrod|Manufacturer#5|Brand#52|STANDARD ANODIZED BRASS|43|MED DRUM|1031.13|nts wake dar|
-132|seashell papaya tomato lime hot|Manufacturer#4|Brand#45|STANDARD BURNISHED BRASS|2|WRAP DRUM|1032.13|ckly expre|
-133|firebrick black dodger pink salmon|Manufacturer#1|Brand#13|SMALL BRUSHED NICKEL|19|LG PKG|1033.13| final pinto beans|
-134|steel beige mint maroon indian|Manufacturer#4|Brand#42|SMALL POLISHED STEEL|35|SM PKG|1034.13|es. bold pa|
-135|thistle chocolate ghost gainsboro peru|Manufacturer#2|Brand#21|MEDIUM BURNISHED STEEL|24|JUMBO CASE|1035.13|l frets |
-136|cornsilk maroon blanched thistle rosy|Manufacturer#2|Brand#22|SMALL PLATED STEEL|2|WRAP BAG|1036.13|kages print carefully|
-137|cornsilk drab ghost sandy royal|Manufacturer#3|Brand#31|ECONOMY PLATED STEEL|25|MED PACK|1037.13|the t|
-138|dark Algebricksmarine tomato medium puff|Manufacturer#1|Brand#13|ECONOMY BURNISHED COPPER|42|JUMBO DRUM|1038.13|ts solve acro|
-139|floral steel burlywood navy cream|Manufacturer#3|Brand#32|MEDIUM BRUSHED STEEL|7|SM BOX|1039.13|ter t|
-140|Algebricksmarine lavender maroon slate hot|Manufacturer#5|Brand#53|STANDARD PLATED STEEL|45|SM BOX|1040.14|oss the carefu|
-141|honeydew magenta tomato spring medium|Manufacturer#3|Brand#35|STANDARD ANODIZED STEEL|23|SM PKG|1041.14|ans nag furiously pen|
-142|chartreuse linen grey slate saddle|Manufacturer#5|Brand#55|STANDARD ANODIZED BRASS|36|MED JAR|1042.14|he accounts. pac|
-143|bisque dodger blanched steel maroon|Manufacturer#3|Brand#34|ECONOMY PLATED TIN|44|MED BAG|1043.14|nts across the|
-144|hot midnight orchid dim steel|Manufacturer#1|Brand#14|SMALL ANODIZED TIN|26|SM BOX|1044.14|owly |
-145|navajo lavender chocolate deep hot|Manufacturer#5|Brand#53|PROMO BRUSHED COPPER|24|SM BAG|1045.14|es wake furiously blit|
-146|azure smoke mint cream burlywood|Manufacturer#3|Brand#34|STANDARD BRUSHED COPPER|11|WRAP PACK|1046.14|unts cajole|
-147|honeydew orange dodger linen lace|Manufacturer#1|Brand#11|MEDIUM PLATED COPPER|29|JUMBO PKG|1047.14|wake never bold |
-148|yellow white ghost lavender salmon|Manufacturer#3|Brand#31|STANDARD PLATED STEEL|20|SM BOX|1048.14|platelets wake fu|
-149|tan thistle frosted indian lawn|Manufacturer#2|Brand#24|MEDIUM BURNISHED NICKEL|6|MED PKG|1049.14|leep requests. dog|
-150|pale rose navajo firebrick Algebricksmarine|Manufacturer#3|Brand#35|LARGE BRUSHED TIN|21|SM BAG|1050.15|ironic foxes|
-151|chartreuse linen violet ghost thistle|Manufacturer#3|Brand#34|LARGE PLATED BRASS|45|MED CAN|1051.15|ccounts nag i|
-152|white sky antique tomato chartreuse|Manufacturer#5|Brand#53|MEDIUM POLISHED STEEL|48|MED CASE|1052.15|thely regular t|
-153|linen frosted slate coral peru|Manufacturer#1|Brand#11|STANDARD PLATED TIN|20|MED BAG|1053.15|thlessly. silen|
-154|peru moccasin peach pale spring|Manufacturer#1|Brand#11|ECONOMY ANODIZED TIN|1|JUMBO BAG|1054.15|posits |
-155|puff yellow cyan tomato purple|Manufacturer#2|Brand#21|SMALL BRUSHED NICKEL|28|WRAP CASE|1055.15|lly ironic, r|
-156|almond ghost powder blush forest|Manufacturer#4|Brand#43|SMALL POLISHED NICKEL|2|LG PKG|1056.15| pinto beans. eve|
-157|navajo linen coral brown forest|Manufacturer#1|Brand#11|ECONOMY ANODIZED STEEL|26|JUMBO PACK|1057.15|ial courts. ru|
-158|magenta light misty navy honeydew|Manufacturer#4|Brand#45|MEDIUM BURNISHED COPPER|47|LG JAR|1058.15| ideas detect slyl|
-159|white orange antique beige Algebricksmarine|Manufacturer#4|Brand#43|SMALL ANODIZED BRASS|46|SM BAG|1059.15| ironic requests-- pe|
-160|frosted cornflower khaki salmon metallic|Manufacturer#5|Brand#55|STANDARD POLISHED COPPER|47|JUMBO CAN|1060.16|nts are carefully|
-161|metallic khaki navy forest cyan|Manufacturer#2|Brand#22|STANDARD PLATED TIN|17|SM PACK|1061.16|r the bl|
-162|burlywood cornflower Algebricksmarine misty snow|Manufacturer#3|Brand#33|MEDIUM ANODIZED COPPER|35|JUMBO PACK|1062.16|e slyly around th|
-163|blush metallic maroon lawn forest|Manufacturer#2|Brand#21|ECONOMY PLATED TIN|34|WRAP DRUM|1063.16|nly s|
-164|orange cyan magenta navajo indian|Manufacturer#2|Brand#23|LARGE PLATED BRASS|35|JUMBO BAG|1064.16|mong th|
-165|white dim cornflower sky seashell|Manufacturer#1|Brand#15|STANDARD PLATED STEEL|24|SM CAN|1065.16| carefully fin|
-166|linen bisque tomato gainsboro goldenrod|Manufacturer#5|Brand#52|LARGE POLISHED COPPER|4|MED BAG|1066.16|ss the|
-167|almond floral grey dim sky|Manufacturer#3|Brand#32|LARGE ANODIZED STEEL|46|WRAP BOX|1067.16|ic ac|
-168|lace gainsboro burlywood smoke tomato|Manufacturer#1|Brand#13|SMALL BRUSHED COPPER|20|JUMBO DRUM|1068.16|ss package|
-169|bisque misty sky cornflower peach|Manufacturer#5|Brand#55|STANDARD POLISHED BRASS|10|JUMBO CASE|1069.16|lets alongside of|
-170|peru grey blanched goldenrod yellow|Manufacturer#3|Brand#33|LARGE POLISHED COPPER|28|LG DRUM|1070.17|yly s|
-171|beige violet black magenta chartreuse|Manufacturer#1|Brand#11|STANDARD BURNISHED COPPER|40|LG JAR|1071.17| the r|
-172|medium goldenrod linen sky coral|Manufacturer#5|Brand#53|PROMO PLATED NICKEL|28|MED CASE|1072.17|quick as|
-173|chartreuse seashell powder navy grey|Manufacturer#1|Brand#12|ECONOMY BURNISHED TIN|17|LG CASE|1073.17|sly bold excuses haggl|
-174|hot cornflower slate saddle pale|Manufacturer#1|Brand#15|ECONOMY BRUSHED COPPER|25|LG CASE|1074.17| accounts nag ab|
-175|magenta blue chartreuse tan green|Manufacturer#1|Brand#11|PROMO ANODIZED TIN|45|JUMBO JAR|1075.17|ole against the|
-176|pink drab ivory papaya grey|Manufacturer#2|Brand#24|SMALL ANODIZED STEEL|40|MED CAN|1076.17|blithely. ironic|
-177|indian turquoise purple green spring|Manufacturer#2|Brand#21|MEDIUM BRUSHED STEEL|42|LG BAG|1077.17|ermanently eve|
-178|lace blanched magenta yellow almond|Manufacturer#1|Brand#13|STANDARD POLISHED TIN|10|LG JAR|1078.17|regular instructions.|
-179|deep puff brown blue burlywood|Manufacturer#4|Brand#43|ECONOMY BRUSHED STEEL|20|LG JAR|1079.17|ely regul|
-180|seashell maroon lace burnished lavender|Manufacturer#3|Brand#33|STANDARD BURNISHED NICKEL|7|WRAP BAG|1080.18|oss the |
-181|antique plum smoke pink dodger|Manufacturer#2|Brand#24|MEDIUM PLATED STEEL|19|WRAP CAN|1081.18|al deposits |
-182|beige cyan burlywood chiffon light|Manufacturer#3|Brand#31|MEDIUM ANODIZED COPPER|11|JUMBO CAN|1082.18|bits are |
-183|ivory white burnished papaya cornflower|Manufacturer#5|Brand#52|PROMO POLISHED STEEL|35|LG PKG|1083.18|ly regular excus|
-184|ghost honeydew cyan lawn powder|Manufacturer#5|Brand#53|SMALL POLISHED TIN|42|LG BOX|1084.18|ding courts. idly iro|
-185|firebrick black ivory spring medium|Manufacturer#4|Brand#44|ECONOMY POLISHED TIN|4|WRAP BAG|1085.18|even foxe|
-186|grey purple chocolate turquoise plum|Manufacturer#2|Brand#23|ECONOMY BRUSHED TIN|15|JUMBO PKG|1086.18|ly reg|
-187|white red lace deep pale|Manufacturer#4|Brand#45|PROMO ANODIZED BRASS|45|MED CAN|1087.18|leep slyly s|
-188|moccasin steel rosy drab white|Manufacturer#5|Brand#54|ECONOMY ANODIZED BRASS|9|MED CAN|1088.18| above the silent p|
-189|dodger moccasin lemon purple thistle|Manufacturer#2|Brand#22|MEDIUM BRUSHED BRASS|13|WRAP DRUM|1089.18|en requests. sauternes|
-190|chartreuse goldenrod midnight cornflower blush|Manufacturer#5|Brand#53|LARGE BURNISHED NICKEL|23|WRAP BAG|1090.19| furiously even d|
-191|mint midnight puff forest peach|Manufacturer#3|Brand#31|MEDIUM POLISHED BRASS|36|WRAP BOX|1091.19| asymptote|
-192|thistle puff pink cream orange|Manufacturer#3|Brand#34|STANDARD BRUSHED COPPER|17|MED BAG|1092.19|uickly regular, expr|
-193|turquoise lime royal metallic azure|Manufacturer#4|Brand#45|ECONOMY BURNISHED BRASS|31|SM PKG|1093.19|final ideas wake furi|
-194|brown black cream navy plum|Manufacturer#5|Brand#51|ECONOMY POLISHED STEEL|7|SM CAN|1094.19|y special accoun|
-195|bisque sienna hot goldenrod khaki|Manufacturer#4|Brand#41|STANDARD BRUSHED NICKEL|40|MED CASE|1095.19|oxes sleep care|
-196|pale peru linen hot maroon|Manufacturer#3|Brand#33|SMALL BURNISHED NICKEL|3|JUMBO JAR|1096.19|uickly special |
-197|lawn lemon khaki rosy blue|Manufacturer#5|Brand#52|SMALL ANODIZED COPPER|18|SM JAR|1097.19|lithely after the eve|
-198|orange cornflower indian Algebricksmarine white|Manufacturer#4|Brand#41|PROMO BRUSHED NICKEL|43|SM PACK|1098.19|ackages? carefully re|
-199|ivory slate lavender tan royal|Manufacturer#3|Brand#31|ECONOMY PLATED STEEL|23|JUMBO DRUM|1099.19|ickly regul|
-200|peach cornsilk navy rosy red|Manufacturer#5|Brand#54|MEDIUM POLISHED BRASS|22|LG PKG|1100.20|furiously even depo|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/partsupp.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/partsupp.tbl
deleted file mode 100644
index d8e5856..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/partsupp.tbl
+++ /dev/null
@@ -1,800 +0,0 @@
-1|2|3325|771.64|, even theodolites. regular, final theodolites eat after the carefully pending foxes. furiously regular deposits sleep slyly. carefully bold realms above the ironic dependencies haggle careful|
-1|4|8076|993.49|ven ideas. quickly even packages print. pending multipliers must have to are fluff|
-1|6|3956|337.09|after the fluffily ironic deposits? blithely special dependencies integrate furiously even excuses. blithely silent theodolites could have to haggle pending, express requests; fu|
-1|8|4069|357.84|al, regular dependencies serve carefully after the quickly final pinto beans. furiously even deposits sleep quickly final, silent pinto beans. fluffily reg|
-2|3|8895|378.49|nic accounts. final accounts sleep furiously about the ironic, bold packages. regular, regular accounts|
-2|5|4969|915.27|ptotes. quickly pending dependencies integrate furiously. fluffily ironic ideas impress blithely above the express accounts. furiously even epitaphs need to wak|
-2|7|8539|438.37|blithely bold ideas. furiously stealthy packages sleep fluffily. slyly special deposits snooze furiously carefully regular accounts. regular deposits according to the accounts nag carefully slyl|
-2|9|3025|306.39|olites. deposits wake carefully. even, express requests cajole. carefully regular ex|
-3|4|4651|920.92|ilent foxes affix furiously quickly unusual requests. even packages across the carefully even theodolites nag above the sp|
-3|6|4093|498.13|ending dependencies haggle fluffily. regular deposits boost quickly carefully regular requests. deposits affix furiously around the pinto beans. ironic, unusual platelets across the p|
-3|8|3917|645.40|of the blithely regular theodolites. final theodolites haggle blithely carefully unusual ideas. blithely even f|
-3|10|9942|191.92| unusual, ironic foxes according to the ideas detect furiously alongside of the even, express requests. blithely regular the|
-4|5|1339|113.97| carefully unusual ideas. packages use slyly. blithely final pinto beans cajole along the furiously express requests. regular orbits haggle carefully. care|
-4|7|6377|591.18|ly final courts haggle carefully regular accounts. carefully regular accounts could integrate slyly. slyly express packages about the accounts wake slyly|
-4|9|2694|51.37|g, regular deposits: quick instructions run across the carefully ironic theodolites-- final dependencies haggle into the dependencies. f|
-4|1|2480|444.37|requests sleep quickly regular accounts. theodolites detect. carefully final depths w|
-5|6|3735|255.88|arefully even requests. ironic requests cajole carefully even dolphin|
-5|8|9653|50.52|y stealthy deposits. furiously final pinto beans wake furiou|
-5|10|1329|219.83|iously regular deposits wake deposits. pending pinto beans promise ironic dependencies. even, regular pinto beans integrate|
-5|2|6925|537.98|sits. quickly fluffy packages wake quickly beyond the blithely regular requests. pending requests cajole among the final pinto beans. carefully busy theodolites affix quickly stealthily |
-6|7|8851|130.72|usly final packages. slyly ironic accounts poach across the even, sly requests. carefully pending request|
-6|9|1627|424.25| quick packages. ironic deposits print. furiously silent platelets across the carefully final requests are slyly along the furiously even instructi|
-6|1|3336|642.13|final instructions. courts wake packages. blithely unusual realms along the multipliers nag |
-6|3|6451|175.32| accounts alongside of the slyly even accounts wake carefully final instructions-- ruthless platelets wake carefully ideas. even deposits are quickly final,|
-7|8|7454|763.98|y express tithes haggle furiously even foxes. furiously ironic deposits sleep toward the furiously unusual|
-7|10|2770|149.66|hould have to nag after the blithely final asymptotes. fluffily spe|
-7|2|3377|68.77|usly against the daring asymptotes. slyly regular platelets sleep quickly blithely regular deposits. boldly regular deposits wake blithely ironic accounts|
-7|4|9460|299.58|. furiously final ideas hinder slyly among the ironic, final packages. blithely ironic dependencies cajole pending requests: blithely even packa|
-8|9|6834|249.63|lly ironic accounts solve express, unusual theodolites. special packages use quickly. quickly fin|
-8|1|396|957.34|r accounts. furiously pending dolphins use even, regular platelets. final|
-8|3|9845|220.62|s against the fluffily special packages snooze slyly slyly regular p|
-8|5|8126|916.91|final accounts around the blithely special asymptotes wake carefully beyond the bold dugouts. regular ideas haggle furiously after|
-9|10|7054|84.20|ts boost. evenly regular packages haggle after the quickly careful accounts. |
-9|2|7542|811.84|ate after the final pinto beans. express requests cajole express packages. carefully bold ideas haggle furiously. blithely express accounts eat carefully among the evenly busy accounts. carefully un|
-9|4|9583|381.31|d foxes. final, even braids sleep slyly slyly regular ideas. unusual ideas above|
-9|6|3063|291.84| the blithely ironic instructions. blithely express theodolites nag furiously. carefully bold requests shall have to use slyly pending requests. carefully regular instr|
-10|1|2952|996.12| bold foxes wake quickly even, final asymptotes. blithely even depe|
-10|3|3335|673.27|s theodolites haggle according to the fluffily unusual instructions. silent realms nag carefully ironic theodolites. furiously unusual instructions would detect fu|
-10|5|5691|164.00|r, silent instructions sleep slyly regular pinto beans. furiously unusual gifts use. silently ironic theodolites cajole final deposits! express dugouts are furiously. packages sleep |
-10|7|841|374.02|refully above the ironic packages. quickly regular packages haggle foxes. blithely ironic deposits a|
-11|2|4540|709.87|thely across the blithely unusual requests. slyly regular instructions wake slyly ironic theodolites. requests haggle blithely above the blithely brave p|
-11|5|4729|894.90|ters wake. sometimes bold packages cajole sometimes blithely final instructions. carefully ironic foxes after the furiously unusual foxes cajole carefully acr|
-11|8|3708|818.74|inal accounts nag quickly slyly special frays; bold, final theodolites play slyly after the furiously pending packages. f|
-11|1|3213|471.98|nusual, regular requests use carefully. slyly final packages haggle quickly. slyly express packages impress blithely across the blithely regular ideas. regular depe|
-12|3|3610|659.73|jole bold theodolites. final packages haggle! carefully regular deposits play furiously among the special ideas. quickly ironic packages detect quickly carefully final|
-12|6|7606|332.81|luffily regular courts engage carefully special realms. regular accounts across the blithely special pinto beans use carefully at the silent request|
-12|9|824|337.06|es are unusual deposits. fluffily even deposits across the blithely final theodolites doubt across the unusual accounts. regular, |
-12|2|5454|901.70|s across the carefully regular courts haggle fluffily among the even theodolites. blithely final platelets x-ray even ideas. fluffily express pinto beans sleep slyly. carefully even a|
-13|4|612|169.44|s. furiously even asymptotes use slyly blithely express foxes. pending courts integrate blithely among the ironic requests! blithely pending deposits integrate slyly furiously final packa|
-13|7|7268|862.70|s sleep slyly packages. final theodolites to the express packages haggle quic|
-13|10|864|38.64|s after the slyly pending instructions haggle even, express requests. permanently regular pinto beans are. slyly pending req|
-13|3|9736|327.18|tect after the express instructions. furiously silent ideas sleep blithely special ideas. attainments sleep furiously. carefully bold requests ab|
-14|5|5278|650.07|e quickly among the furiously ironic accounts. special, final sheaves against the|
-14|8|5334|889.50|ss dependencies are furiously silent excuses. blithely ironic pinto beans affix quickly according to the slyly ironic asymptotes. final packag|
-14|1|3676|893.39|sits are according to the fluffily silent asymptotes. final ideas are slyly above the regular instructions. furiousl|
-14|4|4947|310.13| final deposits boost slyly regular packages; carefully pending theodolites |
-15|6|7047|835.70|blithely quick requests sleep carefully fluffily regular pinto beans. ironic pinto beans around the slyly regular foxe|
-15|9|3336|784.55|slyly. fluffily bold accounts cajole furiously. furiously regular dependencies wak|
-15|2|3316|265.89|e express instructions. ironic requests haggle fluffily along the carefully even packages. furiously final acco|
-15|5|5255|458.67|refully bold instructions among the silent grouches must boost against the express deposits:|
-16|7|5282|709.16|lithely ironic theodolites should have to are furiously-- |
-16|10|9412|887.53|ly special accounts wake. fluffily bold ideas believe blith|
-16|3|854|781.91| unusual excuses. requests after the carefully regular pinto |
-16|6|1491|918.51|unts cajole furiously across the fluffily pending instructions. slyly special accounts could have to boost b|
-17|8|8555|995.35|are furiously final accounts. carefully unusual accounts snooze across the requests. carefully special dolphins|
-17|1|7737|648.75|e blithely express accounts. foxes kindle slyly unusual dinos. quickly special f|
-17|4|3123|555.04|ly bold accounts. regular packages use silently. quickly unusual sentiments around the quickly ironic theodolites haggle furiously pending requests. care|
-17|7|3203|64.40|bold packages nag fluffily after the regular accounts. furiously ironic asymptotes sleep quickly enticing pinto beans. carefully pending accounts use about the |
-18|9|1125|664.17|. ironic, regular accounts across the furiously express |
-18|2|8132|52.44| final packages wake quickly across the blithely ironic instructions. regular pains integrate slyly across the deposits. carefully regular pinto beans among the close|
-18|5|3133|568.61|riously bold accounts. packages boost daringly. blithely regular requests cajole. regular foxes wake carefully final accounts. blithely unusual excuses det|
-18|8|6475|386.29|. furiously regular accounts cajole slyly across the pending|
-19|10|1416|144.80|o beans. even packages nag boldly according to the bold, special deposits. ironic packages after the pinto beans nag above the quickly ironic requests. bl|
-19|3|5467|405.70|nstructions use furiously. fluffily regular excuses wake. slyly special grouches are carefully regular Tiresias. regular requests use about the quickly furio|
-19|6|8800|635.66|sual requests sleep carefully. deposits cajole carefully over the regular, regular requests. quickly unusual asymptotes use some|
-19|9|1340|346.92| requests. final, pending realms use carefully; slyly dogged foxes impress fluffily above the blithely regular deposits. ironic, regular courts wake carefully. bold requests impress|
-20|1|2927|675.54|s, ironic deposits haggle across the quickly bold asymptotes. express, ironic pinto beans wake carefully enticingly special foxes. requests are at the c|
-20|4|2723|305.84|nal, bold frets cajole slyly regular, unusual platelets. slyly permanent deposits wake carefully carefully silent accounts. even, even requests wake quickly. furiously pending packages are|
-20|7|5905|546.66|ing deposits use furiously. ironically final pinto bea|
-20|10|4271|115.89|xcuses wake at the deposits. regular pinto beans nag slyly fluffi|
-21|2|6571|944.44|ing instructions impress bold foxes. ironic pinto beans use. thinly even asymptotes cajole ironic packages. quickly ironic pinto beans detect slyly regular deposits. ruthlessly even deposits are. sl|
-21|6|1704|139.05|posits cajole; quickly even requests sleep furiously. ironic theodolites sleep pending, express instructions. stealthily even platelets cajole carefully after the final, ironic p|
-21|10|7153|664.50|blithely enticing instructions use alongside of the carefully thin deposits. blithely bold requests are fluffily|
-21|4|367|584.86|ong the even theodolites. pending, pending accounts sleep-- courts boost quickly at the accounts. quickly fin|
-22|3|4410|786.18|even accounts. final excuses try to sleep regular, even packages. carefully express dolphins cajole; furiously special pinto bea|
-22|7|9779|635.84|l instructions cajole across the blithely special deposits. blithely pending accounts use thinly slyly final requests. instructions haggle. pinto beans sleep along the slyly pen|
-22|1|7834|359.16|sits wake fluffily carefully stealthy accounts. furiously ironic requests x-ray fluffily alongside of the pending asymptotes. slyly silent packages use along the instructions. fu|
-22|5|1434|597.21|ix across the blithely express packages. carefully regular pinto beans boost across the special, pending d|
-23|4|2739|460.12|platelets against the furiously bold Tiresias dazzle quickly into the special, bold courts. silent, regular instructions wake blithely ironic multipliers. ideas|
-23|8|5739|103.13| theodolites need to nag blithely final notornis. slyly idle packages cajole after the furiously stealthy packages. slyly regular accounts use furiously. carefully final accounts affix |
-23|2|9898|233.94|l, express packages wake permanently. quickly even deposits sleep quickly slyly silent id|
-23|6|7035|51.75|xcuses; decoys wake after the pending packages. final instructions are furi|
-24|5|5180|905.41|heodolites above the ironic requests poach fluffily carefully unusual pinto beans. even packages acc|
-24|9|2227|511.20|, silent packages boost around the instructions. special requests sleep slyly against the slyly regular deposits. final, final accounts haggle fluffily among the final requests. regular |
-24|3|7182|582.03| the final, ironic asymptotes. regular requests nag instead of the carefully unusual asymptotes. furiously pending attainments among the slyly final packages boost after th|
-24|7|5318|62.15| careful requests cajole blithely realms. special asymptotes sleep. pinto beans sleep carefully furiously ironic packages. furiously |
-25|6|9029|832.74|fully fluffily regular frets. sometimes even requests after the requests wake slyly at the quickly ruthless requests. a|
-25|10|9062|928.96|he foxes. final, final accounts sleep. boldly ironic excuses thrash quick|
-25|4|9946|694.35|ld, ironic requests. furiously special packages cajole furiously enticing instructions.|
-25|8|7340|746.59|dly final packages haggle blithely according to the pending packages. slyly regula|
-26|7|5020|683.96|es. fluffily express deposits kindle slyly accounts. slyly ironic requests wake blithely bold ideas|
-26|1|6577|892.20|riously pending pinto beans. furiously express instructions detect slyly according to the b|
-26|5|3499|382.11|imes even pinto beans among the busily ironic accounts doubt blithely quickly final courts. furiously fluffy packages despite the carefully even plate|
-26|9|9702|821.89| behind the blithely regular courts impress after the silent sheaves. bravely final ideas haggle |
-27|8|2111|444.01|the even, ironic deposits. theodolites along the ironic, final dolphins cajole slyly quickly bold asymptotes. furiously regular theodolites integrate furiously furiously bold requests. carefully|
-27|2|9080|157.03|ole express, final requests. carefully regular packages lose about the regular pinto beans. blithely re|
-27|6|3407|151.34|ironic theodolites are by the furiously bold ideas. ironic requests shall have to sublate final packages. furiously quick foxes alongside of the express, special deposits was boldly according |
-27|10|4283|348.61|ound the final foxes detect furiously across the even warhorses. quickly t|
-28|9|6643|204.86|y ironic deposits above the slyly final deposits sleep furiously above the final deposits. quickly even i|
-28|3|2452|744.57|ully regular theodolites haggle about the blithely pending packages. carefully ironic sentiments use quickly around the blithely silent requests. slyly ironic frays bo|
-28|7|302|690.30|uickly unusual requests alongside of the final courts integrate slyly |
-28|1|9988|666.53|beans haggle carefully around the slyly ironic acco|
-29|10|3506|799.27|leep fluffily according to the quietly regular requests: accounts integrate carefully bold foxes. carefully silent|
-29|4|8106|981.33|the ironic, bold asymptotes! blithely regular packages hang furiously above the dependencies. blithely permanent dependencies are furiously furiously ironic acco|
-29|8|9193|734.44|ly unusual packages. foxes cajole. theodolites nag|
-29|2|6252|186.21|thely carefully even packages. even, final packages cajole after the quickly bold accounts. fluffily quick accounts in place of the theodolites doze slyly f|
-30|1|4767|989.05|ts. slyly final pinto beans cajole ironic accounts. blithely final accounts use among the request|
-30|5|535|743.26|sual instructions wake carefully blithely even hockey playe|
-30|9|7756|568.86| special foxes across the dependencies cajole quickly against the slyly express packages! furiously unusual pinto beans boost blithely ironic Tir|
-30|3|7945|583.84| sleep. bold, regular deposits hang doggedly furiously bold requests. slyly bold excuses detect busily above the even gifts. blithely express courts are carefully. blithely final packages until th|
-31|2|9685|620.84|he blithely regular ideas. blithely unusual requests haggle fluffily. platelets|
-31|7|1951|120.99|refully regular pinto beans. ironic requests integrate furiously since the quickly ruthless platelets. quickly ironic attainments ha|
-31|2|1402|761.64|r platelets nag blithely regular deposits. ironic, bold requests |
-31|7|137|849.11|blithely ironic accounts. slyly ironic asymptotes sleep ironic, even accounts. regular accounts thrash quickly|
-32|3|2203|406.03|es? slyly enticing dugouts haggle carefully. regular packages alongside of the asymptotes are carefull|
-32|8|467|109.34|ainst the unusual braids nod fluffily packages. regular packages nod among the slyly express|
-32|3|7975|747.14|final foxes boost furiously pending packages. quickly regular depths promise blithely accoun|
-32|8|7938|856.09|s integrate according to the even dependencies. carefully regular reque|
-33|4|4028|891.46|, pending requests affix slyly. slyly ironic deposits wake accounts. express accounts sleep slowly. ironic, express accounts run carefully fluffily final dependencies. furiously unusual ideas|
-33|9|4410|929.05| packages sleep carefully. slyly final instructions boost. slyly even requests among the carefully pending platelets wake along the final accounts. quickly expre|
-33|4|1287|310.76|dolites above the slyly express deposits try to haggle blithely special gifts. blithely ironic reque|
-33|9|6006|327.19|ly. ironic dependencies haggle carefully silent instructions. furiously ironic dolphins are fluffily furiously even theo|
-34|5|9934|848.75|ven instructions besides the gifts are furiously among the slyly regular packages! instructions use carefully. even requests sleep quickl|
-34|10|4749|265.31|ckly regular theodolites eat above the bravely regular courts. ironic requests wake slyly.|
-34|5|5459|824.69|ong the slyly silent requests. express, even requests haggle slyly|
-34|10|5884|609.69|ully final tithes. slyly ironic deposits hang furiously about the regular, regular deposits|
-35|6|2500|451.58|nic packages boost carefully carefully even theodolites. blithely fina|
-35|1|8875|537.72|ully regular deposits: special accounts use. slyly final deposits wake slyly unusual, special ideas. asymptotes |
-35|6|596|669.19|slyly against the daring, pending accounts. fluffily special pinto beans integrate slyly after the carefully unusual packages. slyly bold accounts besides|
-35|1|2025|411.17|s cajole fluffily final deposits. furiously express packages after the blithely special realms boost evenly even requests. slow requests use above the unusual accoun|
-36|7|3907|630.91|al deposits detect fluffily fluffily unusual sauternes. carefully regular requests against the car|
-36|2|174|434.47|permanently express instructions. unusual accounts nag toward the accou|
-36|7|2625|569.91|ctions. pending requests are fluffily across the furiously regular notornis. unusu|
-36|2|8209|289.15|arefully regular requests cajole. special, express foxes sleep slowly. quickly unusual in|
-37|8|7171|824.96|usly into the slyly final requests. ironic accounts are furiously furiously ironic i|
-37|3|5542|126.59|ven deposits. ironic foxes cajole. slyly final deposits are furiously after the furiously even packages. slyly ironic platelets toward the slyl|
-37|8|7113|15.72|re bravely along the furiously express requests. blithely special asymptotes are quickly. fluffily regular packages alo|
-37|3|1449|745.64|y after the ironic accounts. blithely final instructions affix blithely. bold packages sleep carefully regular instructions. regular packages affix carefully. stealthy fo|
-38|9|1226|570.11| slyly even pinto beans. blithely special requests nag slyly about the ironic packages. |
-38|4|4237|662.75|lar warhorses cajole evenly against the attainments. requests cajole furiously furiously express requests. carefully regular platelets use fluffily after the silent, unusual ideas: bl|
-38|9|1135|160.70|express accounts haggle. carefully even pinto beans according to the slyly final foxes nag slyly about the enticingly express dol|
-38|4|3516|847.09|nal accounts. furiously pending hockey players solve slyly after the furiously final dependencies. deposits are blithely. carefully regular packages unwind busily at the deposits. fluffily |
-39|10|3633|463.10|kages are slyly above the slyly pending pinto beans. bold, ironic pinto beans sleep against the blithely regular requests. fluffily even pinto beans use. regular theodolites haggle against the quic|
-39|5|3682|300.43|ng requests are according to the packages. regular packages boost quickly. express Tiresias sleep silently across the even, regular ideas! blithely iro|
-39|10|5475|532.26| beans cajole carefully carefully express requests. instructions sleep furiously bold deposits. furiously regular depos|
-39|5|6259|737.86|y. special, even asymptotes cajole carefully ironic accounts. regular, final pinto beans cajole quickly. regular requests use warhorses. special, special accounts hinder boldly across the|
-40|1|7690|776.13|lets use fluffily carefully final deposits. blithely ironic instructions sublate against the furiously final ideas; slyly bold courts x-ray silent foxes. regular foxes wake blithely. slyl|
-40|6|1704|565.82|riously furiously silent asymptotes. final deposits cajole blithely ironic requests. furiously special pains into the blithely final instru|
-40|1|4521|374.71|ptotes haggle. slyly even requests nag fluffily silent packages. blith|
-40|6|6617|196.64|he slyly unusual epitaphs? ironic deposits at the furiously unusual instructions thrash blithely requests. requests are carefully blithely pending waters.|
-41|2|9040|488.55|ss the dinos wake along the blithely regular theodolites. foxes cajole quickly ironic, final foxes. blithely ironic packages haggle against |
-41|8|5946|391.81| slyly slyly regular requests. final deposits sleep fluffily. blithely bold instructions detect carefully. blithely pending requests are furiously ironically final ideas. regul|
-41|4|1550|916.55| the blithely final ideas. furiously regular asymptotes could cajole furious|
-41|10|560|37.59|special pinto beans against the unusual accounts cajole slyly final foxes. close, ironic|
-42|3|2893|716.81|requests nag. furiously brave packages boost at the furiously even waters. slyly pending ideas nag carefully caref|
-42|9|2927|709.06|g dugouts. carefully careful ideas are fluffily. carefully final pinto beans snooze. ironic deposits wake evenly along |
-42|5|3500|200.00|against the ironic, ironic forges. slyly final deposits wake blithely. ironic courts sleep furiously ab|
-42|1|3662|29.46|es sleep slyly among the slyly final requests. bold theodolites use silently against the final foxes. carefully pending requests use furiously. dogged, unusual asymptotes use |
-43|4|3211|805.78|gular accounts. bold theodolites nag slyly. quickly express excuses use blithely. blithely even ideas boost fluffily! blithely unusual ideas detect bli|
-43|10|6770|493.19|ing to the quickly even theodolites. quickly bold excuses haggle. sometimes unusua|
-43|6|9506|493.65|riously! slyly ironic sauternes affix. ironic theodolites sleep furiously about the express packages. slyly ironic deposits are blithely against the regular package|
-43|2|3232|307.12|counts: express, final platelets use slyly bold ideas. ironic theodolites about the blithely s|
-44|5|486|164.22| final notornis throughout the unusual pinto beans are about the special accounts. bold packages sleep fluffily above the|
-44|1|5310|114.37|quests. quickly unusual requests against the carefully final somas detect slyly bold a|
-44|7|3534|383.01|r the pending pinto beans! requests wake furiously after the special deposits. silent deposits mold quickly along the express, special |
-44|3|4798|833.15| run. ironic, special dolphins according to the even, ironic deposits haggle carefully alongside of the carefully regular excuses. regular frays haggle carefully ironic dependenc|
-45|6|1685|919.63|he doggedly final accounts; carefully regular packages cajole idly regular idea|
-45|2|5202|877.29|ngage blithely after the final requests. bold accounts sleep blithely blithely express dependencies. pinto beans through the carefully regular hockey players wake|
-45|8|5669|532.70|es play carefully doggedly unusual requests. bold grouches against the furiously ironic dugouts sleep furiously qu|
-45|4|1872|155.32| ironic, even pinto beans. bold theodolites haggle after the furiously ironic accounts. slyly bold courts|
-46|7|4171|244.65|lly quiet instructions. furiously express requests among the final ideas cajole carefully bold waters. furiously regular pac|
-46|3|8518|106.80|e unusual instructions shall have to detect slyly blithely ironic foxes. bold requests impress silent foxes. ironic, quiet realms haggle quickly pending, express pinto be|
-46|9|7225|14.78|ously about the fluffily pending accounts. fluffily even dugouts are quickly slyly express platelets; quickly bold pearls sleep slyly even instructions. furiously ironic packages poach quic|
-46|5|1381|985.88|ending platelets are carefully regular accounts. fluffily even accounts against the dependencies nag carefully final, |
-47|8|6989|292.52|even ideas. blithely final requests boost blithely. final, ironic instruct|
-47|4|4458|539.47|; finally enticing theodolites cajole enticing, silent warhorses! slyly bold pains c|
-47|10|2896|74.54|grate final asymptotes. pending requests kindle carefully final frets. ironic deposits above the slyly e|
-47|6|5873|296.63|after the regular dependencies. final, bold pains sleep quickly pend|
-48|9|5052|611.16|posits are blithely blithely final foxes. blithely even deposits haggle fluffily express requests. furiously final theodolites use sl|
-48|5|9451|191.36|ckages cajole never even, special foxes. regular dependencies wake after the blithely ironic instructions. thinly ironic reque|
-48|1|5564|668.19|al pinto beans. furiously final frays use slyly according to the ironic theodolites. regular ideas cajole furiously after the slyly even deposits. |
-48|7|1719|606.16|forges lose. packages cajole regular, bold accounts. never ironic accounts may promise about the permanently bold deposits. always express requests cajole fluffily regular c|
-49|10|9056|35.11| bold deposits? final, bold pinto beans are furiously slyly regular packages. sly|
-49|6|6646|908.15|ts sleep across the fluffily final deposits. carefully express accounts around the regular, express excuses x-ray inside the ironic theodolites. expre|
-49|2|5336|713.25|ld accounts. furiously blithe waters use furiously blithely idle dependencies. pending deposits along the permanently re|
-49|8|597|812.62|n foxes snooze furiously. courts integrate never. carefully unusual requests are carefully. quickly ironic deposits ha|
-50|1|1832|565.54|liers above the dolphins dazzle across the regular foxes. furiously regular packages haggle furiously blithely ironic grouches. ironic, even accounts haggle pending, furious instruction|
-50|7|43|690.87|aggle daringly along the close, express deposits. final requests snooze carefully carefully bold deposits. carefully unusual ideas doze furiously after the furious|
-50|3|6160|301.06|arefully ironic requests use. furiously pending waters play carefully carefully regular platelets. sly requests cajole furiously slyly regular pinto beans. bold packages boost fluffily. furiously i|
-50|9|2104|107.17|t blithely unusual theodolites. quickly final accounts affix fluffily regular requests. c|
-51|2|837|310.74|ly dogged, regular dependencies. express, even packages are |
-51|9|7318|85.03|al foxes. carefully ironic accounts detect carefully-- slyly even accounts use. furiously final platelets shall haggle sometimes after the blithely regu|
-51|6|138|728.95|requests according to the carefully unusual deposits promise slyly ironic packages. slyly ironic dependencies are accordin|
-51|3|8062|901.04|le ruthlessly furiously slow requests. fluffily slow depende|
-52|3|6533|54.92|efully. slyly special deposits haggle along the quick deposits. slyly pending requests use quickly packages. final, final dolphins doubt according to the quickly unusual excuses|
-52|10|1937|210.44|s. never even asymptotes nag carefully! regularly unusual foxes along the unusual requests haggle accounts. fluffily express pinto |
-52|7|4084|628.53| deposits wake slyly pending asymptotes. ironic asymptotes haggle. blithely ironic requests are qui|
-52|4|5524|424.93|cial, ironic packages. even dolphins boost. slyly final deposits integrate. final sheaves along the silent excuses use at the slyly close foxes; bold accounts are finally even packages. ironi|
-53|4|6443|192.78|carefully ironic accounts. blithely bold deposits detect furiously against the flu|
-53|1|5319|563.44|ly. fluffily final pearls boost carefully. special sauternes nod furiously even instructions. carefully regular dependencies across the slyly regular deposits|
-53|8|8200|388.08|fully requests. furiously final accounts cajole express, regular pearls. special deposits wake fluffily express accounts. quic|
-53|5|6929|224.83|xes. carefully ruthless asymptotes impress slyly. fluffily final deposits sleep against the ideas. slyly final packages wake. pending, express packages sleep quickly.|
-54|5|2515|686.51|ly along the packages. blithely close pinto beans are blithely alongside of the unusual packages. carefully even platelets boost alongside of the even foxes. ironic de|
-54|2|7079|798.98|he carefully unusual packages wake according to the ironic dolphins. permanently regular sheaves nag quickly. regular, ironic|
-54|9|2386|23.78|kly ironic foxes. final instructions hinder doggedly. carefull|
-54|6|536|259.24| furiously along the fluffily regular requests. carefully unusual accounts use fluffily final platelets. pending deposits integrate furiou|
-55|6|7874|611.04|ly special packages. furiously even warhorses integrate. silen|
-55|3|8460|236.27|round the special, bold asymptotes cajole alongside of the instructions. qui|
-55|10|8278|134.62|gedly silent pinto beans! furiously regular sentiments was furiously across the silent pinto beans. pending warthogs along the slyly |
-55|7|1289|130.33|ut the blithely final requests. requests nag blithely. |
-56|7|241|855.39|nto beans. finally regular sauternes are. carefully bold deposits according to the blithely express requests wake carefully ironic excuses? furiously final deposit|
-56|4|9104|54.79|tructions above the blithely pending foxes cajole blithely furiously even sentiments. special, exp|
-56|1|1330|52.29|xpress instructions haggle furiously regular deposits. quickly unusual packages sleep furiously final pinto|
-56|8|5799|926.25|ades grow around the dependencies. carefully special ideas cajole furiously across the blithely express requests. unusual tithes are caref|
-57|8|2972|123.11| asymptotes use carefully furiously final deposits. quickly regular deposits are furiously slyly ironic requests. blithely even excuses haggle: blithely special ideas|
-57|5|4721|411.08|instructions. quickly unusual deposits about the furiously special ideas believe among the furiously bold theodolites. unusual, even ideas nag: slow, special theodolites hagg|
-57|2|3788|211.66|ly according to the ironic requests-- slyly final accounts print carefully depths? pending, unusual accounts solve |
-57|9|4583|137.68|ts. blithely bold theodolites can boost carefully carefully even instr|
-58|9|4328|542.52|ven deposits wake requests. quickly bold platelets sleep furiously after the ironic requests. even accounts haggle quickly bold |
-58|6|4307|448.31|quickly carefully ironic foxes. bold platelets nag furiously regular packages. slyly specia|
-58|3|4136|512.24|packages cajole slyly quickly pending depths. special, bold realms cajole slyly. slyly ir|
-58|10|9689|25.09|long the unusual, express asymptotes. ironic ideas boost bold, special deposits? ironic foxes among the fin|
-59|10|8374|357.22|c decoys. carefully even pinto beans wake slyly alongside of the express accounts. regular grouches haggle.|
-59|7|4226|80.98|lar packages. regular depths use slyly after the fluffily regular packages; theodolites around the furiously ironic asy|
-59|4|99|598.55|he special pinto beans. fluffily even accounts cajole. fluffily regular foxes haggle among the|
-59|1|8184|45.50|ependencies. ironic dependencies wake carefully according to the blithely bold packages. quickly unusual ideas about th|
-60|1|6642|800.72| blithely. slyly final realms alongside of the excuses use quickly blithely bold foxes. final theodolites are slyly after the slyly regular excuses. never thin foxes about |
-60|8|5017|314.81| even pinto beans wake carefully. quickly regular deposits hinder along the furiously regular pack|
-60|5|148|504.10|s use fluffily. furiously regular deposits boost furiously against the even instructions. blithely final platelets wake. carefully pending asymptotes sleep blithely. regular, s|
-60|2|5792|92.64|s the carefully pending deposits. slyly regular pinto beans against the furiously regular grouches lose carefully around the enticingly final ideas. furiously express packages cajole bold pa|
-61|2|1540|858.64| could have to use upon the packages. fluffily special packages integrate slyly final theodolites. pending warhorses wake quickly after the blithely final fo|
-61|10|9170|771.26|ly. pinto beans sleep blithely about the patterns. slyly final accounts wake according to the furiously bold requests. slyly regular packages wake according to the ironic packages. requests acros|
-61|8|4762|633.74|final theodolites haggle. fluffily express ideas about the silent theodolites cajole ideas; fluffily special instructions are accordin|
-61|6|7312|153.74|gly final instructions. pending theodolites will wake furiously. slyly bold instructions run. furiously special foxes cajole f|
-62|3|1780|692.42|s around the even ideas cajole furiously somas. silent asym|
-62|1|5896|348.82| final accounts. furious deposits wake slyly. idly regular packages haggle blithely pending grouches. ironic accounts boost blithely. carefully express pa|
-62|9|9127|620.08|totes. unusual requests after the unusual accounts sleep fluffily bold notornis. slowly careful requests use according to the final ideas. pinto beans sleep. foxes are furiously furiously pe|
-62|7|9542|255.78|lly express requests haggle carefully. idle, pending pinto beans are furiously regular excuses. quickly sly attainments are furiously; even accounts are slyly quickl|
-63|4|1804|498.84|leep bravely. final accounts nag. forges sleep against the slyly ironic pa|
-63|2|1998|509.16|yly express theodolites. slyly bold ideas sleep furiously accordi|
-63|10|6839|274.15| among the carefully ironic accounts. carefully even accounts against the regular, final deposits detec|
-63|8|6325|463.69|arly express accounts. express, unusual escapades haggle. special packages must wake. express, regular requests sleep furiously ironic packages|
-64|5|5567|228.61|y even instructions. unusual requests serve slyly. special foxes sleep quickly. fluffily ir|
-64|3|4542|398.92|. quickly final ideas cajole carefully among the blithely silent requests. sometimes ironic accounts nag furiously against the pending instructions. f|
-64|1|9110|602.65| ironic accounts are carefully carefully final accounts. slyly ironic packa|
-64|9|2064|25.77| quickly regular ideas. carefully final requests snooze carefully regular, regular instructions. stealthily final pi|
-65|6|2918|846.26|inal, even foxes cajole. furiously final dolphins hang quickly ironic foxes. furiously special packages alongside of the bold foxes solve above the carefully final instructio|
-65|4|1779|393.63|ully after the quickly regular ideas. ironic, final multipliers above the carefully bold deposits breach slyly furiously express deposits. unusual accounts haggle carefully idea|
-65|2|2054|503.10|e express excuses. ironic, even accounts across the reg|
-65|10|2188|288.73|lent requests nag quickly. blithely silent platelets haggle ironic accounts. slyly bold instructions boost carefully final accounts. carefully even dependencies must nag blithely; qui|
-66|7|3077|809.13|nod carefully besides the furiously final theodolites. slyly final requests haggle. furiously silent excuses detect quickly. ironic deposits detect above the furiously final |
-66|5|1076|785.75|its across the blithely regular theodolites wake furiously among the furiously regular accounts. pains are slyly care|
-66|3|2568|447.08|ously even accounts boost slyly daring requests. even, regular realms kindle blithely. unusual, ironic ins|
-66|1|296|797.27|s nag enticingly outside the furiously final foxes. final accounts haggle fluffily accord|
-67|8|9923|306.37|ly according to the quickly ironic requests. express instructions after the slyly even instructions x-ray blith|
-67|6|7908|546.75|furiously express dolphins integrate carefully regular notor|
-67|4|3368|625.62|le slyly regular requests: regular platelets wake quickly across the quickly regular accounts. reg|
-67|2|5826|397.34|en, ironic deposits affix quickly unusual requests. busily ironic accounts are finally never even sauternes. ironic depos|
-68|9|3444|31.37|es impress furiously pending packages. always silent instructions above the fluffily bold packages haggle slyly blit|
-68|7|6762|5.16|lithely. carefully even grouches along the bold deposits might sleep slyly requests. blithel|
-68|5|8300|80.86|nooze according to the furiously even ideas. blithely regular accounts wake blithely. furiously regular Tiresias cajole regular deposits. regular theodolites eat alongside of the|
-68|3|5399|683.59|. finally final pinto beans play carefully unusual requests. never pending accounts are. regular, final theodolites wake furiously excuses. special request|
-69|10|6197|694.24|eep across the packages. regular, final foxes boost fluffily regular pinto beans. packages sleep along the final requests. bold, unusual packages cajo|
-69|8|8235|846.49|nt fluffily. carefully ironic instructions wake. blithely express foxes cajole slyly. unusual requests sleep quickly. final packages affix slyly according to the spec|
-69|6|9294|386.96|ar packages. blithely regular dependencies are dolphins. slyly ironic excuses nag quickly pending, regular ideas. furiously special sheaves haggle. close, regular pinto beans about the slyly bold|
-69|4|7017|344.28|heodolites. unusual, regular requests boost slyly pending deposits. slyly daring instruct|
-70|1|4536|348.27|ructions. blithely final packages cajole carefully after the express, even requests. furiously final theodolites cajole |
-70|9|8063|452.80|y regular deposits nag about the carefully regular instructions; furiously express accounts along the final, express instruct|
-70|7|2990|940.81|s deposits. unusual foxes are carefully according to the carefully even deposits. carefully ironic foxes cajole fluffily against the carefully pending deposits. slyly special depo|
-70|5|9074|182.58|ions after the fluffily regular foxes wake above the furiously regular requests: slyly regular deposits wake slyly daringly even Tiresias. express, express deposits are. always unusual pa|
-71|2|508|842.21|es cajole carefully around the furiously pending instructions. |
-71|1|8329|239.57|ins sleep carefully slyly express accounts! quickly even accounts boost carefully about the carefully regular excuses. dogged, even dolphins against the sometimes ironic packages believe bl|
-71|10|6768|744.67|ructions. daring requests solve carefully about the furiously pending pinto|
-71|9|5179|329.13|usly at the packages. blithely regular deposits haggle regular packages. quickly special theodolites at the blithely ironic instructions wake|
-72|3|9855|497.26|tithes. quickly pending foxes haggle enticingly according to the accounts. accounts detect slyly: final packages wake. fina|
-72|2|9346|41.04| pending instructions before the even, silent dep|
-72|1|2654|762.61|nusual packages: blithely bold Tiresias sleep furiously. slyly brave accounts according to the final, |
-72|10|4526|154.47|use across the never ironic packages. express, regular accounts above the pending, fluffy deposits are carefully across the slyly even pinto be|
-73|4|9873|947.99|tes use pending packages. final foxes wake final, unusual packages. blithely blithe ideas haggle sometimes slyly express accounts. express instructions nag furiously quickly|
-73|3|7729|920.66|ecial accounts sleep according to the slyly sly accounts. slyly express instructions nag. accounts cajole furiously quickly even foxes. furiously regular requests wake. carefully even frets haggle |
-73|2|5327|108.96| beans are furiously between the regular ideas! unusual pinto beans use. furiously silent requests against the carefully even somas wake care|
-73|1|3928|309.57|longside of the blithely final ideas. carefully ironic courts sleep along the enticingly pending requests. fluffily regular accounts use fluffily bold ideas. slyly ironic packa|
-74|5|3128|345.92|ic theodolites. express deposits haggle blithely pending packages. quickly express foxes could are slyly. deposits sleep deposits. final dependencies sleep ab|
-74|4|2479|930.97|o beans sleep dependencies. regular accounts use blithely asymptotes. u|
-74|3|9473|496.36| haggle carefully alongside of the regular requests. slyly regular accounts belie|
-74|2|6234|849.66| slyly regular foxes. silent accounts integrate. even deposits are quick|
-75|6|7086|624.39|sits are furiously fluffily even courts. furiously pending requests are blithely. pending, regular accounts play carefully slyly unusual platelets. blithely final requests against the ru|
-75|5|6308|759.36|refully ironic dependencies. pinto beans use according to the packages. regular platelets wake around the blithely p|
-75|4|9080|433.59|sits. permanent packages breach. carefully final waters wake. bold, pending foxes haggle furiously evenly express instructions. even deposits about the final|
-75|3|5439|884.01|ding excuses snooze special accounts. tithes alongside of the regular dep|
-76|7|6754|494.83|gular accounts solve. ironic deposits sleep slyly even packages. slyly pending accounts detect slyly express accounts. ironic forges can play furiously carefully express fox|
-76|6|2009|108.97|n packages. blithely even accounts sleep carefully furiously ironic accounts. carefully express requests|
-76|5|6371|552.38|ts use against the quickly ironic ideas. quickly even deposits are carefully a|
-76|4|7986|252.03| packages across the furiously ironic platelets cajole across the regular, ironic accounts. carefully enticing accounts among the blithely regular instructions detect regular pinto be|
-77|8|552|254.92|e after the carefully pending packages. carefully even dependencies cajole pending |
-77|7|8170|875.83|xcuses. blithely even foxes use fluffily. blithely even requests use. slyl|
-77|6|8541|936.13|e slyly express instructions haggle about the sometimes regula|
-77|5|1713|402.14|the even ideas kindle after the requests. regular theodolites cajole carefully about the blithely final ideas. carefully even dependencies at the flu|
-78|9|9915|729.94|around the special excuses. furiously even deposits serve boldly according to the platelets. carefully express accounts at the blithely unusual pinto beans sleep furiously against the u|
-78|8|7246|577.23|regular dependencies cajole doggedly ironic accounts. bold theodolites doze about the accounts. quickly final requests boost slyly final asymptotes. carefully final dolphins ha|
-78|7|1801|434.34|nts kindle furiously according to the even packages. blithely ironic platelets are slyly silent foxes. final, final packages would sleep. pinto beans a|
-78|6|9599|382.82| carefully special theodolites cajole among the quickly even asymptotes. foxes wake blithely across the carefully |
-79|10|4248|765.34|nusual, express asymptotes wake furiously. ironic pinto beans detect above the carefully express theodolites: even, dogged instructions nag. spe|
-79|9|465|28.33|uriously special frays cajole across the finally ironic pinto beans. ironic accounts sleep blithely. fluffily silent accounts are slyly at the slyly unusual ideas. even deposits nag slyly |
-79|8|3309|880.23|tect final, thin accounts? furiously ironic accounts boost regular deposits. carefully ironic attainments sleep. furiously special ins|
-79|7|8627|891.18|r dolphins grow blithely against the slyly ironic packages. deposits about the regular, ironic decoys are slyly around the carefully regular packages. slyly pending excuses sle|
-80|1|8893|127.65|ld accounts detect carefully. carefully bold courts along the regular deposits could have to affix ca|
-80|10|2243|775.79|endencies. bold, regular pinto beans wake furiously above|
-80|9|5385|945.72|cial asymptotes believe after the blithely unusual deposits. furiously silent pinto beans cajole quickly inside the slyly even deposits. regular, f|
-80|8|4034|797.05|ptotes cajole carefully. express ideas cajole carefully even somas. final pinto beans print fluffily across the |
-81|2|1605|550.29|es haggle blithely fluffily final requests. furiously regular foxes use. furiously unusual requests outside the furiously regular requests|
-81|2|5923|220.23|the final, quick accounts are blithely above the s|
-81|2|2942|409.73|accounts boost. fluffily unusual requests cajole fluffily slyly ironic requests. foxes cajole quick|
-81|2|58|492.19| instructions boost furiously across the foxes-- final depo|
-82|3|7793|697.31|he accounts cajole quickly after the even patterns. ironic platelets sublate regular, even asymptotes. quick courts affix according to|
-82|3|7698|585.86|pinto beans. slyly express excuses haggle. blithely even pinto beans about the quick inst|
-82|3|8268|604.25|e after the carefully even theodolites. regular, pending accounts boost. quickly final asymptotes haggle slyly. requests use final, bold pinto beans. bold, ruthle|
-82|3|5532|900.07| slyly? fluffily special dependencies haggle among the slyly special requests. regular, bold packages after the blithely ironic packages are slyly ironic packages. slyly final deposits w|
-83|4|3010|745.51|l foxes along the bold, regular packages integrate carefully express courts! final excuses sleep carefully ironic|
-83|4|8200|399.64|y final platelets are carefully carefully special platelets. carefully ironic requests wake blithely alongside of the slyly even accounts. bold, regular requests sleep |
-83|4|5974|657.22| even packages boost furiously. slyly regular gifts above the accounts are quickly express packages. slyly pending deposits besides the express, even asymptotes haggle after the ironic ins|
-83|4|3890|24.73|deposits. carefully even dependencies across the dependencies haggl|
-84|5|5711|233.61|arefully final platelets cajole blithely; quickly final accounts use furiously. furiously reg|
-84|5|208|469.80|carefully express dolphins nag about the slyly bold requests. slyly even packages wake among the furiously special attainments.|
-84|5|2909|969.44|silent requests cajole slowly bold ideas. special, special deposits according to the always silent packages are against the furiously silent packages. even, blithe accounts sleep slyly across |
-84|5|903|707.77|gly regular dependencies boost. slyly even accounts sleep. furiously final hockey players wake carefully with the reg|
-85|6|2628|608.77|xes wake furiously after the carefully even platelets. blithe theodolites are furi|
-85|6|118|917.83| against the even deposits. furiously bold ideas along the furious requ|
-85|6|2074|491.20|encies-- slyly regular requests about the quiet accounts detect quickly at the |
-85|6|8289|73.81|s cajole slyly along the slyly special accounts. regular, special deposits wake. furiously special foxes boost. blithely even packa|
-86|7|806|65.98|ackages. blithely pending accounts are slyly furiously pending theodolites. furiously eve|
-86|7|2773|250.04|ding accounts. slyly special requests will have to affix carefully along the furiously unusual packages. regular theodol|
-86|7|5546|816.53|s. slyly final requests wake. furious deposits must wake blithely among the blithely ironic instructions. special hockey players try to are bli|
-86|7|1418|332.65|press theodolites sleep carefully about the blithely unusual requests. quickly final deposits breach slyly |
-87|8|5679|688.33|t the carefully regular asymptotes. blithely stealthy pinto beans within the furiously expres|
-87|8|1272|435.42|ronic foxes sleep along the special foxes. final ideas wake quickly about the carefully special theodolites. blithely ironic packages are blithely. regular, regular pint|
-87|8|9041|617.20|furiously final deposits. furiously special dependencies solve across the regular, special ideas. carefully silent requests haggle furiously after the special, specia|
-87|8|1892|868.60|arhorses are. unusual requests use blithely furiously final ideas. final requests sleep theodoli|
-88|9|6116|334.58|ect furiously around the regular deposits. special, final platelets boost furiously. blithely unusu|
-88|9|395|71.50| the regular accounts-- furiously even accounts use quickly after the regular, regular deposits. furiously e|
-88|9|9979|81.82|f the regular, regular requests believe fluffily along the final, quiet decoys. furiously even accounts cajole. carefully express requests wake quickly among the ideas. quickly silent |
-88|9|276|821.43|gular pinto beans. slyly pending excuses breach blithely express accounts. thin deposits sleep slyly around the even accounts; fluffily busy patterns kindle. slyly final deposits along the |
-89|10|3430|744.87| integrate slyly dolphins. bold, final frets use beside the carefully even accounts. slyly close dependencies sleep quickly carefully final pinto beans. foxes promi|
-89|10|8599|776.53|ress packages use furiously. furiously regular packages thrash blithely about the slyly pe|
-89|10|7876|417.61|nstructions: furiously even requests are quietly unusual accounts. regular requests are after the blithely regular deposits. sl|
-89|10|924|920.02|ickly unusual asymptotes after the slyly unusual accounts are carefully doggedly ironic accounts. even, final accounts use furiousl|
-90|1|8037|409.38|eas. unusual, pending packages boost quietly final accounts. slyly final packages serve. slyly even instructions sleep carefully. quickly even foxes wake quickly. |
-90|1|9683|498.43| accounts! fluffily regular deposits x-ray about the unusual, final packages. furiously final deposits alongside of the caref|
-90|1|7849|666.13|carefully ironic accounts are around the slyly bold asymptotes. carefully regular packages use furiously. ironic platelets affix carefully final accounts-- fluffily final pinto beans across the fina|
-90|1|7629|50.84|onic requests wake fluffily unusual packages. furiously even frays after the daringly pending requests wake furiously alongside of the bold requests. fluffily ironic ideas nag. ironic,|
-91|2|7986|528.64|luffily final instructions. furiously unusual foxes haggle |
-91|3|3257|906.20|ackages cajole slyly. blithely bold deposits cajole. blithely |
-91|4|483|823.21|n: slyly ironic foxes nag blithely according to the furiously bold foxes. regular, regular accounts a|
-91|5|1265|703.41| quickly silent deposits use attainments. final requests along the carefully ironic accounts wake blithely about the carefully ironic excuses. furiously bold excuses wake final, final ex|
-92|3|9337|224.01| requests are slyly along the deposits. fluffy pains alongside of the deposits |
-92|4|2246|985.03|jole enticingly regular asymptotes. carefully unusual pinto beans nag carefully ironic ideas. quickly un|
-92|5|3199|91.63|ake carefully: carefully ironic requests sleep careful|
-92|6|1044|854.89|l instructions are fluffily silently regular accounts. quickly final dolphins w|
-93|4|3008|615.98|sits promise blithely fluffily special decoys. slyly regular packages along the slyly final deposits wake accord|
-93|5|5275|376.47|ounts boost fluffily along the thinly regular realms. busily regular a|
-93|6|3869|868.81|ly among the furiously silent accounts. closely regular pinto beans nag slyly! slyly e|
-93|7|7188|805.90|y furiously bold pinto beans. express asymptotes was quickly. carefully final accounts affix slyly! platelets according to the ca|
-94|5|5433|365.56| even excuses wake carefully. quickly unusual requests wake accounts. regularly pending packages are regular |
-94|6|7784|358.08|ironic packages wake slyly carefully regular accounts. quickly regular warhorses against the blithely ironic packages haggle doggedly sly|
-94|7|7232|478.94|y regular requests. carefully final asymptotes haggle carefully against the slyly unusual requests: blithely brave grouches are fu|
-94|8|3261|824.08|quests. enticingly final accounts sleep fluffily. quickly express asymptotes around th|
-95|6|5186|291.03|ites across the blithely pending theodolites do affix across the unusual, bold Tiresias. bold packages|
-95|7|6552|456.36|tes; final, final accounts boost blithely ironic pinto beans. blithely ironic deposits cajole above the quickly pending requests? i|
-95|8|367|987.22| express requests detect furiously. requests cajole carefully|
-95|9|7379|973.74| above the furiously unusual deposits haggle ironic ideas. express, even packages haggle slyly slyly special asymp|
-96|7|5739|202.06|re. slyly regular theodolites breach slyly even dinos. fluffily regular asymptotes haggle slyly. fluffily bold courts affix furiously. regular requests |
-96|8|4942|571.30|e carefully. bold packages sleep against the furiously express requests. express foxes above the dependencies use quickly according to the slyly expres|
-96|9|9985|672.29|ecial instructions-- blithely silent theodolites play. even, silent accounts sleep. blithely silent requests haggle final, f|
-96|10|7250|587.08|efully ironic foxes. regular, final pinto beans boost above the express a|
-97|8|6371|129.77|fluffily unusual accounts. slyly regular theodolites integrate furiou|
-97|9|2390|458.34| carefully unusual pinto beans; even deposits detect furiously|
-97|10|2618|239.34|al theodolites are daringly requests. warhorses sleep blithely requests. special accounts cajole slyly deposits. a|
-97|1|4580|761.41| beans. carefully final deposits alongside of the carefully final requests haggle idly blithely ironic accounts. foxes cajole slyly against the ironic, special packages. furiously brave excuses boo|
-98|9|9486|908.21|usly final deposits mold furiously above the even deposits. carefully ironic packages across the quickly regular dolphins are slyly according to the slyly even|
-98|10|8550|657.16| sleep carefully. bravely bold somas may sleep pendin|
-98|1|3443|139.00|gular pinto beans maintain quickly fluffily regular deposits. express requests sleep. even requests after the regu|
-98|2|3759|811.55|iously. final, express packages are across the ironic dependencies. slyly thin ideas according to the even Tiresias detect furiou|
-99|10|8487|438.38|lphins affix ironic packages. blithely ironic requests nag fluffily after the slyly ironic foxes. bold dependencies boost furiously. special, |
-99|1|7567|496.93|es? permanently even excuses haggle quickly across the dependencies.|
-99|2|7970|365.83|ending accounts cajole furiously. requests promise care|
-99|3|2789|843.88|ending accounts. furiously sly packages above the carefully unusual dolphins sleep after the thinly even deposits. requests wake abo|
-100|1|7885|490.61| accounts nag slyly against the bold excuses. pearls according to the fluffily ironic accounts haggle fluffily along the quickly final platelets|
-100|2|2070|196.73| dolphins. bold deposits along the even theodolites sleep furiously about the final pinto beans. furiously unusual courts cajole about the carefully bold asymptotes. accounts integrate slyly entic|
-100|3|4994|929.57| deposits. accounts are slyly regular ideas. slyly special pinto beans upo|
-100|4|9688|22.00|uctions according to the carefully ironic deposits haggle carefully express ideas? packages across the quickly final requests c|
-101|2|5589|305.40|blithely above the fluffily pending ideas. quickly quick accounts nod ruthlessly above the carefully pending packages. slyly s|
-101|4|8263|218.71|fluffily final requests. carefully even packages wake quickly about the quickly ironic foxes. fluffily even requests hang quickly about the pending, final requests. sp|
-101|6|6324|786.53|olites sleep quickly. slyly ironic theodolites affix. furiously bold accounts integrate among the pinto beans. final ideas hang slyly along the quickly regular packages. instructions cajole.|
-101|8|55|612.09|beans against the carefully express ideas wake quickly along the quickly unusual requests. blithely regular accounts cajole fluffily. enticingly pending theodolites haggle furiously fluffily pendi|
-102|3|1384|876.75|s wake quickly. carefully express deposits wake. silent, regular requests sleep slyly after the furiously ironic deposits. slyly unusual accounts cajole|
-102|5|9137|332.71|telets are final, special deposits. silently ironic deposits wake. pending, eve|
-102|7|9156|618.00| the unusual, ironic pinto beans. theodolites above the foxes sleep slyly car|
-102|9|6942|231.02|tions haggle against the furiously ironic deposits. quickly final asymptotes haggle carefully. regular sentiments might cajole silent courts. blithely bold frays |
-103|4|5913|905.88|e across the theodolites. carefully pending escapades haggle after the ironic theodolites. furiously pending ac|
-103|6|7742|414.42|bout the bold, regular deposits; blithely even accounts are regular, even platelets-- carefully express accounts nag slyly pen|
-103|8|5164|361.48|furiously thin deposits haggle blithely. blithely regular deposits above the carefully regular accounts are slyly carefully regular packages. silent, unusual|
-103|10|429|605.20| theodolites cajole quickly above the asymptotes-- slyly special packages can haggle carefully blithely final instructions. unusual, regular ideas|
-104|5|2368|946.39|packages. final packages wake enticingly. furiously regular asymptotes are always about the carefully regular deposits. slyly regular platelets cajole carefully. final pinto beans must pro|
-104|7|6110|15.57|ending requests. carefully regular deposits use blithely. bold, ironic deposits wake slyly carefully specia|
-104|9|6269|213.89| ideas against the final accounts wake slyly regular notornis. final deposits haggle a|
-104|1|3369|729.38|ong the foxes. foxes sleep quickly? carefully regular accounts sleep. special foxes boost quickl|
-105|6|4602|27.75|lar pearls cajole never carefully even depths. blithely regular ideas are quickly. unusual asymptotes nod carefully carefully regula|
-105|8|269|158.62| unusual courts eat pending excuses. ironic, ironic requests use. bravely |
-105|10|8855|810.86|. slyly special depths sleep. bold packages engage furiously bold packages. fluff|
-105|2|8519|904.17|ding to the furiously careful ideas. dogged theodolites wake fluffily among the slyly bold ideas. blithely brave warthogs above the slyly even theodolit|
-106|7|8649|732.15| slyly ironic instructions are. bold, final accounts cajole slyly ironic pinto beans. fluffily ironic accounts around the quickly special requests use blith|
-106|9|3144|779.68| final deposits along the slyly express theodolites cajole blithely after the ironic pinto beans. furiousl|
-106|1|1411|310.40|al accounts impress. even instructions engage furiously final foxes. silently final deposits wake qui|
-106|3|2297|281.98|inal packages. pending foxes sleep bold hockey players. courts across the blithely regular packages sleep fl|
-107|8|7249|168.03|he fluffily even packages. slyly regular dependencies nag fluffily above the final, unusual foxes. final, pending foxes affix. furiously final deposits cajole quickly blithely|
-107|10|4029|91.31|integrate. requests maintain quickly. carefully regular ideas about the instructions sle|
-107|2|4667|372.94|uctions sleep doggedly final requests. express, final theodolites cajole fluffily furiously silent deposits. blithely regular requests cajole quickly regular instruction|
-107|4|7912|474.77|fluffily across the final, bold accounts. quickly regular deposits grow carefully deposits. regular requests haggle blithely. slyly special platelets boost furiously care|
-108|9|4149|558.85| of the quickly pending theodolites. fluffily unusual frays wake accounts. carefully even foxes wake slyly. carefully special pinto beans |
-108|1|4898|241.47|lthily according to the fluffy deposits. furiously silent ideas according to the furiously special theodolites wake furiously a|
-108|3|5534|626.89|instructions. blithely regular instructions according to the permanent foxes cajole blithely slyly fluffy foxes. slyly regular asymptotes cajole foxes. slyly unusual deposits |
-108|5|3142|922.27|slyly express accounts are fluffily along the blithely unusual packages. pinto beans mold furiously. furiously bold instructions are blithely deposits. quickly special accounts detect t|
-109|10|524|275.19|st the permanently final requests. carefully pending pinto beans haggle quickly slyly ironic dolphins. blithely bold deposits wake blithely. even requests cajole foxes. iro|
-109|2|4470|992.21|ake furiously packages. blithely even foxes haggle furious|
-109|4|8176|936.60|d the express accounts. even theodolites wake quickly up the furiously bold foxes. furiously regular packages use regular, bold|
-109|6|7524|374.49|sual requests. final pinto beans cajole furiously. dependencies integrate slyly even excuses. blithely special requests wake around the slyly final pinto beans. furiously pending requests wake furi|
-110|1|2782|566.46|ly sly deposits. regular deposits are; theodolites haggle furiously bold foxes. final pinto beans wake blithely furiously ironic depths. unusual, regular platelets cajole. final, ironic|
-110|3|8914|183.47|yly even foxes. carefully regular requests doubt. pending, regular requests across the blithely final theodolites hag|
-110|5|1160|932.08|ake blithely. furiously ironic accounts sleep fluffily|
-110|7|4927|196.63|theodolites. instructions haggle even packages. waters impress furiously quickly express courts. furiously ironic depths nod quickly? ironic, ironic requests sle|
-111|2|1890|321.97|st foxes. daring depths use above the furiously special ideas. ironic foxes among the carefully final theodolites are alongside of the regular depths. e|
-111|5|9587|978.65|express instructions against the furiously final grouches haggle across the blithely ironic theodolites. slyly special dependencies in place of the carefully pending |
-111|8|8069|745.33|thely bold requests. unusual packages sleep. quickly pending ideas nag furiously to the carefully final p|
-111|1|2175|496.08|s around the daringly final pinto beans use furiously against the pi|
-112|3|8509|111.42|unts. carefully ironic instructions are final, bold foxes. bold excuses run according to the unusual packages. theodolites cajole carefully according to the fluffily pending deposits? sly|
-112|6|7652|783.52| carefully among the furiously final packages. regular instructions nag. slyly pending ideas hang fluffily blithely ironic instructions. ironic deposits haggle except the quickl|
-112|9|4835|913.75|ach slyly special dependencies. furiously ironic pinto beans sleep slyly pen|
-112|2|1211|815.88|l requests integrate furiously. quickly quiet packages are carefully regular accounts. regular packages eat quickly express, ironic sheaves. quickly dogged accounts o|
-113|4|9981|396.26|ithely express pains lose bravely fluffily pending foxes. blithely ironic sauternes cajole q|
-113|7|3804|860.68|ully about the carefully even accounts: thinly even foxes are carefully. |
-113|10|522|981.41| warthogs use quickly alongside of the furiously unusual requests. final deposits are blithely acro|
-113|3|4692|141.48| blithely unusual gifts snooze against the quickly ironic packages. regular packages across the carefully regular packages bo|
-114|5|7146|447.24|ideas will nag regular accounts! carefully final requests cajole furiously quickly final tithes. furiously express instructions a|
-114|8|3062|555.12|ts. furiously regular requests run carefully thin decoys. ironic platelets sleep alongside of the slyly silent deposits. reg|
-114|1|4519|382.87|nts. ironically express dolphins dazzle blithely. special instructions wake carefully along the ideas. quickly special dolphins sleep. furiously pendi|
-114|4|2113|570.79|o beans sleep among the ironic excuses. furiously even sheaves are. never regular instructions nod.|
-115|6|1817|82.84|uffily final accounts integrate furiously along the carefully busy excuses. slyly even asymptotes doubt quickly. fluffily thin theodoli|
-115|9|983|867.45|kly. requests nag after the blithely bold packages. express requests cajole theodolites. blithely express requests sleep after the furiously regular accounts. fluffily r|
-115|2|7781|861.93|lyly ironic pinto beans affix alongside of the furiously even ideas: quickly bold warhorses sle|
-115|5|3002|81.52|efully after the quickly regular deposits. daringly pending ideas sleep even ideas. silent, re|
-116|7|6580|705.50|iously. slyly regular requests detect slyly. carefully bold packages sleep furiously carefu|
-116|10|4975|413.86|tions. regular excuses detect. ideas haggle slyly about the slyly ironic courts. ironic foxes solve. ideas affix fluffily after the special, even dependencies. final platelets according|
-116|3|8679|866.56|aphs cajole blithely regular accounts. even packages doubt; bold instructions boost quickly. fluffi|
-116|6|5632|37.30|ccounts about the special packages nag across the carefu|
-117|8|5906|706.51|into beans sleep carefully blithely bold packages. even, bold instructions use across the carefully e|
-117|1|1986|322.08|eposits. special pinto beans use fluffily across the furiously regular pinto beans. furiously regular epitaphs nag fluffily packages. special accounts a|
-117|4|2577|761.86|riously. doggedly unusual ideas boost blithely blithely regula|
-117|7|4762|552.88| run furiously ironic accounts. slyly ironic deposits haggle slyly fluffy requests. flu|
-118|9|694|744.73|refully slow requests. requests against the special pac|
-118|2|6326|325.61| packages. express, final frays affix quickly above the final asymptotes. carefully regular requests doubt quickly f|
-118|5|7806|283.27| accounts affix carefully. regular, regular packages among the brave, pendin|
-118|8|4951|976.55|s orbits. even asymptotes above the instructions wake fluffily according to the sly, final excuses. express deposits across the blithely ironic depend|
-119|10|2307|473.64| blithely unusual dolphins boost busy, express ideas. regular requests use carefully furiously ironic deposits. carefully regular packages would sle|
-119|3|1452|676.92|ular instructions was slyly. furiously bold gifts boost f|
-119|6|4955|488.93|ias are along the express requests. fluffily pending ideas nag idly against the fluffily bold instructions? foxes cajole quickly. slyly special deposits haggle slyly e|
-119|9|583|782.47|yly pending requests-- carefully special instructions haggle carefully even instructions. blithely regular theodolites detect blithely final ideas. blithely ironic deposits among the sl|
-120|1|4976|201.21|inal, regular pinto beans haggle carefully! ironic ideas unwind among the slyly regular theodolites. regular platelets kindle blith|
-120|4|7744|365.79|l, special escapades! ideas sleep slyly instructions. carefully bold requests are. even accounts cajole. final accounts use slyly |
-120|7|5329|249.61|s cajole blithely. carefully bold requests believe blithely? brave accounts above the pending, dog|
-120|10|3102|566.34|ctions; realms beside the blithely final theodolites unwind blithely packages. regular dolphins sleep carefully-- carefully express accounts wake quickly. pending depths use never courts.|
-121|2|9741|147.45|ly according to the carefully regular asymptotes. silent excuses cajole carefully against the never silent instructions. furio|
-121|6|4246|850.42|usly final instructions. theodolites are according to the permanently ironic accounts. carefully pending accounts haggle about the pending instructio|
-121|10|7670|449.39|carefully daring packages. express packages use carefully about the quickly unusual packages. special ideas along |
-121|4|8709|655.22| detect carefully along the carefully even pinto beans. gifts haggle: ideas sleep ar|
-122|3|1019|451.29| blithely regular accounts. blithely final pains sleep besides the blithely final warhorses. furiously unusual requests haggle furiously|
-122|7|2490|637.28|efully special excuses grow slyly unusual packages. carefully quiet as|
-122|1|4957|650.84|quests. quickly bold requests nag across the furiously ironic accounts. ironically express instructions detect slyly carefully ironic requests. even, un|
-122|5|2083|739.25|counts. unusual requests alongside of the regular requests are carefully stealthy instructions? regular sauternes cajole. final theodolites breach carefully at the blithely final idea|
-123|4|9881|107.03|fully bold deposits detect slyly pending instructions. slyly special ideas detect blithely. slyly fluffy instructions hinder|
-123|8|5638|818.19|thely even pinto beans. furiously regular asymptotes affix furiously. regular, ironic tithes integrate quickly. blithely regular requests breach finally. decoys alon|
-123|2|2692|217.01|he ironic accounts nag fluffily after the bold, pending theodolites. blithely final ideas sleep carefully according to the blithely ironic foxes. regular requests are. furiousl|
-123|6|5311|149.65|eposits cajole according to the carefully pending packages. furiously final epitaphs solve alongside of the even requests|
-124|5|7102|901.98|ily accounts. furiously busy theodolites above the deposits thrash above the blithely final foxes. express instructions nod slyly furiously busy packages. special asymp|
-124|9|3969|908.64|l epitaphs. packages cajole among the furiously regular requests. closely|
-124|3|9295|882.54|s along the accounts poach quickly ironic deposits. even, final excuses thrash carefully about the express, special pains. carefully careful accounts breach slyly|
-124|7|9416|822.78|ously. theodolites affix around the slyly bold packages. even, ironic packages are carefully pains. furiously unusual requests sleep blith|
-125|6|2263|358.45|e. ironic, regular requests cajole fluffily along the even ideas. final ideas wake blithely. blithely bold |
-125|10|8276|668.65|nd the carefully express requests. slyly regular requests haggle. blithely unusual platelets solve fluffily fluffily regular|
-125|4|2600|455.70|ounts. thinly special accounts cajole carefully. even, special accounts after|
-125|8|5546|806.66| to the unusual courts are deposits! final, final pinto beans solve slyly. ironic accounts boost fluffily. furiously pending d|
-126|7|2647|221.89|lyly final pinto beans across the regular, even courts use slyly slyly pending braids! unusual requests along the furious|
-126|1|2373|194.38|fter the ideas. blithely daring sheaves print furiously among the blithely final packages. iron|
-126|5|1532|451.61|refully alongside of the quickly bold excuses. enticing, bold |
-126|9|5458|929.43|leep to the furiously special accounts. furiously final courts |
-127|8|7658|712.33|al pinto beans! slyly ironic excuses boost after the packages. express foxes integrate carefully. pending, regular theodolites |
-127|2|1467|237.98|regular accounts! quickly ironic packages haggle according to the accounts. carefully ironic |
-127|6|8281|3.14|ts above the furiously pending asymptotes cajole after the deposits. slyly ironi|
-127|10|8894|73.42|fter the sometimes special courts sleep about the slyly unusual reque|
-128|9|6982|425.29|ironic asymptotes. fluffily ironic packages use. ironic, regular ideas are in place of the quickly silent deposits. final, bold gifts across the ironic, regular pac|
-128|3|7602|224.49|xcuses. blithely unusual theodolites use slyly carefully even warthogs. slyly even dugouts haggle slyly final, express pinto beans. furiously bold packages thrash requests? slyly unusual packages |
-128|7|3766|947.16|arefully regular packages boost regularly. accounts are according to the blithely even dependencies. slyly silent accounts doubt slyl|
-128|1|7023|875.78| furiously quickly regular pinto beans. always special requests are. quickly regular deposits are furiously. slyly unusual theodolites haggle evenly; furiously special deposits wa|
-129|10|5721|129.69|ully express requests above the ironic, final requests cajole slyly along the quickly special packages. sl|
-129|4|7242|200.26|es across the furious escapades wake quickly slyly e|
-129|8|5299|330.59|final sentiments affix atop the silent foxes. busy pinto beans cajole. slyly final pinto beans haggle against the carefully expres|
-129|2|1968|27.22|ealthy, ironic deposits. slyly ironic pinto beans are blithely pinto beans. blithely ironic |
-130|1|4928|223.38|ths. slyly even theodolites detect according to the slyly final courts. carefully unusual deposits ar|
-130|5|6909|275.58|lly unusual accounts try to boost along the special packages. furiously bold requests x-ray blithely ironic waters. slyly unusual orbi|
-130|9|4850|442.81|ully regular deposits snooze. slyly silent foxes detect furiously furiously bold requests. slyly regular accounts breach. blithely bli|
-130|3|7387|883.99|aggle furiously. even ideas hinder deposits. even, final ideas are. unusual theodolites after the special, express foxes haggle carefully pending accou|
-131|2|3263|211.70|sits sleep quickly regular multipliers. slyly even platelets cajole after the furiously ironic deposits. slyly ironic requests should have to cajole: bl|
-131|7|125|861.84|l accounts grow quickly-- slyly ironic requests haggle? quickly express pinto bean|
-131|2|5138|572.43|grouches run with the carefully even packages. ironic, even deposits run slyly along the packages. special dependencies among the regular |
-131|7|8945|613.09| are carefully along the quickly final theodolites. packages after the quickly pending package|
-132|3|3092|687.29|y special decoys against the ideas affix against the sly|
-132|8|1904|925.73|the regular foxes wake ironic deposits. ironic, special requests use blithely instructions! final requests hang. blithely regular deposits haggle. ir|
-132|3|7441|357.06|ests. furiously unusual requests wake furiously. quickly unusual depos|
-132|8|5303|353.06|ep blithely after the sly accounts. slyly express dolphins cajole amon|
-133|4|5727|49.17|boost blithely across the ironic, regular instructions. packages use slyly unusual requests. bold accounts above the fu|
-133|9|404|478.18|ly ironic requests run instead of the blithely ironic accounts? regular ideas use fluffily: even, express packages sleep abov|
-133|4|4568|57.48|dolites. ironic accounts are blithely pinto beans. regular pinto beans haggle beneath|
-133|9|2813|277.26|s. pending, final accounts haggle blithely furiously pending deposits! carefully unusual attainments integrate. blithely bo|
-134|5|8879|848.14|lites. slyly final foxes after the bold requests cajole carefu|
-134|10|9013|102.99|pendencies. furiously express warthogs cajole furiously ironic, regular asymptotes. bold deposits boost among the furiously even theodolites. regular instructions integrate carefully |
-134|5|852|927.45| sleep unusual, express packages. unusual sentiments are furio|
-134|10|6270|388.28| to the furiously pending deposits nag along the slyly express asymptotes. slyly silent accounts shal|
-135|6|6940|465.82|ding foxes cajole. even dugouts haggle busily. fluffily pending packages about the express excuses boost slyly final packages. blithely express ideas cajole about the carefu|
-135|1|2443|9.83|atterns. pending, special deposits are furiously. express, regular deposits integrate quickly. unusual gifts cajole blithely stealthily pending deposit|
-135|6|7453|698.42|ven accounts. slyly final instructions nag slyly around the regular, unusual packages. slyly sp|
-135|1|2771|306.43|old deposits. furiously express instructions boost. pending dolphins use requests. slyly regular packages cajole quickly final ideas. pending, regular ideas nag carefully even, express pla|
-136|7|2237|548.19|ond the silent accounts haggle above the blithely regular packages|
-136|2|6068|806.19|structions. ironic theodolites haggle according to the final, daring pearls. carefully ironic somas are silently requests. express pa|
-136|7|8979|387.57|ans. express pinto beans wake carefully among the slyly ironic foxes: carefully final pinto beans haggle blithely. pending, final deposits promise furiously|
-136|2|9617|525.81| across the carefully pending warthogs. close, regular packages are quickly after the never ironic foxes. accounts sleep quickly along the furiously regular re|
-137|8|9057|302.26|slyly about the regular instructions. even, ironic theodolites use carefully around the even decoys. unusual, pending dolphin|
-137|3|4078|441.11|packages. blithely unusual sentiments should are. furiously regular accounts nag quickly carefully special asymptotes! idly ironic requests dazzle bold requests. carefully expres|
-137|8|467|371.85|ly special accounts detect carefully. furiously ironic deposits nag express packages. slyly quiet |
-137|3|7850|187.31|atelets sublate fluffily. enticingly unusual packages boost according to the blithely ironic foxes. pending requests mold sly|
-138|9|133|576.96|regular, final deposits maintain slyly even requests. regularly furious deposits use above the stealthy requests. ironic deposits are. carefully final frays are carefully. carefu|
-138|4|2535|885.35|lar deposits. courts sleep carefully. furiously express ideas boost furiously after the final, regular foxes. furiously bold deposits are. express accounts haggle blithely. |
-138|9|7907|119.83|epitaphs? quickly express foxes use pending accounts. special packages cajole blithely among the quickly unusual accounts? boldly ironic packages across the slyly ironic senti|
-138|4|967|309.03|pendencies integrate against the unusual pains. carefully unusual theodolites wake quickly across the deposits. blithely regular deposits alongside of the carefully regular deposits|
-139|10|2886|285.75|fully ironic requests according to the quickly final idea|
-139|5|9255|684.61|ickly furiously regular excuses. boldly express deposits sleep. ideas nag above the silent dependencies. slyly regular packages wake furiously. requests are carefully. quickly final fox|
-139|10|1042|972.23|gular, regular theodolites. regular asymptotes haggle carefully according to the permanently even deposits. slyly special account|
-139|5|3285|690.00|xpress pains. quickly regular ideas after the special, bold excuses wake furiously final ideas. slyly bold accounts nag packages. ironically regular|
-140|1|2379|501.05|of the silent, bold courts. slyly regular dependencies haggle. fluffily special deposits cajole carefully. quickly ironic depos|
-140|6|3533|781.45|ayers. carefully ironic pinto beans nod carefully furiously regular pinto beans. slyly ironic requests after the carefully regular packages are about the blithel|
-140|1|304|45.84|ing requests. carefully unusual foxes are final requests. slyly regular accounts wake permanently. quickly ironic theodolites hagg|
-140|6|7346|429.52| special pinto beans wake carefully unusual warthogs! furi|
-141|2|6776|293.63|fluffily unusual courts sleep. close pinto beans haggle quickly after the carefully ir|
-141|8|1660|139.18|egular accounts. enticingly bold theodolites eat slyly across the never ironic platelets. theodolites wake bli|
-141|4|7628|838.08|sly about the pinto beans. blithely ironic ideas sleep. foxes are quietly among the pinto beans. carefu|
-141|10|90|810.68|e doggedly regular ideas. foxes haggle slyly. slyly regular theodolites across the carefu|
-142|3|9219|897.49|thlessly special requests sleep blithely about the bold deposits. express, ironic instructions wake. final packages are blithely. deposits are carefully furiously even deposits. furiously regular a|
-142|9|13|334.33|are blithely blithely brave requests. slyly regular theodolites are furiously. blithely ironic dependencies haggle blithely. furiously unu|
-142|5|3076|860.55|gular requests about the pending packages wake furiously dogged accounts. th|
-142|1|3858|854.08|efully special deposits. blithely bold pinto beans haggle. slyly final ideas boost blithely. finally special requests mold along the blithely express packages. entic|
-143|4|7326|960.64|the slyly pending requests cajole quickly blithely regular platelets. even requests boost carefully. ironic, final instructions above the regular courts boost a|
-143|10|3923|741.01|le quickly furiously silent ideas. carefully regular requests ar|
-143|6|7152|772.24|fully furious accounts. final asymptotes cajole regular requests. carefully regular courts are quickly. slyly ironic ideas above the carefully regular requests wake|
-143|2|1952|199.37|l accounts are quickly after the unusual packages. regular accounts wake among the quickly even accounts. even, ironic|
-144|5|6295|457.37| pinto beans promise across the blithely bold packages. express, regular accounts play around the slyly silent deposits. specia|
-144|1|494|849.96|uriously ironic pearls wake idly furiously even pearls. foxes impress slyly busily express requests. carefully slow somas wake quick|
-144|7|1799|713.88|yly final requests. packages are. carefully daring accou|
-144|3|5427|361.83| foxes integrate carefully. deposits cajole fluffily. pending deposits kindle slyly carefully regular packages. even, thin accounts according to th|
-145|6|11|641.67| slyly regular packages are slyly carefully special dolphins. unusual braids use furiously about the final courts. slyly special|
-145|2|3838|568.91|ss, final asymptotes are. furiously express accounts run. furiously express dependencies eat carefully blithely ironic theodolites. closely ironic foxes among the silent asymptotes cajole|
-145|8|1344|422.60| dependencies. even patterns detect slyly after the ironic deposits. ironically even ideas wake slyly. even packages against the blithely express accounts haggle furiously carefully regular|
-145|4|4332|894.57|are carefully above the quickly silent deposits. evenly bold reque|
-146|7|2726|231.15|uriously after the fluffy accounts. furiously bold deposits cajole. requests might engage. quick accounts wake carefu|
-146|3|4628|123.91|ly across the dependencies. daringly ironic deposits are furiously; requests are. quickly regular accounts hang. carefu|
-146|9|5893|858.59|sual instructions believe. fluffily unusual warhorses nag. unusual dependencies sleep. slow sheaves haggle furiously. carefully ironic dependencies cajole slyly against the accounts. |
-146|5|9687|882.37|packages? ideas affix slyly even accounts: express requests wake slyly carefully special depths. ironic in|
-147|8|7442|939.14|sts against the furiously unusual instructions integrate ironic accounts. slyly final pinto beans sleep blithely carefully final asymptotes. slyly ironic warhorses befor|
-147|4|7647|102.19|refully regular orbits about the furiously express asymptotes haggle carefully according to the blithely regular ideas. blithely express excuses around the furiously |
-147|10|1596|466.37|ole. slyly final packages do haggle quickly. unusual accounts across the pending pinto beans was furiously according to the furiously brave deposits. pending deposits along the regular request|
-147|6|4235|235.91|ar pinto beans. regular instructions sleep carefully after the furiously blithe accounts. slowly pending ideas could nag careful, even accounts. attainments use slyly quickly|
-148|9|8007|177.40|final requests-- slyly regular theodolites haggle carefully across the blithely final dependencies. slyly even requests about the carefully even accounts sleep |
-148|5|1904|774.56|y even pinto beans. fluffily ironic packages sleep slyly. permanently brave requests boost furiously packages. boldly ironic deposits across the carefully bold pinto b|
-148|1|5393|264.09|ses. slyly pending packages haggle fluffily fluffily even instructions. fluffily regular packages are carefully about the furiously even asymptot|
-148|7|2957|250.98|. requests boost above the bold, special foxes. blithely regular platelets serve blithely slyly final ideas. carefully special idea|
-149|10|959|679.10|y to sleep carefully ironic requests. even, regular dependencies haggle. slyly unusual foxes haggle along the instructions. quickly even accounts nag furiously special accoun|
-149|6|7283|201.03|usly bold instructions. regular, final deposits alongside of the furiously ironic platelets are slyly even instructions. carefully bold accounts are. ironic, regular requests nag furious|
-149|2|7392|266.53|es detect along the regular instructions. bold ideas boost slyly. quickly unusual accounts doubt. carefully even foxes thrash slyly silent, ironic dolphins: Tiresias must wake |
-149|8|4104|312.37|ly express excuses. bold pinto beans boost blithely across the bold, final pinto beans. final deposits haggle carefully from the|
-150|1|8091|524.71|sleep furiously furiously bold warthogs. furiously express gifts according to the regularly silent sentiments boost within the f|
-150|7|2721|814.79|dependencies. special accounts wake carefully furiously regular accounts. regular accounts haggle along the express instructions. express pinto beans along the express, bold deposits run |
-150|3|3172|33.71| about the silent ideas. fluffily final requests impress. slyly final requests wake carefully about the slyly express foxes. slyly regular warthogs sleep fur|
-150|9|1640|327.34|slyly even deposits alongside of the furiously even accounts detect boldly quickly regular accounts. final accounts kindle carefu|
-151|2|391|281.90|dolites. boldly ironic packages cajole fluffily regular instructions. regular, ironic accounts are blithely. ironic accounts are alongside of th|
-151|9|253|840.06| haggle. somas are carefully. slyly regular requests sleep blithely atop the thinly express deposits. stealthily express packages cajole daringly express requests. carefully special requests after t|
-151|6|1484|71.68|riously final requests sleep according to the regular deposits? slyly ironic ideas wake furiously. quickly even theodolites use fluffily. regular, unusual courts according to the regular |
-151|3|9417|244.06| foxes along the hockey players are slyly about the blithely even packages. unusu|
-152|3|1396|164.60|d the instructions. carefully pending accounts haggle fluffily ruthless instruc|
-152|10|2653|432.12|carefully pending requests. quickly ironic requests haggle carefully special theodolites. blithely special requests aga|
-152|7|3599|77.38| quick excuses according to the pending, ironic requests snooze carefully slyly even foxes: slyly regular instru|
-152|4|1283|142.73|olites above the furiously even requests dazzle blithely against the busy, regular pains. furiously blit|
-153|4|4695|539.86|atelets. dolphins haggle blithely carefully ironic deposits? express, final accounts wake about the requests. even deposits should use quickly. regular,|
-153|1|8464|680.14|cording to the final instructions. carefully fluffy asymptotes haggle carefully |
-153|8|2916|685.52|ully express deposits boost daringly packages. furiously ironic accounts sleep slyly ironic instructions. special deposits integrate blithely. |
-153|5|6397|285.92|furiously special platelets haggle quickly even, bold pinto beans. blithely close pinto beans boost around the furiously regular packages. quickly express requests cajole.|
-154|5|3961|474.19|quickly pending requests nag express dependencies. furiously unusual requests about the regular, pending packages wake according to the ironic packages! theodolites wake about the unusual, regula|
-154|2|3231|829.29|ins along the packages use carefully requests. furiously unusual packages kindle fluffily quick|
-154|9|7315|960.19|uickly regular dolphins ought to believe among the q|
-154|6|1682|160.31|refully except the sly, even requests. careful ideas haggle after the slyly regular foxes: slyly special packages at the slyly regular deposits wake carefully theod|
-155|6|2893|222.02|. bold packages are toward the silent pinto beans. quickly fin|
-155|3|7077|413.24|lar instructions against the furiously unusual instructions breach furiously for the bold, even platelets. ironic accounts must have to are quickly across the |
-155|10|3029|413.02|the carefully ironic asymptotes. even, unusual accounts sleep furiously about the blithely regular ideas. quickly re|
-155|7|977|751.45|quickly silent deposits doubt above the unusual instructions. special r|
-156|7|4755|453.69|e of the excuses. slyly even theodolites boost about the slyly final foxes? requests after the carefully regular platelets sleep above the furiously pending d|
-156|4|7228|994.19|odolites wake quickly slyly final dinos. requests cajole slyly along the instructions. furiously regular deposits cajole slyly blithely ironic instructions. instructions wake. blithely even pinto be|
-156|1|3043|252.66|lithely express, silent decoys. bold, special requests along the carefully even accounts|
-156|8|3191|9.87|ar instructions-- quickly special deposits wake fluffily about the blithely e|
-157|8|5414|369.44|ong the carefully bold ideas boost across the regular, ironic requests. ironic fo|
-157|5|763|568.46|cial packages boost along the ideas. packages sleep slyly express packages. ironic, bold requests|
-157|2|3718|901.53|, ironic foxes. blithely even foxes wake about the carefully special req|
-157|9|3400|288.41|encies integrate carefully even accounts. regular, regular sentiments are against the slyly regular deposits-- even, even ideas use inside the carefull|
-158|9|2845|408.72|y. slyly final pinto beans believe fluffily pending, regular deposits. final, unusual ideas according to t|
-158|6|8715|452.31|instructions along the ironic, final requests are fluffily regular deposits. regular deposits cajole carefully about the silent instructions|
-158|3|4465|837.16| wake carefully in place of the furiously express deposits. slyly regular instructions engage. fluffily f|
-158|10|4251|431.90|etly special accounts boost carefully final multipliers. carefu|
-159|10|9200|356.66|ccording to the furiously final accounts. carefully fluffy foxes wake idly against the quickly final requests. evenly even pinto beans must have to are against the carefully regular de|
-159|7|3585|629.29|g platelets wake furiously slyly bold deposits? slyly regular accounts across the stealthily ironic accounts cajole along the special, ironic pearls. fluffily regular pinto|
-159|4|6085|171.40|ross the blithely special deposits are quickly carefully ironic Tiresias. quickly regular deposits was furiously. unusual accounts affix blithely about the regular deposits. asymptotes ab|
-159|1|3717|790.87|y blithe dependencies. final accounts haggle furiously. even, special asymptotes|
-160|1|2434|525.73|lithely. furiously silent theodolites after the ca|
-160|8|8324|999.93|ly final instructions. closely final deposits nag furiously alongside of the furiously dogged theodolites. blithely unusual theodolites are furi|
-160|5|6034|733.59| furiously against the final instructions. silent accounts sleep blithely after the boldly final requests. ex|
-160|2|6872|872.20|ions are carefully. carefully express foxes nag slyly before the carefully final excuses. accounts after the furiously ironic packages are furio|
-161|2|9365|790.03|scapades. packages use. slyly final accounts haggle across the quickly final th|
-161|10|8421|394.05|cial ideas. ironic instructions eat blithely slyly special packages. furiously final packages alongside of the furiously final instructions boost carefully against the quickly |
-161|8|9679|688.47|ns. blithely express requests sleep slyly foxes. blithely unusual ideas |
-161|6|679|893.72| the fluffily final requests. ironic, pending epitaphs affix slyly. qui|
-162|3|315|923.04| ideas. carefully final dugouts will have to wake quickly regular asymptotes. express grouches unwind carefully after the regula|
-162|1|2604|104.20|usly regular excuses. silent, even sheaves are according to the regular requests. packages grow blithely slyly regular accounts. ca|
-162|9|7014|236.07|cording to the stealthily fluffy theodolites. carefully unusual excuses around the regular deposits cajole slyly amo|
-162|7|4381|824.36|as across the furiously ironic notornis print blithely alongside of the final, pending deposits. fluffily express deposits slee|
-163|4|9241|955.81|cial dolphins. furiously bold foxes could have to use. never sly accounts cajole fluffily about the unusual, special pinto beans. pending, even requests around the quickly special deposits use f|
-163|2|3427|499.51|ithely bold packages integrate slyly quiet pinto beans. carefully even deposits boost slyly about the furiously fluffy packages. evenly regular dependencies wa|
-163|10|5323|920.75|sly even theodolites against the carefully bold packages wake final pinto beans. furiously pending deposits dazzle furiously. blithely exp|
-163|8|9676|573.48|ending accounts haggle blithely ironic, even packages. carefully pending packages wake carefully across the ruthlessly pending accounts! pinto beans wake. slyly final deposits boost slyly. fluffily|
-164|5|1295|341.95| bold instructions cajole slyly ironic deposits. quickly ironic foxes are carefully final, bold theodolites. ironic deposi|
-164|3|2134|84.02|ns believe. carefully express theodolites impress. carefully fina|
-164|1|3245|814.67|brave accounts cajole according to the final platelets. furiously final dolphins across the furi|
-164|9|3028|64.89|fully furiously regular requests. furiously bold orbits serve about the regular packages? carefully final deposits p|
-165|6|4424|943.82|ular requests. regular accounts cajole against the blithely ironic deposits. blithely even packages cajole. furiously final deposits cajole. thinly pending deposits hagg|
-165|4|5534|717.83| quickly regular deposits above the fluffily thin deposits haggle furiously against the quickly final depend|
-165|2|3780|730.28| furiously quickly regular foxes. pending requests engage evenly blithel|
-165|10|6114|210.84|foxes. foxes haggle. dolphins use carefully according to the fluffily regular packages. blithely special accounts according to the slyly final frets breach blithely after the care|
-166|7|6527|309.00|lly. dependencies haggle carefully at the slyly special packages. regular, final packages|
-166|5|6508|714.49|y express deposits cajole furiously above the carefully even theod|
-166|3|9364|581.52|pinto beans. pinto beans cajole furiously carefully special requests-- quickly |
-166|1|6713|631.58| sleep carefully. quickly even deposits run carefully fluffily ironic orbits. ironic deposits wake furiously. close sheaves along the special packages sleep carefully special instr|
-167|8|4933|666.70|ular deposits among the even dolphins are quickly express accounts. final, ironic theodolites cajole closely. th|
-167|6|5789|524.27| are furiously final, even dugouts. ironic, regular packages nag fu|
-167|4|4756|336.75|es are carefully along the carefully express tithes. furiously even deposits cajole slyly slyly regular deposits. bold excuses about the carefully ironic requests sleep blithely instructions|
-167|2|6748|704.97|t the silent ideas are blithely carefully even packages; blithely|
-168|9|347|394.83|hely blithely final theodolites. blithely final deposits among the quickly even ideas haggle about the blithely bold d|
-168|7|1281|771.90|, pending packages. ironic pinto beans use carefully. fluffily bold deposits|
-168|5|9089|508.37|ests are always. regular ideas sleep fluffily; special, express instructions cajole slowly. pending platelets boost furiously against the bold, even instructions. bold instructi|
-168|3|7519|963.43|requests above the quickly regular deposits use carefully aft|
-169|10|6914|619.53|uickly along the dependencies. furiously pending notornis cajole at the carefully special attainments. carefully ironic packages impress slyly care|
-169|8|6589|947.03|gside of the quickly regular asymptotes. quickly even theodolites against the theodolites promise express requests. ironic accounts wake careful|
-169|6|6731|713.35| the quickly special excuses wake blithely alongside of the carefully silent accounts. regular dolphin|
-169|4|7691|476.19|slyly alongside of the warthogs. fluffily even instructions poach under the slyly pending packages. blithely silent deposits use across the fur|
-170|1|7516|581.65| pinto beans. unusual ideas was fluffily. excuses cajole carefully final dependencies. platelets nag quickly according to the furiously ironic requests. carefully regular dependenci|
-170|9|838|667.16|orges do sleep furiously. fluffily furious requests among the final requests sleep after the slyly bold ideas? regular pinto beans might ha|
-170|7|6498|251.19| fluffily regular accounts integrate. blithely even packages cajole fluffily. furiously ironic excuses haggle by the finally final requ|
-170|5|6593|202.07|ep blithely final packages. quickly bold pains cajole carefully across the somet|
-171|2|8217|859.60|ress deposits. carefully special requests are furiously final requests. accounts cajole carefully blith|
-171|1|2311|864.96|s are along the blithely final deposits. regular asymptotes nag slyly against the requests. accounts cajole carefully carefully |
-171|10|8561|22.69|y close ideas are quickly silently regular packages. even, silent requests wake against the slyly special dependencies; regular accounts sleep doggedly furiously final pinto beans. slyly unusual pac|
-171|9|7589|935.29|s above the theodolites wake slyly along the carefully unusual dependencies. carefully express theodolites a|
-172|3|9799|184.96|ts. slyly even asymptotes nag blithely regular accounts. final platelets cajole furiously slyly bold packages. ironic accounts sleep slyly. pendi|
-172|2|8333|920.74|ronic foxes. quickly unusual accounts cajole blithely. blithely bold deposits cajole. blithely close pinto beans cajole requests. quickly express excuses around the quickly even deposits nag agai|
-172|1|3589|437.86|posits should have to boost furiously near the unusual ideas. final packages cajole blithely. carefully final deposits boost carefully. carefully special attainments boost quickly af|
-172|10|1661|687.13|y among the slyly even requests. ideas according to the slyly pending dinos print quickly slyly ironic foxes. pending, even excuses dazzle car|
-173|4|2536|353.84|ons-- final, silent dependencies sleep across the special, special excuses. furiously even accounts must have to mold after the ironic accounts. reque|
-173|3|8307|70.22|alongside of the furiously even packages. furiously final requests snooze blithely alongside of the carefull|
-173|2|6050|683.78|e after the slyly regular ideas. unusual pinto beans cajole even asymptotes-- silent, stealthy requests after the even accounts haggle blithely regular instructions. slyly ev|
-173|1|6162|877.84|es. slyly bold requests after the blithely regular dependencies cajole slyly even ideas. unusual deposits integrate about the final somas. |
-174|5|2103|681.95|sual, express requests wake furiously ruthless, final accounts. carefully ironic somas dazzle furiously. unusual asymptotes sleep-- patterns about the furiousl|
-174|4|6795|143.48|regular theodolites. special accounts integrate across the carefully ironic Tiresias. blithely even platelets detect. foxes about t|
-174|3|111|135.46| express packages-- quickly unusual courts lose carefully requests. bold accounts solve about the theodolites; pinto beans use. ironic foxes|
-174|2|8404|126.20|nding accounts mold furiously. slyly ironic foxes boost express sheaves. daringly final packages along the stealthy dependencies are blithely ironic requests. furiously pending pin|
-175|6|5515|487.68|ages sleep against the Tiresias. slyly pending packages print slyly above the evenly ironic dolphins. furiously ironic packages use f|
-175|5|7522|784.93| affix. quickly final theodolites haggle furiously after the slowly even pinto beans. furiously final packages use slyly. slyly regular reque|
-175|4|8501|706.61|int above the instructions. furiously regular requests integrate blithely according to the instructions. slyly pending foxes are asymptotes. slyly ruthless accounts wake. r|
-175|3|9456|978.56| regular packages. carefully ironic packages use. blithely ironic accounts among the pending, |
-176|7|7180|179.09|riously final requests. accounts doubt blithely regular somas. slyly even platelets are. theodolites across |
-176|6|3589|157.38|inal excuses. express deposits haggle carefully even deposits. carefully unusual requests haggle along the fluffily bold deposits. even, final requests affix. furi|
-176|5|5407|947.51|ending accounts eat carefully instructions. carefully pending packages detect slyly express accounts. foxes wake fluffily across th|
-176|4|1783|861.63|g the carefully special platelets. dogged, ironic asymptotes wake requests. regular excus|
-177|8|1239|44.75|requests use furiously regular, final requests. regular requests on the pending, ironic deposits use slyly among the excuses. carefully regular sheaves are.|
-177|7|4349|63.36|osits sleep among the fluffily unusual instructions. ironic dolphins cajole. furiously bold deposits sleep carefully. even, unusual accounts|
-177|6|9872|252.42|sual platelets. bold foxes affix furiously. pending, pending accounts lose furiously. pending platelets along the unusual, even foxes wake regular, even theo|
-177|5|4727|859.82|es are. slyly ironic packages haggle around the slyly bold deposits. bold foxes haggle blithely. f|
-178|9|4231|558.56|deposits. patterns use against the furiously unusual accounts. accounts wake carefully above the careful|
-178|8|1919|362.26| ironic dependencies. blithely regular packages detect fluffily special theodolites. regular instructions poach-- ironic deposits along the final requests |
-178|7|6836|864.93|y. ideas integrate regular pinto beans. special foxes wake above the slyly ironic asymptotes. quickly ironic ideas sleep. silent dependencies against the slyly bold packa|
-178|6|6922|475.18| regular patterns. fluffily express accounts about the furiously bold deposits cajole slyly about the furiously silent foxe|
-179|10|6956|444.38|g the furiously careful excuses haggle quickly thinly special Tiresias. furiously express foxes after the quickly regular deposits sleep ironic packages|
-179|9|1954|372.75|even dependencies print carefully. deposits boost blithely about the ironic, ironic accounts. express, regular deposits are. bli|
-179|8|2710|277.15|d the frets. pending packages doze quickly across the furiously regular deposits. pending, even deposits impress ironic ideas. quickly regular r|
-179|7|4776|8.39|sly special pinto beans. pinto beans cajole. carefully unusual ideas around the silent accounts are blithely carefully ev|
-180|1|2467|440.25| instructions affix. regular packages cajole quickly. carefully express asymptotes use furiously around the pendin|
-180|10|1108|934.59|hinly after the regular, unusual asymptotes! carefully regular theodolites sublate. regular, ironic deposits against the regular pinto beans nag ca|
-180|9|724|426.16|e, regular accounts. furiously final ideas are furiously above the bold, silent asymptotes. sly instructions are carefully quickly final sentiments. furiously ironic foxes cajole bold, exp|
-180|8|5899|864.83|hin the carefully furious pinto beans. furiously ironic pinto beans use slyly above the even instructio|
-181|2|2416|844.44|ully. theodolites throughout the blithely unusual pinto bea|
-181|2|3242|886.53| express ideas nag carefully brave accounts. slyly express deposits would affix. final, special requests against the slyl|
-181|2|215|938.29| accounts boost furiously furiously blithe theodolites. slyly bold requests unwind special, unusual requests. furious ideas boost quickly pending |
-181|2|1122|657.25|lyly fluffily pending foxes. fluffily ironic pains haggle. thinly regular requests against the deposits affix after the never ev|
-182|3|9699|535.27|ound the furiously regular foxes. pending requests dazzle along |
-182|3|960|519.36|arefully pending dependencies are always slyly unusual pin|
-182|3|6243|741.46|accounts are slyly. furiously ironic requests haggle. express, special instructions against the ironic theodolites use s|
-182|3|6146|365.00|s. blithely express theodolites sleep blithely alongside of the requests?|
-183|4|30|875.44|slyly. furiously regular instructions cajole slyly about the pending, final theodolites. blithely final deposits cajole fluffily alo|
-183|4|4482|424.86|es. depths affix fluffily. bold instructions haggle. ruthless instructions must have to boost|
-183|4|8707|884.26|posits wake. blithely pending requests nag furiously alongside of the p|
-183|4|333|678.16|ost final, final theodolites. slyly bold foxes dazzle carefully furiously regular accounts. regular, sly instructions about the furiously regular excuses nag blithely abou|
-184|5|7069|449.45|nal ideas. blithely final ideas haggle against the pinto beans. qu|
-184|5|9193|576.88|uickly quick dependencies could detect furiously. final packages p|
-184|5|6400|551.90|ss dependencies. quickly even pinto beans are. express accounts a|
-184|5|831|186.84|kages cajole carefully furiously ironic instructions. deposits use bl|
-185|6|1475|538.58|unts hinder slyly. quickly express ideas sleep carefully |
-185|6|6244|213.04|ly unusual decoys are furiously quickly regular packages. bold, ironic foxes cajole fluffily around|
-185|6|7245|426.74|sleep blithely alongside of the regular excuses. even, regular|
-185|6|8014|510.23|lithely even ideas. regular platelets wake carefully ironic, special instructions! final pearls above the fluffily quiet ideas use furiously about the |
-186|7|1095|252.84|. carefully regular pinto beans according to the blithely close asymptotes haggle carefully special requests. packages cajole up the furi|
-186|7|1945|18.75|nic foxes boost carefully careful packages: express, fluffy dolphins nag quickly ironic packages. slyly bold requests nag amon|
-186|7|8838|729.42|ing asymptotes. enticingly regular theodolites mai|
-186|7|7898|812.37|ctions sleep silently carefully bold platelets. furiously ironic dependencies boost. regular de|
-187|8|8656|238.66|tes use along the even foxes? final foxes haggle pinto beans. slyly ironic theodolites are according to the deposits. furiously pending reques|
-187|8|4945|316.64|eposits boost quickly bold requests. furiously regular ideas boost boldly. special, express dependencies are fluffily slyly reg|
-187|8|3183|362.75|t the bold platelets. fluffily express platelets cajole fluffily along the always bold requests. blith|
-187|8|7440|989.71|e slyly against the slyly regular pinto beans. requests haggle carefully around the asymptotes. regular, regular asymptotes use furiously some|
-188|9|4835|771.95|pains are fluffily about the fluffily pending asymptot|
-188|9|2620|331.70|elets nag slyly regular pinto beans. slyly even dugouts above the blithely unusual theodolites su|
-188|9|730|713.62|nag against the final accounts. blithely pending attainments lose. silent requests wake quickly. careful|
-188|9|5430|920.20|uriously. special, regular instructions sleep along the accounts. quickly even foxes across the regular theodolites hang u|
-189|10|1305|392.50|packages. regular, unusual accounts lose furiously fluffily regular platelets. requests sleep carefully dependenc|
-189|10|8777|573.22|beans cajole slyly ironic requests. requests are quickly unusual, even packages. ironic frays haggle. blithely pending requests nod slyly. express, silent requests against the slyly unusual |
-189|10|6369|946.07|ts hinder slyly regular, unusual foxes. final sentiments use above the slyly r|
-189|10|2505|593.23| the deposits. special deposits sleep-- furiously regular sauternes solve furiously across the furiously regular pack|
-190|1|535|621.53|unts must have to haggle; slyly ironic accounts affix slyly alongside of the carefully even accounts. furious deposits haggle quietly among the packages. blithely |
-190|1|5845|608.91| haggle along the carefully unusual pinto beans. quickly final accounts sleep a|
-190|1|4579|396.60|inal, final foxes. regular, even deposits wake blithely! silent, regular packages integrate according to the slyly regular deposits. ironic, ironic notornis ha|
-190|1|2861|458.00|s cajole slyly across the daring, final pinto beans. carefully quiet requests affix along the a|
-191|2|8310|521.06|the slowly regular deposits. special accounts along the quickly unusual|
-191|3|1693|464.46|y. slyly unusual waters across the special pinto beans nag blithely according to the busy deposits. carefully regular accounts are against the regular accounts; perman|
-191|4|597|126.96|ly final accounts should have to boost above the doggedly express pinto beans. blithely regular packages cajole furiously bold requests. fluf|
-191|5|9673|119.41|press deposits kindle theodolites! slyly final dependencies against the blithely final packages sleep slyly regular requests. theodolites cajole furiously quickly bold a|
-192|3|606|198.69|inal platelets integrate regular accounts. accounts wake ironic, silent accounts. slyly unusual accounts kindle carefully-|
-192|4|2656|916.16|uickly. slyly bold ideas affix special, close theodolites. ironic, pending requests use carefully. blithely regular |
-192|5|1811|359.59|ly carefully special asymptotes. furiously pending instructions haggle blithely bravely pending requests. carefully f|
-192|6|8305|861.23|s against the carefully regular foxes haggle fluffily across the pending accounts. blithely final packages sleep after the furiously ironic theodolites. quickly bold r|
-193|4|6184|335.98| quickly bold deposits cajole furiously ruthless courts. carefully|
-193|5|4762|606.19|ns sleep against the furiously regular asymptotes. carefully even asymptotes across the daringly final packages sleep fluf|
-193|6|385|571.71|ons. slyly ironic deposits wake furiously ironic, unus|
-193|7|9791|478.52|quests. carefully even requests use regular excuses. pending accounts are. furiously even pinto beans haggle furi|
-194|5|4289|662.17|ic Tiresias serve along the ironic, express accounts. quickly final requests are slyly among the carefully special requests. accounts boost.|
-194|6|377|430.21|efully instead of the special ideas. fluffily unusual asymptotes cajole blithely after the regular ideas. final accounts along the silent ex|
-194|7|5294|913.46|indle fluffily despite the carefully silent instructions. furiously regular hockey players cajole slyly unusual accounts. furiously regular realms cajole furiously according to the e|
-194|8|7890|79.40|ctions sleep. carefully unusual theodolites should wake furiously across the deposits-- furiously bold excuses boost furiously carefully slow accounts. boldly final accounts grow. regular excuse|
-195|6|9985|20.39|efully among the fluffily even accounts! requests are slyly ag|
-195|7|2947|271.39|yly regular requests cajole carefully. carefully fina|
-195|8|319|102.58|ts. ironic foxes wake carefully slyly special pinto beans. blithely silent excuses hinder blithely quietly regular accounts. quickly careful foxes maintain slyly above the slyly express fo|
-195|9|2803|992.27|xes according to the regular foxes wake furiously final theodolites. furiously regular packages sleep slyly express theodolites. slyly thin instructions sleep r|
-196|7|3843|859.90|l platelets use blithely alongside of the enticingly final deposits. fluffily final requests boost furiously ag|
-196|8|2515|966.01|final theodolites. fluffily even deposits are against the|
-196|9|4778|37.61|fully final requests cajole fluffily across the furiously ironic accounts. qui|
-196|10|1068|928.25| cajole about the blithely regular ideas. final ideas hin|
-197|8|9678|753.88|ously. slyly stealthy requests use alongside of the express, unusual packages. final deposits wake. carefully unusual theodolites cajole slyly about the regular foxes. slyly iron|
-197|9|2631|279.05|e blithely. quickly final deposits wake fluffily excuses. even, unusual deposits x-ray among the final accounts. even ideas above the blithely ironic requests sleep furiously slyly final inst|
-197|10|7598|845.51|lets according to the regular deposits wake furiously about the carefully daring theodolites. blithely express dolphins poach after th|
-197|1|8950|897.33|ideas. requests wake above the blithely unusual deposits. slyly regular |
-198|9|6878|587.41|y even accounts poach carefully about the asymptotes. deposits haggle slyly. finally unusual requests run silently regular, bold packages: instructions after the |
-198|10|6493|673.99|y express excuses use blithely among the pending accounts. stealthy ide|
-198|1|8410|166.93|kages. blithely final theodolites dazzle fluffily. accounts boost furiously. furiously unu|
-198|2|6190|697.10|beans nag fluffily about the asymptotes. slyly bold escapades haggle quickly. fluffily special requests haggle above the ironic,|
-199|10|9343|79.70|ending accounts nag across the instructions. carefully express packages over the blithely even pac|
-199|1|8199|46.52|oost slyly. ironic platelets sleep blithely about the slyly silent foxes. furiously even pl|
-199|2|2742|890.63| the special deposits? carefully final deposits about the carefully regular sauternes |
-199|3|7167|884.56|onic platelets use carefully along the slowly stealthy ideas. slyly dogged instructions are quickly above the slyly u|
-200|1|3120|776.41|ntly final packages kindle furiously blithely ironic accounts. carefully final packages according to the carefully |
-200|2|5392|242.52|y unusual ideas. ruthlessly express asymptotes cajole. regular theodolites are. carefully silent deposits poach carefully across the fluffily even theodolites. carefully express realms hag|
-200|3|9408|307.79|oxes! fluffily regular requests use against the unusual, slow ideas. ironic accounts doze b|
-200|4|331|466.07| slyly even requests. fluffily final packages boost carefully express instructions. slyly regular forges are blithely unusual, regular |
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/region.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/region.tbl
deleted file mode 100644
index c5ebb63..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/region.tbl
+++ /dev/null
@@ -1,5 +0,0 @@
-0|AFRICA|lar deposits. blithely final packages cajole. regular waters are final requests. regular accounts are according to |
-1|AMERICA|hs use ironic, even requests. s|
-2|ASIA|ges. thinly even pinto beans ca|
-3|EUROPE|ly final courts cajole furiously final excuse|
-4|MIDDLE EAST|uickly special accounts cajole carefully blithely close requests. carefully final asymptotes haggle furiousl|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/data/supplier.tbl b/hivesterix/src/test/resources/runtimefunctionts/data/supplier.tbl
deleted file mode 100644
index d9c0e9f..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/data/supplier.tbl
+++ /dev/null
@@ -1,10 +0,0 @@
-1|Supplier#000000001| N kD4on9OM Ipw3,gf0JBoQDd7tgrzrddZ|17|27-918-335-1736|5755.94|each slyly above the careful|
-2|Supplier#000000002|89eJ5ksX3ImxJQBvxObC,|5|15-679-861-2259|4032.68| slyly bold instructions. idle dependen|
-3|Supplier#000000003|q1,G3Pj6OjIuUYfUoH18BFTKP5aU9bEV3|1|11-383-516-1199|4192.40|blithely silent requests after the express dependencies are sl|
-4|Supplier#000000004|Bk7ah4CK8SYQTepEmvMkkgMwg|15|25-843-787-7479|4641.08|riously even requests above the exp|
-5|Supplier#000000005|Gcdm2rJRzl5qlTVzc|11|21-151-690-3663|-283.84|. slyly regular pinto bea|
-6|Supplier#000000006|tQxuVm7s7CnK|14|24-696-997-4969|1365.79|final accounts. regular dolphins use against the furiously ironic decoys. |
-7|Supplier#000000007|s,4TicNGB4uO6PaSqNBUq|23|33-990-965-2201|6820.35|s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit|
-8|Supplier#000000008|9Sq4bBH2FQEmaFOocY45sRTxo6yuoG|17|27-498-742-3860|7627.85|al pinto beans. asymptotes haggl|
-9|Supplier#000000009|1KhUgZegwM3ua7dsYmekYBsK|10|20-403-398-8662|5302.37|s. unusual, even requests along the furiously regular pac|
-10|Supplier#000000010|Saygah3gYWMp72i PY|24|34-852-489-8585|3891.91|ing waters. regular requests ar|
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/core-site.xml b/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/core-site.xml
deleted file mode 100644
index 47dfac5..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/core-site.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!-- Put site-specific property overrides in this file. -->
-
-<configuration>
-
-<property>
- <name>fs.default.name</name>
- <value>hdfs://127.0.0.1:31888</value>
-</property>
-<property>
- <name>hadoop.tmp.dir</name>
- <value>/tmp/hadoop</value>
-</property>
-
-
-</configuration>
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/core-site.xml.bak b/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/core-site.xml.bak
deleted file mode 100644
index 2e248d4..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/core-site.xml.bak
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!-- Put site-specific property overrides in this file. -->
-
-<configuration>
-
-<property>
- <name>fs.default.name</name>
- <value>hdfs://localhost:31888</value>
-</property>
-<property>
- <name>hadoop.tmp.dir</name>
- <value>/tmp/hadoop</value>
-</property>
-
-
-</configuration>
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/hdfs-site.xml b/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/hdfs-site.xml
deleted file mode 100644
index 842e7ab..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/hdfs-site.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!-- Put site-specific property overrides in this file. -->
-
-<configuration>
-
-<property>
- <name>dfs.replication</name>
- <value>2</value>
-</property>
-
-<property>
- <name>dfs.block.size</name>
- <value>65536</value>
-</property>
-
-</configuration>
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/hdfs-site.xml.bak b/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/hdfs-site.xml.bak
deleted file mode 100644
index e3c082b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/hdfs-site.xml.bak
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!-- Put site-specific property overrides in this file. -->
-
-<configuration>
-
-<property>
- <name>dfs.replication</name>
- <value>2</value>
-</property>
-
-<property>
- <name>dfs.block.size</name>
- <value>32768</value>
-</property>
-
-</configuration>
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/mapred-site.xml b/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/mapred-site.xml
deleted file mode 100644
index 1b9a4d6..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/mapred-site.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!-- Put site-specific property overrides in this file. -->
-
-<configuration>
-
- <property>
- <name>mapred.job.tracker</name>
- <value>localhost:29007</value>
- </property>
- <property>
- <name>mapred.tasktracker.map.tasks.maximum</name>
- <value>20</value>
- </property>
- <property>
- <name>mapred.tasktracker.reduce.tasks.maximum</name>
- <value>20</value>
- </property>
- <property>
- <name>mapred.min.split.size</name>
- <value>65536</value>
- </property>
-
-</configuration>
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/mapred-site.xml.bak b/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/mapred-site.xml.bak
deleted file mode 100644
index 7a51b86..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hadoop/conf/mapred-site.xml.bak
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!-- Put site-specific property overrides in this file. -->
-
-<configuration>
-
- <property>
- <name>mapred.job.tracker</name>
- <value>localhost:29007</value>
- </property>
- <property>
- <name>mapred.tasktracker.map.tasks.maximum</name>
- <value>20</value>
- </property>
- <property>
- <name>mapred.tasktracker.reduce.tasks.maximum</name>
- <value>20</value>
- </property>
- <property>
- <name>mapred.min.split.size</name>
- <value>32768</value>
- </property>
-
-</configuration>
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hive/conf/hive-default.xml b/hivesterix/src/test/resources/runtimefunctionts/hive/conf/hive-default.xml
deleted file mode 100644
index eef4071..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hive/conf/hive-default.xml
+++ /dev/null
@@ -1,853 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<configuration>
-
- <!-- Hive Configuration can either be stored in this file or in the hadoop
- configuration files -->
- <!-- that are implied by Hadoop setup variables. -->
- <!-- Aside from Hadoop setup variables - this file is provided as a convenience
- so that Hive -->
- <!-- users do not have to edit hadoop configuration files (that may be managed
- as a centralized -->
- <!-- resource). -->
-
- <!-- Hive Execution Parameters -->
- <property>
- <name>mapred.reduce.tasks</name>
- <value>-1</value>
- <description>The default number of reduce tasks per job. Typically set
- to a prime close to the number of available hosts. Ignored when
- mapred.job.tracker is "local". Hadoop set this to 1 by default,
- whereas hive uses -1 as its default value.
- By setting this property to
- -1, Hive will automatically figure out what
- should be the number of
- reducers.
- </description>
- </property>
-
- <property>
- <name>hive.hyracks.connectorpolicy</name>
- <value>SEND_SIDE_MAT_PIPELINING</value>
- </property>
-
- <property>
- <name>hive.hyracks.host</name>
- <value>127.0.0.1</value>
- </property>
-
- <property>
- <name>hive.hyracks.port</name>
- <value>13099</value>
- </property>
-
- <property>
- <name>hive.hyracks.app</name>
- <value>hivesterix</value>
- </property>
-
-
- <property>
- <name>hive.hyracks.parrallelism</name>
- <value>2</value>
- </property>
-
- <property>
- <name>hive.algebricks.groupby.external</name>
- <value>false</value>
- </property>
-
- <property>
- <name>hive.algebricks.groupby.external.memory</name>
- <value>3072</value>
- </property>
-
- <property>
- <name>hive.algebricks.sort.memory</name>
- <value>3072</value>
- </property>
-
- <property>
- <name>hive.algebricks.framesize</name>
- <value>768</value>
- </property>
-
- <property>
- <name>hive.exec.reducers.bytes.per.reducer</name>
- <value>1000000000</value>
- <description>size per reducer.The default is 1G, i.e if the input size
- is 10G, it will use 10 reducers.
- </description>
- </property>
-
- <property>
- <name>hive.exec.reducers.max</name>
- <value>999</value>
- <description>max number of reducers will be used. If the one
- specified
- in the configuration parameter mapred.reduce.tasks is
- negative, hive
- will use this one as the max number of reducers when
- automatically
- determine number of reducers.
- </description>
- </property>
-
- <property>
- <name>hive.exec.scratchdir</name>
- <value>/tmp/hive-${user.name}</value>
- <description>Scratch space for Hive jobs</description>
- </property>
-
- <property>
- <name>hive.test.mode</name>
- <value>false</value>
- <description>whether hive is running in test mode. If yes, it turns on
- sampling and prefixes the output tablename
- </description>
- </property>
-
- <property>
- <name>hive.test.mode.prefix</name>
- <value>test_</value>
- <description>if hive is running in test mode, prefixes the output
- table by this string
- </description>
- </property>
-
- <!-- If the input table is not bucketed, the denominator of the tablesample
- is determinied by the parameter below -->
- <!-- For example, the following query: -->
- <!-- INSERT OVERWRITE TABLE dest -->
- <!-- SELECT col1 from src -->
- <!-- would be converted to -->
- <!-- INSERT OVERWRITE TABLE test_dest -->
- <!-- SELECT col1 from src TABLESAMPLE (BUCKET 1 out of 32 on rand(1)) -->
- <property>
- <name>hive.test.mode.samplefreq</name>
- <value>32</value>
- <description>if hive is running in test mode and table is not
- bucketed, sampling frequency
- </description>
- </property>
-
- <property>
- <name>hive.test.mode.nosamplelist</name>
- <value></value>
- <description>if hive is running in test mode, dont sample the above
- comma seperated list of tables
- </description>
- </property>
-
- <property>
- <name>hive.metastore.local</name>
- <value>true</value>
- <description>controls whether to connect to remove metastore server or
- open a new metastore server in Hive Client JVM
- </description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
- <description>JDBC connect string for a JDBC metastore</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionDriverName</name>
- <value>org.apache.derby.jdbc.EmbeddedDriver</value>
- <description>Driver class name for a JDBC metastore</description>
- </property>
-
- <property>
- <name>javax.jdo.PersistenceManagerFactoryClass</name>
- <value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>
- <description>class implementing the jdo persistence</description>
- </property>
-
- <property>
- <name>datanucleus.connectionPoolingType</name>
- <value>DBCP</value>
- <description>Uses a DBCP connection pool for JDBC metastore
- </description>
- </property>
-
- <property>
- <name>javax.jdo.option.DetachAllOnCommit</name>
- <value>true</value>
- <description>detaches all objects from session so that they can be
- used after transaction is committed
- </description>
- </property>
-
- <property>
- <name>javax.jdo.option.NonTransactionalRead</name>
- <value>true</value>
- <description>reads outside of transactions</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionUserName</name>
- <value>APP</value>
- <description>username to use against metastore database</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionPassword</name>
- <value>mine</value>
- <description>password to use against metastore database</description>
- </property>
-
- <property>
- <name>datanucleus.validateTables</name>
- <value>false</value>
- <description>validates existing schema against code. turn this on if
- you want to verify existing schema
- </description>
- </property>
-
- <property>
- <name>datanucleus.validateColumns</name>
- <value>false</value>
- <description>validates existing schema against code. turn this on if
- you want to verify existing schema
- </description>
- </property>
-
- <property>
- <name>datanucleus.validateConstraints</name>
- <value>false</value>
- <description>validates existing schema against code. turn this on if
- you want to verify existing schema
- </description>
- </property>
-
- <property>
- <name>datanucleus.storeManagerType</name>
- <value>rdbms</value>
- <description>metadata store type</description>
- </property>
-
- <property>
- <name>datanucleus.autoCreateSchema</name>
- <value>true</value>
- <description>creates necessary schema on a startup if one doesn't
- exist. set this to false, after creating it once
- </description>
- </property>
-
- <property>
- <name>datanucleus.autoStartMechanismMode</name>
- <value>checked</value>
- <description>throw exception if metadata tables are incorrect
- </description>
- </property>
-
- <property>
- <name>datanucleus.transactionIsolation</name>
- <value>read-committed</value>
- <description>Default transaction isolation level for identity
- generation.
- </description>
- </property>
-
- <property>
- <name>datanucleus.cache.level2</name>
- <value>false</value>
- <description>Use a level 2 cache. Turn this off if metadata is changed
- independently of hive metastore server
- </description>
- </property>
-
- <property>
- <name>datanucleus.cache.level2.type</name>
- <value>SOFT</value>
- <description>SOFT=soft reference based cache, WEAK=weak reference
- based cache.
- </description>
- </property>
-
- <property>
- <name>datanucleus.identifierFactory</name>
- <value>datanucleus</value>
- <description>Name of the identifier factory to use when generating
- table/column names etc. 'datanucleus' is used for backward
- compatibility
- </description>
- </property>
-
- <property>
- <name>hive.metastore.warehouse.dir</name>
- <value>/tmp/hivesterix</value>
- <description>location of default database for the warehouse
- </description>
- </property>
-
- <property>
- <name>hive.metastore.connect.retries</name>
- <value>5</value>
- <description>Number of retries while opening a connection to metastore
- </description>
- </property>
-
- <property>
- <name>hive.metastore.rawstore.impl</name>
- <value>org.apache.hadoop.hive.metastore.ObjectStore</value>
- <description>Name of the class that implements
- org.apache.hadoop.hive.metastore.rawstore interface. This class is
- used to store and retrieval of raw metadata objects such as table,
- database
- </description>
- </property>
-
- <property>
- <name>hive.default.fileformat</name>
- <value>TextFile</value>
- <description>Default file format for CREATE TABLE statement. Options
- are TextFile and SequenceFile. Users can explicitly say CREATE TABLE
- ... STORED AS <TEXTFILE|SEQUENCEFILE> to override</description>
- </property>
-
- <property>
- <name>hive.fileformat.check</name>
- <value>true</value>
- <description>Whether to check file format or not when loading data
- files
- </description>
- </property>
-
- <property>
- <name>hive.map.aggr</name>
- <value>true</value>
- <description>Whether to use map-side aggregation in Hive Group By
- queries
- </description>
- </property>
-
- <property>
- <name>hive.groupby.skewindata</name>
- <value>false</value>
- <description>Whether there is skew in data to optimize group by
- queries
- </description>
- </property>
-
- <property>
- <name>hive.groupby.mapaggr.checkinterval</name>
- <value>100000</value>
- <description>Number of rows after which size of the grouping
- keys/aggregation classes is performed
- </description>
- </property>
-
- <property>
- <name>hive.mapred.local.mem</name>
- <value>0</value>
- <description>For local mode, memory of the mappers/reducers
- </description>
- </property>
-
- <property>
- <name>hive.map.aggr.hash.percentmemory</name>
- <value>0.5</value>
- <description>Portion of total memory to be used by map-side grup
- aggregation hash table
- </description>
- </property>
-
- <property>
- <name>hive.map.aggr.hash.min.reduction</name>
- <value>0.5</value>
- <description>Hash aggregation will be turned off if the ratio between
- hash
- table size and input rows is bigger than this number. Set to 1 to
- make
- sure
- hash aggregation is never turned off.
- </description>
- </property>
-
- <property>
- <name>hive.optimize.cp</name>
- <value>true</value>
- <description>Whether to enable column pruner</description>
- </property>
-
- <property>
- <name>hive.optimize.ppd</name>
- <value>true</value>
- <description>Whether to enable predicate pushdown</description>
- </property>
-
- <property>
- <name>hive.optimize.pruner</name>
- <value>true</value>
- <description>Whether to enable the new partition pruner which depends
- on predicate pushdown. If this is disabled,
- the old partition pruner
- which is based on AST will be enabled.
- </description>
- </property>
-
- <property>
- <name>hive.optimize.groupby</name>
- <value>true</value>
- <description>Whether to enable the bucketed group by from bucketed
- partitions/tables.
- </description>
- </property>
-
- <property>
- <name>hive.join.emit.interval</name>
- <value>1000</value>
- <description>How many rows in the right-most join operand Hive should
- buffer before emitting the join result.
- </description>
- </property>
-
- <property>
- <name>hive.join.cache.size</name>
- <value>25000</value>
- <description>How many rows in the joining tables (except the streaming
- table) should be cached in memory.
- </description>
- </property>
-
- <property>
- <name>hive.mapjoin.bucket.cache.size</name>
- <value>100</value>
- <description>How many values in each keys in the map-joined table
- should be cached in memory.
- </description>
- </property>
-
- <property>
- <name>hive.mapjoin.maxsize</name>
- <value>100000</value>
- <description>Maximum # of rows of the small table that can be handled
- by map-side join. If the size is reached and hive.task.progress is
- set, a fatal error counter is set and the job will be killed.
- </description>
- </property>
-
- <property>
- <name>hive.mapjoin.cache.numrows</name>
- <value>25000</value>
- <description>How many rows should be cached by jdbm for map join.
- </description>
- </property>
-
- <property>
- <name>hive.optimize.skewjoin</name>
- <value>false</value>
- <description>Whether to enable skew join optimization. </description>
- </property>
-
- <property>
- <name>hive.skewjoin.key</name>
- <value>100000</value>
- <description>Determine if we get a skew key in join. If we see more
- than the specified number of rows with the same key in join operator,
- we think the key as a skew join key.
- </description>
- </property>
-
- <property>
- <name>hive.skewjoin.mapjoin.map.tasks</name>
- <value>10000</value>
- <description> Determine the number of map task used in the follow up
- map join job
- for a skew join. It should be used together with
- hive.skewjoin.mapjoin.min.split
- to perform a fine grained control.
- </description>
- </property>
-
- <property>
- <name>hive.skewjoin.mapjoin.min.split</name>
- <value>33554432</value>
- <description> Determine the number of map task at most used in the
- follow up map join job
- for a skew join by specifying the minimum split
- size. It should be used
- together with
- hive.skewjoin.mapjoin.map.tasks
- to perform a fine grained control.
- </description>
- </property>
-
- <property>
- <name>hive.mapred.mode</name>
- <value>nonstrict</value>
- <description>The mode in which the hive operations are being
- performed. In strict mode, some risky queries are not allowed to run
- </description>
- </property>
-
- <property>
- <name>hive.exec.script.maxerrsize</name>
- <value>100000</value>
- <description>Maximum number of bytes a script is allowed to emit to
- standard error (per map-reduce task). This prevents runaway scripts
- from filling logs partitions to capacity
- </description>
- </property>
-
- <property>
- <name>hive.exec.script.allow.partial.consumption</name>
- <value>false</value>
- <description> When enabled, this option allows a user script to exit
- successfully without consuming all the data from the standard input.
- </description>
- </property>
-
- <property>
- <name>hive.script.operator.id.env.var</name>
- <value>HIVE_SCRIPT_OPERATOR_ID</value>
- <description> Name of the environment variable that holds the unique
- script operator ID in the user's transform function (the custom
- mapper/reducer that the user has specified in the query)
- </description>
- </property>
-
- <property>
- <name>hive.exec.compress.output</name>
- <value>false</value>
- <description> This controls whether the final outputs of a query (to a
- local/hdfs file or a hive table) is compressed. The compression codec
- and other options are determined from hadoop config variables
- mapred.output.compress*
- </description>
- </property>
-
- <property>
- <name>hive.exec.compress.intermediate</name>
- <value>false</value>
- <description> This controls whether intermediate files produced by
- hive between multiple map-reduce jobs are compressed. The compression
- codec and other options are determined from hadoop config variables
- mapred.output.compress*
- </description>
- </property>
-
- <property>
- <name>hive.exec.parallel</name>
- <value>false</value>
- <description>Whether to execute jobs in parallel</description>
- </property>
-
- <property>
- <name>hive.exec.parallel.thread.number</name>
- <value>8</value>
- <description>How many jobs at most can be executed in parallel
- </description>
- </property>
-
- <property>
- <name>hive.hwi.war.file</name>
- <value>lib\hive-hwi-0.7.0.war</value>
- <description>This sets the path to the HWI war file, relative to
- ${HIVE_HOME}.
- </description>
- </property>
-
- <property>
- <name>hive.hwi.listen.host</name>
- <value>0.0.0.0</value>
- <description>This is the host address the Hive Web Interface will
- listen on
- </description>
- </property>
-
- <property>
- <name>hive.hwi.listen.port</name>
- <value>9999</value>
- <description>This is the port the Hive Web Interface will listen on
- </description>
- </property>
-
- <property>
- <name>hive.exec.pre.hooks</name>
- <value></value>
- <description>Pre Execute Hook for Tests</description>
- </property>
-
- <property>
- <name>hive.merge.mapfiles</name>
- <value>true</value>
- <description>Merge small files at the end of a map-only job
- </description>
- </property>
-
- <property>
- <name>hive.merge.mapredfiles</name>
- <value>false</value>
- <description>Merge small files at the end of a map-reduce job
- </description>
- </property>
-
- <property>
- <name>hive.heartbeat.interval</name>
- <value>1000</value>
- <description>Send a heartbeat after this interval - used by mapjoin
- and filter operators
- </description>
- </property>
-
- <property>
- <name>hive.merge.size.per.task</name>
- <value>256000000</value>
- <description>Size of merged files at the end of the job</description>
- </property>
-
- <property>
- <name>hive.merge.size.smallfiles.avgsize</name>
- <value>16000000</value>
- <description>When the average output file size of a job is less than
- this number, Hive will start an additional map-reduce job to merge
- the output files into bigger files. This is only done for map-only
- jobs if hive.merge.mapfiles is true, and for map-reduce jobs if
- hive.merge.mapredfiles is true.
- </description>
- </property>
-
- <property>
- <name>hive.script.auto.progress</name>
- <value>false</value>
- <description>Whether Hive Tranform/Map/Reduce Clause should
- automatically send progress information to TaskTracker to avoid the
- task getting killed because of inactivity. Hive sends progress
- information when the script is outputting to stderr. This option
- removes the need of periodically producing stderr messages, but users
- should be cautious because this may prevent infinite loops in the
- scripts to be killed by TaskTracker.
- </description>
- </property>
-
- <property>
- <name>hive.script.serde</name>
- <value>org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe</value>
- <description>The default serde for trasmitting input data to and
- reading output data from the user scripts.
- </description>
- </property>
-
- <property>
- <name>hive.script.recordreader</name>
- <value>org.apache.hadoop.hive.ql.exec.TextRecordReader</value>
- <description>The default record reader for reading data from the user
- scripts.
- </description>
- </property>
-
- <property>
- <name>hive.script.recordwriter</name>
- <value>org.apache.hadoop.hive.ql.exec.TextRecordWriter</value>
- <description>The default record writer for writing data to the user
- scripts.
- </description>
- </property>
-
- <property>
- <name>hive.input.format</name>
- <value>org.apache.hadoop.hive.ql.io.HiveInputFormat</value>
- <description>The default input format, if it is not specified, the
- system assigns it. It is set to HiveInputFormat for hadoop versions
- 17, 18 and 19, whereas it is set to CombinedHiveInputFormat for
- hadoop 20. The user can always overwrite it - if there is a bug in
- CombinedHiveInputFormat, it can always be manually set to
- HiveInputFormat.
- </description>
- </property>
-
- <property>
- <name>hive.udtf.auto.progress</name>
- <value>false</value>
- <description>Whether Hive should automatically send progress
- information to TaskTracker when using UDTF's to prevent the task
- getting killed because of inactivity. Users should be cautious
- because this may prevent TaskTracker from killing tasks with infinte
- loops.
- </description>
- </property>
-
- <property>
- <name>hive.mapred.reduce.tasks.speculative.execution</name>
- <value>true</value>
- <description>Whether speculative execution for reducers should be
- turned on.
- </description>
- </property>
-
- <property>
- <name>hive.exec.counters.pull.interval</name>
- <value>1000</value>
- <description>The interval with which to poll the JobTracker for the
- counters the running job. The smaller it is the more load there will
- be on the jobtracker, the higher it is the less granular the caught
- will be.
- </description>
- </property>
-
- <property>
- <name>hive.enforce.bucketing</name>
- <value>false</value>
- <description>Whether bucketing is enforced. If true, while inserting
- into the table, bucketing is enforced.
- </description>
- </property>
-
- <property>
- <name>hive.enforce.sorting</name>
- <value>false</value>
- <description>Whether sorting is enforced. If true, while inserting
- into the table, sorting is enforced.
- </description>
- </property>
-
- <property>
- <name>hive.metastore.ds.connection.url.hook</name>
- <value></value>
- <description>Name of the hook to use for retriving the JDO connection
- URL. If empty, the value in javax.jdo.option.ConnectionURL is used
- </description>
- </property>
-
- <property>
- <name>hive.metastore.ds.retry.attempts</name>
- <value>1</value>
- <description>The number of times to retry a metastore call if there
- were a connection error
- </description>
- </property>
-
- <property>
- <name>hive.metastore.ds.retry.interval</name>
- <value>1000</value>
- <description>The number of miliseconds between metastore retry
- attempts
- </description>
- </property>
-
- <property>
- <name>hive.metastore.server.min.threads</name>
- <value>200</value>
- <description>Minimum number of worker threads in the Thrift server's
- pool.
- </description>
- </property>
-
- <property>
- <name>hive.metastore.server.max.threads</name>
- <value>100000</value>
- <description>Maximum number of worker threads in the Thrift server's
- pool.
- </description>
- </property>
-
- <property>
- <name>hive.metastore.server.tcp.keepalive</name>
- <value>true</value>
- <description>Whether to enable TCP keepalive for the metastore server.
- Keepalive will prevent accumulation of half-open connections.
- </description>
- </property>
-
- <property>
- <name>hive.optimize.reducededuplication</name>
- <value>true</value>
- <description>Remove extra map-reduce jobs if the data is already
- clustered by the same key which needs to be used again. This should
- always be set to true. Since it is a new feature, it has been made
- configurable.
- </description>
- </property>
-
- <property>
- <name>hive.exec.dynamic.partition</name>
- <value>false</value>
- <description>Whether or not to allow dynamic partitions in DML/DDL.
- </description>
- </property>
-
- <property>
- <name>hive.exec.dynamic.partition.mode</name>
- <value>strict</value>
- <description>In strict mode, the user must specify at least one static
- partition in case the user accidentally overwrites all partitions.
- </description>
- </property>
-
- <property>
- <name>hive.exec.max.dynamic.partitions</name>
- <value>1000</value>
- <description>Maximum number of dynamic partitions allowed to be
- created in total.
- </description>
- </property>
-
- <property>
- <name>hive.exec.max.dynamic.partitions.pernode</name>
- <value>100</value>
- <description>Maximum number of dynamic partitions allowed to be
- created in each mapper/reducer node.
- </description>
- </property>
-
- <property>
- <name>hive.default.partition.name</name>
- <value>__HIVE_DEFAULT_PARTITION__</value>
- <description>The default partition name in case the dynamic partition
- column value is null/empty string or anyother values that cannot be
- escaped. This value must not contain any special character used in
- HDFS URI (e.g., ':', '%', '/' etc). The user has to be aware that the
- dynamic partition value should not contain this value to avoid
- confusions.
- </description>
- </property>
-
- <property>
- <name>fs.har.impl</name>
- <value>org.apache.hadoop.hive.shims.HiveHarFileSystem</value>
- <description>The implementation for accessing Hadoop Archives. Note
- that this won't be applicable to Hadoop vers less than 0.20
- </description>
- </property>
-
- <property>
- <name>hive.archive.enabled</name>
- <value>false</value>
- <description>Whether archiving operations are permitted</description>
- </property>
-
- <property>
- <name>hive.archive.har.parentdir.settable</name>
- <value>false</value>
- <description>In new Hadoop versions, the parent directory must be set
- while
- creating a HAR. Because this functionality is hard to detect
- with just
- version
- numbers, this conf var needs to be set manually.
- </description>
- </property>
-
- <!-- HBase Storage Handler Parameters -->
-
- <property>
- <name>hive.hbase.wal.enabled</name>
- <value>true</value>
- <description>Whether writes to HBase should be forced to the
- write-ahead log. Disabling this improves HBase write performance at
- the risk of lost writes in case of a crash.
- </description>
- </property>
-
- <property>
- <name>hive.exec.drop.ignorenonexistent</name>
- <value>true</value>
- <description>drop table always works.</description>
- </property>
-
-</configuration>
diff --git a/hivesterix/src/test/resources/runtimefunctionts/hive/conf/topology.xml b/hivesterix/src/test/resources/runtimefunctionts/hive/conf/topology.xml
deleted file mode 100644
index 4aac091..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/hive/conf/topology.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<cluster-topology>
- <network-switch name="switch1">
- <network-switch name="switch2">
- <terminal name="nc0"/>
- <terminal name="nc3"/>
- </network-switch>
- <network-switch name="switch3">
- <terminal name="nc1"/>
- <terminal name="nc4"/>
- </network-switch>
- </network-switch>
-</cluster-topology>
\ No newline at end of file
diff --git a/hivesterix/src/test/resources/runtimefunctionts/ignore.txt b/hivesterix/src/test/resources/runtimefunctionts/ignore.txt
deleted file mode 100644
index e70ea78..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/ignore.txt
+++ /dev/null
@@ -1 +0,0 @@
-q16
\ No newline at end of file
diff --git a/hivesterix/src/test/resources/runtimefunctionts/logging.properties b/hivesterix/src/test/resources/runtimefunctionts/logging.properties
deleted file mode 100644
index 1cc34e1..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/logging.properties
+++ /dev/null
@@ -1,65 +0,0 @@
-############################################################
-# Default Logging Configuration File
-#
-# You can use a different file by specifying a filename
-# with the java.util.logging.config.file system property.
-# For example java -Djava.util.logging.config.file=myfile
-############################################################
-
-############################################################
-# Global properties
-############################################################
-
-# "handlers" specifies a comma separated list of log Handler
-# classes. These handlers will be installed during VM startup.
-# Note that these classes must be on the system classpath.
-# By default we only configure a ConsoleHandler, which will only
-# show messages at the INFO and above levels.
-
-handlers= java.util.logging.ConsoleHandler
-
-# To also add the FileHandler, use the following line instead.
-
-# handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
-
-# Default global logging level.
-# This specifies which kinds of events are logged across
-# all loggers. For any given facility this global level
-# can be overriden by a facility specific level
-# Note that the ConsoleHandler also has a separate level
-# setting to limit messages printed to the console.
-
-.level= WARNING
-# .level= INFO
-# .level= FINE
-# .level = FINEST
-
-############################################################
-# Handler specific properties.
-# Describes specific configuration info for Handlers.
-############################################################
-
-# default file output is in user's home directory.
-
-# java.util.logging.FileHandler.pattern = %h/java%u.log
-# java.util.logging.FileHandler.limit = 50000
-# java.util.logging.FileHandler.count = 1
-# java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
-
-# Limit the message that are printed on the console to FINE and above.
-
-java.util.logging.ConsoleHandler.level = FINE
-java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-
-
-############################################################
-# Facility specific properties.
-# Provides extra control for each logger.
-############################################################
-
-# For example, set the com.xyz.foo logger to only log SEVERE
-# messages:
-
-edu.uci.ics.asterix.level = WARNING
-edu.uci.ics.algebricks.level = WARNING
-edu.uci.ics.hyracks.level = WARNING
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q10_returned_item.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q10_returned_item.hive
deleted file mode 100644
index 3f1214a..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q10_returned_item.hive
+++ /dev/null
@@ -1,37 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q10_returned_item;
-
--- create the tables and load the data
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the result table
-create table q10_returned_item (c_custkey int, c_name string, revenue double, c_acctbal string, n_name string, c_address string, c_phone string, c_comment string);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1024000000;
-
--- the query
-insert overwrite table q10_returned_item
-select
- c_custkey, c_name, sum(l_extendedprice * (1 - l_discount)) as revenue,
- c_acctbal, n_name, c_address, c_phone, c_comment
-from
- customer c join orders o
- on
- c.c_custkey = o.o_custkey and o.o_orderdate >= '1993-10-01' and o.o_orderdate < '1994-01-01'
- join nation n
- on
- c.c_nationkey = n.n_nationkey
- join lineitem l
- on
- l.l_orderkey = o.o_orderkey and l.l_returnflag = 'R'
-group by c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment
-order by revenue desc
-limit 20;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q11_important_stock.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q11_important_stock.hive
deleted file mode 100644
index de0cfc3..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q11_important_stock.hive
+++ /dev/null
@@ -1,47 +0,0 @@
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q11_important_stock;
-DROP TABLE IF EXISTS q11_part_tmp;
-DROP TABLE IF EXISTS q11_sum_tmp;
-
--- create tables and load data
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-
--- create the target table
-create table q11_important_stock(ps_partkey INT, value DOUBLE);
-create table q11_part_tmp(ps_partkey int, part_value double);
-create table q11_sum_tmp(total_value double);
-
--- the query
-insert overwrite table q11_part_tmp
-select
- ps_partkey, sum(ps_supplycost * ps_availqty) as part_value
-from
- nation n join supplier s
- on
- s.s_nationkey = n.n_nationkey
- join partsupp ps
- on
- ps.ps_suppkey = s.s_suppkey
-group by ps_partkey;
-
-insert overwrite table q11_sum_tmp
-select
- sum(part_value) as total_value
-from
- q11_part_tmp;
-
-insert overwrite table q11_important_stock
-select
- ps_partkey, part_value as value
-from
- (
- select ps_partkey, part_value, total_value
- from q11_part_tmp join q11_sum_tmp
- ) a
-where part_value > total_value * 0.00001
-order by value desc;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q12_shipping.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q12_shipping.hive
deleted file mode 100644
index 062f7b9..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q12_shipping.hive
+++ /dev/null
@@ -1,42 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS q12_shipping;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-
--- create the result table
-create table q12_shipping(l_shipmode string, high_line_count double, low_line_count double);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1225000000;
-
--- the query
-insert overwrite table q12_shipping
-select
- l_shipmode,
- sum(case
- when o_orderpriority ='1-URGENT'
- or o_orderpriority ='2-HIGH'
- then 1
- else 0
-end
- ) as high_line_count,
- sum(case
- when o_orderpriority <> '1-URGENT'
- and o_orderpriority <> '2-HIGH'
- then 1
- else 0
-end
- ) as low_line_count
-from
- orders o join lineitem l
- on
- o.o_orderkey = l.l_orderkey and l.l_commitdate < l.l_receiptdate
-and l.l_shipdate < l.l_commitdate and l.l_receiptdate >= '1994-01-01'
-and l.l_receiptdate < '1995-01-01'
-where
- l.l_shipmode = 'MAIL' or l.l_shipmode = 'SHIP'
-group by l_shipmode
-order by l_shipmode;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q13_customer_distribution.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q13_customer_distribution.hive
deleted file mode 100644
index a799008..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q13_customer_distribution.hive
+++ /dev/null
@@ -1,27 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS q13_customer_distribution;
-
--- create the tables and load the data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-
--- create the result table
-create table q13_customer_distribution (c_count int, custdist int);
-
--- the query
-insert overwrite table q13_customer_distribution
-select
- c_count, count(1) as custdist
-from
- (select
- c_custkey, count(o_orderkey) as c_count
- from
- customer c left outer join orders o
- on
- c.c_custkey = o.o_custkey and not o.o_comment like '%special%requests%'
- group by c_custkey
- ) c_orders
-group by c_count
-order by custdist desc, c_count desc;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q14_promotion_effect.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q14_promotion_effect.hive
deleted file mode 100644
index 988f400..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q14_promotion_effect.hive
+++ /dev/null
@@ -1,28 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q14_promotion_effect;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-
--- create the result table
-create table q14_promotion_effect(promo_revenue double);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1040000000;
-
--- the query
-insert overwrite table q14_promotion_effect
-select
- 100.00 * sum(case
- when p_type like 'PROMO%'
- then l_extendedprice*(1-l_discount)
- else 0.0
- end
- ) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue
-from
- part p join lineitem l
- on
- l.l_partkey = p.p_partkey and l.l_shipdate >= '1995-09-01' and l.l_shipdate < '1995-10-01';
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q15_top_supplier.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q15_top_supplier.hive
deleted file mode 100644
index 04064ed..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q15_top_supplier.hive
+++ /dev/null
@@ -1,45 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS revenue;
-DROP TABLE IF EXISTS max_revenue;
-DROP TABLE IF EXISTS q15_top_supplier;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-
--- create result tables
-create table revenue(supplier_no int, total_revenue double);
-create table max_revenue(max_revenue double);
-create table q15_top_supplier(s_suppkey int, s_name string, s_address string, s_phone string, total_revenue double);
-
-
-set mapred.min.split.size=536870912;
-
--- the query
-insert overwrite table revenue
-select
- l_suppkey as supplier_no, sum(l_extendedprice * (1 - l_discount)) as total_revenue
-from
- lineitem
-where
- l_shipdate >= '1996-01-01' and l_shipdate < '1996-04-01'
-group by l_suppkey;
-
-insert overwrite table max_revenue
-select
- max(total_revenue)
-from
- revenue;
-
-insert overwrite table q15_top_supplier
-select
- s_suppkey, s_name, s_address, s_phone, total_revenue
-from supplier s join revenue r
- on
- s.s_suppkey = r.supplier_no
- join max_revenue m
- on
- r.total_revenue = m.max_revenue
-order by s_suppkey;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q16_parts_supplier_relationship.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q16_parts_supplier_relationship.hive
deleted file mode 100644
index 971ef99..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q16_parts_supplier_relationship.hive
+++ /dev/null
@@ -1,53 +0,0 @@
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS q16_parts_supplier_relationship;
-DROP TABLE IF EXISTS q16_tmp;
-DROP TABLE IF EXISTS supplier_tmp;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-
--- create the result table
-create table q16_parts_supplier_relationship(p_brand string, p_type string, p_size int, supplier_cnt int);
-create table q16_tmp(p_brand string, p_type string, p_size int, ps_suppkey int);
-create table supplier_tmp(s_suppkey int);
-
--- the query
-insert overwrite table supplier_tmp
-select
- s_suppkey
-from
- supplier
-where
- not s_comment like '%Customer%Complaints%';
-
-insert overwrite table q16_tmp
-select
- p_brand, p_type, p_size, ps_suppkey
-from
- partsupp ps join part p
- on
- p.p_partkey = ps.ps_partkey and p.p_brand <> 'Brand#45'
- and not p.p_type like 'MEDIUM POLISHED%'
- join supplier_tmp s
- on
- ps.ps_suppkey = s.s_suppkey;
-
-insert overwrite table q16_parts_supplier_relationship
-select
- p_brand, p_type, p_size, count(distinct ps_suppkey) as supplier_cnt
-from
- (select
- *
- from
- q16_tmp
- where p_size = 49 or p_size = 14 or p_size = 23 or
- p_size = 45 or p_size = 19 or p_size = 3 or
- p_size = 36 or p_size = 9
-) q16_all
-group by p_brand, p_type, p_size
-order by supplier_cnt desc, p_brand, p_type, p_size;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q17_small_quantity_order_revenue.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q17_small_quantity_order_revenue.hive
deleted file mode 100644
index db7746b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q17_small_quantity_order_revenue.hive
+++ /dev/null
@@ -1,37 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q17_small_quantity_order_revenue;
-DROP TABLE IF EXISTS lineitem_tmp;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-
--- create the result table
-create table q17_small_quantity_order_revenue (avg_yearly double);
-create table lineitem_tmp (t_partkey int, t_avg_quantity double);
-
--- the query
-insert overwrite table lineitem_tmp
-select
- l_partkey as t_partkey, 0.2 * avg(l_quantity) as t_avg_quantity
-from
- lineitem
-group by l_partkey;
-
-insert overwrite table q17_small_quantity_order_revenue
-select
- sum(l_extendedprice) / 7.0 as avg_yearly
-from
- (select l_quantity, l_extendedprice, t_avg_quantity from
- lineitem_tmp t join
- (select
- l_quantity, l_partkey, l_extendedprice
- from
- part p join lineitem l
- on
- p.p_partkey = l.l_partkey
- and p.p_container = 'MED BOX'
- ) l1 on l1.l_partkey = t.t_partkey
- ) a
-where l_quantity < t_avg_quantity;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q18_large_volume_customer.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q18_large_volume_customer.hive
deleted file mode 100644
index ac2902c..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q18_large_volume_customer.hive
+++ /dev/null
@@ -1,43 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS q18_tmp;
-DROP TABLE IF EXISTS q18_large_volume_customer;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-
--- create the result tables
-create table q18_tmp(l_orderkey int, t_sum_quantity double);
-create table q18_large_volume_customer(c_name string, c_custkey int, o_orderkey int, o_orderdate string, o_totalprice double, sum_quantity double);
-
-set mapred.min.split.size=268435456;
-set hive.exec.reducers.bytes.per.reducer=1164000000;
-
--- the query
-insert overwrite table q18_tmp
-select
- l_orderkey, sum(l_quantity) as t_sum_quantity
-from
- lineitem
-group by l_orderkey;
-
-insert overwrite table q18_large_volume_customer
-select
- c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice,sum(l_quantity)
-from
- customer c join orders o
- on
- c.c_custkey = o.o_custkey
- join q18_tmp t
- on
- o.o_orderkey = t.l_orderkey and t.t_sum_quantity > 30
- join lineitem l
- on
- o.o_orderkey = l.l_orderkey
-group by c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice
-order by o_totalprice desc,o_orderdate
-limit 100;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q19_discounted_revenue.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q19_discounted_revenue.hive
deleted file mode 100644
index 2002e1e..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q19_discounted_revenue.hive
+++ /dev/null
@@ -1,49 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q19_discounted_revenue;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-
--- create the result table
-create table q19_discounted_revenue(revenue double);
-
-set mapred.min.split.size=268435456;
-set hive.exec.reducers.bytes.per.reducer=1040000000;
-
--- the query
-insert overwrite table q19_discounted_revenue
-select
- sum(l_extendedprice * (1 - l_discount) ) as revenue
-from
- part p join lineitem l
- on
- p.p_partkey = l.l_partkey
-where
- (
- p_brand = 'Brand#12'
- and p_container REGEXP 'SM CASE||SM BOX||SM PACK||SM PKG'
- and l_quantity >= 1 and l_quantity <= 11
- and p_size >= 1 and p_size <= 5
- and l_shipmode REGEXP 'AIR||AIR REG'
- and l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_brand = 'Brand#23'
- and p_container REGEXP 'MED BAG||MED BOX||MED PKG||MED PACK'
- and l_quantity >= 10 and l_quantity <= 20
- and p_size >= 1 and p_size <= 10
- and l_shipmode REGEXP 'AIR||AIR REG'
- and l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_brand = 'Brand#34'
- and p_container REGEXP 'LG CASE||LG BOX||LG PACK||LG PKG'
- and l_quantity >= 20 and l_quantity <= 30
- and p_size >= 1 and p_size <= 15
- and l_shipmode REGEXP 'AIR||AIR REG'
- and l_shipinstruct = 'DELIVER IN PERSON'
- );
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q1_pricing_summary_report.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q1_pricing_summary_report.hive
deleted file mode 100644
index a002068..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q1_pricing_summary_report.hive
+++ /dev/null
@@ -1,21 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS q1_pricing_summary_report;
-
--- create tables and load data
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the target table
-CREATE TABLE q1_pricing_summary_report ( L_RETURNFLAG STRING, L_LINESTATUS STRING, SUM_QTY DOUBLE, SUM_BASE_PRICE DOUBLE, SUM_DISC_PRICE DOUBLE, SUM_CHARGE DOUBLE, AVE_QTY DOUBLE, AVE_PRICE DOUBLE, AVE_DISC DOUBLE, COUNT_ORDER INT);
-
-set mapred.min.split.size=536870912;
-
--- the query
-INSERT OVERWRITE TABLE q1_pricing_summary_report
-SELECT
- L_RETURNFLAG, L_LINESTATUS, SUM(L_QUANTITY), SUM(L_EXTENDEDPRICE), SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)), SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)*(1+L_TAX)), AVG(L_QUANTITY), AVG(L_EXTENDEDPRICE), AVG(L_DISCOUNT), COUNT(1)
-FROM
- lineitem
-WHERE
- L_SHIPDATE<='1998-09-02'
-GROUP BY L_RETURNFLAG, L_LINESTATUS
-ORDER BY L_RETURNFLAG, L_LINESTATUS;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q20_potential_part_promotion.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q20_potential_part_promotion.hive
deleted file mode 100644
index 2bb90ea..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q20_potential_part_promotion.hive
+++ /dev/null
@@ -1,73 +0,0 @@
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q20_tmp1;
-DROP TABLE IF EXISTS q20_tmp2;
-DROP TABLE IF EXISTS q20_tmp3;
-DROP TABLE IF EXISTS q20_tmp4;
-DROP TABLE IF EXISTS q20_potential_part_promotion;
-
--- create tables and load data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-
--- create the target table
-create table q20_tmp1(p_partkey int);
-create table q20_tmp2(l_partkey int, l_suppkey int, sum_quantity double);
-create table q20_tmp3(ps_suppkey int, ps_availqty int, sum_quantity double);
-create table q20_tmp4(ps_suppkey int);
-create table q20_potential_part_promotion(s_name string, s_address string);
-
-set mapred.min.split.size=536870912;
-
--- the query
-insert overwrite table q20_tmp1
-select distinct p_partkey
-from
- part;
-
-insert overwrite table q20_tmp2
-select
- l_partkey, l_suppkey, 0.5 * sum(l_quantity)
-from
- lineitem
-group by l_partkey, l_suppkey;
-
-insert overwrite table q20_tmp3
-select
- ps_suppkey, ps_availqty, sum_quantity
-from
- partsupp ps join q20_tmp1 t1
- on
- ps.ps_partkey = t1.p_partkey
- join q20_tmp2 t2
- on
- ps.ps_partkey = t2.l_partkey and ps.ps_suppkey = t2.l_suppkey;
-
-insert overwrite table q20_tmp4
-select
- ps_suppkey
-from
- q20_tmp3
-where
- ps_availqty > sum_quantity
-group by ps_suppkey;
-
-insert overwrite table q20_potential_part_promotion
-select
- s_name, s_address
-from
- nation n join supplier s
- on
- s.s_nationkey = n.n_nationkey
- join q20_tmp4 t4
- on
- s.s_suppkey = t4.ps_suppkey
-order by s_name;
-
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q21_suppliers_who_kept_orders_waiting.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q21_suppliers_who_kept_orders_waiting.hive
deleted file mode 100644
index 9d01741..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q21_suppliers_who_kept_orders_waiting.hive
+++ /dev/null
@@ -1,71 +0,0 @@
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q21_tmp1;
-DROP TABLE IF EXISTS q21_tmp2;
-DROP TABLE IF EXISTS q21_suppliers_who_kept_orders_waiting;
-
--- create tables and load data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create target tables
-create table q21_tmp1(l_orderkey int, count_suppkey int, max_suppkey int);
-create table q21_tmp2(l_orderkey int, count_suppkey int, max_suppkey int);
-create table q21_suppliers_who_kept_orders_waiting(s_name string, numwait int);
-
--- the query
-insert overwrite table q21_tmp1
-select
- l_orderkey, count(distinct l_suppkey), max(l_suppkey) as max_suppkey
-from
- lineitem
-group by l_orderkey;
-
-insert overwrite table q21_tmp2
-select
- l_orderkey, count(distinct l_suppkey), max(l_suppkey) as max_suppkey
-from
- lineitem
-where
- l_receiptdate > l_commitdate
-group by l_orderkey;
-
-insert overwrite table q21_suppliers_who_kept_orders_waiting
-select
- s_name, count(1) as numwait
-from
- (select s_name from
-(select s_name, t2.l_orderkey, l_suppkey, count_suppkey, max_suppkey
- from q21_tmp2 t2 right outer join
- (select s_name, l_orderkey, l_suppkey from
- (select s_name, t1.l_orderkey, l_suppkey, count_suppkey, max_suppkey
- from
- q21_tmp1 t1 join
- (select s_name, l_orderkey, l_suppkey
- from
- orders o join
- (select s_name, l_orderkey, l_suppkey
- from
- nation n join supplier s
- on
- s.s_nationkey = n.n_nationkey
- join lineitem l
- on
- s.s_suppkey = l.l_suppkey
- where
- l.l_receiptdate > l.l_commitdate
- ) l1 on o.o_orderkey = l1.l_orderkey
- ) l2 on l2.l_orderkey = t1.l_orderkey
- ) a
- where
- (count_suppkey >= 0)
- ) l3 on l3.l_orderkey = t2.l_orderkey
- ) b
- )c
-group by s_name
-order by numwait desc, s_name
-limit 100;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q22_global_sales_opportunity.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q22_global_sales_opportunity.hive
deleted file mode 100644
index 851a8b4..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q22_global_sales_opportunity.hive
+++ /dev/null
@@ -1,60 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS q22_customer_tmp;
-DROP TABLE IF EXISTS q22_customer_tmp1;
-DROP TABLE IF EXISTS q22_orders_tmp;
-DROP TABLE IF EXISTS q22_global_sales_opportunity;
-
--- create tables and load data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-
--- create target tables
-create table q22_customer_tmp(c_acctbal double, c_custkey int, cntrycode string);
-create table q22_customer_tmp1(avg_acctbal double);
-create table q22_orders_tmp(o_custkey int);
-create table q22_global_sales_opportunity(cntrycode string, numcust int, totacctbal double);
-
--- the query
-insert overwrite table q22_customer_tmp
-select
- c_acctbal, c_custkey, substr(c_phone, 1, 2) as cntrycode
-from
- customer;
-
-insert overwrite table q22_customer_tmp1
-select
- avg(c_acctbal)
-from
- q22_customer_tmp
-where
- c_acctbal > 0.00;
-
-insert overwrite table q22_orders_tmp
-select
- o_custkey
-from
- orders
-group by
- o_custkey;
-
-insert overwrite table q22_global_sales_opportunity
-select
- cntrycode, count(1) as numcust, sum(c_acctbal) as totacctbal
-from
-(
- select cntrycode, c_acctbal, avg_acctbal from
- q22_customer_tmp1 ct1 join
- (
- select cntrycode, c_acctbal from
- q22_orders_tmp ot
- right outer join q22_customer_tmp ct
- on
- ct.c_custkey = ot.o_custkey
- ) ct2
-) a
-where
- c_acctbal > avg_acctbal
-group by cntrycode
-order by cntrycode;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q2_minimum_cost_supplier.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q2_minimum_cost_supplier.hive
deleted file mode 100644
index 200b99f..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q2_minimum_cost_supplier.hive
+++ /dev/null
@@ -1,56 +0,0 @@
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS region;
-DROP TABLE IF EXISTS q2_minimum_cost_supplier;
-DROP TABLE IF EXISTS q2_minimum_cost_supplier_tmp1;
-DROP TABLE IF EXISTS q2_minimum_cost_supplier_tmp2;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/region';
-
--- create result tables
-create table q2_minimum_cost_supplier_tmp1 (s_acctbal double, s_name string, n_name string, p_partkey int, ps_supplycost double, p_mfgr string, s_address string, s_phone string, s_comment string);
-create table q2_minimum_cost_supplier_tmp2 (p_partkey int, ps_min_supplycost double);
-create table q2_minimum_cost_supplier (s_acctbal double, s_name string, n_name string, p_partkey int, p_mfgr string, s_address string, s_phone string, s_comment string);
-
--- the query
-insert overwrite table q2_minimum_cost_supplier_tmp1
-select
- s.s_acctbal, s.s_name, n.n_name, p.p_partkey, ps.ps_supplycost, p.p_mfgr, s.s_address, s.s_phone, s.s_comment
-from
- nation n join region r
- on
- n.n_regionkey = r.r_regionkey and r.r_name = 'EUROPE'
- join supplier s
- on
-s.s_nationkey = n.n_nationkey
- join partsupp ps
- on
-s.s_suppkey = ps.ps_suppkey
- join part p
- on
- p.p_partkey = ps.ps_partkey and p.p_type like '%BRASS' ;
-
-insert overwrite table q2_minimum_cost_supplier_tmp2
-select
- p_partkey, min(ps_supplycost)
-from
- q2_minimum_cost_supplier_tmp1
-group by p_partkey;
-
-insert overwrite table q2_minimum_cost_supplier
-select
- t1.s_acctbal, t1.s_name, t1.n_name, t1.p_partkey, t1.p_mfgr, t1.s_address, t1.s_phone, t1.s_comment
-from
- q2_minimum_cost_supplier_tmp1 t1 join q2_minimum_cost_supplier_tmp2 t2
-on
- t1.p_partkey = t2.p_partkey and t1.ps_supplycost=t2.ps_min_supplycost
-order by s_acctbal desc, n_name, s_name, p_partkey
-limit 100;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q3_shipping_priority.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q3_shipping_priority.hive
deleted file mode 100644
index 0049eb3..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q3_shipping_priority.hive
+++ /dev/null
@@ -1,29 +0,0 @@
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS q3_shipping_priority;
-
--- create tables and load data
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-
--- create the target table
-create table q3_shipping_priority (l_orderkey int, revenue double, o_orderdate string, o_shippriority int);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1024000000;
-
--- the query
-Insert overwrite table q3_shipping_priority
-select
- l_orderkey, (l_extendedprice*(1-l_discount)) as revenue, o_orderdate, o_shippriority
-from
- customer c join orders o
- on c.c_mktsegment = 'BUILDING' and c.c_custkey = o.o_custkey
- join lineitem l
- on l.l_orderkey = o.o_orderkey and l.l_linenumber<3
--- group by l_orderkey, o_orderdate, o_shippriority
-order by revenue desc
-limit 10;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q4_order_priority.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q4_order_priority.hive
deleted file mode 100644
index aa828e9..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q4_order_priority.hive
+++ /dev/null
@@ -1,30 +0,0 @@
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS q4_order_priority_tmp;
-DROP TABLE IF EXISTS q4_order_priority;
-
--- create tables and load data
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the target table
-CREATE TABLE q4_order_priority_tmp (O_ORDERKEY INT);
-CREATE TABLE q4_order_priority (O_ORDERPRIORITY STRING, ORDER_COUNT INT);
-
-set mapred.min.split.size=536870912;
--- the query
-INSERT OVERWRITE TABLE q4_order_priority_tmp
-select
- DISTINCT l_orderkey
-from
- lineitem
-where
- l_commitdate < l_receiptdate;
-INSERT OVERWRITE TABLE q4_order_priority
-select o_orderpriority, count(1) as order_count
-from
- orders o join q4_order_priority_tmp t
- on
-o.o_orderkey = t.o_orderkey and o.o_orderdate >= '1993-07-01' and o.o_orderdate < '1993-10-01'
-group by o_orderpriority
-order by o_orderpriority;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q5_local_supplier_volume.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q5_local_supplier_volume.hive
deleted file mode 100644
index 9af2dd2..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q5_local_supplier_volume.hive
+++ /dev/null
@@ -1,42 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS region;
-DROP TABLE IF EXISTS q5_local_supplier_volume;
-
--- create tables and load data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/region';
-
--- create the target table
-create table q5_local_supplier_volume (N_NAME STRING, REVENUE DOUBLE);
-
-set mapred.min.split.size=536870912;
-
--- the query
-insert overwrite table q5_local_supplier_volume
-select
- n_name, sum(l_extendedprice * (1 - l_discount)) as revenue
-from
- customer c join
- ( select n_name, l_extendedprice, l_discount, s_nationkey, o_custkey from
- ( select n_name, l_extendedprice, l_discount, l_orderkey, s_nationkey from
- ( select n_name, s_suppkey, s_nationkey from
- ( select n_name, n_nationkey
- from nation n join region r
- on n.n_regionkey = r.r_regionkey
- ) n1 join supplier s on s.s_nationkey = n1.n_nationkey
- ) s1 join lineitem l on l.l_suppkey = s1.s_suppkey
- ) l1 join orders o on l1.l_orderkey = o.o_orderkey and o.o_orderdate >= '1990-01-01'
- and o.o_orderdate < '1995-01-01'
-) o1
-on c.c_nationkey = o1.s_nationkey and c.c_custkey = o1.o_custkey
-group by n_name
-order by revenue desc;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q6_forecast_revenue_change.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q6_forecast_revenue_change.hive
deleted file mode 100644
index d8cb9b9..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q6_forecast_revenue_change.hive
+++ /dev/null
@@ -1,21 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS q6_forecast_revenue_change;
-
--- create tables and load data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the target table
-create table q6_forecast_revenue_change (revenue double);
-
--- the query
-insert overwrite table q6_forecast_revenue_change
-select
- sum(l_extendedprice*l_discount) as revenue
-from
- lineitem
-where
- l_shipdate >= '1994-01-01'
- and l_shipdate < '1995-01-01'
- and l_discount >= 0.05 and l_discount <= 0.07
- and l_quantity < 24;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q7_volume_shipping.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q7_volume_shipping.hive
deleted file mode 100644
index 2678f80..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q7_volume_shipping.hive
+++ /dev/null
@@ -1,71 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q7_volume_shipping;
-DROP TABLE IF EXISTS q7_volume_shipping_tmp;
-
--- create tables and load data
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the target table
-create table q7_volume_shipping (supp_nation string, cust_nation string, l_year int, revenue double);
-create table q7_volume_shipping_tmp(supp_nation string, cust_nation string, s_nationkey int, c_nationkey int);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1225000000;
-
--- the query
-insert overwrite table q7_volume_shipping_tmp
-select
- *
-from
- (
- select
- n1.n_name as supp_nation, n2.n_name as cust_nation, n1.n_nationkey as s_nationkey,
- n2.n_nationkey as c_nationkey
-from
- nation n1 join nation n2
- on
- n2.n_name = 'GERMANY'
- UNION ALL
-select
- n1.n_name as supp_nation, n2.n_name as cust_nation, n1.n_nationkey as s_nationkey,
- n2.n_nationkey as c_nationkey
-from
- nation n1 join nation n2
- on
- n1.n_name = 'GERMANY'
-) a;
-
-insert overwrite table q7_volume_shipping
-select
- supp_nation, cust_nation, l_year, sum(volume) as revenue
-from
- (
- select
- supp_nation, cust_nation, year(l_shipdate) as l_year,
- l_extendedprice * (1 - l_discount) as volume
- from
- q7_volume_shipping_tmp t join
- (select l_shipdate, l_extendedprice, l_discount, c_nationkey, s_nationkey
- from supplier s join
- (select l_shipdate, l_extendedprice, l_discount, l_suppkey, c_nationkey
- from customer c join
- (select l_shipdate, l_extendedprice, l_discount, l_suppkey, o_custkey
- from orders o join lineitem l
- on
- o.o_orderkey = l.l_orderkey and l.l_shipdate >= '1992-01-01'
- and l.l_shipdate <= '1996-12-31'
- ) l1 on c.c_custkey = l1.o_custkey
- ) l2 on s.s_suppkey = l2.l_suppkey
- ) l3 on l3.c_nationkey = t.c_nationkey and l3.s_nationkey = t.s_nationkey
- ) shipping
-group by supp_nation, cust_nation, l_year
-order by supp_nation, cust_nation, l_year;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q8_national_market_share.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q8_national_market_share.hive
deleted file mode 100644
index 4d9d36f..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q8_national_market_share.hive
+++ /dev/null
@@ -1,56 +0,0 @@
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS region;
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS q8_national_market_share;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create external table region (R_REGIONKEY INT, R_NAME STRING, R_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/region';
-
--- create the result table
-create table q8_national_market_share(o_year string, mkt_share double);
-
--- the query
-insert overwrite table q8_national_market_share
-select
- o_year, sum(case when nation = 'BRAZIL' then volume else 0.0 end) / sum(volume) as mkt_share
-from
- (
-select
- year(o_orderdate) as o_year, l_extendedprice * (1-l_discount) as volume,
- n2.n_name as nation
- from
- nation n2 join
- (select o_orderdate, l_discount, l_extendedprice, s_nationkey
- from
- (select o_orderdate, l_discount, l_extendedprice, l_suppkey
- from part p join
- (select o_orderdate, l_partkey, l_discount, l_extendedprice, l_suppkey
- from
- (select o_orderdate, o_orderkey
- from
- (select c.c_custkey
- from
- (select n1.n_nationkey
- from nation n1 join region r
- on n1.n_regionkey = r.r_regionkey and r.r_name = 'AMERICA'
- ) n11 join customer c on c.c_nationkey = n11.n_nationkey
- ) c1 join orders o on c1.c_custkey = o.o_custkey
- ) o1 join lineitem l on l.l_orderkey = o1.o_orderkey and o1.o_orderdate >= '1995-01-01'
- and o1.o_orderdate < '1996-12-31'
- ) l1 on p.p_partkey = l1.l_partkey and p.p_type = 'ECONOMY ANODIZED STEEL'
- ) p1 join supplier s on s.s_suppkey = p1.l_suppkey
- ) s1 on s1.s_nationkey = n2.n_nationkey
- ) all_nation
-group by o_year
-order by o_year;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/q9_product_type_profit.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/q9_product_type_profit.hive
deleted file mode 100644
index 2e5b4a1..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/q9_product_type_profit.hive
+++ /dev/null
@@ -1,50 +0,0 @@
-DROP TABLE IF EXISTS part;
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS supplier;
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS partsupp;
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS q9_product_type_profit;
-
--- create the tables and load the data
-create external table part (P_PARTKEY INT, P_NAME STRING, P_MFGR STRING, P_BRAND STRING, P_TYPE STRING, P_SIZE INT, P_CONTAINER STRING, P_RETAILPRICE DOUBLE, P_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/part';
-Create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create external table partsupp (PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DOUBLE, PS_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION'/tpch/partsupp';
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the result table
-create table q9_product_type_profit (nation string, o_year string, sum_profit double);
-
-set mapred.min.split.size=536870912;
-set hive.exec.reducers.bytes.per.reducer=1024000000;
-
--- the query
-insert overwrite table q9_product_type_profit
-select
- nation, o_year, sum(amount) as sum_profit
-from
- (
-select
- n_name as nation, year(o_orderdate) as o_year,
- l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount
- from
- (select l_extendedprice, l_discount, l_quantity, l_orderkey, n_name, ps_supplycost
- from part p join
- (select l_extendedprice, l_discount, l_quantity, l_partkey, l_orderkey,
- n_name, ps_supplycost
- from partsupp ps join
- (select l_suppkey, l_extendedprice, l_discount, l_quantity, l_partkey,
- l_orderkey, n_name
- from
- (select s_suppkey, n_name
- from nation n join supplier s on n.n_nationkey = s.s_nationkey
- ) s1 join lineitem l on s1.s_suppkey = l.l_suppkey
- ) l1 on ps.ps_suppkey = l1.l_suppkey and ps.ps_partkey = l1.l_partkey
- ) l2 on p.p_name like '%green%' and p.p_partkey = l2.l_partkey
- ) l3 join orders o on o.o_orderkey = l3.l_orderkey
- )profit
-group by nation, o_year
-order by nation, o_year desc;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u10_join.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u10_join.hive
deleted file mode 100644
index 1d901c2..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u10_join.hive
+++ /dev/null
@@ -1,15 +0,0 @@
-DROP TABLE IF EXISTS orders;
-DROP TABLE IF EXISTS customer;
-DROP TABLE IF EXISTS u10_join;
-
--- create the tables and load the data
-create external table orders (O_ORDERKEY INT, O_CUSTKEY INT, O_ORDERSTATUS STRING, O_TOTALPRICE DOUBLE, O_ORDERDATE STRING, O_ORDERPRIORITY STRING, O_CLERK STRING, O_SHIPPRIORITY INT, O_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/orders';
-create external table customer (C_CUSTKEY INT, C_NAME STRING, C_ADDRESS STRING, C_NATIONKEY INT, C_PHONE STRING, C_ACCTBAL DOUBLE, C_MKTSEGMENT STRING, C_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/customer';
-
-create table u10_join(O_ORDERSTATUS STRING);
-
-insert overwrite table u10_join
-select O_TOTALPRICE
-from orders join customer
-on orders.O_CUSTKEY=customer.C_CUSTKEY
-order by O_TOTALPRICE;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u10_nestedloop_join.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u10_nestedloop_join.hive
deleted file mode 100644
index 8fc0a7a..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u10_nestedloop_join.hive
+++ /dev/null
@@ -1,21 +0,0 @@
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS u10_nestedloop_join;
-
--- create tables and load data
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-
--- create the target table
-create table u10_nestedloop_join(supp_nation string, cust_nation string, s_nationkey int, c_nationkey int);
-
--- the query
-insert overwrite table u10_nestedloop_join
-select
- *
-from
- (
- select
- n1.n_name as supp_nation, n2.n_name as cust_nation, n1.n_nationkey as s_nationkey,
- n2.n_nationkey as c_nationkey
-from
- nation n1 join nation n2 where n1.n_nationkey > n2.n_nationkey
-) a order by a.supp_nation, a.cust_nation;
\ No newline at end of file
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u1_gby.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u1_gby.hive
deleted file mode 100644
index 6e53d01..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u1_gby.hive
+++ /dev/null
@@ -1,11 +0,0 @@
-DROP TABLE IF EXISTS nation;
-DROP TABLE IF EXISTS u1_gby;
-
--- create tables and load data
-create external table nation (N_NATIONKEY INT, N_NAME STRING, N_REGIONKEY INT, N_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/nation';
-create table u1_gby(col1 INT, col2 INT);
-
-insert overwrite table u1_gby select N_REGIONKEY, count(1)
-from nation
-group by N_REGIONKEY
-order by N_REGIONKEY;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u2_gby_external.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u2_gby_external.hive
deleted file mode 100644
index be9de2d..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u2_gby_external.hive
+++ /dev/null
@@ -1,19 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS u2_gby_external;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the result tables
-create table u2_gby_external(l_partkey int, t_sum_quantity double);
-
--- the query
-insert overwrite table u2_gby_external
-select
- l_orderkey, avg(L_QUANTITY) as t_sum_quantity
-from
- lineitem
-group by l_orderkey
-order by l_orderkey desc
-limit 10;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u3_union.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u3_union.hive
deleted file mode 100644
index 99d62df..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u3_union.hive
+++ /dev/null
@@ -1,11 +0,0 @@
-drop table IF EXISTS supplier;
-drop table IF EXISTS u3_union;
-
-create external table supplier (S_SUPPKEY INT, S_NAME STRING, S_ADDRESS STRING, S_NATIONKEY INT, S_PHONE STRING, S_ACCTBAL DOUBLE, S_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/supplier';
-create table u3_union (S_SUPPKEY INT, S_ADDRESS STRING, S_NATIONKEY INT, S_NAME STRING);
-
-insert overwrite table u3_union
-select * from (select (2*s_suppkey), s_address, s_nationkey, s_name FROM supplier where S_SUPPKEY*2 < 20
-union all
-select (2*s_suppkey), s_address, s_nationkey, s_name FROM supplier where S_SUPPKEY*2 > 50) t
-order by t.s_address;
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u4_gby_distinct.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u4_gby_distinct.hive
deleted file mode 100644
index 6cd4a5b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u4_gby_distinct.hive
+++ /dev/null
@@ -1,19 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS u4_gby_distinct;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the result tables
-create table u4_gby_distinct(l_partkey int, t_sum_quantity double);
-
--- the query
-insert overwrite table u4_gby_distinct
-select
- l_orderkey, avg(distinct L_QUANTITY) as t_sum_quantity
-from
- lineitem
-group by l_orderkey
-order by l_orderkey desc
-limit 10;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u5_gby_global.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u5_gby_global.hive
deleted file mode 100644
index cef7e2b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u5_gby_global.hive
+++ /dev/null
@@ -1,16 +0,0 @@
-DROP TABLE IF EXISTS lineitem;
-DROP TABLE IF EXISTS u5_gby_global;
-
--- create the tables and load the data
-create external table lineitem (L_ORDERKEY INT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DOUBLE, L_EXTENDEDPRICE DOUBLE, L_DISCOUNT DOUBLE, L_TAX DOUBLE, L_RETURNFLAG STRING, L_LINESTATUS STRING, L_SHIPDATE STRING, L_COMMITDATE STRING, L_RECEIPTDATE STRING, L_SHIPINSTRUCT STRING, L_SHIPMODE STRING, L_COMMENT STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/tpch/lineitem';
-
--- create the result tables
-create table u5_gby_global(t_sum_quantity double);
-
--- the query
-insert overwrite table u5_gby_global
-select
- sum(L_QUANTITY) as t_sum_quantity
-from
- lineitem;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/queries/u6_large_card_join.hive b/hivesterix/src/test/resources/runtimefunctionts/queries/u6_large_card_join.hive
deleted file mode 100644
index 5bf560b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/queries/u6_large_card_join.hive
+++ /dev/null
@@ -1,23 +0,0 @@
-DROP TABLE IF EXISTS joinsrc1;
-DROP TABLE IF EXISTS joinsrc2;
-DROP TABLE IF EXISTS u6_large_card_join;
-
--- create the tables and load the data
-create external table joinsrc1 (ID_1 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE LOCATION '/test/joinsrc1';
-
-create external table joinsrc2 (ID_2 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
-STORED AS TEXTFILE LOCATION '/test/joinsrc2';
-
--- create the result tables
-create table u6_large_card_join(col1 int, col2 int);
-
--- the query
-insert overwrite table u6_large_card_join
-select
- ID_1, ID_2
-from
- joinsrc1 join joinsrc2
-on
- joinsrc1.ID_1=joinsrc2.ID_2;
-
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q10_returned_item.result b/hivesterix/src/test/resources/runtimefunctionts/results/q10_returned_item.result
deleted file mode 100644
index 6cc8ef4..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q10_returned_item.result
+++ /dev/null
@@ -1,20 +0,0 @@
-121Customer#000000121282635.171899999966428.32PERUtv nCR2YKupGN73mQudO27-411-990-2959uriously stealthy ideas. carefully final courts use carefully
-124Customer#000000124222182.51881842.49CHINAaTbyVAW5tCd,v09O28-183-750-7809le fluffily even dependencies. quietly s
-106Customer#000000106190241.33343288.42ARGENTINAxGCOEAUjUNG11-751-989-4627lose slyly. ironic accounts along the evenly regular theodolites wake about the special, final gifts.
-16Customer#000000016161422.046099999984681.03IRANcYiaeMLZSMAOQ2 d0W,20-781-609-3107kly silent courts. thinly regular theodolites sleep fluffily after
-44Customer#000000044149364.565199999987315.94MOZAMBIQUEOi,dOSPwDu4jo4x,,P85E0dmhZGvNtBwi26-190-260-5375r requests around the unusual, bold a
-71Customer#000000071129481.02450000001-611.19GERMANYTlGalgdXWBmMV,6agLyWYDyIz9MKzcY8gl,w6t1B17-710-812-5403g courts across the regular, final pinto beans are blithely pending ac
-89Customer#000000089121663.12431530.76KENYAdtR, y9JQWUO6FoJExyp8whOU24-394-451-5404counts are slyly beyond the slyly final accounts. quickly final ideas wake. r
-112Customer#000000112111137.714099999982953.35ROMANIARcfgG3bO7QeCnfjqJT129-233-262-8382rmanently unusual multipliers. blithely ruthless deposits are furiously along the
-62Customer#000000062106368.0153595.61GERMANYupJK2Dnw13,17-361-978-7059kly special dolphins. pinto beans are slyly. quickly regular accounts are furiously a
-146Customer#000000146103265.988799999993328.68CANADAGdxkdXG9u7iyI1,,y5tq4ZyrcEy13-835-723-3223ffily regular dinos are slyly unusual requests. slyly specia
-19Customer#00000001999306.012700000028914.71CHINAuc,3bHIx84H,wdrmLOjVsiqXCq2tr28-396-526-5053 nag. furiously careful packages are slyly at the accounts. furiously regular in
-145Customer#00000014599256.90189748.93JORDANkQjHmt2kcec cy3hfMh969u23-562-444-8454ests? express, express instructions use. blithely fina
-103Customer#00000010397311.772400000022757.45INDONESIA8KIsQX4LJ7QMsj6DrtFtXu0nUEdV,8a19-216-107-2107furiously pending notornis boost slyly around the blithely ironic ideas? final, even instructions cajole fl
-136Customer#00000013695855.39799999999-842.39GERMANYQoLsJ0v5C1IQbh,DS117-501-210-4726ackages sleep ironic, final courts. even requests above the blithely bold requests g
-53Customer#00000005392568.91244113.64MOROCCOHnaxHzTfFTZs8MuCpJyTbZ47Cm4wFOOgib25-168-852-5363ar accounts are. even foxes are blithely. fluffily pending deposits boost
-49Customer#00000004990965.72624573.94IRANcNgAeX7Fqrdf7HQN9EwjUa4nxT,68L FKAxzl20-908-631-4424nusual foxes! fluffily pending packages maintain to the regular
-37Customer#00000003788065.74579999999-917.75INDIA7EV4Pwh,3SboctTWt18-385-235-7162ilent packages are carefully among the deposits. furiousl
-82Customer#00000008286998.96449468.34CHINAzhG3EZbap4c992Gj3bK,3Ne,Xn28-159-442-5305s wake. bravely regular accounts are furiously. regula
-125Customer#00000012584808.068-234.12ROMANIA,wSZXdVR xxIIfm9s8ITyLl3kgjT6UC07GY0Y29-261-996-3120x-ray finally after the packages? regular requests c
-59Customer#00000005984655.57113458.6ARGENTINAzLOCP0wh92OtBihgspOGl411-355-584-3112ously final packages haggle blithely after the express deposits. furiou
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q11_important_stock.result b/hivesterix/src/test/resources/runtimefunctionts/results/q11_important_stock.result
deleted file mode 100644
index cdc01d2..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q11_important_stock.result
+++ /dev/null
@@ -1,200 +0,0 @@
-252.832302068E7
-1242.59627599E7
-1752.385395363E7
-1972.248551967E7
-1632.099460571E7
-1602.00232846E7
-821.9919213349999998E7
-1691.898734723E7
-291.867279344E7
-261.8612458270000003E7
-731.827170729E7
-1611.798746301E7
-751.7959598009999998E7
-341.7780838360000003E7
-981.7763191509999998E7
-691.728526943E7
-1111.708388262E7
-1711.635442066E7
-1661.635189374E7
-771.598059909E7
-781.58768992E7
-1431.585686159E7
-171.5474261120000001E7
-1091.5054682620000001E7
-1051.5053163809999999E7
-961.495213259E7
-1461.4810759440000001E7
-1361.4654967749999998E7
-1161.443209134E7
-1281.4393555260000002E7
-1421.422039904E7
-1211.420032605E7
-301.4163132409999998E7
-161.413646503E7
-1981.413535335E7
-791.38652287E7
-901.3732797480000002E7
-321.369962979E7
-741.3388711109999998E7
-11.3378707239999998E7
-891.337148041E7
-221.335499174E7
-1861.317604077E7
-1891.305492542E7
-141.299397721E7
-931.299298218E7
-1681.299041501E7
-991.2750046790000001E7
-1671.268255069E7
-21.258471636E7
-1821.256239411E7
-611.253677656E7
-1121.234957975E7
-1781.2260301739999998E7
-1721.219775193E7
-1651.219746506E7
-1841.216784393E7
-1871.214970141E7
-1531.211935422E7
-951.20468895E7
-111.200715156E7
-1251.200347611E7
-1541.1851133850000001E7
-151.179843879E7
-671.178579951E7
-81.170789262E7
-871.168637671E7
-1341.1683586929999998E7
-1301.168246149E7
-431.161150462E7
-1021.151554211E7
-211.141066856E7
-621.138927324E7
-91.126484373E7
-801.118329032E7
-1731.1026774860000001E7
-941.092440116E7
-31.075814545E7
-1031.0691221600000001E7
-1581.067861635E7
-491.06445572E7
-1391.044045371E7
-1921.035745974E7
-241.033911936E7
-391.03210148E7
-1561.014364082E7
-1881.011906085E7
-121.0108587399999999E7
-331.005296264E7
-281.005234286E7
-409927827.77
-1999907803.559999999
-1939869674.77
-1069869361.73
-1089868370.31
-1839855564.82
-709700431.94
-489655921.88
-1189622756.149999999
-139592610.32
-839543465.079999998
-1599519909.44
-1479513932.18
-459423874.47
-1179408426.72
-1359311247.28
-1859305341.780000001
-1319223742.49
-79175528.209999999
-719167712.04
-1009131099.530000001
-769092927.110000001
-538979121.97
-1418686511.12
-648627897.290000001
-1018521762.0
-1768510175.88
-198481679.5
-1948464559.54
-918460636.52
-1328416851.24
-1138405217.959999999
-518247118.499999999
-418187897.16
-558092552.890000001
-728007155.3
-1157954624.0
-1707895241.609999999
-1147832023.279999999
-377809598.66
-547578243.79
-1807531794.4799999995
-607508961.6899999995
-317433034.240000001
-357132671.49
-1407122050.08
-1507106237.92
-1077082828.68
-1237049500.720000001
-1907017966.9
-1206920857.09
-1966905182.43
-1776887257.27
-1266813302.029999999
-1226812763.340000001
-2006780024.53
-1576766365.68
-636724960.14
-386667789.55
-586640619.38
-1456633786.590000001
-1446546945.92
-206533101.39
-1276483139.620000001
-106433776.51
-366410209.249999999
-476407355.369999999
-1916347187.43
-1376180452.850000001
-566145826.6
-1046134341.850000001
-446038126.659999999
-976036047.1899999995
-1815853464.149999999
-1625829410.54
-865746713.88
-525680644.4799999995
-1555552007.57
-925489588.28
-55461046.93
-185456316.21
-1495367514.630000001
-1105261352.11
-45162989.07
-65120392.47
-1485061589.27
-424957032.47
-1194954403.48
-844891082.38
-654834763.09
-664719253.369999999
-1794610607.92
-234531731.12
-684504770.61
-274371849.52
-1293997604.7800000003
-1953817436.31
-593765210.2100000004
-573739347.1199999996
-1383567425.75
-1743484708.31
-1643462215.0
-813421610.4200000004
-463398443.33
-853338711.3899999997
-503145791.97
-883117730.2399999998
-1512727444.22
-1521837809.1700000002
-1331517282.33
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q12_shipping.result b/hivesterix/src/test/resources/runtimefunctionts/results/q12_shipping.result
deleted file mode 100644
index bb95677..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q12_shipping.result
+++ /dev/null
@@ -1,2 +0,0 @@
-MAIL5.05.0
-SHIP5.010.0
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q13_customer_distribution.result b/hivesterix/src/test/resources/runtimefunctionts/results/q13_customer_distribution.result
deleted file mode 100644
index beaa047..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q13_customer_distribution.result
+++ /dev/null
@@ -1,27 +0,0 @@
-050
-168
-177
-206
-136
-126
-96
-235
-145
-105
-214
-184
-114
-84
-74
-263
-223
-63
-53
-43
-292
-242
-192
-152
-281
-251
-31
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q14_promotion_effect.result b/hivesterix/src/test/resources/runtimefunctionts/results/q14_promotion_effect.result
deleted file mode 100644
index 3b823e7..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q14_promotion_effect.result
+++ /dev/null
@@ -1 +0,0 @@
-15.230212611597251
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q15_top_supplier.result b/hivesterix/src/test/resources/runtimefunctionts/results/q15_top_supplier.result
deleted file mode 100644
index d975521..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q15_top_supplier.result
+++ /dev/null
@@ -1 +0,0 @@
-10Supplier#000000010Saygah3gYWMp72i PY34-852-489-8585797313.3838
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q16_parts_supplier_relationship.result b/hivesterix/src/test/resources/runtimefunctionts/results/q16_parts_supplier_relationship.result
deleted file mode 100644
index 393a33a..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q16_parts_supplier_relationship.result
+++ /dev/null
@@ -1,34 +0,0 @@
-Brand#11PROMO ANODIZED TIN454
-Brand#11SMALL PLATED COPPER454
-Brand#11STANDARD POLISHED TIN454
-Brand#13MEDIUM ANODIZED STEEL364
-Brand#14SMALL ANODIZED NICKEL454
-Brand#15LARGE ANODIZED BRASS454
-Brand#21LARGE BURNISHED COPPER194
-Brand#23ECONOMY BRUSHED COPPER94
-Brand#25MEDIUM PLATED BRASS454
-Brand#31ECONOMY PLATED STEEL234
-Brand#31PROMO POLISHED TIN234
-Brand#32MEDIUM BURNISHED BRASS494
-Brand#33LARGE BRUSHED TIN364
-Brand#33SMALL BURNISHED NICKEL34
-Brand#34LARGE PLATED BRASS454
-Brand#34MEDIUM BRUSHED COPPER94
-Brand#34SMALL PLATED BRASS144
-Brand#35STANDARD ANODIZED STEEL234
-Brand#43PROMO POLISHED BRASS194
-Brand#43SMALL BRUSHED NICKEL94
-Brand#44SMALL PLATED COPPER194
-Brand#52MEDIUM BURNISHED TIN454
-Brand#52SMALL BURNISHED NICKEL144
-Brand#53MEDIUM BRUSHED COPPER34
-Brand#55STANDARD ANODIZED BRASS364
-Brand#55STANDARD BRUSHED COPPER34
-Brand#13SMALL BRUSHED NICKEL192
-Brand#25SMALL BURNISHED COPPER32
-Brand#43MEDIUM ANODIZED BRASS142
-Brand#53STANDARD PLATED STEEL452
-Brand#24MEDIUM PLATED STEEL191
-Brand#51ECONOMY POLISHED STEEL491
-Brand#53LARGE BURNISHED NICKEL231
-Brand#54ECONOMY ANODIZED BRASS91
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q17_small_quantity_order_revenue.result b/hivesterix/src/test/resources/runtimefunctionts/results/q17_small_quantity_order_revenue.result
deleted file mode 100644
index ccfa2e3..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q17_small_quantity_order_revenue.result
+++ /dev/null
@@ -1 +0,0 @@
-863.2285714285715
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q18_large_volume_customer.result b/hivesterix/src/test/resources/runtimefunctionts/results/q18_large_volume_customer.result
deleted file mode 100644
index 32d3515..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q18_large_volume_customer.result
+++ /dev/null
@@ -1,100 +0,0 @@
-Customer#0000000707025671998-02-27263411.29266.0
-Customer#0000000101044211997-04-04258779.02255.0
-Customer#0000000525257651994-12-15249900.42247.0
-Customer#0000000828234601995-10-03245976.74254.0
-Customer#0000000686822081995-05-01245388.06256.0
-Customer#0000000282823061995-07-26244704.23235.0
-Customer#00000014614659251995-11-13242588.87242.0
-Customer#0000000292911211997-01-13241837.88242.0
-Customer#0000000676739071992-08-19240457.56239.0
-Customer#0000000767651581997-01-21240284.95248.0
-Customer#00000013113144841996-12-24237947.61243.0
-Customer#0000001151156451994-12-03234763.73245.0
-Customer#0000000494942941992-08-15232194.74225.0
-Customer#0000000767614771997-08-24231831.35236.0
-Customer#0000000444446451994-09-20231012.22248.0
-Customer#0000000898959571993-12-27230949.45242.0
-Customer#000000076763261995-06-04229165.17228.0
-Customer#000000067679281995-03-02228136.49241.0
-Customer#0000000797938081994-04-24228054.01227.0
-Customer#0000000373753171994-09-09228002.51231.0
-Customer#00000000443581993-09-20226806.66223.0
-Customer#00000014214256991992-07-30226314.91240.0
-Customer#00000012112118881993-10-31224724.11225.0
-Customer#0000000949426901996-03-31224674.27219.0
-Customer#0000000949454131997-10-17224382.57212.0
-Customer#0000000323253811993-01-29223995.46228.0
-Customer#0000001451455181998-02-08223537.09214.0
-Customer#0000000292929451996-01-03223507.72231.0
-Customer#000000007736541992-06-03222653.54222.0
-Customer#0000001451458071993-11-24222392.53216.0
-Customer#00000014914936191996-11-20222274.54221.0
-Customer#0000000707054721993-04-11221636.83217.0
-Customer#00000013713749001992-06-30221320.76227.0
-Customer#00000010610637781993-05-26221036.31225.0
-Customer#00000012112111531996-04-18220727.97209.0
-Customer#0000000707040041993-05-07220715.14228.0
-Customer#000000098987681996-08-20220636.82231.0
-Customer#00000014914956061996-11-12219959.08231.0
-Customer#000000055554841997-01-03219920.62224.0
-Customer#00000014014042301992-03-04219709.6217.0
-Customer#00000008282391996-09-20219707.84231.0
-Customer#0000000373727891998-03-14219123.27218.0
-Customer#0000000171732691996-03-01218697.85220.0
-Customer#00000014914935901995-05-13218482.7210.0
-Customer#0000001341346141992-12-01218116.21204.0
-Customer#0000000929241971996-08-13217709.03225.0
-Customer#00000013313311561996-10-19217682.81218.0
-Customer#000000046464531997-05-26216826.73226.0
-Customer#00000012412431091993-07-24216104.85210.0
-Customer#0000000434349941996-06-29216071.76213.0
-Customer#00000014914937131998-05-07215342.63213.0
-Customer#00000002929681998-04-18215135.72213.0
-Customer#0000000131324381993-07-15214494.39210.0
-Customer#00000013313346131998-03-05212339.55214.0
-Customer#00000010610617611993-12-24211925.95218.0
-Customer#0000000494912481992-01-02210713.88207.0
-Customer#000000005558591997-04-23210643.96211.0
-Customer#00000010610618271996-06-22210113.88205.0
-Customer#0000000858551841998-07-20209155.48213.0
-Customer#0000001331337101993-01-02208974.42196.0
-Customer#0000000525251861996-08-03208892.63210.0
-Customer#0000000282820501994-06-02208517.98217.0
-Customer#0000000767621801996-09-14208481.57212.0
-Customer#00000011911935881995-03-19207925.83212.0
-Customer#00000013413414441994-12-06207907.6205.0
-Customer#0000001031037421994-12-23207632.55198.0
-Customer#0000000171740991992-08-21207364.8208.0
-Customer#00000010910912861993-05-14207291.83200.0
-Customer#0000000797956331998-05-31207119.83203.0
-Customer#0000000626220221992-03-15206742.11209.0
-Customer#0000000222245831994-09-25206495.43197.0
-Customer#00000014814851851997-07-25206179.68198.0
-Customer#0000000444431751994-07-15205282.63215.0
-Customer#0000000565625651998-02-28204438.57201.0
-Customer#00000014914937471996-08-20204355.65195.0
-Customer#00000010110149641997-07-28204163.1197.0
-Customer#0000000626249921992-05-10203904.8198.0
-Customer#0000000101037511994-04-27202917.72204.0
-Customer#0000000767625341996-07-17202784.54214.0
-Customer#00000000111641992-10-21202660.52213.0
-Customer#00000011811812831996-08-30202623.92200.0
-Customer#0000000101018901996-12-18202364.58207.0
-Customer#0000000777717621994-08-20202227.17216.0
-Customer#00000010610641961998-05-15201455.98198.0
-Customer#0000000646458951997-01-01201419.83200.0
-Customer#00000000886441992-05-01201268.06202.0
-Customer#000000047472611993-06-29201003.12200.0
-Customer#0000000797946721995-11-07199593.71203.0
-Customer#0000001311319301994-12-17199102.23204.0
-Customer#00000011811841611993-08-21198995.21211.0
-Customer#0000000737340691992-05-13198816.13199.0
-Customer#00000014214256961995-05-04198723.3198.0
-Customer#00000013413438721996-09-06198538.68207.0
-Customer#00000012712710591994-02-27198360.22194.0
-Customer#00000010310342931996-08-20198322.91202.0
-Customer#000000080809931995-09-10198238.65194.0
-Customer#000000091914201995-10-31198039.23200.0
-Customer#0000000929233331992-09-16197973.22195.0
-Customer#00000014614641921998-04-19197192.95209.0
-Customer#00000014514515751995-09-13197031.52204.0
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q19_discounted_revenue.result b/hivesterix/src/test/resources/runtimefunctionts/results/q19_discounted_revenue.result
deleted file mode 100644
index 2e44572..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q19_discounted_revenue.result
+++ /dev/null
@@ -1 +0,0 @@
-51515.7344
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q1_pricing_summary_report.result b/hivesterix/src/test/resources/runtimefunctionts/results/q1_pricing_summary_report.result
deleted file mode 100644
index c1a7b06..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q1_pricing_summary_report.result
+++ /dev/null
@@ -1,4 +0,0 @@
-AF37474.03.756962464000004E73.567619209699997E73.7101416222424E725.35453315290933725419.2318267929880.0508660351826793961478
-NF1041.01041301.07999060.89799999991036450.8022827.39473684210526427402.6597368421030.0428947368421052638
-NO75168.07.538495536999999E77.165316630340007E77.4498798133073E725.55865351921115225632.4227711662680.049697381842910722941
-RF36511.03.657084124000003E73.473847287579999E73.616906011219296E725.05902539464653225100.09693891560.050027453671928671457
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q20_potential_part_promotion.result b/hivesterix/src/test/resources/runtimefunctionts/results/q20_potential_part_promotion.result
deleted file mode 100644
index d808757..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q20_potential_part_promotion.result
+++ /dev/null
@@ -1,10 +0,0 @@
-Supplier#000000001 N kD4on9OM Ipw3,gf0JBoQDd7tgrzrddZ
-Supplier#00000000289eJ5ksX3ImxJQBvxObC,
-Supplier#000000003q1,G3Pj6OjIuUYfUoH18BFTKP5aU9bEV3
-Supplier#000000004Bk7ah4CK8SYQTepEmvMkkgMwg
-Supplier#000000005Gcdm2rJRzl5qlTVzc
-Supplier#000000006tQxuVm7s7CnK
-Supplier#000000007s,4TicNGB4uO6PaSqNBUq
-Supplier#0000000089Sq4bBH2FQEmaFOocY45sRTxo6yuoG
-Supplier#0000000091KhUgZegwM3ua7dsYmekYBsK
-Supplier#000000010Saygah3gYWMp72i PY
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q21_suppliers_who_kept_orders_waiting.result b/hivesterix/src/test/resources/runtimefunctionts/results/q21_suppliers_who_kept_orders_waiting.result
deleted file mode 100644
index 50fa26f..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q21_suppliers_who_kept_orders_waiting.result
+++ /dev/null
@@ -1,10 +0,0 @@
-Supplier#000000007431
-Supplier#000000005417
-Supplier#000000001403
-Supplier#000000009373
-Supplier#000000004367
-Supplier#000000002364
-Supplier#000000010358
-Supplier#000000003349
-Supplier#000000008347
-Supplier#000000006343
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q22_global_sales_opportunity.result b/hivesterix/src/test/resources/runtimefunctionts/results/q22_global_sales_opportunity.result
deleted file mode 100644
index 08bcd0c..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q22_global_sales_opportunity.result
+++ /dev/null
@@ -1,23 +0,0 @@
-10320747.13
-11535208.880000000005
-12213735.27
-13213545.3
-1419963.15
-15214624.84
-16211239.02
-1719127.27
-18322156.91
-19643758.41
-20323085.67
-21319400.52
-22320332.18
-23325483.06
-25319038.36
-26538943.899999999994
-27213248.06
-28542700.5
-29436059.009999999995
-30217528.46
-31323599.11
-32425754.22
-33320359.59
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q2_minimum_cost_supplier.result b/hivesterix/src/test/resources/runtimefunctionts/results/q2_minimum_cost_supplier.result
deleted file mode 100644
index 402ecf3..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q2_minimum_cost_supplier.result
+++ /dev/null
@@ -1,11 +0,0 @@
-6820.35Supplier#000000007UNITED KINGDOM2Manufacturer#1s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM4Manufacturer#3s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM22Manufacturer#4s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM62Manufacturer#3s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM79Manufacturer#4s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM94Manufacturer#3s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM102Manufacturer#3s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM106Manufacturer#3s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM131Manufacturer#5s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM159Manufacturer#4s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
-6820.35Supplier#000000007UNITED KINGDOM193Manufacturer#4s,4TicNGB4uO6PaSqNBUq33-990-965-2201s unwind silently furiously regular courts. final requests are deposits. requests wake quietly blit
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q3_shipping_priority.result b/hivesterix/src/test/resources/runtimefunctionts/results/q3_shipping_priority.result
deleted file mode 100644
index 94b2cb9..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q3_shipping_priority.result
+++ /dev/null
@@ -1,10 +0,0 @@
-157454559.51996-12-120
-301253664.311993-05-050
-115353458.01996-04-180
-128452830.331996-01-070
-317151436.9351993-04-060
-32350547.61994-03-260
-153749641.821992-02-150
-205148951.7775999999941996-03-180
-128648603.9036000000051993-05-140
-61448531.71521992-12-010
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q4_order_priority.result b/hivesterix/src/test/resources/runtimefunctionts/results/q4_order_priority.result
deleted file mode 100644
index 0e757ee..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q4_order_priority.result
+++ /dev/null
@@ -1,5 +0,0 @@
-1-URGENT9
-2-HIGH7
-3-MEDIUM9
-4-NOT SPECIFIED8
-5-LOW12
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q5_local_supplier_volume.result b/hivesterix/src/test/resources/runtimefunctionts/results/q5_local_supplier_volume.result
deleted file mode 100644
index ecdf467..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q5_local_supplier_volume.result
+++ /dev/null
@@ -1,8 +0,0 @@
-PERU1099912.8209
-MOROCCO520107.17919999996
-IRAN375610.964
-IRAQ364417.398
-ETHIOPIA253825.7622
-ARGENTINA102659.0106
-UNITED KINGDOM61065.8711
-KENYA29679.393200000002
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q6_forecast_revenue_change.result b/hivesterix/src/test/resources/runtimefunctionts/results/q6_forecast_revenue_change.result
deleted file mode 100644
index 45bb483..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q6_forecast_revenue_change.result
+++ /dev/null
@@ -1 +0,0 @@
-77949.91860000002
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q7_volume_shipping.result b/hivesterix/src/test/resources/runtimefunctionts/results/q7_volume_shipping.result
deleted file mode 100644
index c4cfceee..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q7_volume_shipping.result
+++ /dev/null
@@ -1,37 +0,0 @@
-ARGENTINAGERMANY199263089.1006
-ARGENTINAGERMANY199364024.4532
-ARGENTINAGERMANY199432719.877199999995
-ARGENTINAGERMANY199563729.862400000005
-ARGENTINAGERMANY19961801.8198
-ETHIOPIAGERMANY199274693.317
-ETHIOPIAGERMANY199313733.706600000001
-ETHIOPIAGERMANY199483631.40359999999
-ETHIOPIAGERMANY199569329.67199999999
-ETHIOPIAGERMANY199642017.435999999994
-IRANGERMANY199238014.335399999996
-IRANGERMANY1994252152.5927
-IRANGERMANY19959106.957199999999
-IRAQGERMANY199268040.7747
-IRAQGERMANY19933676.8004
-IRAQGERMANY199485948.85280000001
-IRAQGERMANY199566380.2488
-KENYAGERMANY199277164.5422
-KENYAGERMANY199363792.8736
-KENYAGERMANY199474537.6256
-KENYAGERMANY199537851.309
-KENYAGERMANY199618467.316
-MOROCCOGERMANY199289669.69080000001
-MOROCCOGERMANY1994173726.0087
-MOROCCOGERMANY199537169.8497
-PERUGERMANY1992226624.7652
-PERUGERMANY199358359.3076
-PERUGERMANY1994345376.2983
-PERUGERMANY199552968.9424
-PERUGERMANY19967960.72
-UNITED KINGDOMGERMANY1992100143.32140000002
-UNITED KINGDOMGERMANY199341582.5227
-UNITED KINGDOMGERMANY1994164740.3271
-UNITED KINGDOMGERMANY199650909.551999999996
-UNITED STATESGERMANY199252480.9528
-UNITED STATESGERMANY1994115566.8388
-UNITED STATESGERMANY199580489.69949999999
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q8_national_market_share.result b/hivesterix/src/test/resources/runtimefunctionts/results/q8_national_market_share.result
deleted file mode 100644
index 7d7bd56..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q8_national_market_share.result
+++ /dev/null
@@ -1,2 +0,0 @@
-19950.0
-19960.0
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/q9_product_type_profit.result b/hivesterix/src/test/resources/runtimefunctionts/results/q9_product_type_profit.result
deleted file mode 100644
index f900b06..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/q9_product_type_profit.result
+++ /dev/null
@@ -1,60 +0,0 @@
-ARGENTINA199817779.069700000007
-ARGENTINA199713943.953800000003
-ARGENTINA19967641.422700000003
-ARGENTINA199520892.752500000002
-ARGENTINA199415088.352599999998
-ARGENTINA199317586.344600000004
-ARGENTINA199228732.461499999994
-ETHIOPIA199828217.159999999996
-ETHIOPIA199633970.65
-ETHIOPIA199537720.35
-ETHIOPIA199437251.01
-ETHIOPIA199323782.61
-IRAN199723590.007999999998
-IRAN19967428.232500000005
-IRAN199521000.996499999994
-IRAN199429408.13
-IRAN199349876.41499999999
-IRAN199252064.24
-IRAQ199811619.960399999996
-IRAQ199747910.246
-IRAQ199618459.567499999997
-IRAQ199532782.37010000001
-IRAQ19949041.2317
-IRAQ199330687.2625
-IRAQ199229098.2557
-KENYA199833148.3345
-KENYA199754355.016500000005
-KENYA199653607.4854
-KENYA199585354.87380000002
-KENYA1994102904.2511
-KENYA1993109310.8084
-KENYA1992138534.12099999998
-MOROCCO1998157058.2328
-MOROCCO199788669.96099999998
-MOROCCO1996236833.66719999994
-MOROCCO1995381575.86679999996
-MOROCCO1994243523.4336
-MOROCCO1993232196.78029999993
-MOROCCO1992347434.1452
-PERU1998101109.01959999997
-PERU199758073.086599999995
-PERU199630360.52179999999
-PERU1995138451.77999999997
-PERU199455023.063200000004
-PERU1993110409.0863
-PERU199270946.1916
-UNITED KINGDOM1998139685.04400000002
-UNITED KINGDOM1997183502.04979999995
-UNITED KINGDOM1996374085.28839999996
-UNITED KINGDOM1995548356.7983999999
-UNITED KINGDOM1994266982.7679999999
-UNITED KINGDOM1993717309.464
-UNITED KINGDOM199279540.6016
-UNITED STATES199832847.96
-UNITED STATES199730849.5
-UNITED STATES199656125.46000000001
-UNITED STATES199515961.7977
-UNITED STATES199431671.2
-UNITED STATES199355057.469
-UNITED STATES199251970.23
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u10_join.result b/hivesterix/src/test/resources/runtimefunctionts/results/u10_join.result
deleted file mode 100644
index 2239e1c..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u10_join.result
+++ /dev/null
@@ -1,1500 +0,0 @@
-1051.15
-1084.38
-1147.42
-1816.28
-1861.19
-1984.14
-2007.48
-2158.13
-2638.98
-3089.42
-3223.17
-3726.14
-3808.05
-3892.77
-3942.73
-3967.47
-4104.3
-4225.26
-4766.19
-4819.91
-4820.55
-4913.06
-5184.26
-5472.17
-5978.65
-6088.41
-6402.41
-6406.29
-6793.45
-7014.31
-7102.74
-7108.12
-7211.59
-7231.91
-7471.75
-7859.36
-8225.96
-8413.31
-8709.16
-8720.45
-8945.03
-8958.65
-9006.25
-9103.4
-9495.28
-9669.46
-9679.45
-9741.03
-10163.56
-10451.97
-10500.27
-10508.12
-10645.48
-10677.86
-10934.84
-11405.4
-11474.95
-11493.8
-11575.77
-11850.45
-12137.76
-12291.83
-12896.25
-12907.62
-12918.7
-12984.85
-13197.78
-13282.23
-13491.31
-13603.08
-13679.32
-14275.01
-14790.37
-15082.82
-15313.61
-15417.57
-16003.86
-16030.15
-16346.94
-16689.19
-16763.95
-16922.51
-17031.01
-17172.66
-17213.59
-17231.05
-17603.01
-17986.15
-18247.86
-18307.45
-18566.14
-18594.66
-18653.09
-18795.62
-18885.35
-19056.99
-19405.73
-19612.03
-19811.69
-20065.73
-20099.43
-20182.22
-20214.49
-20530.97
-20752.62
-20791.5
-21088.59
-21119.86
-21137.08
-21207.08
-21267.72
-21640.1
-21760.09
-21815.3
-21964.66
-22072.16
-22294.51
-22767.49
-22840.21
-22994.51
-23020.62
-23039.46
-23067.48
-23198.24
-23280.61
-23327.88
-23476.12
-23614.89
-23973.6
-23984.88
-24265.24
-24347.36
-24362.39
-24468.16
-24637.96
-24654.79
-24660.06
-24844.39
-25007.95
-25170.88
-25661.87
-25767.07
-25861.74
-25985.52
-26011.2
-26128.99
-26714.67
-26798.65
-26839.16
-26868.85
-26906.38
-26981.31
-26999.83
-27016.74
-27049.22
-27148.63
-27204.6
-27461.48
-27561.82
-27598.17
-27629.66
-27663.16
-27727.52
-28007.73
-28070.86
-28155.92
-28223.57
-28330.42
-28571.39
-28623.04
-28658.26
-28930.68
-29029.84
-29305.47
-29673.73
-29827.44
-29920.8
-30045.95
-30059.47
-30137.17
-30457.91
-30494.62
-30495.65
-30550.9
-30722.49
-30755.69
-30778.78
-30783.05
-31043.39
-31075.51
-31084.79
-31103.83
-31471.04
-31538.94
-31689.46
-31693.88
-31795.52
-32796.35
-32890.89
-32929.3
-33085.68
-33123.28
-33124.96
-33248.04
-33396.35
-33401.77
-33470.4
-33755.47
-33998.9
-34004.48
-34035.17
-34269.96
-34363.63
-34632.57
-34768.68
-34797.72
-34936.31
-35019.95
-35131.8
-35390.15
-35514.45
-35589.57
-35795.22
-35949.14
-36024.96
-36333.34
-36389.43
-36464.76
-36468.55
-36551.43
-36592.48
-36671.88
-36889.65
-37248.78
-37301.25
-37348.62
-37398.9
-37526.68
-37696.7
-37776.79
-37804.43
-37881.31
-38038.84
-38057.81
-38065.28
-38164.23
-38330.42
-38446.39
-38545.97
-38596.81
-38974.67
-38988.98
-39048.94
-39103.37
-39190.62
-39263.28
-39338.44
-39358.51
-39382.74
-39397.6
-39470.39
-39612.63
-39700.29
-39793.05
-39805.04
-39828.51
-39835.54
-39906.87
-40142.15
-40183.29
-40234.5
-40492.37
-40548.99
-40572.64
-40975.96
-40982.08
-41032.81
-41162.24
-41375.69
-41392.31
-41433.48
-41450.19
-41492.25
-41552.78
-41573.42
-41605.63
-41655.51
-41670.02
-41686.1
-41723.86
-41758.44
-41760.0
-41811.12
-42225.53
-42410.57
-42579.4
-42867.92
-42927.07
-42945.82
-43092.76
-43255.19
-43315.15
-43360.95
-43789.14
-43809.37
-43889.17
-44002.53
-44387.23
-44429.81
-44672.03
-44777.63
-44781.32
-45311.07
-45514.27
-45536.27
-45695.84
-45704.96
-45767.69
-45860.94
-45889.09
-46076.46
-46107.7
-46298.53
-46310.83
-46355.83
-46366.56
-46376.09
-46380.69
-46393.97
-46418.85
-46459.92
-46598.65
-46753.63
-46815.93
-46918.22
-47010.15
-47033.21
-47099.71
-47120.41
-47232.79
-47272.67
-47286.32
-47384.71
-47440.91
-47447.63
-47614.08
-47623.94
-47627.89
-47753.0
-47823.04
-47852.06
-47925.47
-47940.51
-47985.98
-48024.99
-48053.18
-48206.14
-48284.06
-48419.58
-48478.54
-48497.09
-48502.79
-48781.39
-49033.69
-49305.98
-49357.72
-49625.21
-49841.12
-49903.57
-50201.16
-50287.06
-50328.84
-50601.01
-50724.06
-51004.44
-51494.47
-51697.18
-51775.54
-51839.94
-52114.01
-52190.52
-52359.51
-52414.19
-52433.54
-52562.16
-52982.23
-53212.95
-53287.25
-53581.41
-53649.35
-53827.34
-54121.92
-54175.35
-54356.1
-54478.95
-54655.07
-55090.67
-55211.04
-55553.68
-55554.97
-55582.94
-55619.01
-55892.35
-55950.21
-56207.66
-56210.26
-56227.04
-56449.23
-56779.06
-56936.1
-56938.16
-56998.36
-57092.26
-57127.71
-57213.18
-57584.12
-57697.44
-57740.74
-57823.37
-58032.77
-58094.75
-58111.0
-58168.07
-58212.22
-58218.35
-58273.89
-58546.02
-58666.79
-58853.11
-58932.19
-59180.25
-59186.02
-59291.75
-59404.77
-59417.76
-59439.44
-59455.61
-59651.38
-59931.42
-59982.31
-59989.66
-60314.97
-60568.34
-60867.14
-60868.39
-60887.9
-60918.41
-60933.29
-61052.1
-61297.42
-61811.33
-62014.51
-62108.45
-62172.34
-62251.15
-62258.18
-62277.18
-62316.61
-62430.67
-62453.97
-62497.51
-62518.31
-62541.27
-62567.99
-62661.93
-62716.67
-62807.13
-62814.89
-62972.29
-63041.33
-63103.32
-63195.54
-63278.0
-63470.78
-63535.56
-63537.13
-63590.17
-63703.92
-63873.14
-64000.93
-64102.93
-64271.75
-64344.86
-64838.66
-64892.73
-65189.17
-65218.47
-65269.38
-65331.05
-65385.42
-65601.08
-65678.21
-65702.39
-65883.92
-66158.13
-66268.86
-66408.29
-66455.34
-66697.95
-66817.05
-66927.16
-67018.3
-67045.94
-67049.37
-67167.19
-67173.82
-67226.28
-67525.43
-67572.73
-67789.42
-67941.54
-67944.38
-67979.49
-68052.7
-68056.57
-68255.82
-68309.28
-68494.08
-68519.84
-68619.29
-68817.08
-68885.66
-68908.31
-69412.71
-69447.25
-69668.22
-70182.63
-70183.29
-70232.26
-70377.31
-70392.02
-70403.62
-70430.54
-70462.84
-70502.52
-70529.27
-70553.45
-70557.05
-70857.51
-71017.99
-71241.63
-71349.3
-71362.5
-71381.21
-71453.85
-71460.49
-71543.41
-71683.84
-71781.23
-71822.86
-71852.67
-71968.1
-72055.87
-72150.68
-72359.55
-72440.52
-72533.07
-72835.95
-72843.48
-73517.91
-73739.06
-73882.37
-73907.63
-73924.21
-73962.95
-73990.08
-74483.95
-74710.74
-74882.22
-74892.08
-74940.13
-75026.51
-75030.81
-75074.07
-75144.68
-75145.87
-75661.7
-75733.58
-76067.1
-76119.72
-76164.41
-76518.11
-76799.25
-76848.96
-77247.05
-77482.87
-77487.09
-77705.4
-77754.62
-78221.69
-78567.55
-78676.54
-78711.4
-79189.58
-79197.77
-79230.47
-79248.35
-79258.24
-79270.23
-79380.51
-79594.68
-79646.89
-79683.42
-79782.56
-79785.52
-79863.84
-79901.18
-80018.54
-80084.61
-80274.22
-80437.72
-80438.38
-80487.97
-80592.44
-80624.38
-81089.61
-81138.17
-81351.53
-81663.65
-81826.12
-82026.18
-82034.03
-82151.12
-82190.77
-82197.79
-82467.29
-82493.07
-82504.56
-82563.1
-82598.87
-82746.74
-82824.14
-82918.36
-82928.12
-83413.3
-83490.99
-83665.2
-83773.49
-83804.38
-84053.93
-84314.51
-84405.78
-84493.55
-84627.76
-84651.8
-84800.44
-84871.5
-84954.79
-84983.9
-85122.24
-85255.56
-85381.0
-85394.06
-85397.04
-85477.89
-85552.21
-85755.84
-85822.67
-85861.93
-85901.7
-85927.85
-85948.02
-86076.86
-86534.05
-86615.25
-86918.57
-86958.28
-87073.89
-87248.17
-87475.82
-87689.88
-87803.55
-87892.38
-87988.34
-88047.04
-88080.33
-88216.32
-88219.12
-88448.24
-88704.26
-88966.68
-89143.36
-89224.24
-89345.99
-89359.11
-89399.4
-89503.11
-89509.91
-89592.11
-89684.31
-89731.1
-89792.48
-89877.09
-89992.48
-89999.72
-90042.41
-90380.4
-90707.58
-90755.31
-90981.28
-91017.61
-91438.59
-91513.79
-91541.48
-91664.85
-91678.66
-91795.13
-91929.93
-91982.29
-92069.62
-92123.32
-92187.8
-92261.08
-92326.79
-92340.77
-92484.7
-92716.17
-92730.74
-92798.66
-92851.8
-92856.91
-93206.35
-93259.93
-93335.6
-93403.05
-93769.28
-93828.15
-94030.43
-94135.77
-94231.71
-94400.43
-94446.69
-94527.23
-94534.07
-94649.25
-94866.39
-94969.41
-95063.41
-95126.32
-95291.79
-95312.81
-95453.8
-95563.95
-95591.4
-95731.5
-95761.93
-95929.46
-96015.13
-96057.42
-96166.92
-96359.65
-96431.77
-96458.03
-96596.81
-96855.29
-97502.23
-97733.87
-97758.28
-97981.06
-98140.86
-98258.73
-98275.37
-98335.61
-98422.83
-98485.21
-98541.95
-98643.17
-98723.11
-98753.57
-98956.82
-98987.51
-99050.81
-99088.75
-99177.69
-99290.01
-99377.51
-99494.67
-99577.55
-99798.76
-99834.47
-99851.38
-99960.46
-100035.03
-100106.96
-100290.07
-100445.59
-100671.06
-100714.13
-100749.6
-100750.67
-100758.71
-100954.64
-101020.75
-101202.18
-101240.96
-101339.68
-101429.61
-101616.44
-101709.52
-101878.46
-101899.93
-102207.2
-102226.59
-102534.63
-102665.03
-102693.61
-102793.59
-102807.59
-103085.13
-103192.74
-103320.91
-103641.15
-103656.44
-103814.27
-104038.78
-104166.56
-104259.88
-104391.11
-104523.03
-104585.77
-104664.4
-104695.09
-104759.25
-104927.66
-104966.33
-105094.09
-105145.4
-105302.05
-105421.09
-105492.37
-105561.21
-105770.53
-105789.01
-106036.84
-106045.89
-106122.38
-106150.05
-106315.25
-106446.02
-106612.48
-106635.21
-106823.97
-106935.19
-107139.29
-107140.22
-107231.6
-107406.26
-107732.23
-107824.4
-107919.86
-107958.62
-108107.42
-108171.38
-108196.56
-108239.46
-108317.51
-108334.3
-108353.08
-108361.46
-108412.57
-108424.94
-108443.84
-109077.69
-109202.9
-109246.54
-109247.0
-109301.02
-109351.87
-109469.9
-109536.55
-109979.71
-110194.31
-110432.76
-110626.82
-110826.83
-110958.36
-111020.79
-111207.93
-111403.66
-111547.31
-111597.96
-111924.56
-112444.42
-112603.34
-112770.89
-112843.52
-112845.04
-112912.0
-113156.3
-113191.45
-113417.03
-113505.19
-113701.89
-113954.89
-114097.63
-114145.18
-114681.55
-114879.19
-114978.03
-114990.63
-115161.29
-115219.88
-115411.37
-115688.85
-115717.37
-115759.13
-115877.4
-115929.14
-115959.96
-116003.11
-116069.66
-116093.49
-116127.69
-116193.97
-116227.05
-116258.53
-116740.67
-116789.98
-116792.13
-116923.0
-117132.72
-117397.16
-117537.87
-117728.37
-117817.52
-117827.18
-117909.23
-118036.54
-118201.53
-118464.65
-118495.12
-118570.79
-118802.62
-118896.95
-119164.96
-119201.64
-119605.91
-119820.38
-119838.14
-119887.47
-119910.04
-119917.28
-120053.52
-120073.51
-120086.84
-120324.82
-120516.93
-120533.46
-120626.49
-120828.12
-121220.59
-121360.83
-121663.68
-121704.45
-121935.23
-121994.04
-122157.14
-122490.66
-122611.05
-122621.31
-122785.82
-122823.78
-122964.66
-122969.79
-123014.83
-123120.06
-123477.05
-123586.03
-123956.25
-124380.73
-124402.59
-124470.32
-124539.0
-124608.69
-124637.19
-124661.48
-124675.27
-124719.97
-124950.79
-125011.92
-125030.37
-125125.57
-125170.86
-125188.72
-125191.12
-125396.8
-125509.17
-125562.09
-125792.83
-126066.0
-126113.32
-126205.42
-126235.35
-126597.21
-126804.9
-126902.81
-126948.81
-127068.89
-127132.51
-127134.05
-127191.47
-127345.45
-127527.05
-127532.2
-127717.72
-127817.38
-127934.71
-128014.15
-128024.71
-128234.96
-128367.97
-128624.99
-128776.9
-128786.57
-129004.81
-129012.84
-129033.13
-129062.13
-129086.93
-129096.8
-129546.56
-129636.99
-129657.08
-129803.03
-129821.09
-130125.64
-130204.17
-130345.9
-130515.61
-130647.18
-130687.64
-130702.19
-131079.52
-131092.67
-131103.31
-131122.82
-131146.47
-131251.81
-131432.42
-131447.03
-131604.34
-131752.07
-131891.05
-132494.97
-132838.49
-132854.79
-132972.24
-133002.55
-133038.59
-133273.64
-133451.14
-133665.12
-133829.35
-133864.82
-134308.04
-134333.33
-134413.58
-134442.37
-134726.09
-134814.65
-135157.92
-135187.33
-135335.96
-135613.18
-135643.87
-135647.68
-135745.58
-135761.05
-135934.6
-136058.7
-136162.13
-136360.37
-136517.34
-136582.6
-136634.34
-136765.03
-136954.81
-137030.4
-137223.14
-137297.71
-137369.5
-137473.58
-137576.19
-138010.76
-138423.03
-138584.2
-138902.23
-139047.22
-139104.17
-139124.72
-139332.94
-139542.14
-139579.18
-139580.85
-139714.71
-139854.41
-139902.71
-139915.23
-140031.23
-140363.7
-140390.6
-140608.69
-140685.01
-140838.11
-141118.87
-141159.63
-141311.01
-141486.77
-141554.06
-141647.08
-141679.41
-141822.19
-141824.23
-141858.97
-141902.54
-142029.67
-142070.65
-142290.77
-142291.79
-142322.33
-142323.38
-142494.99
-142767.26
-142866.39
-142891.22
-143070.7
-143191.54
-143212.85
-143276.28
-143350.75
-143411.69
-143753.01
-143813.39
-143899.85
-144123.37
-144335.16
-145040.38
-145060.41
-145096.17
-145100.47
-145232.09
-145249.13
-145426.11
-145495.62
-145630.76
-145654.97
-145695.42
-145713.03
-145730.19
-145761.99
-145768.47
-145857.6
-145898.47
-145906.24
-145971.6
-146136.1
-146221.66
-146298.28
-146382.71
-146581.14
-146849.33
-146862.27
-146896.72
-146933.07
-147071.86
-147243.86
-147329.51
-147343.68
-147543.26
-147915.68
-148176.06
-148299.05
-148500.71
-148682.82
-148789.52
-149451.88
-149466.62
-149536.2
-149614.34
-149671.92
-150334.57
-150345.63
-150349.92
-150582.77
-150585.73
-150655.44
-150886.49
-151089.96
-151148.81
-151233.65
-151282.65
-151404.78
-151419.5
-151515.08
-151801.06
-152940.0
-153024.28
-153048.74
-153069.14
-153233.93
-153259.41
-153386.61
-153426.79
-153568.02
-153637.79
-153720.22
-153864.67
-154260.84
-154383.37
-154590.05
-154653.32
-154936.43
-154958.89
-154967.89
-155017.92
-155045.39
-155356.8
-155680.6
-156018.74
-156345.64
-156381.95
-156407.4
-156477.94
-156697.55
-156802.8
-157040.57
-157062.7
-157767.86
-157968.27
-158345.31
-158479.37
-158776.68
-158853.63
-158885.83
-158893.16
-158991.89
-159005.35
-159015.39
-159170.8
-159171.69
-159578.94
-159720.39
-159870.44
-160627.01
-160882.76
-161066.22
-161307.05
-161625.5
-161745.44
-162088.3
-162113.46
-162165.94
-162176.23
-162634.53
-162786.67
-163709.85
-163746.47
-163794.53
-163834.46
-163966.67
-164462.61
-165019.32
-165219.08
-165454.51
-165489.52
-165655.99
-165890.47
-166335.03
-166506.22
-166669.86
-166947.75
-166961.06
-167017.39
-167056.34
-167262.34
-168495.03
-168562.27
-168618.39
-168721.45
-168750.48
-168952.1
-169107.85
-169756.19
-169797.4
-169847.63
-170360.27
-171128.1
-171326.48
-171488.73
-171522.54
-171894.45
-171975.62
-172021.87
-172102.96
-172436.3
-172861.58
-172872.37
-172899.84
-172908.01
-173024.71
-173130.2
-173145.37
-173340.09
-173444.6
-173522.71
-174090.3
-174223.2
-174569.88
-174634.12
-174798.97
-175017.68
-175142.28
-175422.13
-176084.63
-176278.57
-176294.34
-176525.53
-176647.54
-176864.83
-176867.34
-176911.21
-177181.67
-177458.97
-178060.22
-178249.05
-178254.66
-178491.24
-178492.01
-178821.73
-179287.95
-179292.14
-179418.31
-179462.21
-179554.41
-179686.07
-179747.47
-179827.12
-179854.51
-179923.54
-179984.42
-180054.29
-180119.22
-180396.95
-180417.11
-180455.98
-180478.16
-180692.9
-180737.75
-180912.15
-181077.36
-181320.5
-181346.56
-182025.95
-182432.17
-182516.77
-182966.39
-183104.71
-183176.6
-183286.33
-183493.42
-183620.33
-183671.08
-183734.56
-183965.61
-184172.31
-184583.99
-185496.66
-185968.15
-186215.81
-186370.23
-186669.1
-186912.51
-187156.38
-187514.11
-187516.29
-187553.35
-187932.3
-188124.55
-188985.18
-189361.42
-189547.57
-189651.76
-190142.17
-190490.78
-190652.53
-190693.92
-190960.69
-192074.23
-192217.86
-192417.85
-193832.28
-193857.67
-194119.31
-194159.59
-195515.26
-195834.96
-195844.84
-196080.26
-196443.16
-196989.09
-197031.52
-197192.95
-197973.22
-198039.23
-198238.65
-198322.91
-198360.22
-198538.68
-198723.3
-198816.13
-198995.21
-199102.23
-199593.71
-201003.12
-201268.06
-201419.83
-201455.98
-202227.17
-202364.58
-202623.92
-202660.52
-202784.54
-202917.72
-203904.8
-204163.1
-204355.65
-204438.57
-205282.63
-206179.68
-206495.43
-206742.11
-207119.83
-207291.83
-207364.8
-207632.55
-207907.6
-207925.83
-208481.57
-208517.98
-208892.63
-208974.42
-209155.48
-210113.88
-210643.96
-210713.88
-211925.95
-212339.55
-214494.39
-215135.72
-215342.63
-216071.76
-216104.85
-216826.73
-217682.81
-217709.03
-218116.21
-218482.7
-218697.85
-219123.27
-219707.84
-219709.6
-219920.62
-219959.08
-220636.82
-220715.14
-220727.97
-221036.31
-221320.76
-221636.83
-222274.54
-222392.53
-222653.54
-223507.72
-223537.09
-223995.46
-224382.57
-224674.27
-224724.11
-226314.91
-226806.66
-228002.51
-228054.01
-228136.49
-229165.17
-230949.45
-231012.22
-231831.35
-232194.74
-234763.73
-237947.61
-240284.95
-240457.56
-241837.88
-242588.87
-244704.23
-245388.06
-245976.74
-249900.42
-258779.02
-263411.29
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u10_nestedloop_join.result b/hivesterix/src/test/resources/runtimefunctionts/results/u10_nestedloop_join.result
deleted file mode 100644
index ffc76a4..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u10_nestedloop_join.result
+++ /dev/null
@@ -1,300 +0,0 @@
-ARGENTINAALGERIA10
-BRAZILALGERIA20
-BRAZILARGENTINA21
-CANADAALGERIA30
-CANADAARGENTINA31
-CANADABRAZIL32
-CHINAALGERIA180
-CHINAARGENTINA181
-CHINABRAZIL182
-CHINACANADA183
-CHINAEGYPT184
-CHINAETHIOPIA185
-CHINAFRANCE186
-CHINAGERMANY187
-CHINAINDIA188
-CHINAINDONESIA189
-CHINAIRAN1810
-CHINAIRAQ1811
-CHINAJAPAN1812
-CHINAJORDAN1813
-CHINAKENYA1814
-CHINAMOROCCO1815
-CHINAMOZAMBIQUE1816
-CHINAPERU1817
-EGYPTALGERIA40
-EGYPTARGENTINA41
-EGYPTBRAZIL42
-EGYPTCANADA43
-ETHIOPIAALGERIA50
-ETHIOPIAARGENTINA51
-ETHIOPIABRAZIL52
-ETHIOPIACANADA53
-ETHIOPIAEGYPT54
-FRANCEALGERIA60
-FRANCEARGENTINA61
-FRANCEBRAZIL62
-FRANCECANADA63
-FRANCEEGYPT64
-FRANCEETHIOPIA65
-GERMANYALGERIA70
-GERMANYARGENTINA71
-GERMANYBRAZIL72
-GERMANYCANADA73
-GERMANYEGYPT74
-GERMANYETHIOPIA75
-GERMANYFRANCE76
-INDIAALGERIA80
-INDIAARGENTINA81
-INDIABRAZIL82
-INDIACANADA83
-INDIAEGYPT84
-INDIAETHIOPIA85
-INDIAFRANCE86
-INDIAGERMANY87
-INDONESIAALGERIA90
-INDONESIAARGENTINA91
-INDONESIABRAZIL92
-INDONESIACANADA93
-INDONESIAEGYPT94
-INDONESIAETHIOPIA95
-INDONESIAFRANCE96
-INDONESIAGERMANY97
-INDONESIAINDIA98
-IRANALGERIA100
-IRANARGENTINA101
-IRANBRAZIL102
-IRANCANADA103
-IRANEGYPT104
-IRANETHIOPIA105
-IRANFRANCE106
-IRANGERMANY107
-IRANINDIA108
-IRANINDONESIA109
-IRAQALGERIA110
-IRAQARGENTINA111
-IRAQBRAZIL112
-IRAQCANADA113
-IRAQEGYPT114
-IRAQETHIOPIA115
-IRAQFRANCE116
-IRAQGERMANY117
-IRAQINDIA118
-IRAQINDONESIA119
-IRAQIRAN1110
-JAPANALGERIA120
-JAPANARGENTINA121
-JAPANBRAZIL122
-JAPANCANADA123
-JAPANEGYPT124
-JAPANETHIOPIA125
-JAPANFRANCE126
-JAPANGERMANY127
-JAPANINDIA128
-JAPANINDONESIA129
-JAPANIRAN1210
-JAPANIRAQ1211
-JORDANALGERIA130
-JORDANARGENTINA131
-JORDANBRAZIL132
-JORDANCANADA133
-JORDANEGYPT134
-JORDANETHIOPIA135
-JORDANFRANCE136
-JORDANGERMANY137
-JORDANINDIA138
-JORDANINDONESIA139
-JORDANIRAN1310
-JORDANIRAQ1311
-JORDANJAPAN1312
-KENYAALGERIA140
-KENYAARGENTINA141
-KENYABRAZIL142
-KENYACANADA143
-KENYAEGYPT144
-KENYAETHIOPIA145
-KENYAFRANCE146
-KENYAGERMANY147
-KENYAINDIA148
-KENYAINDONESIA149
-KENYAIRAN1410
-KENYAIRAQ1411
-KENYAJAPAN1412
-KENYAJORDAN1413
-MOROCCOALGERIA150
-MOROCCOARGENTINA151
-MOROCCOBRAZIL152
-MOROCCOCANADA153
-MOROCCOEGYPT154
-MOROCCOETHIOPIA155
-MOROCCOFRANCE156
-MOROCCOGERMANY157
-MOROCCOINDIA158
-MOROCCOINDONESIA159
-MOROCCOIRAN1510
-MOROCCOIRAQ1511
-MOROCCOJAPAN1512
-MOROCCOJORDAN1513
-MOROCCOKENYA1514
-MOZAMBIQUEALGERIA160
-MOZAMBIQUEARGENTINA161
-MOZAMBIQUEBRAZIL162
-MOZAMBIQUECANADA163
-MOZAMBIQUEEGYPT164
-MOZAMBIQUEETHIOPIA165
-MOZAMBIQUEFRANCE166
-MOZAMBIQUEGERMANY167
-MOZAMBIQUEINDIA168
-MOZAMBIQUEINDONESIA169
-MOZAMBIQUEIRAN1610
-MOZAMBIQUEIRAQ1611
-MOZAMBIQUEJAPAN1612
-MOZAMBIQUEJORDAN1613
-MOZAMBIQUEKENYA1614
-MOZAMBIQUEMOROCCO1615
-PERUALGERIA170
-PERUARGENTINA171
-PERUBRAZIL172
-PERUCANADA173
-PERUEGYPT174
-PERUETHIOPIA175
-PERUFRANCE176
-PERUGERMANY177
-PERUINDIA178
-PERUINDONESIA179
-PERUIRAN1710
-PERUIRAQ1711
-PERUJAPAN1712
-PERUJORDAN1713
-PERUKENYA1714
-PERUMOROCCO1715
-PERUMOZAMBIQUE1716
-ROMANIAALGERIA190
-ROMANIAARGENTINA191
-ROMANIABRAZIL192
-ROMANIACANADA193
-ROMANIACHINA1918
-ROMANIAEGYPT194
-ROMANIAETHIOPIA195
-ROMANIAFRANCE196
-ROMANIAGERMANY197
-ROMANIAINDIA198
-ROMANIAINDONESIA199
-ROMANIAIRAN1910
-ROMANIAIRAQ1911
-ROMANIAJAPAN1912
-ROMANIAJORDAN1913
-ROMANIAKENYA1914
-ROMANIAMOROCCO1915
-ROMANIAMOZAMBIQUE1916
-ROMANIAPERU1917
-RUSSIAALGERIA220
-RUSSIAARGENTINA221
-RUSSIABRAZIL222
-RUSSIACANADA223
-RUSSIACHINA2218
-RUSSIAEGYPT224
-RUSSIAETHIOPIA225
-RUSSIAFRANCE226
-RUSSIAGERMANY227
-RUSSIAINDIA228
-RUSSIAINDONESIA229
-RUSSIAIRAN2210
-RUSSIAIRAQ2211
-RUSSIAJAPAN2212
-RUSSIAJORDAN2213
-RUSSIAKENYA2214
-RUSSIAMOROCCO2215
-RUSSIAMOZAMBIQUE2216
-RUSSIAPERU2217
-RUSSIAROMANIA2219
-RUSSIASAUDI ARABIA2220
-RUSSIAVIETNAM2221
-SAUDI ARABIAALGERIA200
-SAUDI ARABIAARGENTINA201
-SAUDI ARABIABRAZIL202
-SAUDI ARABIACANADA203
-SAUDI ARABIACHINA2018
-SAUDI ARABIAEGYPT204
-SAUDI ARABIAETHIOPIA205
-SAUDI ARABIAFRANCE206
-SAUDI ARABIAGERMANY207
-SAUDI ARABIAINDIA208
-SAUDI ARABIAINDONESIA209
-SAUDI ARABIAIRAN2010
-SAUDI ARABIAIRAQ2011
-SAUDI ARABIAJAPAN2012
-SAUDI ARABIAJORDAN2013
-SAUDI ARABIAKENYA2014
-SAUDI ARABIAMOROCCO2015
-SAUDI ARABIAMOZAMBIQUE2016
-SAUDI ARABIAPERU2017
-SAUDI ARABIAROMANIA2019
-UNITED KINGDOMALGERIA230
-UNITED KINGDOMARGENTINA231
-UNITED KINGDOMBRAZIL232
-UNITED KINGDOMCANADA233
-UNITED KINGDOMCHINA2318
-UNITED KINGDOMEGYPT234
-UNITED KINGDOMETHIOPIA235
-UNITED KINGDOMFRANCE236
-UNITED KINGDOMGERMANY237
-UNITED KINGDOMINDIA238
-UNITED KINGDOMINDONESIA239
-UNITED KINGDOMIRAN2310
-UNITED KINGDOMIRAQ2311
-UNITED KINGDOMJAPAN2312
-UNITED KINGDOMJORDAN2313
-UNITED KINGDOMKENYA2314
-UNITED KINGDOMMOROCCO2315
-UNITED KINGDOMMOZAMBIQUE2316
-UNITED KINGDOMPERU2317
-UNITED KINGDOMROMANIA2319
-UNITED KINGDOMRUSSIA2322
-UNITED KINGDOMSAUDI ARABIA2320
-UNITED KINGDOMVIETNAM2321
-UNITED STATESALGERIA240
-UNITED STATESARGENTINA241
-UNITED STATESBRAZIL242
-UNITED STATESCANADA243
-UNITED STATESCHINA2418
-UNITED STATESEGYPT244
-UNITED STATESETHIOPIA245
-UNITED STATESFRANCE246
-UNITED STATESGERMANY247
-UNITED STATESINDIA248
-UNITED STATESINDONESIA249
-UNITED STATESIRAN2410
-UNITED STATESIRAQ2411
-UNITED STATESJAPAN2412
-UNITED STATESJORDAN2413
-UNITED STATESKENYA2414
-UNITED STATESMOROCCO2415
-UNITED STATESMOZAMBIQUE2416
-UNITED STATESPERU2417
-UNITED STATESROMANIA2419
-UNITED STATESRUSSIA2422
-UNITED STATESSAUDI ARABIA2420
-UNITED STATESUNITED KINGDOM2423
-UNITED STATESVIETNAM2421
-VIETNAMALGERIA210
-VIETNAMARGENTINA211
-VIETNAMBRAZIL212
-VIETNAMCANADA213
-VIETNAMCHINA2118
-VIETNAMEGYPT214
-VIETNAMETHIOPIA215
-VIETNAMFRANCE216
-VIETNAMGERMANY217
-VIETNAMINDIA218
-VIETNAMINDONESIA219
-VIETNAMIRAN2110
-VIETNAMIRAQ2111
-VIETNAMJAPAN2112
-VIETNAMJORDAN2113
-VIETNAMKENYA2114
-VIETNAMMOROCCO2115
-VIETNAMMOZAMBIQUE2116
-VIETNAMPERU2117
-VIETNAMROMANIA2119
-VIETNAMSAUDI ARABIA2120
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u1_gby.result b/hivesterix/src/test/resources/runtimefunctionts/results/u1_gby.result
deleted file mode 100644
index 7efa15a..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u1_gby.result
+++ /dev/null
@@ -1,5 +0,0 @@
-05
-15
-25
-35
-45
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u2_gby_external.result b/hivesterix/src/test/resources/runtimefunctionts/results/u2_gby_external.result
deleted file mode 100644
index b30110b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u2_gby_external.result
+++ /dev/null
@@ -1,10 +0,0 @@
-598841.0
-598725.25
-598617.8
-59854.0
-598420.25
-595928.857142857142858
-595829.6
-595734.57142857142857
-595630.0
-595523.0
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u3_union.result b/hivesterix/src/test/resources/runtimefunctionts/results/u3_union.result
deleted file mode 100644
index e8ec7a2..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u3_union.result
+++ /dev/null
@@ -1,9 +0,0 @@
-2 N kD4on9OM Ipw3,gf0JBoQDd7tgrzrddZ17Supplier#000000001
-181KhUgZegwM3ua7dsYmekYBsK10Supplier#000000009
-489eJ5ksX3ImxJQBvxObC,5Supplier#000000002
-169Sq4bBH2FQEmaFOocY45sRTxo6yuoG17Supplier#000000008
-8Bk7ah4CK8SYQTepEmvMkkgMwg15Supplier#000000004
-10Gcdm2rJRzl5qlTVzc11Supplier#000000005
-6q1,G3Pj6OjIuUYfUoH18BFTKP5aU9bEV31Supplier#000000003
-14s,4TicNGB4uO6PaSqNBUq23Supplier#000000007
-12tQxuVm7s7CnK14Supplier#000000006
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u4_gby_distinct.result b/hivesterix/src/test/resources/runtimefunctionts/results/u4_gby_distinct.result
deleted file mode 100644
index b30110b..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u4_gby_distinct.result
+++ /dev/null
@@ -1,10 +0,0 @@
-598841.0
-598725.25
-598617.8
-59854.0
-598420.25
-595928.857142857142858
-595829.6
-595734.57142857142857
-595630.0
-595523.0
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u5_gby_global.result b/hivesterix/src/test/resources/runtimefunctionts/results/u5_gby_global.result
deleted file mode 100644
index 8828088..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u5_gby_global.result
+++ /dev/null
@@ -1 +0,0 @@
-152398.0
diff --git a/hivesterix/src/test/resources/runtimefunctionts/results/u6_large_card_join.result b/hivesterix/src/test/resources/runtimefunctionts/results/u6_large_card_join.result
deleted file mode 100644
index 82b4857..0000000
--- a/hivesterix/src/test/resources/runtimefunctionts/results/u6_large_card_join.result
+++ /dev/null
@@ -1,512 +0,0 @@
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
-22
diff --git a/hyracks/hyracks-api/pom.xml b/hyracks/hyracks-api/pom.xml
index 7778b31..091767b 100644
--- a/hyracks/hyracks-api/pom.xml
+++ b/hyracks/hyracks-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -15,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -47,7 +47,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-ipc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
diff --git a/hyracks/hyracks-cli/pom.xml b/hyracks/hyracks-cli/pom.xml
deleted file mode 100644
index a11c28b..0000000
--- a/hyracks/hyracks-cli/pom.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hyracks-cli</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <name>hyracks-cli</name>
-
- <parent>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- </parent>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <fork>true</fork>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>javacc-maven-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>javacc</id>
- <goals>
- <goal>javacc</goal>
- </goals>
- <configuration>
- <isStatic>false</isStatic>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>appassembler-maven-plugin</artifactId>
- <version>1.3</version>
- <executions>
- <execution>
- <configuration>
- <programs>
- <program>
- <mainClass>edu.uci.ics.hyracks.cli.Main</mainClass>
- <name>hyrackscli</name>
- </program>
- </programs>
- <repositoryLayout>flat</repositoryLayout>
- <repositoryName>lib</repositoryName>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>assemble</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
- <executions>
- <execution>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
- <version>0.9.94</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
- </dependencies>
-</project>
diff --git a/hyracks/hyracks-cli/src/main/assembly/binary-assembly.xml b/hyracks/hyracks-cli/src/main/assembly/binary-assembly.xml
deleted file mode 100644
index 0500499..0000000
--- a/hyracks/hyracks-cli/src/main/assembly/binary-assembly.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<assembly>
- <id>binary-assembly</id>
- <formats>
- <format>zip</format>
- <format>dir</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/appassembler/bin</directory>
- <outputDirectory>bin</outputDirectory>
- <fileMode>0755</fileMode>
- </fileSet>
- <fileSet>
- <directory>target/appassembler/lib</directory>
- <outputDirectory>lib</outputDirectory>
- </fileSet>
- </fileSets>
-</assembly>
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/CLI.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/CLI.java
deleted file mode 100644
index f01c724..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/CLI.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hyracks.cli;
-
-import java.io.IOException;
-
-import jline.ConsoleReader;
-
-public class CLI {
- private static final String HYRACKS_PROMPT = "hyracks> ";
- private static final String HYRAX_CONTINUE_PROMPT = "> ";
- private final ConsoleReader reader;
- private final Session session;
-
- public CLI(String[] args) throws IOException {
- reader = new ConsoleReader();
- session = new Session();
- }
-
- public void run() throws IOException {
- boolean eof = false;
- while (true) {
- String prompt = HYRACKS_PROMPT;
- StringBuilder command = new StringBuilder();
- while (true) {
- String line = reader.readLine(prompt);
- if (line == null) {
- eof = true;
- break;
- }
- prompt = HYRAX_CONTINUE_PROMPT;
- line = line.trim();
- command.append(line);
- if ("".equals(line)) {
- break;
- }
- if (line.endsWith(";")) {
- break;
- }
- }
- if (eof) {
- break;
- }
- try {
- CommandExecutor.execute(session, command.toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/CommandExecutor.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/CommandExecutor.java
deleted file mode 100644
index 6bdd136..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/CommandExecutor.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hyracks.cli;
-
-import java.io.StringReader;
-import java.util.List;
-
-import edu.uci.ics.hyracks.cli.commands.Command;
-
-public class CommandExecutor {
- public static void execute(Session session, String command) throws Exception {
- CLIParser parser = new CLIParser(new StringReader(command));
- List<Command> cmds = parser.Commands();
- for (Command cmd : cmds) {
- cmd.run(session);
- }
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/Main.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/Main.java
deleted file mode 100644
index 5f7ef0b..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/Main.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hyracks.cli;
-
-public class Main {
- public static void main(String[] args) throws Exception {
- CLI cli = new CLI(args);
- cli.run();
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/Session.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/Session.java
deleted file mode 100644
index f15b1bb..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/Session.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hyracks.cli;
-
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-
-public class Session {
- private IHyracksClientConnection connection;
-
- public void setConnection(IHyracksClientConnection connection) {
- this.connection = connection;
- }
-
- public IHyracksClientConnection getConnection() {
- return connection;
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/Command.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/Command.java
deleted file mode 100644
index ee5849b..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/Command.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package edu.uci.ics.hyracks.cli.commands;
-
-import edu.uci.ics.hyracks.cli.Session;
-
-public abstract class Command {
- public abstract void run(Session session) throws Exception;
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/ConnectCommand.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/ConnectCommand.java
deleted file mode 100644
index 168280b..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/ConnectCommand.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package edu.uci.ics.hyracks.cli.commands;
-
-import edu.uci.ics.hyracks.api.client.HyracksConnection;
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.cli.Session;
-
-public class ConnectCommand extends Command {
- private String host;
-
- private int port;
-
- public ConnectCommand(String hostPortStr) {
- int idx = hostPortStr.indexOf(':');
- host = hostPortStr;
- port = 1098;
- if (idx != -1) {
- host = hostPortStr.substring(0, idx);
- port = Integer.valueOf(hostPortStr.substring(idx + 1));
- }
- }
-
- @Override
- public void run(Session session) throws Exception {
- System.err.println("Connecting to host: " + host + ", port: " + port);
- IHyracksClientConnection conn = new HyracksConnection(host, port);
- session.setConnection(conn);
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/CreateApplicationCommand.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/CreateApplicationCommand.java
deleted file mode 100644
index 7b35ee5..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/CreateApplicationCommand.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package edu.uci.ics.hyracks.cli.commands;
-
-import java.io.File;
-
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.cli.Session;
-
-public class CreateApplicationCommand extends Command {
- private String appName;
-
- private File harFile;
-
- public CreateApplicationCommand(String appName, File harFile) {
- this.appName = appName;
- this.harFile = harFile;
- }
-
- @Override
- public void run(Session session) throws Exception {
- IHyracksClientConnection hcc = session.getConnection();
- if (hcc == null) {
- throw new RuntimeException("Not connected to Hyracks Cluster Controller");
- }
- System.err.println("Creating application: " + appName + " with har: " + harFile.getAbsolutePath());
- hcc.createApplication(appName, harFile);
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/DestroyApplicationCommand.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/DestroyApplicationCommand.java
deleted file mode 100644
index 03aed1e..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/DestroyApplicationCommand.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package edu.uci.ics.hyracks.cli.commands;
-
-import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.cli.Session;
-
-public class DestroyApplicationCommand extends Command {
- private String appName;
-
- public DestroyApplicationCommand(String appName) {
- this.appName = appName;
- }
-
- @Override
- public void run(Session session) throws Exception {
- IHyracksClientConnection hcc = session.getConnection();
- if (hcc == null) {
- throw new RuntimeException("Not connected to Hyracks Cluster Controller");
- }
- System.err.println("Destroying application: " + appName);
- hcc.destroyApplication(appName);
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/DisconnectCommand.java b/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/DisconnectCommand.java
deleted file mode 100644
index facf0f1..0000000
--- a/hyracks/hyracks-cli/src/main/java/edu/uci/ics/hyracks/cli/commands/DisconnectCommand.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package edu.uci.ics.hyracks.cli.commands;
-
-import edu.uci.ics.hyracks.cli.Session;
-
-public class DisconnectCommand extends Command {
- @Override
- public void run(Session session) throws Exception {
- System.err.println("Disconnecting...");
- session.setConnection(null);
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-cli/src/main/javacc/cli.jj b/hyracks/hyracks-cli/src/main/javacc/cli.jj
deleted file mode 100644
index 0f386cb..0000000
--- a/hyracks/hyracks-cli/src/main/javacc/cli.jj
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-options {
- STATIC = false;
- IGNORE_CASE = true;
-}
-
-PARSER_BEGIN(CLIParser)
-
-package edu.uci.ics.hyracks.cli;
-
-import java.io.*;
-import java.util.*;
-import edu.uci.ics.hyracks.cli.commands.*;
-
-class CLIParser {
- private String unquote(String s) {
- return s.substring(1, s.length() - 1);
- }
-}
-
-PARSER_END(CLIParser)
-
-List<Command> Commands():
-{
- List<Command> result = new ArrayList<Command>();
- Command cmd = null;
-} {
- (
- (
- cmd = ConnectCommand()
- | cmd = DisconnectCommand()
- | cmd = CreateApplicationCommand()
- | cmd = DestroyApplicationCommand()
- ) ";" {
- result.add(cmd);
- }
- )* <EOF> {
- return result;
- }
-}
-
-protected Command ConnectCommand():
-{
- Token t;
-} {
- "connect" "to" t = <StringLiteral> {
- return new ConnectCommand(unquote(t.image));
- }
-}
-
-protected Command CreateApplicationCommand():
-{
- Token a;
- Token f;
-} {
- "create" "application" a = <Identifier> f = <StringLiteral> {
- return new CreateApplicationCommand(a.image, new File(unquote(f.image)));
- }
-}
-
-protected Command DestroyApplicationCommand():
-{
- Token a;
-} {
- "destroy" "application" a = <Identifier> {
- return new DestroyApplicationCommand(a.image);
- }
-}
-
-protected Command DisconnectCommand():
-{
- Token t;
-} {
- "disconnect" {
- return new DisconnectCommand();
- }
-}
-
-<DEFAULT>
-TOKEN : {
- <StringLiteral: (("\"" (~["\"", "\n"])* "\"") | ("'" (~["'", "\n"])* "'"))>
- | <Identifier: <Letter> (<Letter> | <Digit> | <Extender>)*>
-}
-
-SPECIAL_TOKEN :
-{
- < WhitespaceChar : ["\t", "\r", "\n", " "] >
-}
-
-TOKEN :
-{
- < #Letter : (<BaseChar> | <Ideographic>) >
-}
-
-TOKEN :
-{
- < #BaseChar : ["\u0041" - "\u005a", "\u0061" - "\u007a", "\u00c0" - "\u00d6", "\u00d8" - "\u00f6", "\u00f8" - "\u00ff", "\u0100" - "\u0131", "\u0134" - "\u013e", "\u0141" - "\u0148", "\u014a" - "\u017e", "\u0180" - "\u01c3", "\u01cd" - "\u01f0", "\u01f4" - "\u01f5", "\u01fa" - "\u0217", "\u0250" - "\u02a8", "\u02bb" - "\u02c1", "\u0386", "\u0388" - "\u038a", "\u038c", "\u038e" - "\u03a1", "\u03a3" - "\u03ce", "\u03d0" - "\u03d6", "\u03da", "\u03dc", "\u03de", "\u03e0", "\u03e2" - "\u03f3", "\u0401" - "\u040c", "\u040e" - "\u044f", "\u0451" - "\u045c", "\u045e" - "\u0481", "\u0490" - "\u04c4", "\u04c7" - "\u04c8", "\u04cb" - "\u04cc", "\u04d0" - "\u04eb", "\u04ee" - "\u04f5", "\u04f8" - "\u04f9", "\u0531" - "\u0556", "\u0559", "\u0561" - "\u0586", "\u05d0" - "\u05ea", "\u05f0" - "\u05f2", "\u0621" - "\u063a", "\u0641" - "\u064a", "\u0671" - "\u06b7", "\u06ba" - "\u06be", "\u06c0" - "\u06ce", "\u06d0" - "\u06d3", "\u06d5", "\u06e5" - "\u06e6", "\u0905" - "\u0939", "\u093d", "\u0958" - "\u0961", "\u0985" - "\u098c", "\u098f" - "\u0990", "\u0993" - "\u09a8", "\u09aa" - "\u09b0", "\u09b2", "\u09b6" - "\u09b9", "\u09dc" - "\u09dd", "\u09df" - "\u09e1", "\u09f0" - "\u09f1", "\u0a05" - "\u0a0a", "\u0a0f" - "\u0a10", "\u0a13" - "\u0a28", "\u0a2a" - "\u0a30", "\u0a32" - "\u0a33", "\u0a35" - "\u0a36", "\u0a38" - "\u0a39", "\u0a59" - "\u0a5c", "\u0a5e", "\u0a72" - "\u0a74", "\u0a85" - "\u0a8b", "\u0a8d", "\u0a8f" - "\u0a91", "\u0a93" - "\u0aa8", "\u0aaa" - "\u0ab0", "\u0ab2" - "\u0ab3", "\u0ab5" - "\u0ab9", "\u0abd", "\u0ae0", "\u0b05" - "\u0b0c", "\u0b0f" - "\u0b10", "\u0b13" - "\u0b28", "\u0b2a" - "\u0b30", "\u0b32" - "\u0b33", "\u0b36" - "\u0b39", "\u0b3d", "\u0b5c" - "\u0b5d", "\u0b5f" - "\u0b61", "\u0b85" - "\u0b8a", "\u0b8e" - "\u0b90", "\u0b92" - "\u0b95", "\u0b99" - "\u0b9a", "\u0b9c", "\u0b9e" - "\u0b9f", "\u0ba3" - "\u0ba4", "\u0ba8" - "\u0baa", "\u0bae" - "\u0bb5", "\u0bb7" - "\u0bb9", "\u0c05" - "\u0c0c", "\u0c0e" - "\u0c10", "\u0c12" - "\u0c28", "\u0c2a" - "\u0c33", "\u0c35" - "\u0c39", "\u0c60" - "\u0c61", "\u0c85" - "\u0c8c", "\u0c8e" - "\u0c90", "\u0c92" - "\u0ca8", "\u0caa" - "\u0cb3", "\u0cb5" - "\u0cb9", "\u0cde", "\u0ce0" - "\u0ce1", "\u0d05" - "\u0d0c", "\u0d0e" - "\u0d10", "\u0d12" - "\u0d28", "\u0d2a" - "\u0d39", "\u0d60" - "\u0d61", "\u0e01" - "\u0e2e", "\u0e30", "\u0e32" - "\u0e33", "\u0e40" - "\u0e45", "\u0e81" - "\u0e82", "\u0e84", "\u0e87" - "\u0e88", "\u0e8a", "\u0e8d", "\u0e94" - "\u0e97", "\u0e99" - "\u0e9f", "\u0ea1" - "\u0ea3", "\u0ea5", "\u0ea7", "\u0eaa" - "\u0eab", "\u0ead" - "\u0eae", "\u0eb0", "\u0eb2" - "\u0eb3", "\u0ebd", "\u0ec0" - "\u0ec4", "\u0f40" - "\u0f47", "\u0f49" - "\u0f69", "\u10a0" - "\u10c5", "\u10d0" - "\u10f6", "\u1100", "\u1102" - "\u1103", "\u1105" - "\u1107", "\u1109", "\u110b" - "\u110c", "\u110e" - "\u1112", "\u113c", "\u113e", "\u1140", "\u114c", "\u114e", "\u1150", "\u1154" - "\u1155", "\u1159", "\u115f" - "\u1161", "\u1163", "\u1165", "\u1167", "\u1169", "\u116d" - "\u116e", "\u1172" - "\u1173", "\u1175", "\u119e", "\u11a8", "\u11ab", "\u11ae" - "\u11af", "\u11b7" - "\u11b8", "\u11ba", "\u11bc" - "\u11c2", "\u11eb", "\u11f0", "\u11f9", "\u1e00" - "\u1e9b", "\u1ea0" - "\u1ef9", "\u1f00" - "\u1f15", "\u1f18" - "\u1f1d", "\u1f20" - "\u1f45", "\u1f48" - "\u1f4d", "\u1f50" - "\u1f57", "\u1f59", "\u1f5b", "\u1f5d", "\u1f5f" - "\u1f7d", "\u1f80" - "\u1fb4", "\u1fb6" - "\u1fbc", "\u1fbe", "\u1fc2" - "\u1fc4", "\u1fc6" - "\u1fcc", "\u1fd0" - "\u1fd3", "\u1fd6" - "\u1fdb", "\u1fe0" - "\u1fec", "\u1ff2" - "\u1ff4", "\u1ff6" - "\u1ffc", "\u2126", "\u212a" - "\u212b", "\u212e", "\u2180" - "\u2182", "\u3041" - "\u3094", "\u30a1" - "\u30fa", "\u3105" - "\u312c", "\uac00" - "\ud7a3"] >
-}
-
-TOKEN :
-{
- < #Ideographic : ["\u4e00" - "\u9fa5", "\u3007", "\u3021" - "\u3029"] >
-}
-
-TOKEN :
-{
- < #CombiningChar : ["\u0300" - "\u0345", "\u0360" - "\u0361", "\u0483" - "\u0486", "\u0591" - "\u05a1", "\u05a3" - "\u05b9", "\u05bb" - "\u05bd", "\u05bf", "\u05c1" - "\u05c2", "\u05c4", "\u064b" - "\u0652", "\u0670", "\u06d6" - "\u06dc", "\u06dd" - "\u06df", "\u06e0" - "\u06e4", "\u06e7" - "\u06e8", "\u06ea" - "\u06ed", "\u0901" - "\u0903", "\u093c", "\u093e" - "\u094c", "\u094d", "\u0951" - "\u0954", "\u0962" - "\u0963", "\u0981" - "\u0983", "\u09bc", "\u09be", "\u09bf", "\u09c0" - "\u09c4", "\u09c7" - "\u09c8", "\u09cb" - "\u09cd", "\u09d7", "\u09e2" - "\u09e3", "\u0a02", "\u0a3c", "\u0a3e", "\u0a3f", "\u0a40" - "\u0a42", "\u0a47" - "\u0a48", "\u0a4b" - "\u0a4d", "\u0a70" - "\u0a71", "\u0a81" - "\u0a83", "\u0abc", "\u0abe" - "\u0ac5", "\u0ac7" - "\u0ac9", "\u0acb" - "\u0acd", "\u0b01" - "\u0b03", "\u0b3c", "\u0b3e" - "\u0b43", "\u0b47" - "\u0b48", "\u0b4b" - "\u0b4d", "\u0b56" - "\u0b57", "\u0b82" - "\u0b83", "\u0bbe" - "\u0bc2", "\u0bc6" - "\u0bc8", "\u0bca" - "\u0bcd", "\u0bd7", "\u0c01" - "\u0c03", "\u0c3e" - "\u0c44", "\u0c46" - "\u0c48", "\u0c4a" - "\u0c4d", "\u0c55" - "\u0c56", "\u0c82" - "\u0c83", "\u0cbe" - "\u0cc4", "\u0cc6" - "\u0cc8", "\u0cca" - "\u0ccd", "\u0cd5" - "\u0cd6", "\u0d02" - "\u0d03", "\u0d3e" - "\u0d43", "\u0d46" - "\u0d48", "\u0d4a" - "\u0d4d", "\u0d57", "\u0e31", "\u0e34" - "\u0e3a", "\u0e47" - "\u0e4e", "\u0eb1", "\u0eb4" - "\u0eb9", "\u0ebb" - "\u0ebc", "\u0ec8" - "\u0ecd", "\u0f18" - "\u0f19", "\u0f35", "\u0f37", "\u0f39", "\u0f3e", "\u0f3f", "\u0f71" - "\u0f84", "\u0f86" - "\u0f8b", "\u0f90" - "\u0f95", "\u0f97", "\u0f99" - "\u0fad", "\u0fb1" - "\u0fb7", "\u0fb9", "\u20d0" - "\u20dc", "\u20e1", "\u302a" - "\u302f", "\u3099", "\u309a"] >
-}
-
-TOKEN :
-{
- < #Digit : ["\u0030" - "\u0039", "\u0660" - "\u0669", "\u06f0" - "\u06f9", "\u0966" - "\u096f", "\u09e6" - "\u09ef", "\u0a66" - "\u0a6f", "\u0ae6" - "\u0aef", "\u0b66" - "\u0b6f", "\u0be7" - "\u0bef", "\u0c66" - "\u0c6f", "\u0ce6" - "\u0cef", "\u0d66" - "\u0d6f", "\u0e50" - "\u0e59", "\u0ed0" - "\u0ed9", "\u0f20" - "\u0f29"] >
-}
-
-TOKEN :
-{
- < #Extender : ["\u00b7", "\u02d0", "\u02d1", "\u0387", "\u0640", "\u0e46", "\u0ec6", "\u3005", "\u3031" - "\u3035", "\u309d" - "\u309e", "\u30fc" - "\u30fe"] >
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-client/pom.xml b/hyracks/hyracks-client/pom.xml
index 854a009..c86b0d3 100644
--- a/hyracks/hyracks-client/pom.xml
+++ b/hyracks/hyracks-client/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -25,22 +25,22 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-net</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-comm</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/hyracks/hyracks-comm/pom.xml b/hyracks/hyracks-comm/pom.xml
index c3583699..2720f95 100644
--- a/hyracks/hyracks-comm/pom.xml
+++ b/hyracks/hyracks-comm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -25,12 +25,12 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-net</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/hyracks/hyracks-control/hyracks-control-cc/pom.xml b/hyracks/hyracks-control/hyracks-control-cc/pom.xml
index 934dbb2..1730595 100644
--- a/hyracks/hyracks-control/hyracks-control-cc/pom.xml
+++ b/hyracks/hyracks-control/hyracks-control-cc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -15,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -26,7 +26,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js b/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js
index 3fc46ff..8e94269 100644
--- a/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js
+++ b/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js
@@ -127,7 +127,7 @@
netSignalingReadBWArray.push([ i, computeRate(netSignalingBytesRead, rrdPtr) ]);
netSignalingReadBWArray.push([ i, computeRate(datasetNetSignalingBytesRead, rrdPtr) ]);
netSignalingWriteBWArray.push([ i, computeRate(netSignalingBytesWritten, rrdPtr) ]);
- netSignalingWriteBWArray.push([ i, computeRate(etSignalingBytesWritten, rrdPtr) ]);
+ netSignalingWriteBWArray.push([ i, computeRate(netSignalingBytesWritten, rrdPtr) ]);
ipcMessageSendRateArray.push([ i, computeRate(ipcMessagesSent, rrdPtr) ]);
ipcMessageBytesSendRateArray.push([ i, computeRate(ipcMessageBytesSent, rrdPtr) ]);
ipcMessageReceiveRateArray.push([ i, computeRate(ipcMessagesReceived, rrdPtr) ]);
@@ -237,4 +237,4 @@
}
fetchData();
-});
\ No newline at end of file
+});
diff --git a/hyracks/hyracks-control/hyracks-control-common/pom.xml b/hyracks/hyracks-control/hyracks-control-common/pom.xml
index 08f013d..75fe3c9 100644
--- a/hyracks/hyracks-control/hyracks-control-common/pom.xml
+++ b/hyracks/hyracks-control/hyracks-control-common/pom.xml
@@ -3,12 +3,12 @@
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-common</artifactId>
<name>hyracks-control-common</name>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -29,7 +29,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java b/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java
index 83c0f98..d1577bc 100644
--- a/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java
+++ b/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java
@@ -81,7 +81,8 @@
cList.add(String.valueOf(maxMemory));
cList.add("-result-manager-memory");
cList.add(String.valueOf(resultManagerMemory));
- if (appNCMainClass != null) {
+
+ if (appNCMainClass != null) {
cList.add("-app-nc-main-class");
cList.add(appNCMainClass);
}
diff --git a/hyracks/hyracks-control/hyracks-control-nc/pom.xml b/hyracks/hyracks-control/hyracks-control-nc/pom.xml
index 24748b3..df5c998 100644
--- a/hyracks/hyracks-control/hyracks-control-nc/pom.xml
+++ b/hyracks/hyracks-control/hyracks-control-nc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -15,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -26,19 +26,19 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-net</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-comm</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
<reporting>
diff --git a/hyracks/hyracks-control/pom.xml b/hyracks/hyracks-control/pom.xml
index 13ebf41..e1ab98d 100644
--- a/hyracks/hyracks-control/pom.xml
+++ b/hyracks/hyracks-control/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-data/hyracks-data-std/pom.xml b/hyracks/hyracks-data/hyracks-data-std/pom.xml
index d676088..fe53083 100644
--- a/hyracks/hyracks-data/hyracks-data-std/pom.xml
+++ b/hyracks/hyracks-data/hyracks-data-std/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,7 +27,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/hyracks/hyracks-data/pom.xml b/hyracks/hyracks-data/pom.xml
index db4d8e9..45460cab 100644
--- a/hyracks/hyracks-data/pom.xml
+++ b/hyracks/hyracks-data/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-dataflow-common/pom.xml b/hyracks/hyracks-dataflow-common/pom.xml
index 34cb096..c66d10e 100644
--- a/hyracks/hyracks-dataflow-common/pom.xml
+++ b/hyracks/hyracks-dataflow-common/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -15,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -26,14 +26,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/hyracks/hyracks-dataflow-hadoop/pom.xml b/hyracks/hyracks-dataflow-hadoop/pom.xml
index 57b59c7..18bcba7 100644
--- a/hyracks/hyracks-dataflow-hadoop/pom.xml
+++ b/hyracks/hyracks-dataflow-hadoop/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
</plugins>
@@ -26,14 +26,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -53,7 +53,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
diff --git a/hyracks/hyracks-dataflow-std/pom.xml b/hyracks/hyracks-dataflow-std/pom.xml
index 7e1a9a5..bd4a837 100644
--- a/hyracks/hyracks-dataflow-std/pom.xml
+++ b/hyracks/hyracks-dataflow-std/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -27,14 +27,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-dist/pom.xml b/hyracks/hyracks-dist/pom.xml
index c86c4e6..e79eba7 100755
--- a/hyracks/hyracks-dist/pom.xml
+++ b/hyracks/hyracks-dist/pom.xml
@@ -1,12 +1,10 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>hyracks</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<artifactId>hyracks-dist</artifactId>
@@ -23,8 +21,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
<plugin>
diff --git a/hyracks/hyracks-dist/src/main/resources/bin/startcc.sh b/hyracks/hyracks-dist/src/main/resources/bin/startcc.sh
index efb79ce..484ecac 100755
--- a/hyracks/hyracks-dist/src/main/resources/bin/startcc.sh
+++ b/hyracks/hyracks-dist/src/main/resources/bin/startcc.sh
@@ -22,4 +22,10 @@
#Launch hyracks cc script
chmod -R 755 $HYRACKS_HOME
+if [ -f "conf/topology.xml" ]; then
+#Launch hyracks cc script with topology
+$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyrackscc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 0 -cluster-topology "conf/topology.xml" &> $CCLOGS_DIR/cc.log &
+else
+#Launch hyracks cc script without toplogy
$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyrackscc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 0 &> $CCLOGS_DIR/cc.log &
+fi
diff --git a/hyracks/hyracks-dist/src/main/resources/conf/topology-template.xml b/hyracks/hyracks-dist/src/main/resources/conf/topology-template.xml
new file mode 100755
index 0000000..4710706
--- /dev/null
+++ b/hyracks/hyracks-dist/src/main/resources/conf/topology-template.xml
@@ -0,0 +1,7 @@
+<cluster-topology>
+ <network-switch name="Global">
+ <network-switch name="local">
+ <terminal name="127.0.0.1"/>
+ </network-switch>
+ </network-switch>
+</cluster-topology>
\ No newline at end of file
diff --git a/hyracks/hyracks-documentation/pom.xml b/hyracks/hyracks-documentation/pom.xml
index 7aedd57..b5e42ad 100644
--- a/hyracks/hyracks-documentation/pom.xml
+++ b/hyracks/hyracks-documentation/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
diff --git a/hyracks/hyracks-examples/btree-example/btreeclient/pom.xml b/hyracks/hyracks-examples/btree-example/btreeclient/pom.xml
index ebca323..64e30f9 100644
--- a/hyracks/hyracks-examples/btree-example/btreeclient/pom.xml
+++ b/hyracks/hyracks-examples/btree-example/btreeclient/pom.xml
@@ -6,26 +6,26 @@
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>btree-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks.examples.btree</groupId>
<artifactId>btreehelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -37,8 +37,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-examples/btree-example/btreehelper/pom.xml b/hyracks/hyracks-examples/btree-example/btreehelper/pom.xml
index ddb5b39..7f212ab 100644
--- a/hyracks/hyracks-examples/btree-example/btreehelper/pom.xml
+++ b/hyracks/hyracks-examples/btree-example/btreehelper/pom.xml
@@ -6,32 +6,32 @@
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>btree-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
@@ -41,8 +41,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-examples/btree-example/btreeserver/pom.xml b/hyracks/hyracks-examples/btree-example/btreeserver/pom.xml
index ec6747d..93b5f4f 100644
--- a/hyracks/hyracks-examples/btree-example/btreeserver/pom.xml
+++ b/hyracks/hyracks-examples/btree-example/btreeserver/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks.examples.btree</groupId>
<artifactId>btreeserver</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>btreeserver</name>
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>btree-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -63,20 +63,20 @@
<dependency>
<groupId>edu.uci.ics.hyracks.examples.btree</groupId>
<artifactId>btreehelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-examples/btree-example/pom.xml b/hyracks/hyracks-examples/btree-example/pom.xml
index d8a4367..135665a 100644
--- a/hyracks/hyracks-examples/btree-example/pom.xml
+++ b/hyracks/hyracks-examples/btree-example/pom.xml
@@ -2,14 +2,14 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>btree-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>btree-example</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-examples</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/conf/local_cluster.conf b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/conf/local_cluster.conf
deleted file mode 100644
index 3669616..0000000
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/conf/local_cluster.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-clusterControllerHost=localhost
-fs.default.name=file:///
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/data/file1.txt b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/data/file1.txt
deleted file mode 100644
index c4c3130..0000000
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/data/file1.txt
+++ /dev/null
@@ -1,13052 +0,0 @@
-Project Gutenberg's The Adventures of Sherlock Holmes, by Arthur Conan Doyle
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.net
-
-
-Title: The Adventures of Sherlock Holmes
-
-Author: Arthur Conan Doyle
-
-Posting Date: April 18, 2011 [EBook #1661]
-First Posted: November 29, 2002
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK THE ADVENTURES OF SHERLOCK HOLMES ***
-
-
-
-
-Produced by an anonymous Project Gutenberg volunteer and Jose Menendez
-
-
-
-
-
-
-
-
-
-THE ADVENTURES OF SHERLOCK HOLMES
-
-by
-
-SIR ARTHUR CONAN DOYLE
-
-
-
- I. A Scandal in Bohemia
- II. The Red-headed League
- III. A Case of Identity
- IV. The Boscombe Valley Mystery
- V. The Five Orange Pips
- VI. The Man with the Twisted Lip
- VII. The Adventure of the Blue Carbuncle
-VIII. The Adventure of the Speckled Band
- IX. The Adventure of the Engineer's Thumb
- X. The Adventure of the Noble Bachelor
- XI. The Adventure of the Beryl Coronet
- XII. The Adventure of the Copper Beeches
-
-
-
-
-ADVENTURE I. A SCANDAL IN BOHEMIA
-
-I.
-
-To Sherlock Holmes she is always THE woman. I have seldom heard
-him mention her under any other name. In his eyes she eclipses
-and predominates the whole of her sex. It was not that he felt
-any emotion akin to love for Irene Adler. All emotions, and that
-one particularly, were abhorrent to his cold, precise but
-admirably balanced mind. He was, I take it, the most perfect
-reasoning and observing machine that the world has seen, but as a
-lover he would have placed himself in a false position. He never
-spoke of the softer passions, save with a gibe and a sneer. They
-were admirable things for the observer--excellent for drawing the
-veil from men's motives and actions. But for the trained reasoner
-to admit such intrusions into his own delicate and finely
-adjusted temperament was to introduce a distracting factor which
-might throw a doubt upon all his mental results. Grit in a
-sensitive instrument, or a crack in one of his own high-power
-lenses, would not be more disturbing than a strong emotion in a
-nature such as his. And yet there was but one woman to him, and
-that woman was the late Irene Adler, of dubious and questionable
-memory.
-
-I had seen little of Holmes lately. My marriage had drifted us
-away from each other. My own complete happiness, and the
-home-centred interests which rise up around the man who first
-finds himself master of his own establishment, were sufficient to
-absorb all my attention, while Holmes, who loathed every form of
-society with his whole Bohemian soul, remained in our lodgings in
-Baker Street, buried among his old books, and alternating from
-week to week between cocaine and ambition, the drowsiness of the
-drug, and the fierce energy of his own keen nature. He was still,
-as ever, deeply attracted by the study of crime, and occupied his
-immense faculties and extraordinary powers of observation in
-following out those clues, and clearing up those mysteries which
-had been abandoned as hopeless by the official police. From time
-to time I heard some vague account of his doings: of his summons
-to Odessa in the case of the Trepoff murder, of his clearing up
-of the singular tragedy of the Atkinson brothers at Trincomalee,
-and finally of the mission which he had accomplished so
-delicately and successfully for the reigning family of Holland.
-Beyond these signs of his activity, however, which I merely
-shared with all the readers of the daily press, I knew little of
-my former friend and companion.
-
-One night--it was on the twentieth of March, 1888--I was
-returning from a journey to a patient (for I had now returned to
-civil practice), when my way led me through Baker Street. As I
-passed the well-remembered door, which must always be associated
-in my mind with my wooing, and with the dark incidents of the
-Study in Scarlet, I was seized with a keen desire to see Holmes
-again, and to know how he was employing his extraordinary powers.
-His rooms were brilliantly lit, and, even as I looked up, I saw
-his tall, spare figure pass twice in a dark silhouette against
-the blind. He was pacing the room swiftly, eagerly, with his head
-sunk upon his chest and his hands clasped behind him. To me, who
-knew his every mood and habit, his attitude and manner told their
-own story. He was at work again. He had risen out of his
-drug-created dreams and was hot upon the scent of some new
-problem. I rang the bell and was shown up to the chamber which
-had formerly been in part my own.
-
-His manner was not effusive. It seldom was; but he was glad, I
-think, to see me. With hardly a word spoken, but with a kindly
-eye, he waved me to an armchair, threw across his case of cigars,
-and indicated a spirit case and a gasogene in the corner. Then he
-stood before the fire and looked me over in his singular
-introspective fashion.
-
-"Wedlock suits you," he remarked. "I think, Watson, that you have
-put on seven and a half pounds since I saw you."
-
-"Seven!" I answered.
-
-"Indeed, I should have thought a little more. Just a trifle more,
-I fancy, Watson. And in practice again, I observe. You did not
-tell me that you intended to go into harness."
-
-"Then, how do you know?"
-
-"I see it, I deduce it. How do I know that you have been getting
-yourself very wet lately, and that you have a most clumsy and
-careless servant girl?"
-
-"My dear Holmes," said I, "this is too much. You would certainly
-have been burned, had you lived a few centuries ago. It is true
-that I had a country walk on Thursday and came home in a dreadful
-mess, but as I have changed my clothes I can't imagine how you
-deduce it. As to Mary Jane, she is incorrigible, and my wife has
-given her notice, but there, again, I fail to see how you work it
-out."
-
-He chuckled to himself and rubbed his long, nervous hands
-together.
-
-"It is simplicity itself," said he; "my eyes tell me that on the
-inside of your left shoe, just where the firelight strikes it,
-the leather is scored by six almost parallel cuts. Obviously they
-have been caused by someone who has very carelessly scraped round
-the edges of the sole in order to remove crusted mud from it.
-Hence, you see, my double deduction that you had been out in vile
-weather, and that you had a particularly malignant boot-slitting
-specimen of the London slavey. As to your practice, if a
-gentleman walks into my rooms smelling of iodoform, with a black
-mark of nitrate of silver upon his right forefinger, and a bulge
-on the right side of his top-hat to show where he has secreted
-his stethoscope, I must be dull, indeed, if I do not pronounce
-him to be an active member of the medical profession."
-
-I could not help laughing at the ease with which he explained his
-process of deduction. "When I hear you give your reasons," I
-remarked, "the thing always appears to me to be so ridiculously
-simple that I could easily do it myself, though at each
-successive instance of your reasoning I am baffled until you
-explain your process. And yet I believe that my eyes are as good
-as yours."
-
-"Quite so," he answered, lighting a cigarette, and throwing
-himself down into an armchair. "You see, but you do not observe.
-The distinction is clear. For example, you have frequently seen
-the steps which lead up from the hall to this room."
-
-"Frequently."
-
-"How often?"
-
-"Well, some hundreds of times."
-
-"Then how many are there?"
-
-"How many? I don't know."
-
-"Quite so! You have not observed. And yet you have seen. That is
-just my point. Now, I know that there are seventeen steps,
-because I have both seen and observed. By-the-way, since you are
-interested in these little problems, and since you are good
-enough to chronicle one or two of my trifling experiences, you
-may be interested in this." He threw over a sheet of thick,
-pink-tinted note-paper which had been lying open upon the table.
-"It came by the last post," said he. "Read it aloud."
-
-The note was undated, and without either signature or address.
-
-"There will call upon you to-night, at a quarter to eight
-o'clock," it said, "a gentleman who desires to consult you upon a
-matter of the very deepest moment. Your recent services to one of
-the royal houses of Europe have shown that you are one who may
-safely be trusted with matters which are of an importance which
-can hardly be exaggerated. This account of you we have from all
-quarters received. Be in your chamber then at that hour, and do
-not take it amiss if your visitor wear a mask."
-
-"This is indeed a mystery," I remarked. "What do you imagine that
-it means?"
-
-"I have no data yet. It is a capital mistake to theorize before
-one has data. Insensibly one begins to twist facts to suit
-theories, instead of theories to suit facts. But the note itself.
-What do you deduce from it?"
-
-I carefully examined the writing, and the paper upon which it was
-written.
-
-"The man who wrote it was presumably well to do," I remarked,
-endeavouring to imitate my companion's processes. "Such paper
-could not be bought under half a crown a packet. It is peculiarly
-strong and stiff."
-
-"Peculiar--that is the very word," said Holmes. "It is not an
-English paper at all. Hold it up to the light."
-
-I did so, and saw a large "E" with a small "g," a "P," and a
-large "G" with a small "t" woven into the texture of the paper.
-
-"What do you make of that?" asked Holmes.
-
-"The name of the maker, no doubt; or his monogram, rather."
-
-"Not at all. The 'G' with the small 't' stands for
-'Gesellschaft,' which is the German for 'Company.' It is a
-customary contraction like our 'Co.' 'P,' of course, stands for
-'Papier.' Now for the 'Eg.' Let us glance at our Continental
-Gazetteer." He took down a heavy brown volume from his shelves.
-"Eglow, Eglonitz--here we are, Egria. It is in a German-speaking
-country--in Bohemia, not far from Carlsbad. 'Remarkable as being
-the scene of the death of Wallenstein, and for its numerous
-glass-factories and paper-mills.' Ha, ha, my boy, what do you
-make of that?" His eyes sparkled, and he sent up a great blue
-triumphant cloud from his cigarette.
-
-"The paper was made in Bohemia," I said.
-
-"Precisely. And the man who wrote the note is a German. Do you
-note the peculiar construction of the sentence--'This account of
-you we have from all quarters received.' A Frenchman or Russian
-could not have written that. It is the German who is so
-uncourteous to his verbs. It only remains, therefore, to discover
-what is wanted by this German who writes upon Bohemian paper and
-prefers wearing a mask to showing his face. And here he comes, if
-I am not mistaken, to resolve all our doubts."
-
-As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.
-
-"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There's money in
-this case, Watson, if there is nothing else."
-
-"I think that I had better go, Holmes."
-
-"Not a bit, Doctor. Stay where you are. I am lost without my
-Boswell. And this promises to be interesting. It would be a pity
-to miss it."
-
-"But your client--"
-
-"Never mind him. I may want your help, and so may he. Here he
-comes. Sit down in that armchair, Doctor, and give us your best
-attention."
-
-A slow and heavy step, which had been heard upon the stairs and
-in the passage, paused immediately outside the door. Then there
-was a loud and authoritative tap.
-
-"Come in!" said Holmes.
-
-A man entered who could hardly have been less than six feet six
-inches in height, with the chest and limbs of a Hercules. His
-dress was rich with a richness which would, in England, be looked
-upon as akin to bad taste. Heavy bands of astrakhan were slashed
-across the sleeves and fronts of his double-breasted coat, while
-the deep blue cloak which was thrown over his shoulders was lined
-with flame-coloured silk and secured at the neck with a brooch
-which consisted of a single flaming beryl. Boots which extended
-halfway up his calves, and which were trimmed at the tops with
-rich brown fur, completed the impression of barbaric opulence
-which was suggested by his whole appearance. He carried a
-broad-brimmed hat in his hand, while he wore across the upper
-part of his face, extending down past the cheekbones, a black
-vizard mask, which he had apparently adjusted that very moment,
-for his hand was still raised to it as he entered. From the lower
-part of the face he appeared to be a man of strong character,
-with a thick, hanging lip, and a long, straight chin suggestive
-of resolution pushed to the length of obstinacy.
-
-"You had my note?" he asked with a deep harsh voice and a
-strongly marked German accent. "I told you that I would call." He
-looked from one to the other of us, as if uncertain which to
-address.
-
-"Pray take a seat," said Holmes. "This is my friend and
-colleague, Dr. Watson, who is occasionally good enough to help me
-in my cases. Whom have I the honour to address?"
-
-"You may address me as the Count Von Kramm, a Bohemian nobleman.
-I understand that this gentleman, your friend, is a man of honour
-and discretion, whom I may trust with a matter of the most
-extreme importance. If not, I should much prefer to communicate
-with you alone."
-
-I rose to go, but Holmes caught me by the wrist and pushed me
-back into my chair. "It is both, or none," said he. "You may say
-before this gentleman anything which you may say to me."
-
-The Count shrugged his broad shoulders. "Then I must begin," said
-he, "by binding you both to absolute secrecy for two years; at
-the end of that time the matter will be of no importance. At
-present it is not too much to say that it is of such weight it
-may have an influence upon European history."
-
-"I promise," said Holmes.
-
-"And I."
-
-"You will excuse this mask," continued our strange visitor. "The
-august person who employs me wishes his agent to be unknown to
-you, and I may confess at once that the title by which I have
-just called myself is not exactly my own."
-
-"I was aware of it," said Holmes dryly.
-
-"The circumstances are of great delicacy, and every precaution
-has to be taken to quench what might grow to be an immense
-scandal and seriously compromise one of the reigning families of
-Europe. To speak plainly, the matter implicates the great House
-of Ormstein, hereditary kings of Bohemia."
-
-"I was also aware of that," murmured Holmes, settling himself
-down in his armchair and closing his eyes.
-
-Our visitor glanced with some apparent surprise at the languid,
-lounging figure of the man who had been no doubt depicted to him
-as the most incisive reasoner and most energetic agent in Europe.
-Holmes slowly reopened his eyes and looked impatiently at his
-gigantic client.
-
-"If your Majesty would condescend to state your case," he
-remarked, "I should be better able to advise you."
-
-The man sprang from his chair and paced up and down the room in
-uncontrollable agitation. Then, with a gesture of desperation, he
-tore the mask from his face and hurled it upon the ground. "You
-are right," he cried; "I am the King. Why should I attempt to
-conceal it?"
-
-"Why, indeed?" murmured Holmes. "Your Majesty had not spoken
-before I was aware that I was addressing Wilhelm Gottsreich
-Sigismond von Ormstein, Grand Duke of Cassel-Felstein, and
-hereditary King of Bohemia."
-
-"But you can understand," said our strange visitor, sitting down
-once more and passing his hand over his high white forehead, "you
-can understand that I am not accustomed to doing such business in
-my own person. Yet the matter was so delicate that I could not
-confide it to an agent without putting myself in his power. I
-have come incognito from Prague for the purpose of consulting
-you."
-
-"Then, pray consult," said Holmes, shutting his eyes once more.
-
-"The facts are briefly these: Some five years ago, during a
-lengthy visit to Warsaw, I made the acquaintance of the well-known
-adventuress, Irene Adler. The name is no doubt familiar to you."
-
-"Kindly look her up in my index, Doctor," murmured Holmes without
-opening his eyes. For many years he had adopted a system of
-docketing all paragraphs concerning men and things, so that it
-was difficult to name a subject or a person on which he could not
-at once furnish information. In this case I found her biography
-sandwiched in between that of a Hebrew rabbi and that of a
-staff-commander who had written a monograph upon the deep-sea
-fishes.
-
-"Let me see!" said Holmes. "Hum! Born in New Jersey in the year
-1858. Contralto--hum! La Scala, hum! Prima donna Imperial Opera
-of Warsaw--yes! Retired from operatic stage--ha! Living in
-London--quite so! Your Majesty, as I understand, became entangled
-with this young person, wrote her some compromising letters, and
-is now desirous of getting those letters back."
-
-"Precisely so. But how--"
-
-"Was there a secret marriage?"
-
-"None."
-
-"No legal papers or certificates?"
-
-"None."
-
-"Then I fail to follow your Majesty. If this young person should
-produce her letters for blackmailing or other purposes, how is
-she to prove their authenticity?"
-
-"There is the writing."
-
-"Pooh, pooh! Forgery."
-
-"My private note-paper."
-
-"Stolen."
-
-"My own seal."
-
-"Imitated."
-
-"My photograph."
-
-"Bought."
-
-"We were both in the photograph."
-
-"Oh, dear! That is very bad! Your Majesty has indeed committed an
-indiscretion."
-
-"I was mad--insane."
-
-"You have compromised yourself seriously."
-
-"I was only Crown Prince then. I was young. I am but thirty now."
-
-"It must be recovered."
-
-"We have tried and failed."
-
-"Your Majesty must pay. It must be bought."
-
-"She will not sell."
-
-"Stolen, then."
-
-"Five attempts have been made. Twice burglars in my pay ransacked
-her house. Once we diverted her luggage when she travelled. Twice
-she has been waylaid. There has been no result."
-
-"No sign of it?"
-
-"Absolutely none."
-
-Holmes laughed. "It is quite a pretty little problem," said he.
-
-"But a very serious one to me," returned the King reproachfully.
-
-"Very, indeed. And what does she propose to do with the
-photograph?"
-
-"To ruin me."
-
-"But how?"
-
-"I am about to be married."
-
-"So I have heard."
-
-"To Clotilde Lothman von Saxe-Meningen, second daughter of the
-King of Scandinavia. You may know the strict principles of her
-family. She is herself the very soul of delicacy. A shadow of a
-doubt as to my conduct would bring the matter to an end."
-
-"And Irene Adler?"
-
-"Threatens to send them the photograph. And she will do it. I
-know that she will do it. You do not know her, but she has a soul
-of steel. She has the face of the most beautiful of women, and
-the mind of the most resolute of men. Rather than I should marry
-another woman, there are no lengths to which she would not
-go--none."
-
-"You are sure that she has not sent it yet?"
-
-"I am sure."
-
-"And why?"
-
-"Because she has said that she would send it on the day when the
-betrothal was publicly proclaimed. That will be next Monday."
-
-"Oh, then we have three days yet," said Holmes with a yawn. "That
-is very fortunate, as I have one or two matters of importance to
-look into just at present. Your Majesty will, of course, stay in
-London for the present?"
-
-"Certainly. You will find me at the Langham under the name of the
-Count Von Kramm."
-
-"Then I shall drop you a line to let you know how we progress."
-
-"Pray do so. I shall be all anxiety."
-
-"Then, as to money?"
-
-"You have carte blanche."
-
-"Absolutely?"
-
-"I tell you that I would give one of the provinces of my kingdom
-to have that photograph."
-
-"And for present expenses?"
-
-The King took a heavy chamois leather bag from under his cloak
-and laid it on the table.
-
-"There are three hundred pounds in gold and seven hundred in
-notes," he said.
-
-Holmes scribbled a receipt upon a sheet of his note-book and
-handed it to him.
-
-"And Mademoiselle's address?" he asked.
-
-"Is Briony Lodge, Serpentine Avenue, St. John's Wood."
-
-Holmes took a note of it. "One other question," said he. "Was the
-photograph a cabinet?"
-
-"It was."
-
-"Then, good-night, your Majesty, and I trust that we shall soon
-have some good news for you. And good-night, Watson," he added,
-as the wheels of the royal brougham rolled down the street. "If
-you will be good enough to call to-morrow afternoon at three
-o'clock I should like to chat this little matter over with you."
-
-
-II.
-
-At three o'clock precisely I was at Baker Street, but Holmes had
-not yet returned. The landlady informed me that he had left the
-house shortly after eight o'clock in the morning. I sat down
-beside the fire, however, with the intention of awaiting him,
-however long he might be. I was already deeply interested in his
-inquiry, for, though it was surrounded by none of the grim and
-strange features which were associated with the two crimes which
-I have already recorded, still, the nature of the case and the
-exalted station of his client gave it a character of its own.
-Indeed, apart from the nature of the investigation which my
-friend had on hand, there was something in his masterly grasp of
-a situation, and his keen, incisive reasoning, which made it a
-pleasure to me to study his system of work, and to follow the
-quick, subtle methods by which he disentangled the most
-inextricable mysteries. So accustomed was I to his invariable
-success that the very possibility of his failing had ceased to
-enter into my head.
-
-It was close upon four before the door opened, and a
-drunken-looking groom, ill-kempt and side-whiskered, with an
-inflamed face and disreputable clothes, walked into the room.
-Accustomed as I was to my friend's amazing powers in the use of
-disguises, I had to look three times before I was certain that it
-was indeed he. With a nod he vanished into the bedroom, whence he
-emerged in five minutes tweed-suited and respectable, as of old.
-Putting his hands into his pockets, he stretched out his legs in
-front of the fire and laughed heartily for some minutes.
-
-"Well, really!" he cried, and then he choked and laughed again
-until he was obliged to lie back, limp and helpless, in the
-chair.
-
-"What is it?"
-
-"It's quite too funny. I am sure you could never guess how I
-employed my morning, or what I ended by doing."
-
-"I can't imagine. I suppose that you have been watching the
-habits, and perhaps the house, of Miss Irene Adler."
-
-"Quite so; but the sequel was rather unusual. I will tell you,
-however. I left the house a little after eight o'clock this
-morning in the character of a groom out of work. There is a
-wonderful sympathy and freemasonry among horsey men. Be one of
-them, and you will know all that there is to know. I soon found
-Briony Lodge. It is a bijou villa, with a garden at the back, but
-built out in front right up to the road, two stories. Chubb lock
-to the door. Large sitting-room on the right side, well
-furnished, with long windows almost to the floor, and those
-preposterous English window fasteners which a child could open.
-Behind there was nothing remarkable, save that the passage window
-could be reached from the top of the coach-house. I walked round
-it and examined it closely from every point of view, but without
-noting anything else of interest.
-
-"I then lounged down the street and found, as I expected, that
-there was a mews in a lane which runs down by one wall of the
-garden. I lent the ostlers a hand in rubbing down their horses,
-and received in exchange twopence, a glass of half and half, two
-fills of shag tobacco, and as much information as I could desire
-about Miss Adler, to say nothing of half a dozen other people in
-the neighbourhood in whom I was not in the least interested, but
-whose biographies I was compelled to listen to."
-
-"And what of Irene Adler?" I asked.
-
-"Oh, she has turned all the men's heads down in that part. She is
-the daintiest thing under a bonnet on this planet. So say the
-Serpentine-mews, to a man. She lives quietly, sings at concerts,
-drives out at five every day, and returns at seven sharp for
-dinner. Seldom goes out at other times, except when she sings.
-Has only one male visitor, but a good deal of him. He is dark,
-handsome, and dashing, never calls less than once a day, and
-often twice. He is a Mr. Godfrey Norton, of the Inner Temple. See
-the advantages of a cabman as a confidant. They had driven him
-home a dozen times from Serpentine-mews, and knew all about him.
-When I had listened to all they had to tell, I began to walk up
-and down near Briony Lodge once more, and to think over my plan
-of campaign.
-
-"This Godfrey Norton was evidently an important factor in the
-matter. He was a lawyer. That sounded ominous. What was the
-relation between them, and what the object of his repeated
-visits? Was she his client, his friend, or his mistress? If the
-former, she had probably transferred the photograph to his
-keeping. If the latter, it was less likely. On the issue of this
-question depended whether I should continue my work at Briony
-Lodge, or turn my attention to the gentleman's chambers in the
-Temple. It was a delicate point, and it widened the field of my
-inquiry. I fear that I bore you with these details, but I have to
-let you see my little difficulties, if you are to understand the
-situation."
-
-"I am following you closely," I answered.
-
-"I was still balancing the matter in my mind when a hansom cab
-drove up to Briony Lodge, and a gentleman sprang out. He was a
-remarkably handsome man, dark, aquiline, and moustached--evidently
-the man of whom I had heard. He appeared to be in a
-great hurry, shouted to the cabman to wait, and brushed past the
-maid who opened the door with the air of a man who was thoroughly
-at home.
-
-"He was in the house about half an hour, and I could catch
-glimpses of him in the windows of the sitting-room, pacing up and
-down, talking excitedly, and waving his arms. Of her I could see
-nothing. Presently he emerged, looking even more flurried than
-before. As he stepped up to the cab, he pulled a gold watch from
-his pocket and looked at it earnestly, 'Drive like the devil,' he
-shouted, 'first to Gross & Hankey's in Regent Street, and then to
-the Church of St. Monica in the Edgeware Road. Half a guinea if
-you do it in twenty minutes!'
-
-"Away they went, and I was just wondering whether I should not do
-well to follow them when up the lane came a neat little landau,
-the coachman with his coat only half-buttoned, and his tie under
-his ear, while all the tags of his harness were sticking out of
-the buckles. It hadn't pulled up before she shot out of the hall
-door and into it. I only caught a glimpse of her at the moment,
-but she was a lovely woman, with a face that a man might die for.
-
-"'The Church of St. Monica, John,' she cried, 'and half a
-sovereign if you reach it in twenty minutes.'
-
-"This was quite too good to lose, Watson. I was just balancing
-whether I should run for it, or whether I should perch behind her
-landau when a cab came through the street. The driver looked
-twice at such a shabby fare, but I jumped in before he could
-object. 'The Church of St. Monica,' said I, 'and half a sovereign
-if you reach it in twenty minutes.' It was twenty-five minutes to
-twelve, and of course it was clear enough what was in the wind.
-
-"My cabby drove fast. I don't think I ever drove faster, but the
-others were there before us. The cab and the landau with their
-steaming horses were in front of the door when I arrived. I paid
-the man and hurried into the church. There was not a soul there
-save the two whom I had followed and a surpliced clergyman, who
-seemed to be expostulating with them. They were all three
-standing in a knot in front of the altar. I lounged up the side
-aisle like any other idler who has dropped into a church.
-Suddenly, to my surprise, the three at the altar faced round to
-me, and Godfrey Norton came running as hard as he could towards
-me.
-
-"'Thank God,' he cried. 'You'll do. Come! Come!'
-
-"'What then?' I asked.
-
-"'Come, man, come, only three minutes, or it won't be legal.'
-
-"I was half-dragged up to the altar, and before I knew where I was
-I found myself mumbling responses which were whispered in my ear,
-and vouching for things of which I knew nothing, and generally
-assisting in the secure tying up of Irene Adler, spinster, to
-Godfrey Norton, bachelor. It was all done in an instant, and
-there was the gentleman thanking me on the one side and the lady
-on the other, while the clergyman beamed on me in front. It was
-the most preposterous position in which I ever found myself in my
-life, and it was the thought of it that started me laughing just
-now. It seems that there had been some informality about their
-license, that the clergyman absolutely refused to marry them
-without a witness of some sort, and that my lucky appearance
-saved the bridegroom from having to sally out into the streets in
-search of a best man. The bride gave me a sovereign, and I mean
-to wear it on my watch-chain in memory of the occasion."
-
-"This is a very unexpected turn of affairs," said I; "and what
-then?"
-
-"Well, I found my plans very seriously menaced. It looked as if
-the pair might take an immediate departure, and so necessitate
-very prompt and energetic measures on my part. At the church
-door, however, they separated, he driving back to the Temple, and
-she to her own house. 'I shall drive out in the park at five as
-usual,' she said as she left him. I heard no more. They drove
-away in different directions, and I went off to make my own
-arrangements."
-
-"Which are?"
-
-"Some cold beef and a glass of beer," he answered, ringing the
-bell. "I have been too busy to think of food, and I am likely to
-be busier still this evening. By the way, Doctor, I shall want
-your co-operation."
-
-"I shall be delighted."
-
-"You don't mind breaking the law?"
-
-"Not in the least."
-
-"Nor running a chance of arrest?"
-
-"Not in a good cause."
-
-"Oh, the cause is excellent!"
-
-"Then I am your man."
-
-"I was sure that I might rely on you."
-
-"But what is it you wish?"
-
-"When Mrs. Turner has brought in the tray I will make it clear to
-you. Now," he said as he turned hungrily on the simple fare that
-our landlady had provided, "I must discuss it while I eat, for I
-have not much time. It is nearly five now. In two hours we must
-be on the scene of action. Miss Irene, or Madame, rather, returns
-from her drive at seven. We must be at Briony Lodge to meet her."
-
-"And what then?"
-
-"You must leave that to me. I have already arranged what is to
-occur. There is only one point on which I must insist. You must
-not interfere, come what may. You understand?"
-
-"I am to be neutral?"
-
-"To do nothing whatever. There will probably be some small
-unpleasantness. Do not join in it. It will end in my being
-conveyed into the house. Four or five minutes afterwards the
-sitting-room window will open. You are to station yourself close
-to that open window."
-
-"Yes."
-
-"You are to watch me, for I will be visible to you."
-
-"Yes."
-
-"And when I raise my hand--so--you will throw into the room what
-I give you to throw, and will, at the same time, raise the cry of
-fire. You quite follow me?"
-
-"Entirely."
-
-"It is nothing very formidable," he said, taking a long cigar-shaped
-roll from his pocket. "It is an ordinary plumber's smoke-rocket,
-fitted with a cap at either end to make it self-lighting.
-Your task is confined to that. When you raise your cry of fire,
-it will be taken up by quite a number of people. You may then
-walk to the end of the street, and I will rejoin you in ten
-minutes. I hope that I have made myself clear?"
-
-"I am to remain neutral, to get near the window, to watch you,
-and at the signal to throw in this object, then to raise the cry
-of fire, and to wait you at the corner of the street."
-
-"Precisely."
-
-"Then you may entirely rely on me."
-
-"That is excellent. I think, perhaps, it is almost time that I
-prepare for the new role I have to play."
-
-He disappeared into his bedroom and returned in a few minutes in
-the character of an amiable and simple-minded Nonconformist
-clergyman. His broad black hat, his baggy trousers, his white
-tie, his sympathetic smile, and general look of peering and
-benevolent curiosity were such as Mr. John Hare alone could have
-equalled. It was not merely that Holmes changed his costume. His
-expression, his manner, his very soul seemed to vary with every
-fresh part that he assumed. The stage lost a fine actor, even as
-science lost an acute reasoner, when he became a specialist in
-crime.
-
-It was a quarter past six when we left Baker Street, and it still
-wanted ten minutes to the hour when we found ourselves in
-Serpentine Avenue. It was already dusk, and the lamps were just
-being lighted as we paced up and down in front of Briony Lodge,
-waiting for the coming of its occupant. The house was just such
-as I had pictured it from Sherlock Holmes' succinct description,
-but the locality appeared to be less private than I expected. On
-the contrary, for a small street in a quiet neighbourhood, it was
-remarkably animated. There was a group of shabbily dressed men
-smoking and laughing in a corner, a scissors-grinder with his
-wheel, two guardsmen who were flirting with a nurse-girl, and
-several well-dressed young men who were lounging up and down with
-cigars in their mouths.
-
-"You see," remarked Holmes, as we paced to and fro in front of
-the house, "this marriage rather simplifies matters. The
-photograph becomes a double-edged weapon now. The chances are
-that she would be as averse to its being seen by Mr. Godfrey
-Norton, as our client is to its coming to the eyes of his
-princess. Now the question is, Where are we to find the
-photograph?"
-
-"Where, indeed?"
-
-"It is most unlikely that she carries it about with her. It is
-cabinet size. Too large for easy concealment about a woman's
-dress. She knows that the King is capable of having her waylaid
-and searched. Two attempts of the sort have already been made. We
-may take it, then, that she does not carry it about with her."
-
-"Where, then?"
-
-"Her banker or her lawyer. There is that double possibility. But
-I am inclined to think neither. Women are naturally secretive,
-and they like to do their own secreting. Why should she hand it
-over to anyone else? She could trust her own guardianship, but
-she could not tell what indirect or political influence might be
-brought to bear upon a business man. Besides, remember that she
-had resolved to use it within a few days. It must be where she
-can lay her hands upon it. It must be in her own house."
-
-"But it has twice been burgled."
-
-"Pshaw! They did not know how to look."
-
-"But how will you look?"
-
-"I will not look."
-
-"What then?"
-
-"I will get her to show me."
-
-"But she will refuse."
-
-"She will not be able to. But I hear the rumble of wheels. It is
-her carriage. Now carry out my orders to the letter."
-
-As he spoke the gleam of the side-lights of a carriage came round
-the curve of the avenue. It was a smart little landau which
-rattled up to the door of Briony Lodge. As it pulled up, one of
-the loafing men at the corner dashed forward to open the door in
-the hope of earning a copper, but was elbowed away by another
-loafer, who had rushed up with the same intention. A fierce
-quarrel broke out, which was increased by the two guardsmen, who
-took sides with one of the loungers, and by the scissors-grinder,
-who was equally hot upon the other side. A blow was struck, and
-in an instant the lady, who had stepped from her carriage, was
-the centre of a little knot of flushed and struggling men, who
-struck savagely at each other with their fists and sticks. Holmes
-dashed into the crowd to protect the lady; but just as he reached
-her he gave a cry and dropped to the ground, with the blood
-running freely down his face. At his fall the guardsmen took to
-their heels in one direction and the loungers in the other, while
-a number of better-dressed people, who had watched the scuffle
-without taking part in it, crowded in to help the lady and to
-attend to the injured man. Irene Adler, as I will still call her,
-had hurried up the steps; but she stood at the top with her
-superb figure outlined against the lights of the hall, looking
-back into the street.
-
-"Is the poor gentleman much hurt?" she asked.
-
-"He is dead," cried several voices.
-
-"No, no, there's life in him!" shouted another. "But he'll be
-gone before you can get him to hospital."
-
-"He's a brave fellow," said a woman. "They would have had the
-lady's purse and watch if it hadn't been for him. They were a
-gang, and a rough one, too. Ah, he's breathing now."
-
-"He can't lie in the street. May we bring him in, marm?"
-
-"Surely. Bring him into the sitting-room. There is a comfortable
-sofa. This way, please!"
-
-Slowly and solemnly he was borne into Briony Lodge and laid out
-in the principal room, while I still observed the proceedings
-from my post by the window. The lamps had been lit, but the
-blinds had not been drawn, so that I could see Holmes as he lay
-upon the couch. I do not know whether he was seized with
-compunction at that moment for the part he was playing, but I
-know that I never felt more heartily ashamed of myself in my life
-than when I saw the beautiful creature against whom I was
-conspiring, or the grace and kindliness with which she waited
-upon the injured man. And yet it would be the blackest treachery
-to Holmes to draw back now from the part which he had intrusted
-to me. I hardened my heart, and took the smoke-rocket from under
-my ulster. After all, I thought, we are not injuring her. We are
-but preventing her from injuring another.
-
-Holmes had sat up upon the couch, and I saw him motion like a man
-who is in need of air. A maid rushed across and threw open the
-window. At the same instant I saw him raise his hand and at the
-signal I tossed my rocket into the room with a cry of "Fire!" The
-word was no sooner out of my mouth than the whole crowd of
-spectators, well dressed and ill--gentlemen, ostlers, and
-servant-maids--joined in a general shriek of "Fire!" Thick clouds
-of smoke curled through the room and out at the open window. I
-caught a glimpse of rushing figures, and a moment later the voice
-of Holmes from within assuring them that it was a false alarm.
-Slipping through the shouting crowd I made my way to the corner
-of the street, and in ten minutes was rejoiced to find my
-friend's arm in mine, and to get away from the scene of uproar.
-He walked swiftly and in silence for some few minutes until we
-had turned down one of the quiet streets which lead towards the
-Edgeware Road.
-
-"You did it very nicely, Doctor," he remarked. "Nothing could
-have been better. It is all right."
-
-"You have the photograph?"
-
-"I know where it is."
-
-"And how did you find out?"
-
-"She showed me, as I told you she would."
-
-"I am still in the dark."
-
-"I do not wish to make a mystery," said he, laughing. "The matter
-was perfectly simple. You, of course, saw that everyone in the
-street was an accomplice. They were all engaged for the evening."
-
-"I guessed as much."
-
-"Then, when the row broke out, I had a little moist red paint in
-the palm of my hand. I rushed forward, fell down, clapped my hand
-to my face, and became a piteous spectacle. It is an old trick."
-
-"That also I could fathom."
-
-"Then they carried me in. She was bound to have me in. What else
-could she do? And into her sitting-room, which was the very room
-which I suspected. It lay between that and her bedroom, and I was
-determined to see which. They laid me on a couch, I motioned for
-air, they were compelled to open the window, and you had your
-chance."
-
-"How did that help you?"
-
-"It was all-important. When a woman thinks that her house is on
-fire, her instinct is at once to rush to the thing which she
-values most. It is a perfectly overpowering impulse, and I have
-more than once taken advantage of it. In the case of the
-Darlington substitution scandal it was of use to me, and also in
-the Arnsworth Castle business. A married woman grabs at her baby;
-an unmarried one reaches for her jewel-box. Now it was clear to
-me that our lady of to-day had nothing in the house more precious
-to her than what we are in quest of. She would rush to secure it.
-The alarm of fire was admirably done. The smoke and shouting were
-enough to shake nerves of steel. She responded beautifully. The
-photograph is in a recess behind a sliding panel just above the
-right bell-pull. She was there in an instant, and I caught a
-glimpse of it as she half-drew it out. When I cried out that it
-was a false alarm, she replaced it, glanced at the rocket, rushed
-from the room, and I have not seen her since. I rose, and, making
-my excuses, escaped from the house. I hesitated whether to
-attempt to secure the photograph at once; but the coachman had
-come in, and as he was watching me narrowly it seemed safer to
-wait. A little over-precipitance may ruin all."
-
-"And now?" I asked.
-
-"Our quest is practically finished. I shall call with the King
-to-morrow, and with you, if you care to come with us. We will be
-shown into the sitting-room to wait for the lady, but it is
-probable that when she comes she may find neither us nor the
-photograph. It might be a satisfaction to his Majesty to regain
-it with his own hands."
-
-"And when will you call?"
-
-"At eight in the morning. She will not be up, so that we shall
-have a clear field. Besides, we must be prompt, for this marriage
-may mean a complete change in her life and habits. I must wire to
-the King without delay."
-
-We had reached Baker Street and had stopped at the door. He was
-searching his pockets for the key when someone passing said:
-
-"Good-night, Mister Sherlock Holmes."
-
-There were several people on the pavement at the time, but the
-greeting appeared to come from a slim youth in an ulster who had
-hurried by.
-
-"I've heard that voice before," said Holmes, staring down the
-dimly lit street. "Now, I wonder who the deuce that could have
-been."
-
-
-III.
-
-I slept at Baker Street that night, and we were engaged upon our
-toast and coffee in the morning when the King of Bohemia rushed
-into the room.
-
-"You have really got it!" he cried, grasping Sherlock Holmes by
-either shoulder and looking eagerly into his face.
-
-"Not yet."
-
-"But you have hopes?"
-
-"I have hopes."
-
-"Then, come. I am all impatience to be gone."
-
-"We must have a cab."
-
-"No, my brougham is waiting."
-
-"Then that will simplify matters." We descended and started off
-once more for Briony Lodge.
-
-"Irene Adler is married," remarked Holmes.
-
-"Married! When?"
-
-"Yesterday."
-
-"But to whom?"
-
-"To an English lawyer named Norton."
-
-"But she could not love him."
-
-"I am in hopes that she does."
-
-"And why in hopes?"
-
-"Because it would spare your Majesty all fear of future
-annoyance. If the lady loves her husband, she does not love your
-Majesty. If she does not love your Majesty, there is no reason
-why she should interfere with your Majesty's plan."
-
-"It is true. And yet--Well! I wish she had been of my own
-station! What a queen she would have made!" He relapsed into a
-moody silence, which was not broken until we drew up in
-Serpentine Avenue.
-
-The door of Briony Lodge was open, and an elderly woman stood
-upon the steps. She watched us with a sardonic eye as we stepped
-from the brougham.
-
-"Mr. Sherlock Holmes, I believe?" said she.
-
-"I am Mr. Holmes," answered my companion, looking at her with a
-questioning and rather startled gaze.
-
-"Indeed! My mistress told me that you were likely to call. She
-left this morning with her husband by the 5:15 train from Charing
-Cross for the Continent."
-
-"What!" Sherlock Holmes staggered back, white with chagrin and
-surprise. "Do you mean that she has left England?"
-
-"Never to return."
-
-"And the papers?" asked the King hoarsely. "All is lost."
-
-"We shall see." He pushed past the servant and rushed into the
-drawing-room, followed by the King and myself. The furniture was
-scattered about in every direction, with dismantled shelves and
-open drawers, as if the lady had hurriedly ransacked them before
-her flight. Holmes rushed at the bell-pull, tore back a small
-sliding shutter, and, plunging in his hand, pulled out a
-photograph and a letter. The photograph was of Irene Adler
-herself in evening dress, the letter was superscribed to
-"Sherlock Holmes, Esq. To be left till called for." My friend
-tore it open and we all three read it together. It was dated at
-midnight of the preceding night and ran in this way:
-
-"MY DEAR MR. SHERLOCK HOLMES,--You really did it very well. You
-took me in completely. Until after the alarm of fire, I had not a
-suspicion. But then, when I found how I had betrayed myself, I
-began to think. I had been warned against you months ago. I had
-been told that if the King employed an agent it would certainly
-be you. And your address had been given me. Yet, with all this,
-you made me reveal what you wanted to know. Even after I became
-suspicious, I found it hard to think evil of such a dear, kind
-old clergyman. But, you know, I have been trained as an actress
-myself. Male costume is nothing new to me. I often take advantage
-of the freedom which it gives. I sent John, the coachman, to
-watch you, ran up stairs, got into my walking-clothes, as I call
-them, and came down just as you departed.
-
-"Well, I followed you to your door, and so made sure that I was
-really an object of interest to the celebrated Mr. Sherlock
-Holmes. Then I, rather imprudently, wished you good-night, and
-started for the Temple to see my husband.
-
-"We both thought the best resource was flight, when pursued by
-so formidable an antagonist; so you will find the nest empty when
-you call to-morrow. As to the photograph, your client may rest in
-peace. I love and am loved by a better man than he. The King may
-do what he will without hindrance from one whom he has cruelly
-wronged. I keep it only to safeguard myself, and to preserve a
-weapon which will always secure me from any steps which he might
-take in the future. I leave a photograph which he might care to
-possess; and I remain, dear Mr. Sherlock Holmes,
-
- "Very truly yours,
- "IRENE NORTON, née ADLER."
-
-"What a woman--oh, what a woman!" cried the King of Bohemia, when
-we had all three read this epistle. "Did I not tell you how quick
-and resolute she was? Would she not have made an admirable queen?
-Is it not a pity that she was not on my level?"
-
-"From what I have seen of the lady she seems indeed to be on a
-very different level to your Majesty," said Holmes coldly. "I am
-sorry that I have not been able to bring your Majesty's business
-to a more successful conclusion."
-
-"On the contrary, my dear sir," cried the King; "nothing could be
-more successful. I know that her word is inviolate. The
-photograph is now as safe as if it were in the fire."
-
-"I am glad to hear your Majesty say so."
-
-"I am immensely indebted to you. Pray tell me in what way I can
-reward you. This ring--" He slipped an emerald snake ring from
-his finger and held it out upon the palm of his hand.
-
-"Your Majesty has something which I should value even more
-highly," said Holmes.
-
-"You have but to name it."
-
-"This photograph!"
-
-The King stared at him in amazement.
-
-"Irene's photograph!" he cried. "Certainly, if you wish it."
-
-"I thank your Majesty. Then there is no more to be done in the
-matter. I have the honour to wish you a very good-morning." He
-bowed, and, turning away without observing the hand which the
-King had stretched out to him, he set off in my company for his
-chambers.
-
-And that was how a great scandal threatened to affect the kingdom
-of Bohemia, and how the best plans of Mr. Sherlock Holmes were
-beaten by a woman's wit. He used to make merry over the
-cleverness of women, but I have not heard him do it of late. And
-when he speaks of Irene Adler, or when he refers to her
-photograph, it is always under the honourable title of the woman.
-
-
-
-ADVENTURE II. THE RED-HEADED LEAGUE
-
-I had called upon my friend, Mr. Sherlock Holmes, one day in the
-autumn of last year and found him in deep conversation with a
-very stout, florid-faced, elderly gentleman with fiery red hair.
-With an apology for my intrusion, I was about to withdraw when
-Holmes pulled me abruptly into the room and closed the door
-behind me.
-
-"You could not possibly have come at a better time, my dear
-Watson," he said cordially.
-
-"I was afraid that you were engaged."
-
-"So I am. Very much so."
-
-"Then I can wait in the next room."
-
-"Not at all. This gentleman, Mr. Wilson, has been my partner and
-helper in many of my most successful cases, and I have no
-doubt that he will be of the utmost use to me in yours also."
-
-The stout gentleman half rose from his chair and gave a bob of
-greeting, with a quick little questioning glance from his small
-fat-encircled eyes.
-
-"Try the settee," said Holmes, relapsing into his armchair and
-putting his fingertips together, as was his custom when in
-judicial moods. "I know, my dear Watson, that you share my love
-of all that is bizarre and outside the conventions and humdrum
-routine of everyday life. You have shown your relish for it by
-the enthusiasm which has prompted you to chronicle, and, if you
-will excuse my saying so, somewhat to embellish so many of my own
-little adventures."
-
-"Your cases have indeed been of the greatest interest to me," I
-observed.
-
-"You will remember that I remarked the other day, just before we
-went into the very simple problem presented by Miss Mary
-Sutherland, that for strange effects and extraordinary
-combinations we must go to life itself, which is always far more
-daring than any effort of the imagination."
-
-"A proposition which I took the liberty of doubting."
-
-"You did, Doctor, but none the less you must come round to my
-view, for otherwise I shall keep on piling fact upon fact on you
-until your reason breaks down under them and acknowledges me to
-be right. Now, Mr. Jabez Wilson here has been good enough to call
-upon me this morning, and to begin a narrative which promises to
-be one of the most singular which I have listened to for some
-time. You have heard me remark that the strangest and most unique
-things are very often connected not with the larger but with the
-smaller crimes, and occasionally, indeed, where there is room for
-doubt whether any positive crime has been committed. As far as I
-have heard it is impossible for me to say whether the present
-case is an instance of crime or not, but the course of events is
-certainly among the most singular that I have ever listened to.
-Perhaps, Mr. Wilson, you would have the great kindness to
-recommence your narrative. I ask you not merely because my friend
-Dr. Watson has not heard the opening part but also because the
-peculiar nature of the story makes me anxious to have every
-possible detail from your lips. As a rule, when I have heard some
-slight indication of the course of events, I am able to guide
-myself by the thousands of other similar cases which occur to my
-memory. In the present instance I am forced to admit that the
-facts are, to the best of my belief, unique."
-
-The portly client puffed out his chest with an appearance of some
-little pride and pulled a dirty and wrinkled newspaper from the
-inside pocket of his greatcoat. As he glanced down the
-advertisement column, with his head thrust forward and the paper
-flattened out upon his knee, I took a good look at the man and
-endeavoured, after the fashion of my companion, to read the
-indications which might be presented by his dress or appearance.
-
-I did not gain very much, however, by my inspection. Our visitor
-bore every mark of being an average commonplace British
-tradesman, obese, pompous, and slow. He wore rather baggy grey
-shepherd's check trousers, a not over-clean black frock-coat,
-unbuttoned in the front, and a drab waistcoat with a heavy brassy
-Albert chain, and a square pierced bit of metal dangling down as
-an ornament. A frayed top-hat and a faded brown overcoat with a
-wrinkled velvet collar lay upon a chair beside him. Altogether,
-look as I would, there was nothing remarkable about the man save
-his blazing red head, and the expression of extreme chagrin and
-discontent upon his features.
-
-Sherlock Holmes' quick eye took in my occupation, and he shook
-his head with a smile as he noticed my questioning glances.
-"Beyond the obvious facts that he has at some time done manual
-labour, that he takes snuff, that he is a Freemason, that he has
-been in China, and that he has done a considerable amount of
-writing lately, I can deduce nothing else."
-
-Mr. Jabez Wilson started up in his chair, with his forefinger
-upon the paper, but his eyes upon my companion.
-
-"How, in the name of good-fortune, did you know all that, Mr.
-Holmes?" he asked. "How did you know, for example, that I did
-manual labour. It's as true as gospel, for I began as a ship's
-carpenter."
-
-"Your hands, my dear sir. Your right hand is quite a size larger
-than your left. You have worked with it, and the muscles are more
-developed."
-
-"Well, the snuff, then, and the Freemasonry?"
-
-"I won't insult your intelligence by telling you how I read that,
-especially as, rather against the strict rules of your order, you
-use an arc-and-compass breastpin."
-
-"Ah, of course, I forgot that. But the writing?"
-
-"What else can be indicated by that right cuff so very shiny for
-five inches, and the left one with the smooth patch near the
-elbow where you rest it upon the desk?"
-
-"Well, but China?"
-
-"The fish that you have tattooed immediately above your right
-wrist could only have been done in China. I have made a small
-study of tattoo marks and have even contributed to the literature
-of the subject. That trick of staining the fishes' scales of a
-delicate pink is quite peculiar to China. When, in addition, I
-see a Chinese coin hanging from your watch-chain, the matter
-becomes even more simple."
-
-Mr. Jabez Wilson laughed heavily. "Well, I never!" said he. "I
-thought at first that you had done something clever, but I see
-that there was nothing in it, after all."
-
-"I begin to think, Watson," said Holmes, "that I make a mistake
-in explaining. 'Omne ignotum pro magnifico,' you know, and my
-poor little reputation, such as it is, will suffer shipwreck if I
-am so candid. Can you not find the advertisement, Mr. Wilson?"
-
-"Yes, I have got it now," he answered with his thick red finger
-planted halfway down the column. "Here it is. This is what began
-it all. You just read it for yourself, sir."
-
-I took the paper from him and read as follows:
-
-"TO THE RED-HEADED LEAGUE: On account of the bequest of the late
-Ezekiah Hopkins, of Lebanon, Pennsylvania, U. S. A., there is now
-another vacancy open which entitles a member of the League to a
-salary of 4 pounds a week for purely nominal services. All
-red-headed men who are sound in body and mind and above the age
-of twenty-one years, are eligible. Apply in person on Monday, at
-eleven o'clock, to Duncan Ross, at the offices of the League, 7
-Pope's Court, Fleet Street."
-
-"What on earth does this mean?" I ejaculated after I had twice
-read over the extraordinary announcement.
-
-Holmes chuckled and wriggled in his chair, as was his habit when
-in high spirits. "It is a little off the beaten track, isn't it?"
-said he. "And now, Mr. Wilson, off you go at scratch and tell us
-all about yourself, your household, and the effect which this
-advertisement had upon your fortunes. You will first make a note,
-Doctor, of the paper and the date."
-
-"It is The Morning Chronicle of April 27, 1890. Just two months
-ago."
-
-"Very good. Now, Mr. Wilson?"
-
-"Well, it is just as I have been telling you, Mr. Sherlock
-Holmes," said Jabez Wilson, mopping his forehead; "I have a small
-pawnbroker's business at Coburg Square, near the City. It's not a
-very large affair, and of late years it has not done more than
-just give me a living. I used to be able to keep two assistants,
-but now I only keep one; and I would have a job to pay him but
-that he is willing to come for half wages so as to learn the
-business."
-
-"What is the name of this obliging youth?" asked Sherlock Holmes.
-
-"His name is Vincent Spaulding, and he's not such a youth,
-either. It's hard to say his age. I should not wish a smarter
-assistant, Mr. Holmes; and I know very well that he could better
-himself and earn twice what I am able to give him. But, after
-all, if he is satisfied, why should I put ideas in his head?"
-
-"Why, indeed? You seem most fortunate in having an employé who
-comes under the full market price. It is not a common experience
-among employers in this age. I don't know that your assistant is
-not as remarkable as your advertisement."
-
-"Oh, he has his faults, too," said Mr. Wilson. "Never was such a
-fellow for photography. Snapping away with a camera when he ought
-to be improving his mind, and then diving down into the cellar
-like a rabbit into its hole to develop his pictures. That is his
-main fault, but on the whole he's a good worker. There's no vice
-in him."
-
-"He is still with you, I presume?"
-
-"Yes, sir. He and a girl of fourteen, who does a bit of simple
-cooking and keeps the place clean--that's all I have in the
-house, for I am a widower and never had any family. We live very
-quietly, sir, the three of us; and we keep a roof over our heads
-and pay our debts, if we do nothing more.
-
-"The first thing that put us out was that advertisement.
-Spaulding, he came down into the office just this day eight
-weeks, with this very paper in his hand, and he says:
-
-"'I wish to the Lord, Mr. Wilson, that I was a red-headed man.'
-
-"'Why that?' I asks.
-
-"'Why,' says he, 'here's another vacancy on the League of the
-Red-headed Men. It's worth quite a little fortune to any man who
-gets it, and I understand that there are more vacancies than
-there are men, so that the trustees are at their wits' end what
-to do with the money. If my hair would only change colour, here's
-a nice little crib all ready for me to step into.'
-
-"'Why, what is it, then?' I asked. You see, Mr. Holmes, I am a
-very stay-at-home man, and as my business came to me instead of
-my having to go to it, I was often weeks on end without putting
-my foot over the door-mat. In that way I didn't know much of what
-was going on outside, and I was always glad of a bit of news.
-
-"'Have you never heard of the League of the Red-headed Men?' he
-asked with his eyes open.
-
-"'Never.'
-
-"'Why, I wonder at that, for you are eligible yourself for one
-of the vacancies.'
-
-"'And what are they worth?' I asked.
-
-"'Oh, merely a couple of hundred a year, but the work is slight,
-and it need not interfere very much with one's other
-occupations.'
-
-"Well, you can easily think that that made me prick up my ears,
-for the business has not been over-good for some years, and an
-extra couple of hundred would have been very handy.
-
-"'Tell me all about it,' said I.
-
-"'Well,' said he, showing me the advertisement, 'you can see for
-yourself that the League has a vacancy, and there is the address
-where you should apply for particulars. As far as I can make out,
-the League was founded by an American millionaire, Ezekiah
-Hopkins, who was very peculiar in his ways. He was himself
-red-headed, and he had a great sympathy for all red-headed men;
-so when he died it was found that he had left his enormous
-fortune in the hands of trustees, with instructions to apply the
-interest to the providing of easy berths to men whose hair is of
-that colour. From all I hear it is splendid pay and very little to
-do.'
-
-"'But,' said I, 'there would be millions of red-headed men who
-would apply.'
-
-"'Not so many as you might think,' he answered. 'You see it is
-really confined to Londoners, and to grown men. This American had
-started from London when he was young, and he wanted to do the
-old town a good turn. Then, again, I have heard it is no use your
-applying if your hair is light red, or dark red, or anything but
-real bright, blazing, fiery red. Now, if you cared to apply, Mr.
-Wilson, you would just walk in; but perhaps it would hardly be
-worth your while to put yourself out of the way for the sake of a
-few hundred pounds.'
-
-"Now, it is a fact, gentlemen, as you may see for yourselves,
-that my hair is of a very full and rich tint, so that it seemed
-to me that if there was to be any competition in the matter I
-stood as good a chance as any man that I had ever met. Vincent
-Spaulding seemed to know so much about it that I thought he might
-prove useful, so I just ordered him to put up the shutters for
-the day and to come right away with me. He was very willing to
-have a holiday, so we shut the business up and started off for
-the address that was given us in the advertisement.
-
-"I never hope to see such a sight as that again, Mr. Holmes. From
-north, south, east, and west every man who had a shade of red in
-his hair had tramped into the city to answer the advertisement.
-Fleet Street was choked with red-headed folk, and Pope's Court
-looked like a coster's orange barrow. I should not have thought
-there were so many in the whole country as were brought together
-by that single advertisement. Every shade of colour they
-were--straw, lemon, orange, brick, Irish-setter, liver, clay;
-but, as Spaulding said, there were not many who had the real
-vivid flame-coloured tint. When I saw how many were waiting, I
-would have given it up in despair; but Spaulding would not hear
-of it. How he did it I could not imagine, but he pushed and
-pulled and butted until he got me through the crowd, and right up
-to the steps which led to the office. There was a double stream
-upon the stair, some going up in hope, and some coming back
-dejected; but we wedged in as well as we could and soon found
-ourselves in the office."
-
-"Your experience has been a most entertaining one," remarked
-Holmes as his client paused and refreshed his memory with a huge
-pinch of snuff. "Pray continue your very interesting statement."
-
-"There was nothing in the office but a couple of wooden chairs
-and a deal table, behind which sat a small man with a head that
-was even redder than mine. He said a few words to each candidate
-as he came up, and then he always managed to find some fault in
-them which would disqualify them. Getting a vacancy did not seem
-to be such a very easy matter, after all. However, when our turn
-came the little man was much more favourable to me than to any of
-the others, and he closed the door as we entered, so that he
-might have a private word with us.
-
-"'This is Mr. Jabez Wilson,' said my assistant, 'and he is
-willing to fill a vacancy in the League.'
-
-"'And he is admirably suited for it,' the other answered. 'He has
-every requirement. I cannot recall when I have seen anything so
-fine.' He took a step backward, cocked his head on one side, and
-gazed at my hair until I felt quite bashful. Then suddenly he
-plunged forward, wrung my hand, and congratulated me warmly on my
-success.
-
-"'It would be injustice to hesitate,' said he. 'You will,
-however, I am sure, excuse me for taking an obvious precaution.'
-With that he seized my hair in both his hands, and tugged until I
-yelled with the pain. 'There is water in your eyes,' said he as
-he released me. 'I perceive that all is as it should be. But we
-have to be careful, for we have twice been deceived by wigs and
-once by paint. I could tell you tales of cobbler's wax which
-would disgust you with human nature.' He stepped over to the
-window and shouted through it at the top of his voice that the
-vacancy was filled. A groan of disappointment came up from below,
-and the folk all trooped away in different directions until there
-was not a red-head to be seen except my own and that of the
-manager.
-
-"'My name,' said he, 'is Mr. Duncan Ross, and I am myself one of
-the pensioners upon the fund left by our noble benefactor. Are
-you a married man, Mr. Wilson? Have you a family?'
-
-"I answered that I had not.
-
-"His face fell immediately.
-
-"'Dear me!' he said gravely, 'that is very serious indeed! I am
-sorry to hear you say that. The fund was, of course, for the
-propagation and spread of the red-heads as well as for their
-maintenance. It is exceedingly unfortunate that you should be a
-bachelor.'
-
-"My face lengthened at this, Mr. Holmes, for I thought that I was
-not to have the vacancy after all; but after thinking it over for
-a few minutes he said that it would be all right.
-
-"'In the case of another,' said he, 'the objection might be
-fatal, but we must stretch a point in favour of a man with such a
-head of hair as yours. When shall you be able to enter upon your
-new duties?'
-
-"'Well, it is a little awkward, for I have a business already,'
-said I.
-
-"'Oh, never mind about that, Mr. Wilson!' said Vincent Spaulding.
-'I should be able to look after that for you.'
-
-"'What would be the hours?' I asked.
-
-"'Ten to two.'
-
-"Now a pawnbroker's business is mostly done of an evening, Mr.
-Holmes, especially Thursday and Friday evening, which is just
-before pay-day; so it would suit me very well to earn a little in
-the mornings. Besides, I knew that my assistant was a good man,
-and that he would see to anything that turned up.
-
-"'That would suit me very well,' said I. 'And the pay?'
-
-"'Is 4 pounds a week.'
-
-"'And the work?'
-
-"'Is purely nominal.'
-
-"'What do you call purely nominal?'
-
-"'Well, you have to be in the office, or at least in the
-building, the whole time. If you leave, you forfeit your whole
-position forever. The will is very clear upon that point. You
-don't comply with the conditions if you budge from the office
-during that time.'
-
-"'It's only four hours a day, and I should not think of leaving,'
-said I.
-
-"'No excuse will avail,' said Mr. Duncan Ross; 'neither sickness
-nor business nor anything else. There you must stay, or you lose
-your billet.'
-
-"'And the work?'
-
-"'Is to copy out the "Encyclopaedia Britannica." There is the first
-volume of it in that press. You must find your own ink, pens, and
-blotting-paper, but we provide this table and chair. Will you be
-ready to-morrow?'
-
-"'Certainly,' I answered.
-
-"'Then, good-bye, Mr. Jabez Wilson, and let me congratulate you
-once more on the important position which you have been fortunate
-enough to gain.' He bowed me out of the room and I went home with
-my assistant, hardly knowing what to say or do, I was so pleased
-at my own good fortune.
-
-"Well, I thought over the matter all day, and by evening I was in
-low spirits again; for I had quite persuaded myself that the
-whole affair must be some great hoax or fraud, though what its
-object might be I could not imagine. It seemed altogether past
-belief that anyone could make such a will, or that they would pay
-such a sum for doing anything so simple as copying out the
-'Encyclopaedia Britannica.' Vincent Spaulding did what he could to
-cheer me up, but by bedtime I had reasoned myself out of the
-whole thing. However, in the morning I determined to have a look
-at it anyhow, so I bought a penny bottle of ink, and with a
-quill-pen, and seven sheets of foolscap paper, I started off for
-Pope's Court.
-
-"Well, to my surprise and delight, everything was as right as
-possible. The table was set out ready for me, and Mr. Duncan Ross
-was there to see that I got fairly to work. He started me off
-upon the letter A, and then he left me; but he would drop in from
-time to time to see that all was right with me. At two o'clock he
-bade me good-day, complimented me upon the amount that I had
-written, and locked the door of the office after me.
-
-"This went on day after day, Mr. Holmes, and on Saturday the
-manager came in and planked down four golden sovereigns for my
-week's work. It was the same next week, and the same the week
-after. Every morning I was there at ten, and every afternoon I
-left at two. By degrees Mr. Duncan Ross took to coming in only
-once of a morning, and then, after a time, he did not come in at
-all. Still, of course, I never dared to leave the room for an
-instant, for I was not sure when he might come, and the billet
-was such a good one, and suited me so well, that I would not risk
-the loss of it.
-
-"Eight weeks passed away like this, and I had written about
-Abbots and Archery and Armour and Architecture and Attica, and
-hoped with diligence that I might get on to the B's before very
-long. It cost me something in foolscap, and I had pretty nearly
-filled a shelf with my writings. And then suddenly the whole
-business came to an end."
-
-"To an end?"
-
-"Yes, sir. And no later than this morning. I went to my work as
-usual at ten o'clock, but the door was shut and locked, with a
-little square of cardboard hammered on to the middle of the
-panel with a tack. Here it is, and you can read for yourself."
-
-He held up a piece of white cardboard about the size of a sheet
-of note-paper. It read in this fashion:
-
- THE RED-HEADED LEAGUE
-
- IS
-
- DISSOLVED.
-
- October 9, 1890.
-
-Sherlock Holmes and I surveyed this curt announcement and the
-rueful face behind it, until the comical side of the affair so
-completely overtopped every other consideration that we both
-burst out into a roar of laughter.
-
-"I cannot see that there is anything very funny," cried our
-client, flushing up to the roots of his flaming head. "If you can
-do nothing better than laugh at me, I can go elsewhere."
-
-"No, no," cried Holmes, shoving him back into the chair from
-which he had half risen. "I really wouldn't miss your case for
-the world. It is most refreshingly unusual. But there is, if you
-will excuse my saying so, something just a little funny about it.
-Pray what steps did you take when you found the card upon the
-door?"
-
-"I was staggered, sir. I did not know what to do. Then I called
-at the offices round, but none of them seemed to know anything
-about it. Finally, I went to the landlord, who is an accountant
-living on the ground-floor, and I asked him if he could tell me
-what had become of the Red-headed League. He said that he had
-never heard of any such body. Then I asked him who Mr. Duncan
-Ross was. He answered that the name was new to him.
-
-"'Well,' said I, 'the gentleman at No. 4.'
-
-"'What, the red-headed man?'
-
-"'Yes.'
-
-"'Oh,' said he, 'his name was William Morris. He was a solicitor
-and was using my room as a temporary convenience until his new
-premises were ready. He moved out yesterday.'
-
-"'Where could I find him?'
-
-"'Oh, at his new offices. He did tell me the address. Yes, 17
-King Edward Street, near St. Paul's.'
-
-"I started off, Mr. Holmes, but when I got to that address it was
-a manufactory of artificial knee-caps, and no one in it had ever
-heard of either Mr. William Morris or Mr. Duncan Ross."
-
-"And what did you do then?" asked Holmes.
-
-"I went home to Saxe-Coburg Square, and I took the advice of my
-assistant. But he could not help me in any way. He could only say
-that if I waited I should hear by post. But that was not quite
-good enough, Mr. Holmes. I did not wish to lose such a place
-without a struggle, so, as I had heard that you were good enough
-to give advice to poor folk who were in need of it, I came right
-away to you."
-
-"And you did very wisely," said Holmes. "Your case is an
-exceedingly remarkable one, and I shall be happy to look into it.
-From what you have told me I think that it is possible that
-graver issues hang from it than might at first sight appear."
-
-"Grave enough!" said Mr. Jabez Wilson. "Why, I have lost four
-pound a week."
-
-"As far as you are personally concerned," remarked Holmes, "I do
-not see that you have any grievance against this extraordinary
-league. On the contrary, you are, as I understand, richer by some
-30 pounds, to say nothing of the minute knowledge which you have
-gained on every subject which comes under the letter A. You have
-lost nothing by them."
-
-"No, sir. But I want to find out about them, and who they are,
-and what their object was in playing this prank--if it was a
-prank--upon me. It was a pretty expensive joke for them, for it
-cost them two and thirty pounds."
-
-"We shall endeavour to clear up these points for you. And, first,
-one or two questions, Mr. Wilson. This assistant of yours who
-first called your attention to the advertisement--how long had he
-been with you?"
-
-"About a month then."
-
-"How did he come?"
-
-"In answer to an advertisement."
-
-"Was he the only applicant?"
-
-"No, I had a dozen."
-
-"Why did you pick him?"
-
-"Because he was handy and would come cheap."
-
-"At half-wages, in fact."
-
-"Yes."
-
-"What is he like, this Vincent Spaulding?"
-
-"Small, stout-built, very quick in his ways, no hair on his face,
-though he's not short of thirty. Has a white splash of acid upon
-his forehead."
-
-Holmes sat up in his chair in considerable excitement. "I thought
-as much," said he. "Have you ever observed that his ears are
-pierced for earrings?"
-
-"Yes, sir. He told me that a gipsy had done it for him when he
-was a lad."
-
-"Hum!" said Holmes, sinking back in deep thought. "He is still
-with you?"
-
-"Oh, yes, sir; I have only just left him."
-
-"And has your business been attended to in your absence?"
-
-"Nothing to complain of, sir. There's never very much to do of a
-morning."
-
-"That will do, Mr. Wilson. I shall be happy to give you an
-opinion upon the subject in the course of a day or two. To-day is
-Saturday, and I hope that by Monday we may come to a conclusion."
-
-"Well, Watson," said Holmes when our visitor had left us, "what
-do you make of it all?"
-
-"I make nothing of it," I answered frankly. "It is a most
-mysterious business."
-
-"As a rule," said Holmes, "the more bizarre a thing is the less
-mysterious it proves to be. It is your commonplace, featureless
-crimes which are really puzzling, just as a commonplace face is
-the most difficult to identify. But I must be prompt over this
-matter."
-
-"What are you going to do, then?" I asked.
-
-"To smoke," he answered. "It is quite a three pipe problem, and I
-beg that you won't speak to me for fifty minutes." He curled
-himself up in his chair, with his thin knees drawn up to his
-hawk-like nose, and there he sat with his eyes closed and his
-black clay pipe thrusting out like the bill of some strange bird.
-I had come to the conclusion that he had dropped asleep, and
-indeed was nodding myself, when he suddenly sprang out of his
-chair with the gesture of a man who has made up his mind and put
-his pipe down upon the mantelpiece.
-
-"Sarasate plays at the St. James's Hall this afternoon," he
-remarked. "What do you think, Watson? Could your patients spare
-you for a few hours?"
-
-"I have nothing to do to-day. My practice is never very
-absorbing."
-
-"Then put on your hat and come. I am going through the City
-first, and we can have some lunch on the way. I observe that
-there is a good deal of German music on the programme, which is
-rather more to my taste than Italian or French. It is
-introspective, and I want to introspect. Come along!"
-
-We travelled by the Underground as far as Aldersgate; and a short
-walk took us to Saxe-Coburg Square, the scene of the singular
-story which we had listened to in the morning. It was a poky,
-little, shabby-genteel place, where four lines of dingy
-two-storied brick houses looked out into a small railed-in
-enclosure, where a lawn of weedy grass and a few clumps of faded
-laurel-bushes made a hard fight against a smoke-laden and
-uncongenial atmosphere. Three gilt balls and a brown board with
-"JABEZ WILSON" in white letters, upon a corner house, announced
-the place where our red-headed client carried on his business.
-Sherlock Holmes stopped in front of it with his head on one side
-and looked it all over, with his eyes shining brightly between
-puckered lids. Then he walked slowly up the street, and then down
-again to the corner, still looking keenly at the houses. Finally
-he returned to the pawnbroker's, and, having thumped vigorously
-upon the pavement with his stick two or three times, he went up
-to the door and knocked. It was instantly opened by a
-bright-looking, clean-shaven young fellow, who asked him to step
-in.
-
-"Thank you," said Holmes, "I only wished to ask you how you would
-go from here to the Strand."
-
-"Third right, fourth left," answered the assistant promptly,
-closing the door.
-
-"Smart fellow, that," observed Holmes as we walked away. "He is,
-in my judgment, the fourth smartest man in London, and for daring
-I am not sure that he has not a claim to be third. I have known
-something of him before."
-
-"Evidently," said I, "Mr. Wilson's assistant counts for a good
-deal in this mystery of the Red-headed League. I am sure that you
-inquired your way merely in order that you might see him."
-
-"Not him."
-
-"What then?"
-
-"The knees of his trousers."
-
-"And what did you see?"
-
-"What I expected to see."
-
-"Why did you beat the pavement?"
-
-"My dear doctor, this is a time for observation, not for talk. We
-are spies in an enemy's country. We know something of Saxe-Coburg
-Square. Let us now explore the parts which lie behind it."
-
-The road in which we found ourselves as we turned round the
-corner from the retired Saxe-Coburg Square presented as great a
-contrast to it as the front of a picture does to the back. It was
-one of the main arteries which conveyed the traffic of the City
-to the north and west. The roadway was blocked with the immense
-stream of commerce flowing in a double tide inward and outward,
-while the footpaths were black with the hurrying swarm of
-pedestrians. It was difficult to realise as we looked at the line
-of fine shops and stately business premises that they really
-abutted on the other side upon the faded and stagnant square
-which we had just quitted.
-
-"Let me see," said Holmes, standing at the corner and glancing
-along the line, "I should like just to remember the order of the
-houses here. It is a hobby of mine to have an exact knowledge of
-London. There is Mortimer's, the tobacconist, the little
-newspaper shop, the Coburg branch of the City and Suburban Bank,
-the Vegetarian Restaurant, and McFarlane's carriage-building
-depot. That carries us right on to the other block. And now,
-Doctor, we've done our work, so it's time we had some play. A
-sandwich and a cup of coffee, and then off to violin-land, where
-all is sweetness and delicacy and harmony, and there are no
-red-headed clients to vex us with their conundrums."
-
-My friend was an enthusiastic musician, being himself not only a
-very capable performer but a composer of no ordinary merit. All
-the afternoon he sat in the stalls wrapped in the most perfect
-happiness, gently waving his long, thin fingers in time to the
-music, while his gently smiling face and his languid, dreamy eyes
-were as unlike those of Holmes the sleuth-hound, Holmes the
-relentless, keen-witted, ready-handed criminal agent, as it was
-possible to conceive. In his singular character the dual nature
-alternately asserted itself, and his extreme exactness and
-astuteness represented, as I have often thought, the reaction
-against the poetic and contemplative mood which occasionally
-predominated in him. The swing of his nature took him from
-extreme languor to devouring energy; and, as I knew well, he was
-never so truly formidable as when, for days on end, he had been
-lounging in his armchair amid his improvisations and his
-black-letter editions. Then it was that the lust of the chase
-would suddenly come upon him, and that his brilliant reasoning
-power would rise to the level of intuition, until those who were
-unacquainted with his methods would look askance at him as on a
-man whose knowledge was not that of other mortals. When I saw him
-that afternoon so enwrapped in the music at St. James's Hall I
-felt that an evil time might be coming upon those whom he had set
-himself to hunt down.
-
-"You want to go home, no doubt, Doctor," he remarked as we
-emerged.
-
-"Yes, it would be as well."
-
-"And I have some business to do which will take some hours. This
-business at Coburg Square is serious."
-
-"Why serious?"
-
-"A considerable crime is in contemplation. I have every reason to
-believe that we shall be in time to stop it. But to-day being
-Saturday rather complicates matters. I shall want your help
-to-night."
-
-"At what time?"
-
-"Ten will be early enough."
-
-"I shall be at Baker Street at ten."
-
-"Very well. And, I say, Doctor, there may be some little danger,
-so kindly put your army revolver in your pocket." He waved his
-hand, turned on his heel, and disappeared in an instant among the
-crowd.
-
-I trust that I am not more dense than my neighbours, but I was
-always oppressed with a sense of my own stupidity in my dealings
-with Sherlock Holmes. Here I had heard what he had heard, I had
-seen what he had seen, and yet from his words it was evident that
-he saw clearly not only what had happened but what was about to
-happen, while to me the whole business was still confused and
-grotesque. As I drove home to my house in Kensington I thought
-over it all, from the extraordinary story of the red-headed
-copier of the "Encyclopaedia" down to the visit to Saxe-Coburg
-Square, and the ominous words with which he had parted from me.
-What was this nocturnal expedition, and why should I go armed?
-Where were we going, and what were we to do? I had the hint from
-Holmes that this smooth-faced pawnbroker's assistant was a
-formidable man--a man who might play a deep game. I tried to
-puzzle it out, but gave it up in despair and set the matter aside
-until night should bring an explanation.
-
-It was a quarter-past nine when I started from home and made my
-way across the Park, and so through Oxford Street to Baker
-Street. Two hansoms were standing at the door, and as I entered
-the passage I heard the sound of voices from above. On entering
-his room I found Holmes in animated conversation with two men,
-one of whom I recognised as Peter Jones, the official police
-agent, while the other was a long, thin, sad-faced man, with a
-very shiny hat and oppressively respectable frock-coat.
-
-"Ha! Our party is complete," said Holmes, buttoning up his
-pea-jacket and taking his heavy hunting crop from the rack.
-"Watson, I think you know Mr. Jones, of Scotland Yard? Let me
-introduce you to Mr. Merryweather, who is to be our companion in
-to-night's adventure."
-
-"We're hunting in couples again, Doctor, you see," said Jones in
-his consequential way. "Our friend here is a wonderful man for
-starting a chase. All he wants is an old dog to help him to do
-the running down."
-
-"I hope a wild goose may not prove to be the end of our chase,"
-observed Mr. Merryweather gloomily.
-
-"You may place considerable confidence in Mr. Holmes, sir," said
-the police agent loftily. "He has his own little methods, which
-are, if he won't mind my saying so, just a little too theoretical
-and fantastic, but he has the makings of a detective in him. It
-is not too much to say that once or twice, as in that business of
-the Sholto murder and the Agra treasure, he has been more nearly
-correct than the official force."
-
-"Oh, if you say so, Mr. Jones, it is all right," said the
-stranger with deference. "Still, I confess that I miss my rubber.
-It is the first Saturday night for seven-and-twenty years that I
-have not had my rubber."
-
-"I think you will find," said Sherlock Holmes, "that you will
-play for a higher stake to-night than you have ever done yet, and
-that the play will be more exciting. For you, Mr. Merryweather,
-the stake will be some 30,000 pounds; and for you, Jones, it will
-be the man upon whom you wish to lay your hands."
-
-"John Clay, the murderer, thief, smasher, and forger. He's a
-young man, Mr. Merryweather, but he is at the head of his
-profession, and I would rather have my bracelets on him than on
-any criminal in London. He's a remarkable man, is young John
-Clay. His grandfather was a royal duke, and he himself has been
-to Eton and Oxford. His brain is as cunning as his fingers, and
-though we meet signs of him at every turn, we never know where to
-find the man himself. He'll crack a crib in Scotland one week,
-and be raising money to build an orphanage in Cornwall the next.
-I've been on his track for years and have never set eyes on him
-yet."
-
-"I hope that I may have the pleasure of introducing you to-night.
-I've had one or two little turns also with Mr. John Clay, and I
-agree with you that he is at the head of his profession. It is
-past ten, however, and quite time that we started. If you two
-will take the first hansom, Watson and I will follow in the
-second."
-
-Sherlock Holmes was not very communicative during the long drive
-and lay back in the cab humming the tunes which he had heard in
-the afternoon. We rattled through an endless labyrinth of gas-lit
-streets until we emerged into Farrington Street.
-
-"We are close there now," my friend remarked. "This fellow
-Merryweather is a bank director, and personally interested in the
-matter. I thought it as well to have Jones with us also. He is
-not a bad fellow, though an absolute imbecile in his profession.
-He has one positive virtue. He is as brave as a bulldog and as
-tenacious as a lobster if he gets his claws upon anyone. Here we
-are, and they are waiting for us."
-
-We had reached the same crowded thoroughfare in which we had
-found ourselves in the morning. Our cabs were dismissed, and,
-following the guidance of Mr. Merryweather, we passed down a
-narrow passage and through a side door, which he opened for us.
-Within there was a small corridor, which ended in a very massive
-iron gate. This also was opened, and led down a flight of winding
-stone steps, which terminated at another formidable gate. Mr.
-Merryweather stopped to light a lantern, and then conducted us
-down a dark, earth-smelling passage, and so, after opening a
-third door, into a huge vault or cellar, which was piled all
-round with crates and massive boxes.
-
-"You are not very vulnerable from above," Holmes remarked as he
-held up the lantern and gazed about him.
-
-"Nor from below," said Mr. Merryweather, striking his stick upon
-the flags which lined the floor. "Why, dear me, it sounds quite
-hollow!" he remarked, looking up in surprise.
-
-"I must really ask you to be a little more quiet!" said Holmes
-severely. "You have already imperilled the whole success of our
-expedition. Might I beg that you would have the goodness to sit
-down upon one of those boxes, and not to interfere?"
-
-The solemn Mr. Merryweather perched himself upon a crate, with a
-very injured expression upon his face, while Holmes fell upon his
-knees upon the floor and, with the lantern and a magnifying lens,
-began to examine minutely the cracks between the stones. A few
-seconds sufficed to satisfy him, for he sprang to his feet again
-and put his glass in his pocket.
-
-"We have at least an hour before us," he remarked, "for they can
-hardly take any steps until the good pawnbroker is safely in bed.
-Then they will not lose a minute, for the sooner they do their
-work the longer time they will have for their escape. We are at
-present, Doctor--as no doubt you have divined--in the cellar of
-the City branch of one of the principal London banks. Mr.
-Merryweather is the chairman of directors, and he will explain to
-you that there are reasons why the more daring criminals of
-London should take a considerable interest in this cellar at
-present."
-
-"It is our French gold," whispered the director. "We have had
-several warnings that an attempt might be made upon it."
-
-"Your French gold?"
-
-"Yes. We had occasion some months ago to strengthen our resources
-and borrowed for that purpose 30,000 napoleons from the Bank of
-France. It has become known that we have never had occasion to
-unpack the money, and that it is still lying in our cellar. The
-crate upon which I sit contains 2,000 napoleons packed between
-layers of lead foil. Our reserve of bullion is much larger at
-present than is usually kept in a single branch office, and the
-directors have had misgivings upon the subject."
-
-"Which were very well justified," observed Holmes. "And now it is
-time that we arranged our little plans. I expect that within an
-hour matters will come to a head. In the meantime Mr.
-Merryweather, we must put the screen over that dark lantern."
-
-"And sit in the dark?"
-
-"I am afraid so. I had brought a pack of cards in my pocket, and
-I thought that, as we were a partie carrée, you might have your
-rubber after all. But I see that the enemy's preparations have
-gone so far that we cannot risk the presence of a light. And,
-first of all, we must choose our positions. These are daring men,
-and though we shall take them at a disadvantage, they may do us
-some harm unless we are careful. I shall stand behind this crate,
-and do you conceal yourselves behind those. Then, when I flash a
-light upon them, close in swiftly. If they fire, Watson, have no
-compunction about shooting them down."
-
-I placed my revolver, cocked, upon the top of the wooden case
-behind which I crouched. Holmes shot the slide across the front
-of his lantern and left us in pitch darkness--such an absolute
-darkness as I have never before experienced. The smell of hot
-metal remained to assure us that the light was still there, ready
-to flash out at a moment's notice. To me, with my nerves worked
-up to a pitch of expectancy, there was something depressing and
-subduing in the sudden gloom, and in the cold dank air of the
-vault.
-
-"They have but one retreat," whispered Holmes. "That is back
-through the house into Saxe-Coburg Square. I hope that you have
-done what I asked you, Jones?"
-
-"I have an inspector and two officers waiting at the front door."
-
-"Then we have stopped all the holes. And now we must be silent
-and wait."
-
-What a time it seemed! From comparing notes afterwards it was but
-an hour and a quarter, yet it appeared to me that the night must
-have almost gone and the dawn be breaking above us. My limbs
-were weary and stiff, for I feared to change my position; yet my
-nerves were worked up to the highest pitch of tension, and my
-hearing was so acute that I could not only hear the gentle
-breathing of my companions, but I could distinguish the deeper,
-heavier in-breath of the bulky Jones from the thin, sighing note
-of the bank director. From my position I could look over the case
-in the direction of the floor. Suddenly my eyes caught the glint
-of a light.
-
-At first it was but a lurid spark upon the stone pavement. Then
-it lengthened out until it became a yellow line, and then,
-without any warning or sound, a gash seemed to open and a hand
-appeared, a white, almost womanly hand, which felt about in the
-centre of the little area of light. For a minute or more the
-hand, with its writhing fingers, protruded out of the floor. Then
-it was withdrawn as suddenly as it appeared, and all was dark
-again save the single lurid spark which marked a chink between
-the stones.
-
-Its disappearance, however, was but momentary. With a rending,
-tearing sound, one of the broad, white stones turned over upon
-its side and left a square, gaping hole, through which streamed
-the light of a lantern. Over the edge there peeped a clean-cut,
-boyish face, which looked keenly about it, and then, with a hand
-on either side of the aperture, drew itself shoulder-high and
-waist-high, until one knee rested upon the edge. In another
-instant he stood at the side of the hole and was hauling after
-him a companion, lithe and small like himself, with a pale face
-and a shock of very red hair.
-
-"It's all clear," he whispered. "Have you the chisel and the
-bags? Great Scott! Jump, Archie, jump, and I'll swing for it!"
-
-Sherlock Holmes had sprung out and seized the intruder by the
-collar. The other dived down the hole, and I heard the sound of
-rending cloth as Jones clutched at his skirts. The light flashed
-upon the barrel of a revolver, but Holmes' hunting crop came
-down on the man's wrist, and the pistol clinked upon the stone
-floor.
-
-"It's no use, John Clay," said Holmes blandly. "You have no
-chance at all."
-
-"So I see," the other answered with the utmost coolness. "I fancy
-that my pal is all right, though I see you have got his
-coat-tails."
-
-"There are three men waiting for him at the door," said Holmes.
-
-"Oh, indeed! You seem to have done the thing very completely. I
-must compliment you."
-
-"And I you," Holmes answered. "Your red-headed idea was very new
-and effective."
-
-"You'll see your pal again presently," said Jones. "He's quicker
-at climbing down holes than I am. Just hold out while I fix the
-derbies."
-
-"I beg that you will not touch me with your filthy hands,"
-remarked our prisoner as the handcuffs clattered upon his wrists.
-"You may not be aware that I have royal blood in my veins. Have
-the goodness, also, when you address me always to say 'sir' and
-'please.'"
-
-"All right," said Jones with a stare and a snigger. "Well, would
-you please, sir, march upstairs, where we can get a cab to carry
-your Highness to the police-station?"
-
-"That is better," said John Clay serenely. He made a sweeping bow
-to the three of us and walked quietly off in the custody of the
-detective.
-
-"Really, Mr. Holmes," said Mr. Merryweather as we followed them
-from the cellar, "I do not know how the bank can thank you or
-repay you. There is no doubt that you have detected and defeated
-in the most complete manner one of the most determined attempts
-at bank robbery that have ever come within my experience."
-
-"I have had one or two little scores of my own to settle with Mr.
-John Clay," said Holmes. "I have been at some small expense over
-this matter, which I shall expect the bank to refund, but beyond
-that I am amply repaid by having had an experience which is in
-many ways unique, and by hearing the very remarkable narrative of
-the Red-headed League."
-
-
-"You see, Watson," he explained in the early hours of the morning
-as we sat over a glass of whisky and soda in Baker Street, "it
-was perfectly obvious from the first that the only possible
-object of this rather fantastic business of the advertisement of
-the League, and the copying of the 'Encyclopaedia,' must be to get
-this not over-bright pawnbroker out of the way for a number of
-hours every day. It was a curious way of managing it, but,
-really, it would be difficult to suggest a better. The method was
-no doubt suggested to Clay's ingenious mind by the colour of his
-accomplice's hair. The 4 pounds a week was a lure which must draw
-him, and what was it to them, who were playing for thousands?
-They put in the advertisement, one rogue has the temporary
-office, the other rogue incites the man to apply for it, and
-together they manage to secure his absence every morning in the
-week. From the time that I heard of the assistant having come for
-half wages, it was obvious to me that he had some strong motive
-for securing the situation."
-
-"But how could you guess what the motive was?"
-
-"Had there been women in the house, I should have suspected a
-mere vulgar intrigue. That, however, was out of the question. The
-man's business was a small one, and there was nothing in his
-house which could account for such elaborate preparations, and
-such an expenditure as they were at. It must, then, be something
-out of the house. What could it be? I thought of the assistant's
-fondness for photography, and his trick of vanishing into the
-cellar. The cellar! There was the end of this tangled clue. Then
-I made inquiries as to this mysterious assistant and found that I
-had to deal with one of the coolest and most daring criminals in
-London. He was doing something in the cellar--something which
-took many hours a day for months on end. What could it be, once
-more? I could think of nothing save that he was running a tunnel
-to some other building.
-
-"So far I had got when we went to visit the scene of action. I
-surprised you by beating upon the pavement with my stick. I was
-ascertaining whether the cellar stretched out in front or behind.
-It was not in front. Then I rang the bell, and, as I hoped, the
-assistant answered it. We have had some skirmishes, but we had
-never set eyes upon each other before. I hardly looked at his
-face. His knees were what I wished to see. You must yourself have
-remarked how worn, wrinkled, and stained they were. They spoke of
-those hours of burrowing. The only remaining point was what they
-were burrowing for. I walked round the corner, saw the City and
-Suburban Bank abutted on our friend's premises, and felt that I
-had solved my problem. When you drove home after the concert I
-called upon Scotland Yard and upon the chairman of the bank
-directors, with the result that you have seen."
-
-"And how could you tell that they would make their attempt
-to-night?" I asked.
-
-"Well, when they closed their League offices that was a sign that
-they cared no longer about Mr. Jabez Wilson's presence--in other
-words, that they had completed their tunnel. But it was essential
-that they should use it soon, as it might be discovered, or the
-bullion might be removed. Saturday would suit them better than
-any other day, as it would give them two days for their escape.
-For all these reasons I expected them to come to-night."
-
-"You reasoned it out beautifully," I exclaimed in unfeigned
-admiration. "It is so long a chain, and yet every link rings
-true."
-
-"It saved me from ennui," he answered, yawning. "Alas! I already
-feel it closing in upon me. My life is spent in one long effort
-to escape from the commonplaces of existence. These little
-problems help me to do so."
-
-"And you are a benefactor of the race," said I.
-
-He shrugged his shoulders. "Well, perhaps, after all, it is of
-some little use," he remarked. "'L'homme c'est rien--l'oeuvre
-c'est tout,' as Gustave Flaubert wrote to George Sand."
-
-
-
-ADVENTURE III. A CASE OF IDENTITY
-
-"My dear fellow," said Sherlock Holmes as we sat on either side
-of the fire in his lodgings at Baker Street, "life is infinitely
-stranger than anything which the mind of man could invent. We
-would not dare to conceive the things which are really mere
-commonplaces of existence. If we could fly out of that window
-hand in hand, hover over this great city, gently remove the
-roofs, and peep in at the queer things which are going on, the
-strange coincidences, the plannings, the cross-purposes, the
-wonderful chains of events, working through generations, and
-leading to the most outré results, it would make all fiction with
-its conventionalities and foreseen conclusions most stale and
-unprofitable."
-
-"And yet I am not convinced of it," I answered. "The cases which
-come to light in the papers are, as a rule, bald enough, and
-vulgar enough. We have in our police reports realism pushed to
-its extreme limits, and yet the result is, it must be confessed,
-neither fascinating nor artistic."
-
-"A certain selection and discretion must be used in producing a
-realistic effect," remarked Holmes. "This is wanting in the
-police report, where more stress is laid, perhaps, upon the
-platitudes of the magistrate than upon the details, which to an
-observer contain the vital essence of the whole matter. Depend
-upon it, there is nothing so unnatural as the commonplace."
-
-I smiled and shook my head. "I can quite understand your thinking
-so," I said. "Of course, in your position of unofficial adviser
-and helper to everybody who is absolutely puzzled, throughout
-three continents, you are brought in contact with all that is
-strange and bizarre. But here"--I picked up the morning paper
-from the ground--"let us put it to a practical test. Here is the
-first heading upon which I come. 'A husband's cruelty to his
-wife.' There is half a column of print, but I know without
-reading it that it is all perfectly familiar to me. There is, of
-course, the other woman, the drink, the push, the blow, the
-bruise, the sympathetic sister or landlady. The crudest of
-writers could invent nothing more crude."
-
-"Indeed, your example is an unfortunate one for your argument,"
-said Holmes, taking the paper and glancing his eye down it. "This
-is the Dundas separation case, and, as it happens, I was engaged
-in clearing up some small points in connection with it. The
-husband was a teetotaler, there was no other woman, and the
-conduct complained of was that he had drifted into the habit of
-winding up every meal by taking out his false teeth and hurling
-them at his wife, which, you will allow, is not an action likely
-to occur to the imagination of the average story-teller. Take a
-pinch of snuff, Doctor, and acknowledge that I have scored over
-you in your example."
-
-He held out his snuffbox of old gold, with a great amethyst in
-the centre of the lid. Its splendour was in such contrast to his
-homely ways and simple life that I could not help commenting upon
-it.
-
-"Ah," said he, "I forgot that I had not seen you for some weeks.
-It is a little souvenir from the King of Bohemia in return for my
-assistance in the case of the Irene Adler papers."
-
-"And the ring?" I asked, glancing at a remarkable brilliant which
-sparkled upon his finger.
-
-"It was from the reigning family of Holland, though the matter in
-which I served them was of such delicacy that I cannot confide it
-even to you, who have been good enough to chronicle one or two of
-my little problems."
-
-"And have you any on hand just now?" I asked with interest.
-
-"Some ten or twelve, but none which present any feature of
-interest. They are important, you understand, without being
-interesting. Indeed, I have found that it is usually in
-unimportant matters that there is a field for the observation,
-and for the quick analysis of cause and effect which gives the
-charm to an investigation. The larger crimes are apt to be the
-simpler, for the bigger the crime the more obvious, as a rule, is
-the motive. In these cases, save for one rather intricate matter
-which has been referred to me from Marseilles, there is nothing
-which presents any features of interest. It is possible, however,
-that I may have something better before very many minutes are
-over, for this is one of my clients, or I am much mistaken."
-
-He had risen from his chair and was standing between the parted
-blinds gazing down into the dull neutral-tinted London street.
-Looking over his shoulder, I saw that on the pavement opposite
-there stood a large woman with a heavy fur boa round her neck,
-and a large curling red feather in a broad-brimmed hat which was
-tilted in a coquettish Duchess of Devonshire fashion over her
-ear. From under this great panoply she peeped up in a nervous,
-hesitating fashion at our windows, while her body oscillated
-backward and forward, and her fingers fidgeted with her glove
-buttons. Suddenly, with a plunge, as of the swimmer who leaves
-the bank, she hurried across the road, and we heard the sharp
-clang of the bell.
-
-"I have seen those symptoms before," said Holmes, throwing his
-cigarette into the fire. "Oscillation upon the pavement always
-means an affaire de coeur. She would like advice, but is not sure
-that the matter is not too delicate for communication. And yet
-even here we may discriminate. When a woman has been seriously
-wronged by a man she no longer oscillates, and the usual symptom
-is a broken bell wire. Here we may take it that there is a love
-matter, but that the maiden is not so much angry as perplexed, or
-grieved. But here she comes in person to resolve our doubts."
-
-As he spoke there was a tap at the door, and the boy in buttons
-entered to announce Miss Mary Sutherland, while the lady herself
-loomed behind his small black figure like a full-sailed
-merchant-man behind a tiny pilot boat. Sherlock Holmes welcomed
-her with the easy courtesy for which he was remarkable, and,
-having closed the door and bowed her into an armchair, he looked
-her over in the minute and yet abstracted fashion which was
-peculiar to him.
-
-"Do you not find," he said, "that with your short sight it is a
-little trying to do so much typewriting?"
-
-"I did at first," she answered, "but now I know where the letters
-are without looking." Then, suddenly realising the full purport
-of his words, she gave a violent start and looked up, with fear
-and astonishment upon her broad, good-humoured face. "You've
-heard about me, Mr. Holmes," she cried, "else how could you know
-all that?"
-
-"Never mind," said Holmes, laughing; "it is my business to know
-things. Perhaps I have trained myself to see what others
-overlook. If not, why should you come to consult me?"
-
-"I came to you, sir, because I heard of you from Mrs. Etherege,
-whose husband you found so easy when the police and everyone had
-given him up for dead. Oh, Mr. Holmes, I wish you would do as
-much for me. I'm not rich, but still I have a hundred a year in
-my own right, besides the little that I make by the machine, and
-I would give it all to know what has become of Mr. Hosmer Angel."
-
-"Why did you come away to consult me in such a hurry?" asked
-Sherlock Holmes, with his finger-tips together and his eyes to
-the ceiling.
-
-Again a startled look came over the somewhat vacuous face of Miss
-Mary Sutherland. "Yes, I did bang out of the house," she said,
-"for it made me angry to see the easy way in which Mr.
-Windibank--that is, my father--took it all. He would not go to
-the police, and he would not go to you, and so at last, as he
-would do nothing and kept on saying that there was no harm done,
-it made me mad, and I just on with my things and came right away
-to you."
-
-"Your father," said Holmes, "your stepfather, surely, since the
-name is different."
-
-"Yes, my stepfather. I call him father, though it sounds funny,
-too, for he is only five years and two months older than myself."
-
-"And your mother is alive?"
-
-"Oh, yes, mother is alive and well. I wasn't best pleased, Mr.
-Holmes, when she married again so soon after father's death, and
-a man who was nearly fifteen years younger than herself. Father
-was a plumber in the Tottenham Court Road, and he left a tidy
-business behind him, which mother carried on with Mr. Hardy, the
-foreman; but when Mr. Windibank came he made her sell the
-business, for he was very superior, being a traveller in wines.
-They got 4700 pounds for the goodwill and interest, which wasn't
-near as much as father could have got if he had been alive."
-
-I had expected to see Sherlock Holmes impatient under this
-rambling and inconsequential narrative, but, on the contrary, he
-had listened with the greatest concentration of attention.
-
-"Your own little income," he asked, "does it come out of the
-business?"
-
-"Oh, no, sir. It is quite separate and was left me by my uncle
-Ned in Auckland. It is in New Zealand stock, paying 4 1/2 per
-cent. Two thousand five hundred pounds was the amount, but I can
-only touch the interest."
-
-"You interest me extremely," said Holmes. "And since you draw so
-large a sum as a hundred a year, with what you earn into the
-bargain, you no doubt travel a little and indulge yourself in
-every way. I believe that a single lady can get on very nicely
-upon an income of about 60 pounds."
-
-"I could do with much less than that, Mr. Holmes, but you
-understand that as long as I live at home I don't wish to be a
-burden to them, and so they have the use of the money just while
-I am staying with them. Of course, that is only just for the
-time. Mr. Windibank draws my interest every quarter and pays it
-over to mother, and I find that I can do pretty well with what I
-earn at typewriting. It brings me twopence a sheet, and I can
-often do from fifteen to twenty sheets in a day."
-
-"You have made your position very clear to me," said Holmes.
-"This is my friend, Dr. Watson, before whom you can speak as
-freely as before myself. Kindly tell us now all about your
-connection with Mr. Hosmer Angel."
-
-A flush stole over Miss Sutherland's face, and she picked
-nervously at the fringe of her jacket. "I met him first at the
-gasfitters' ball," she said. "They used to send father tickets
-when he was alive, and then afterwards they remembered us, and
-sent them to mother. Mr. Windibank did not wish us to go. He
-never did wish us to go anywhere. He would get quite mad if I
-wanted so much as to join a Sunday-school treat. But this time I
-was set on going, and I would go; for what right had he to
-prevent? He said the folk were not fit for us to know, when all
-father's friends were to be there. And he said that I had nothing
-fit to wear, when I had my purple plush that I had never so much
-as taken out of the drawer. At last, when nothing else would do,
-he went off to France upon the business of the firm, but we went,
-mother and I, with Mr. Hardy, who used to be our foreman, and it
-was there I met Mr. Hosmer Angel."
-
-"I suppose," said Holmes, "that when Mr. Windibank came back from
-France he was very annoyed at your having gone to the ball."
-
-"Oh, well, he was very good about it. He laughed, I remember, and
-shrugged his shoulders, and said there was no use denying
-anything to a woman, for she would have her way."
-
-"I see. Then at the gasfitters' ball you met, as I understand, a
-gentleman called Mr. Hosmer Angel."
-
-"Yes, sir. I met him that night, and he called next day to ask if
-we had got home all safe, and after that we met him--that is to
-say, Mr. Holmes, I met him twice for walks, but after that father
-came back again, and Mr. Hosmer Angel could not come to the house
-any more."
-
-"No?"
-
-"Well, you know father didn't like anything of the sort. He
-wouldn't have any visitors if he could help it, and he used to
-say that a woman should be happy in her own family circle. But
-then, as I used to say to mother, a woman wants her own circle to
-begin with, and I had not got mine yet."
-
-"But how about Mr. Hosmer Angel? Did he make no attempt to see
-you?"
-
-"Well, father was going off to France again in a week, and Hosmer
-wrote and said that it would be safer and better not to see each
-other until he had gone. We could write in the meantime, and he
-used to write every day. I took the letters in in the morning, so
-there was no need for father to know."
-
-"Were you engaged to the gentleman at this time?"
-
-"Oh, yes, Mr. Holmes. We were engaged after the first walk that
-we took. Hosmer--Mr. Angel--was a cashier in an office in
-Leadenhall Street--and--"
-
-"What office?"
-
-"That's the worst of it, Mr. Holmes, I don't know."
-
-"Where did he live, then?"
-
-"He slept on the premises."
-
-"And you don't know his address?"
-
-"No--except that it was Leadenhall Street."
-
-"Where did you address your letters, then?"
-
-"To the Leadenhall Street Post Office, to be left till called
-for. He said that if they were sent to the office he would be
-chaffed by all the other clerks about having letters from a lady,
-so I offered to typewrite them, like he did his, but he wouldn't
-have that, for he said that when I wrote them they seemed to come
-from me, but when they were typewritten he always felt that the
-machine had come between us. That will just show you how fond he
-was of me, Mr. Holmes, and the little things that he would think
-of."
-
-"It was most suggestive," said Holmes. "It has long been an axiom
-of mine that the little things are infinitely the most important.
-Can you remember any other little things about Mr. Hosmer Angel?"
-
-"He was a very shy man, Mr. Holmes. He would rather walk with me
-in the evening than in the daylight, for he said that he hated to
-be conspicuous. Very retiring and gentlemanly he was. Even his
-voice was gentle. He'd had the quinsy and swollen glands when he
-was young, he told me, and it had left him with a weak throat,
-and a hesitating, whispering fashion of speech. He was always
-well dressed, very neat and plain, but his eyes were weak, just
-as mine are, and he wore tinted glasses against the glare."
-
-"Well, and what happened when Mr. Windibank, your stepfather,
-returned to France?"
-
-"Mr. Hosmer Angel came to the house again and proposed that we
-should marry before father came back. He was in dreadful earnest
-and made me swear, with my hands on the Testament, that whatever
-happened I would always be true to him. Mother said he was quite
-right to make me swear, and that it was a sign of his passion.
-Mother was all in his favour from the first and was even fonder
-of him than I was. Then, when they talked of marrying within the
-week, I began to ask about father; but they both said never to
-mind about father, but just to tell him afterwards, and mother
-said she would make it all right with him. I didn't quite like
-that, Mr. Holmes. It seemed funny that I should ask his leave, as
-he was only a few years older than me; but I didn't want to do
-anything on the sly, so I wrote to father at Bordeaux, where the
-company has its French offices, but the letter came back to me on
-the very morning of the wedding."
-
-"It missed him, then?"
-
-"Yes, sir; for he had started to England just before it arrived."
-
-"Ha! that was unfortunate. Your wedding was arranged, then, for
-the Friday. Was it to be in church?"
-
-"Yes, sir, but very quietly. It was to be at St. Saviour's, near
-King's Cross, and we were to have breakfast afterwards at the St.
-Pancras Hotel. Hosmer came for us in a hansom, but as there were
-two of us he put us both into it and stepped himself into a
-four-wheeler, which happened to be the only other cab in the
-street. We got to the church first, and when the four-wheeler
-drove up we waited for him to step out, but he never did, and
-when the cabman got down from the box and looked there was no one
-there! The cabman said that he could not imagine what had become
-of him, for he had seen him get in with his own eyes. That was
-last Friday, Mr. Holmes, and I have never seen or heard anything
-since then to throw any light upon what became of him."
-
-"It seems to me that you have been very shamefully treated," said
-Holmes.
-
-"Oh, no, sir! He was too good and kind to leave me so. Why, all
-the morning he was saying to me that, whatever happened, I was to
-be true; and that even if something quite unforeseen occurred to
-separate us, I was always to remember that I was pledged to him,
-and that he would claim his pledge sooner or later. It seemed
-strange talk for a wedding-morning, but what has happened since
-gives a meaning to it."
-
-"Most certainly it does. Your own opinion is, then, that some
-unforeseen catastrophe has occurred to him?"
-
-"Yes, sir. I believe that he foresaw some danger, or else he
-would not have talked so. And then I think that what he foresaw
-happened."
-
-"But you have no notion as to what it could have been?"
-
-"None."
-
-"One more question. How did your mother take the matter?"
-
-"She was angry, and said that I was never to speak of the matter
-again."
-
-"And your father? Did you tell him?"
-
-"Yes; and he seemed to think, with me, that something had
-happened, and that I should hear of Hosmer again. As he said,
-what interest could anyone have in bringing me to the doors of
-the church, and then leaving me? Now, if he had borrowed my
-money, or if he had married me and got my money settled on him,
-there might be some reason, but Hosmer was very independent about
-money and never would look at a shilling of mine. And yet, what
-could have happened? And why could he not write? Oh, it drives me
-half-mad to think of it, and I can't sleep a wink at night." She
-pulled a little handkerchief out of her muff and began to sob
-heavily into it.
-
-"I shall glance into the case for you," said Holmes, rising, "and
-I have no doubt that we shall reach some definite result. Let the
-weight of the matter rest upon me now, and do not let your mind
-dwell upon it further. Above all, try to let Mr. Hosmer Angel
-vanish from your memory, as he has done from your life."
-
-"Then you don't think I'll see him again?"
-
-"I fear not."
-
-"Then what has happened to him?"
-
-"You will leave that question in my hands. I should like an
-accurate description of him and any letters of his which you can
-spare."
-
-"I advertised for him in last Saturday's Chronicle," said she.
-"Here is the slip and here are four letters from him."
-
-"Thank you. And your address?"
-
-"No. 31 Lyon Place, Camberwell."
-
-"Mr. Angel's address you never had, I understand. Where is your
-father's place of business?"
-
-"He travels for Westhouse & Marbank, the great claret importers
-of Fenchurch Street."
-
-"Thank you. You have made your statement very clearly. You will
-leave the papers here, and remember the advice which I have given
-you. Let the whole incident be a sealed book, and do not allow it
-to affect your life."
-
-"You are very kind, Mr. Holmes, but I cannot do that. I shall be
-true to Hosmer. He shall find me ready when he comes back."
-
-For all the preposterous hat and the vacuous face, there was
-something noble in the simple faith of our visitor which
-compelled our respect. She laid her little bundle of papers upon
-the table and went her way, with a promise to come again whenever
-she might be summoned.
-
-Sherlock Holmes sat silent for a few minutes with his fingertips
-still pressed together, his legs stretched out in front of him,
-and his gaze directed upward to the ceiling. Then he took down
-from the rack the old and oily clay pipe, which was to him as a
-counsellor, and, having lit it, he leaned back in his chair, with
-the thick blue cloud-wreaths spinning up from him, and a look of
-infinite languor in his face.
-
-"Quite an interesting study, that maiden," he observed. "I found
-her more interesting than her little problem, which, by the way,
-is rather a trite one. You will find parallel cases, if you
-consult my index, in Andover in '77, and there was something of
-the sort at The Hague last year. Old as is the idea, however,
-there were one or two details which were new to me. But the
-maiden herself was most instructive."
-
-"You appeared to read a good deal upon her which was quite
-invisible to me," I remarked.
-
-"Not invisible but unnoticed, Watson. You did not know where to
-look, and so you missed all that was important. I can never bring
-you to realise the importance of sleeves, the suggestiveness of
-thumb-nails, or the great issues that may hang from a boot-lace.
-Now, what did you gather from that woman's appearance? Describe
-it."
-
-"Well, she had a slate-coloured, broad-brimmed straw hat, with a
-feather of a brickish red. Her jacket was black, with black beads
-sewn upon it, and a fringe of little black jet ornaments. Her
-dress was brown, rather darker than coffee colour, with a little
-purple plush at the neck and sleeves. Her gloves were greyish and
-were worn through at the right forefinger. Her boots I didn't
-observe. She had small round, hanging gold earrings, and a
-general air of being fairly well-to-do in a vulgar, comfortable,
-easy-going way."
-
-Sherlock Holmes clapped his hands softly together and chuckled.
-
-"'Pon my word, Watson, you are coming along wonderfully. You have
-really done very well indeed. It is true that you have missed
-everything of importance, but you have hit upon the method, and
-you have a quick eye for colour. Never trust to general
-impressions, my boy, but concentrate yourself upon details. My
-first glance is always at a woman's sleeve. In a man it is
-perhaps better first to take the knee of the trouser. As you
-observe, this woman had plush upon her sleeves, which is a most
-useful material for showing traces. The double line a little
-above the wrist, where the typewritist presses against the table,
-was beautifully defined. The sewing-machine, of the hand type,
-leaves a similar mark, but only on the left arm, and on the side
-of it farthest from the thumb, instead of being right across the
-broadest part, as this was. I then glanced at her face, and,
-observing the dint of a pince-nez at either side of her nose, I
-ventured a remark upon short sight and typewriting, which seemed
-to surprise her."
-
-"It surprised me."
-
-"But, surely, it was obvious. I was then much surprised and
-interested on glancing down to observe that, though the boots
-which she was wearing were not unlike each other, they were
-really odd ones; the one having a slightly decorated toe-cap, and
-the other a plain one. One was buttoned only in the two lower
-buttons out of five, and the other at the first, third, and
-fifth. Now, when you see that a young lady, otherwise neatly
-dressed, has come away from home with odd boots, half-buttoned,
-it is no great deduction to say that she came away in a hurry."
-
-"And what else?" I asked, keenly interested, as I always was, by
-my friend's incisive reasoning.
-
-"I noted, in passing, that she had written a note before leaving
-home but after being fully dressed. You observed that her right
-glove was torn at the forefinger, but you did not apparently see
-that both glove and finger were stained with violet ink. She had
-written in a hurry and dipped her pen too deep. It must have been
-this morning, or the mark would not remain clear upon the finger.
-All this is amusing, though rather elementary, but I must go back
-to business, Watson. Would you mind reading me the advertised
-description of Mr. Hosmer Angel?"
-
-I held the little printed slip to the light.
-
-"Missing," it said, "on the morning of the fourteenth, a gentleman
-named Hosmer Angel. About five ft. seven in. in height;
-strongly built, sallow complexion, black hair, a little bald in
-the centre, bushy, black side-whiskers and moustache; tinted
-glasses, slight infirmity of speech. Was dressed, when last seen,
-in black frock-coat faced with silk, black waistcoat, gold Albert
-chain, and grey Harris tweed trousers, with brown gaiters over
-elastic-sided boots. Known to have been employed in an office in
-Leadenhall Street. Anybody bringing--"
-
-"That will do," said Holmes. "As to the letters," he continued,
-glancing over them, "they are very commonplace. Absolutely no
-clue in them to Mr. Angel, save that he quotes Balzac once. There
-is one remarkable point, however, which will no doubt strike
-you."
-
-"They are typewritten," I remarked.
-
-"Not only that, but the signature is typewritten. Look at the
-neat little 'Hosmer Angel' at the bottom. There is a date, you
-see, but no superscription except Leadenhall Street, which is
-rather vague. The point about the signature is very suggestive--in
-fact, we may call it conclusive."
-
-"Of what?"
-
-"My dear fellow, is it possible you do not see how strongly it
-bears upon the case?"
-
-"I cannot say that I do unless it were that he wished to be able
-to deny his signature if an action for breach of promise were
-instituted."
-
-"No, that was not the point. However, I shall write two letters,
-which should settle the matter. One is to a firm in the City, the
-other is to the young lady's stepfather, Mr. Windibank, asking
-him whether he could meet us here at six o'clock tomorrow
-evening. It is just as well that we should do business with the
-male relatives. And now, Doctor, we can do nothing until the
-answers to those letters come, so we may put our little problem
-upon the shelf for the interim."
-
-I had had so many reasons to believe in my friend's subtle powers
-of reasoning and extraordinary energy in action that I felt that
-he must have some solid grounds for the assured and easy
-demeanour with which he treated the singular mystery which he had
-been called upon to fathom. Once only had I known him to fail, in
-the case of the King of Bohemia and of the Irene Adler
-photograph; but when I looked back to the weird business of the
-Sign of Four, and the extraordinary circumstances connected with
-the Study in Scarlet, I felt that it would be a strange tangle
-indeed which he could not unravel.
-
-I left him then, still puffing at his black clay pipe, with the
-conviction that when I came again on the next evening I would
-find that he held in his hands all the clues which would lead up
-to the identity of the disappearing bridegroom of Miss Mary
-Sutherland.
-
-A professional case of great gravity was engaging my own
-attention at the time, and the whole of next day I was busy at
-the bedside of the sufferer. It was not until close upon six
-o'clock that I found myself free and was able to spring into a
-hansom and drive to Baker Street, half afraid that I might be too
-late to assist at the dénouement of the little mystery. I found
-Sherlock Holmes alone, however, half asleep, with his long, thin
-form curled up in the recesses of his armchair. A formidable
-array of bottles and test-tubes, with the pungent cleanly smell
-of hydrochloric acid, told me that he had spent his day in the
-chemical work which was so dear to him.
-
-"Well, have you solved it?" I asked as I entered.
-
-"Yes. It was the bisulphate of baryta."
-
-"No, no, the mystery!" I cried.
-
-"Oh, that! I thought of the salt that I have been working upon.
-There was never any mystery in the matter, though, as I said
-yesterday, some of the details are of interest. The only drawback
-is that there is no law, I fear, that can touch the scoundrel."
-
-"Who was he, then, and what was his object in deserting Miss
-Sutherland?"
-
-The question was hardly out of my mouth, and Holmes had not yet
-opened his lips to reply, when we heard a heavy footfall in the
-passage and a tap at the door.
-
-"This is the girl's stepfather, Mr. James Windibank," said
-Holmes. "He has written to me to say that he would be here at
-six. Come in!"
-
-The man who entered was a sturdy, middle-sized fellow, some
-thirty years of age, clean-shaven, and sallow-skinned, with a
-bland, insinuating manner, and a pair of wonderfully sharp and
-penetrating grey eyes. He shot a questioning glance at each of
-us, placed his shiny top-hat upon the sideboard, and with a
-slight bow sidled down into the nearest chair.
-
-"Good-evening, Mr. James Windibank," said Holmes. "I think that
-this typewritten letter is from you, in which you made an
-appointment with me for six o'clock?"
-
-"Yes, sir. I am afraid that I am a little late, but I am not
-quite my own master, you know. I am sorry that Miss Sutherland
-has troubled you about this little matter, for I think it is far
-better not to wash linen of the sort in public. It was quite
-against my wishes that she came, but she is a very excitable,
-impulsive girl, as you may have noticed, and she is not easily
-controlled when she has made up her mind on a point. Of course, I
-did not mind you so much, as you are not connected with the
-official police, but it is not pleasant to have a family
-misfortune like this noised abroad. Besides, it is a useless
-expense, for how could you possibly find this Hosmer Angel?"
-
-"On the contrary," said Holmes quietly; "I have every reason to
-believe that I will succeed in discovering Mr. Hosmer Angel."
-
-Mr. Windibank gave a violent start and dropped his gloves. "I am
-delighted to hear it," he said.
-
-"It is a curious thing," remarked Holmes, "that a typewriter has
-really quite as much individuality as a man's handwriting. Unless
-they are quite new, no two of them write exactly alike. Some
-letters get more worn than others, and some wear only on one
-side. Now, you remark in this note of yours, Mr. Windibank, that
-in every case there is some little slurring over of the 'e,' and
-a slight defect in the tail of the 'r.' There are fourteen other
-characteristics, but those are the more obvious."
-
-"We do all our correspondence with this machine at the office,
-and no doubt it is a little worn," our visitor answered, glancing
-keenly at Holmes with his bright little eyes.
-
-"And now I will show you what is really a very interesting study,
-Mr. Windibank," Holmes continued. "I think of writing another
-little monograph some of these days on the typewriter and its
-relation to crime. It is a subject to which I have devoted some
-little attention. I have here four letters which purport to come
-from the missing man. They are all typewritten. In each case, not
-only are the 'e's' slurred and the 'r's' tailless, but you will
-observe, if you care to use my magnifying lens, that the fourteen
-other characteristics to which I have alluded are there as well."
-
-Mr. Windibank sprang out of his chair and picked up his hat. "I
-cannot waste time over this sort of fantastic talk, Mr. Holmes,"
-he said. "If you can catch the man, catch him, and let me know
-when you have done it."
-
-"Certainly," said Holmes, stepping over and turning the key in
-the door. "I let you know, then, that I have caught him!"
-
-"What! where?" shouted Mr. Windibank, turning white to his lips
-and glancing about him like a rat in a trap.
-
-"Oh, it won't do--really it won't," said Holmes suavely. "There
-is no possible getting out of it, Mr. Windibank. It is quite too
-transparent, and it was a very bad compliment when you said that
-it was impossible for me to solve so simple a question. That's
-right! Sit down and let us talk it over."
-
-Our visitor collapsed into a chair, with a ghastly face and a
-glitter of moisture on his brow. "It--it's not actionable," he
-stammered.
-
-"I am very much afraid that it is not. But between ourselves,
-Windibank, it was as cruel and selfish and heartless a trick in a
-petty way as ever came before me. Now, let me just run over the
-course of events, and you will contradict me if I go wrong."
-
-The man sat huddled up in his chair, with his head sunk upon his
-breast, like one who is utterly crushed. Holmes stuck his feet up
-on the corner of the mantelpiece and, leaning back with his hands
-in his pockets, began talking, rather to himself, as it seemed,
-than to us.
-
-"The man married a woman very much older than himself for her
-money," said he, "and he enjoyed the use of the money of the
-daughter as long as she lived with them. It was a considerable
-sum, for people in their position, and the loss of it would have
-made a serious difference. It was worth an effort to preserve it.
-The daughter was of a good, amiable disposition, but affectionate
-and warm-hearted in her ways, so that it was evident that with
-her fair personal advantages, and her little income, she would
-not be allowed to remain single long. Now her marriage would
-mean, of course, the loss of a hundred a year, so what does her
-stepfather do to prevent it? He takes the obvious course of
-keeping her at home and forbidding her to seek the company of
-people of her own age. But soon he found that that would not
-answer forever. She became restive, insisted upon her rights, and
-finally announced her positive intention of going to a certain
-ball. What does her clever stepfather do then? He conceives an
-idea more creditable to his head than to his heart. With the
-connivance and assistance of his wife he disguised himself,
-covered those keen eyes with tinted glasses, masked the face with
-a moustache and a pair of bushy whiskers, sunk that clear voice
-into an insinuating whisper, and doubly secure on account of the
-girl's short sight, he appears as Mr. Hosmer Angel, and keeps off
-other lovers by making love himself."
-
-"It was only a joke at first," groaned our visitor. "We never
-thought that she would have been so carried away."
-
-"Very likely not. However that may be, the young lady was very
-decidedly carried away, and, having quite made up her mind that
-her stepfather was in France, the suspicion of treachery never
-for an instant entered her mind. She was flattered by the
-gentleman's attentions, and the effect was increased by the
-loudly expressed admiration of her mother. Then Mr. Angel began
-to call, for it was obvious that the matter should be pushed as
-far as it would go if a real effect were to be produced. There
-were meetings, and an engagement, which would finally secure the
-girl's affections from turning towards anyone else. But the
-deception could not be kept up forever. These pretended journeys
-to France were rather cumbrous. The thing to do was clearly to
-bring the business to an end in such a dramatic manner that it
-would leave a permanent impression upon the young lady's mind and
-prevent her from looking upon any other suitor for some time to
-come. Hence those vows of fidelity exacted upon a Testament, and
-hence also the allusions to a possibility of something happening
-on the very morning of the wedding. James Windibank wished Miss
-Sutherland to be so bound to Hosmer Angel, and so uncertain as to
-his fate, that for ten years to come, at any rate, she would not
-listen to another man. As far as the church door he brought her,
-and then, as he could go no farther, he conveniently vanished
-away by the old trick of stepping in at one door of a
-four-wheeler and out at the other. I think that was the chain of
-events, Mr. Windibank!"
-
-Our visitor had recovered something of his assurance while Holmes
-had been talking, and he rose from his chair now with a cold
-sneer upon his pale face.
-
-"It may be so, or it may not, Mr. Holmes," said he, "but if you
-are so very sharp you ought to be sharp enough to know that it is
-you who are breaking the law now, and not me. I have done nothing
-actionable from the first, but as long as you keep that door
-locked you lay yourself open to an action for assault and illegal
-constraint."
-
-"The law cannot, as you say, touch you," said Holmes, unlocking
-and throwing open the door, "yet there never was a man who
-deserved punishment more. If the young lady has a brother or a
-friend, he ought to lay a whip across your shoulders. By Jove!"
-he continued, flushing up at the sight of the bitter sneer upon
-the man's face, "it is not part of my duties to my client, but
-here's a hunting crop handy, and I think I shall just treat
-myself to--" He took two swift steps to the whip, but before he
-could grasp it there was a wild clatter of steps upon the stairs,
-the heavy hall door banged, and from the window we could see Mr.
-James Windibank running at the top of his speed down the road.
-
-"There's a cold-blooded scoundrel!" said Holmes, laughing, as he
-threw himself down into his chair once more. "That fellow will
-rise from crime to crime until he does something very bad, and
-ends on a gallows. The case has, in some respects, been not
-entirely devoid of interest."
-
-"I cannot now entirely see all the steps of your reasoning," I
-remarked.
-
-"Well, of course it was obvious from the first that this Mr.
-Hosmer Angel must have some strong object for his curious
-conduct, and it was equally clear that the only man who really
-profited by the incident, as far as we could see, was the
-stepfather. Then the fact that the two men were never together,
-but that the one always appeared when the other was away, was
-suggestive. So were the tinted spectacles and the curious voice,
-which both hinted at a disguise, as did the bushy whiskers. My
-suspicions were all confirmed by his peculiar action in
-typewriting his signature, which, of course, inferred that his
-handwriting was so familiar to her that she would recognise even
-the smallest sample of it. You see all these isolated facts,
-together with many minor ones, all pointed in the same
-direction."
-
-"And how did you verify them?"
-
-"Having once spotted my man, it was easy to get corroboration. I
-knew the firm for which this man worked. Having taken the printed
-description. I eliminated everything from it which could be the
-result of a disguise--the whiskers, the glasses, the voice, and I
-sent it to the firm, with a request that they would inform me
-whether it answered to the description of any of their
-travellers. I had already noticed the peculiarities of the
-typewriter, and I wrote to the man himself at his business
-address asking him if he would come here. As I expected, his
-reply was typewritten and revealed the same trivial but
-characteristic defects. The same post brought me a letter from
-Westhouse & Marbank, of Fenchurch Street, to say that the
-description tallied in every respect with that of their employé,
-James Windibank. Voilà tout!"
-
-"And Miss Sutherland?"
-
-"If I tell her she will not believe me. You may remember the old
-Persian saying, 'There is danger for him who taketh the tiger
-cub, and danger also for whoso snatches a delusion from a woman.'
-There is as much sense in Hafiz as in Horace, and as much
-knowledge of the world."
-
-
-
-ADVENTURE IV. THE BOSCOMBE VALLEY MYSTERY
-
-We were seated at breakfast one morning, my wife and I, when the
-maid brought in a telegram. It was from Sherlock Holmes and ran
-in this way:
-
-"Have you a couple of days to spare? Have just been wired for from
-the west of England in connection with Boscombe Valley tragedy.
-Shall be glad if you will come with me. Air and scenery perfect.
-Leave Paddington by the 11:15."
-
-"What do you say, dear?" said my wife, looking across at me.
-"Will you go?"
-
-"I really don't know what to say. I have a fairly long list at
-present."
-
-"Oh, Anstruther would do your work for you. You have been looking
-a little pale lately. I think that the change would do you good,
-and you are always so interested in Mr. Sherlock Holmes' cases."
-
-"I should be ungrateful if I were not, seeing what I gained
-through one of them," I answered. "But if I am to go, I must pack
-at once, for I have only half an hour."
-
-My experience of camp life in Afghanistan had at least had the
-effect of making me a prompt and ready traveller. My wants were
-few and simple, so that in less than the time stated I was in a
-cab with my valise, rattling away to Paddington Station. Sherlock
-Holmes was pacing up and down the platform, his tall, gaunt
-figure made even gaunter and taller by his long grey
-travelling-cloak and close-fitting cloth cap.
-
-"It is really very good of you to come, Watson," said he. "It
-makes a considerable difference to me, having someone with me on
-whom I can thoroughly rely. Local aid is always either worthless
-or else biassed. If you will keep the two corner seats I shall
-get the tickets."
-
-We had the carriage to ourselves save for an immense litter of
-papers which Holmes had brought with him. Among these he rummaged
-and read, with intervals of note-taking and of meditation, until
-we were past Reading. Then he suddenly rolled them all into a
-gigantic ball and tossed them up onto the rack.
-
-"Have you heard anything of the case?" he asked.
-
-"Not a word. I have not seen a paper for some days."
-
-"The London press has not had very full accounts. I have just
-been looking through all the recent papers in order to master the
-particulars. It seems, from what I gather, to be one of those
-simple cases which are so extremely difficult."
-
-"That sounds a little paradoxical."
-
-"But it is profoundly true. Singularity is almost invariably a
-clue. The more featureless and commonplace a crime is, the more
-difficult it is to bring it home. In this case, however, they
-have established a very serious case against the son of the
-murdered man."
-
-"It is a murder, then?"
-
-"Well, it is conjectured to be so. I shall take nothing for
-granted until I have the opportunity of looking personally into
-it. I will explain the state of things to you, as far as I have
-been able to understand it, in a very few words.
-
-"Boscombe Valley is a country district not very far from Ross, in
-Herefordshire. The largest landed proprietor in that part is a
-Mr. John Turner, who made his money in Australia and returned
-some years ago to the old country. One of the farms which he
-held, that of Hatherley, was let to Mr. Charles McCarthy, who was
-also an ex-Australian. The men had known each other in the
-colonies, so that it was not unnatural that when they came to
-settle down they should do so as near each other as possible.
-Turner was apparently the richer man, so McCarthy became his
-tenant but still remained, it seems, upon terms of perfect
-equality, as they were frequently together. McCarthy had one son,
-a lad of eighteen, and Turner had an only daughter of the same
-age, but neither of them had wives living. They appear to have
-avoided the society of the neighbouring English families and to
-have led retired lives, though both the McCarthys were fond of
-sport and were frequently seen at the race-meetings of the
-neighbourhood. McCarthy kept two servants--a man and a girl.
-Turner had a considerable household, some half-dozen at the
-least. That is as much as I have been able to gather about the
-families. Now for the facts.
-
-"On June 3rd, that is, on Monday last, McCarthy left his house at
-Hatherley about three in the afternoon and walked down to the
-Boscombe Pool, which is a small lake formed by the spreading out
-of the stream which runs down the Boscombe Valley. He had been
-out with his serving-man in the morning at Ross, and he had told
-the man that he must hurry, as he had an appointment of
-importance to keep at three. From that appointment he never came
-back alive.
-
-"From Hatherley Farm-house to the Boscombe Pool is a quarter of a
-mile, and two people saw him as he passed over this ground. One
-was an old woman, whose name is not mentioned, and the other was
-William Crowder, a game-keeper in the employ of Mr. Turner. Both
-these witnesses depose that Mr. McCarthy was walking alone. The
-game-keeper adds that within a few minutes of his seeing Mr.
-McCarthy pass he had seen his son, Mr. James McCarthy, going the
-same way with a gun under his arm. To the best of his belief, the
-father was actually in sight at the time, and the son was
-following him. He thought no more of the matter until he heard in
-the evening of the tragedy that had occurred.
-
-"The two McCarthys were seen after the time when William Crowder,
-the game-keeper, lost sight of them. The Boscombe Pool is thickly
-wooded round, with just a fringe of grass and of reeds round the
-edge. A girl of fourteen, Patience Moran, who is the daughter of
-the lodge-keeper of the Boscombe Valley estate, was in one of the
-woods picking flowers. She states that while she was there she
-saw, at the border of the wood and close by the lake, Mr.
-McCarthy and his son, and that they appeared to be having a
-violent quarrel. She heard Mr. McCarthy the elder using very
-strong language to his son, and she saw the latter raise up his
-hand as if to strike his father. She was so frightened by their
-violence that she ran away and told her mother when she reached
-home that she had left the two McCarthys quarrelling near
-Boscombe Pool, and that she was afraid that they were going to
-fight. She had hardly said the words when young Mr. McCarthy came
-running up to the lodge to say that he had found his father dead
-in the wood, and to ask for the help of the lodge-keeper. He was
-much excited, without either his gun or his hat, and his right
-hand and sleeve were observed to be stained with fresh blood. On
-following him they found the dead body stretched out upon the
-grass beside the pool. The head had been beaten in by repeated
-blows of some heavy and blunt weapon. The injuries were such as
-might very well have been inflicted by the butt-end of his son's
-gun, which was found lying on the grass within a few paces of the
-body. Under these circumstances the young man was instantly
-arrested, and a verdict of 'wilful murder' having been returned
-at the inquest on Tuesday, he was on Wednesday brought before the
-magistrates at Ross, who have referred the case to the next
-Assizes. Those are the main facts of the case as they came out
-before the coroner and the police-court."
-
-"I could hardly imagine a more damning case," I remarked. "If
-ever circumstantial evidence pointed to a criminal it does so
-here."
-
-"Circumstantial evidence is a very tricky thing," answered Holmes
-thoughtfully. "It may seem to point very straight to one thing,
-but if you shift your own point of view a little, you may find it
-pointing in an equally uncompromising manner to something
-entirely different. It must be confessed, however, that the case
-looks exceedingly grave against the young man, and it is very
-possible that he is indeed the culprit. There are several people
-in the neighbourhood, however, and among them Miss Turner, the
-daughter of the neighbouring landowner, who believe in his
-innocence, and who have retained Lestrade, whom you may recollect
-in connection with the Study in Scarlet, to work out the case in
-his interest. Lestrade, being rather puzzled, has referred the
-case to me, and hence it is that two middle-aged gentlemen are
-flying westward at fifty miles an hour instead of quietly
-digesting their breakfasts at home."
-
-"I am afraid," said I, "that the facts are so obvious that you
-will find little credit to be gained out of this case."
-
-"There is nothing more deceptive than an obvious fact," he
-answered, laughing. "Besides, we may chance to hit upon some
-other obvious facts which may have been by no means obvious to
-Mr. Lestrade. You know me too well to think that I am boasting
-when I say that I shall either confirm or destroy his theory by
-means which he is quite incapable of employing, or even of
-understanding. To take the first example to hand, I very clearly
-perceive that in your bedroom the window is upon the right-hand
-side, and yet I question whether Mr. Lestrade would have noted
-even so self-evident a thing as that."
-
-"How on earth--"
-
-"My dear fellow, I know you well. I know the military neatness
-which characterises you. You shave every morning, and in this
-season you shave by the sunlight; but since your shaving is less
-and less complete as we get farther back on the left side, until
-it becomes positively slovenly as we get round the angle of the
-jaw, it is surely very clear that that side is less illuminated
-than the other. I could not imagine a man of your habits looking
-at himself in an equal light and being satisfied with such a
-result. I only quote this as a trivial example of observation and
-inference. Therein lies my métier, and it is just possible that
-it may be of some service in the investigation which lies before
-us. There are one or two minor points which were brought out in
-the inquest, and which are worth considering."
-
-"What are they?"
-
-"It appears that his arrest did not take place at once, but after
-the return to Hatherley Farm. On the inspector of constabulary
-informing him that he was a prisoner, he remarked that he was not
-surprised to hear it, and that it was no more than his deserts.
-This observation of his had the natural effect of removing any
-traces of doubt which might have remained in the minds of the
-coroner's jury."
-
-"It was a confession," I ejaculated.
-
-"No, for it was followed by a protestation of innocence."
-
-"Coming on the top of such a damning series of events, it was at
-least a most suspicious remark."
-
-"On the contrary," said Holmes, "it is the brightest rift which I
-can at present see in the clouds. However innocent he might be,
-he could not be such an absolute imbecile as not to see that the
-circumstances were very black against him. Had he appeared
-surprised at his own arrest, or feigned indignation at it, I
-should have looked upon it as highly suspicious, because such
-surprise or anger would not be natural under the circumstances,
-and yet might appear to be the best policy to a scheming man. His
-frank acceptance of the situation marks him as either an innocent
-man, or else as a man of considerable self-restraint and
-firmness. As to his remark about his deserts, it was also not
-unnatural if you consider that he stood beside the dead body of
-his father, and that there is no doubt that he had that very day
-so far forgotten his filial duty as to bandy words with him, and
-even, according to the little girl whose evidence is so
-important, to raise his hand as if to strike him. The
-self-reproach and contrition which are displayed in his remark
-appear to me to be the signs of a healthy mind rather than of a
-guilty one."
-
-I shook my head. "Many men have been hanged on far slighter
-evidence," I remarked.
-
-"So they have. And many men have been wrongfully hanged."
-
-"What is the young man's own account of the matter?"
-
-"It is, I am afraid, not very encouraging to his supporters,
-though there are one or two points in it which are suggestive.
-You will find it here, and may read it for yourself."
-
-He picked out from his bundle a copy of the local Herefordshire
-paper, and having turned down the sheet he pointed out the
-paragraph in which the unfortunate young man had given his own
-statement of what had occurred. I settled myself down in the
-corner of the carriage and read it very carefully. It ran in this
-way:
-
-"Mr. James McCarthy, the only son of the deceased, was then called
-and gave evidence as follows: 'I had been away from home for
-three days at Bristol, and had only just returned upon the
-morning of last Monday, the 3rd. My father was absent from home at
-the time of my arrival, and I was informed by the maid that he
-had driven over to Ross with John Cobb, the groom. Shortly after
-my return I heard the wheels of his trap in the yard, and,
-looking out of my window, I saw him get out and walk rapidly out
-of the yard, though I was not aware in which direction he was
-going. I then took my gun and strolled out in the direction of
-the Boscombe Pool, with the intention of visiting the rabbit
-warren which is upon the other side. On my way I saw William
-Crowder, the game-keeper, as he had stated in his evidence; but
-he is mistaken in thinking that I was following my father. I had
-no idea that he was in front of me. When about a hundred yards
-from the pool I heard a cry of "Cooee!" which was a usual signal
-between my father and myself. I then hurried forward, and found
-him standing by the pool. He appeared to be much surprised at
-seeing me and asked me rather roughly what I was doing there. A
-conversation ensued which led to high words and almost to blows,
-for my father was a man of a very violent temper. Seeing that his
-passion was becoming ungovernable, I left him and returned
-towards Hatherley Farm. I had not gone more than 150 yards,
-however, when I heard a hideous outcry behind me, which caused me
-to run back again. I found my father expiring upon the ground,
-with his head terribly injured. I dropped my gun and held him in
-my arms, but he almost instantly expired. I knelt beside him for
-some minutes, and then made my way to Mr. Turner's lodge-keeper,
-his house being the nearest, to ask for assistance. I saw no one
-near my father when I returned, and I have no idea how he came by
-his injuries. He was not a popular man, being somewhat cold and
-forbidding in his manners, but he had, as far as I know, no
-active enemies. I know nothing further of the matter.'
-
-"The Coroner: Did your father make any statement to you before
-he died?
-
-"Witness: He mumbled a few words, but I could only catch some
-allusion to a rat.
-
-"The Coroner: What did you understand by that?
-
-"Witness: It conveyed no meaning to me. I thought that he was
-delirious.
-
-"The Coroner: What was the point upon which you and your father
-had this final quarrel?
-
-"Witness: I should prefer not to answer.
-
-"The Coroner: I am afraid that I must press it.
-
-"Witness: It is really impossible for me to tell you. I can
-assure you that it has nothing to do with the sad tragedy which
-followed.
-
-"The Coroner: That is for the court to decide. I need not point
-out to you that your refusal to answer will prejudice your case
-considerably in any future proceedings which may arise.
-
-"Witness: I must still refuse.
-
-"The Coroner: I understand that the cry of 'Cooee' was a common
-signal between you and your father?
-
-"Witness: It was.
-
-"The Coroner: How was it, then, that he uttered it before he saw
-you, and before he even knew that you had returned from Bristol?
-
-"Witness (with considerable confusion): I do not know.
-
-"A Juryman: Did you see nothing which aroused your suspicions
-when you returned on hearing the cry and found your father
-fatally injured?
-
-"Witness: Nothing definite.
-
-"The Coroner: What do you mean?
-
-"Witness: I was so disturbed and excited as I rushed out into
-the open, that I could think of nothing except of my father. Yet
-I have a vague impression that as I ran forward something lay
-upon the ground to the left of me. It seemed to me to be
-something grey in colour, a coat of some sort, or a plaid perhaps.
-When I rose from my father I looked round for it, but it was
-gone.
-
-"'Do you mean that it disappeared before you went for help?'
-
-"'Yes, it was gone.'
-
-"'You cannot say what it was?'
-
-"'No, I had a feeling something was there.'
-
-"'How far from the body?'
-
-"'A dozen yards or so.'
-
-"'And how far from the edge of the wood?'
-
-"'About the same.'
-
-"'Then if it was removed it was while you were within a dozen
-yards of it?'
-
-"'Yes, but with my back towards it.'
-
-"This concluded the examination of the witness."
-
-"I see," said I as I glanced down the column, "that the coroner
-in his concluding remarks was rather severe upon young McCarthy.
-He calls attention, and with reason, to the discrepancy about his
-father having signalled to him before seeing him, also to his
-refusal to give details of his conversation with his father, and
-his singular account of his father's dying words. They are all,
-as he remarks, very much against the son."
-
-Holmes laughed softly to himself and stretched himself out upon
-the cushioned seat. "Both you and the coroner have been at some
-pains," said he, "to single out the very strongest points in the
-young man's favour. Don't you see that you alternately give him
-credit for having too much imagination and too little? Too
-little, if he could not invent a cause of quarrel which would
-give him the sympathy of the jury; too much, if he evolved from
-his own inner consciousness anything so outré as a dying
-reference to a rat, and the incident of the vanishing cloth. No,
-sir, I shall approach this case from the point of view that what
-this young man says is true, and we shall see whither that
-hypothesis will lead us. And now here is my pocket Petrarch, and
-not another word shall I say of this case until we are on the
-scene of action. We lunch at Swindon, and I see that we shall be
-there in twenty minutes."
-
-It was nearly four o'clock when we at last, after passing through
-the beautiful Stroud Valley, and over the broad gleaming Severn,
-found ourselves at the pretty little country-town of Ross. A
-lean, ferret-like man, furtive and sly-looking, was waiting for
-us upon the platform. In spite of the light brown dustcoat and
-leather-leggings which he wore in deference to his rustic
-surroundings, I had no difficulty in recognising Lestrade, of
-Scotland Yard. With him we drove to the Hereford Arms where a
-room had already been engaged for us.
-
-"I have ordered a carriage," said Lestrade as we sat over a cup
-of tea. "I knew your energetic nature, and that you would not be
-happy until you had been on the scene of the crime."
-
-"It was very nice and complimentary of you," Holmes answered. "It
-is entirely a question of barometric pressure."
-
-Lestrade looked startled. "I do not quite follow," he said.
-
-"How is the glass? Twenty-nine, I see. No wind, and not a cloud
-in the sky. I have a caseful of cigarettes here which need
-smoking, and the sofa is very much superior to the usual country
-hotel abomination. I do not think that it is probable that I
-shall use the carriage to-night."
-
-Lestrade laughed indulgently. "You have, no doubt, already formed
-your conclusions from the newspapers," he said. "The case is as
-plain as a pikestaff, and the more one goes into it the plainer
-it becomes. Still, of course, one can't refuse a lady, and such a
-very positive one, too. She has heard of you, and would have your
-opinion, though I repeatedly told her that there was nothing
-which you could do which I had not already done. Why, bless my
-soul! here is her carriage at the door."
-
-He had hardly spoken before there rushed into the room one of the
-most lovely young women that I have ever seen in my life. Her
-violet eyes shining, her lips parted, a pink flush upon her
-cheeks, all thought of her natural reserve lost in her
-overpowering excitement and concern.
-
-"Oh, Mr. Sherlock Holmes!" she cried, glancing from one to the
-other of us, and finally, with a woman's quick intuition,
-fastening upon my companion, "I am so glad that you have come. I
-have driven down to tell you so. I know that James didn't do it.
-I know it, and I want you to start upon your work knowing it,
-too. Never let yourself doubt upon that point. We have known each
-other since we were little children, and I know his faults as no
-one else does; but he is too tender-hearted to hurt a fly. Such a
-charge is absurd to anyone who really knows him."
-
-"I hope we may clear him, Miss Turner," said Sherlock Holmes.
-"You may rely upon my doing all that I can."
-
-"But you have read the evidence. You have formed some conclusion?
-Do you not see some loophole, some flaw? Do you not yourself
-think that he is innocent?"
-
-"I think that it is very probable."
-
-"There, now!" she cried, throwing back her head and looking
-defiantly at Lestrade. "You hear! He gives me hopes."
-
-Lestrade shrugged his shoulders. "I am afraid that my colleague
-has been a little quick in forming his conclusions," he said.
-
-"But he is right. Oh! I know that he is right. James never did
-it. And about his quarrel with his father, I am sure that the
-reason why he would not speak about it to the coroner was because
-I was concerned in it."
-
-"In what way?" asked Holmes.
-
-"It is no time for me to hide anything. James and his father had
-many disagreements about me. Mr. McCarthy was very anxious that
-there should be a marriage between us. James and I have always
-loved each other as brother and sister; but of course he is young
-and has seen very little of life yet, and--and--well, he
-naturally did not wish to do anything like that yet. So there
-were quarrels, and this, I am sure, was one of them."
-
-"And your father?" asked Holmes. "Was he in favour of such a
-union?"
-
-"No, he was averse to it also. No one but Mr. McCarthy was in
-favour of it." A quick blush passed over her fresh young face as
-Holmes shot one of his keen, questioning glances at her.
-
-"Thank you for this information," said he. "May I see your father
-if I call to-morrow?"
-
-"I am afraid the doctor won't allow it."
-
-"The doctor?"
-
-"Yes, have you not heard? Poor father has never been strong for
-years back, but this has broken him down completely. He has taken
-to his bed, and Dr. Willows says that he is a wreck and that his
-nervous system is shattered. Mr. McCarthy was the only man alive
-who had known dad in the old days in Victoria."
-
-"Ha! In Victoria! That is important."
-
-"Yes, at the mines."
-
-"Quite so; at the gold-mines, where, as I understand, Mr. Turner
-made his money."
-
-"Yes, certainly."
-
-"Thank you, Miss Turner. You have been of material assistance to
-me."
-
-"You will tell me if you have any news to-morrow. No doubt you
-will go to the prison to see James. Oh, if you do, Mr. Holmes, do
-tell him that I know him to be innocent."
-
-"I will, Miss Turner."
-
-"I must go home now, for dad is very ill, and he misses me so if
-I leave him. Good-bye, and God help you in your undertaking." She
-hurried from the room as impulsively as she had entered, and we
-heard the wheels of her carriage rattle off down the street.
-
-"I am ashamed of you, Holmes," said Lestrade with dignity after a
-few minutes' silence. "Why should you raise up hopes which you
-are bound to disappoint? I am not over-tender of heart, but I
-call it cruel."
-
-"I think that I see my way to clearing James McCarthy," said
-Holmes. "Have you an order to see him in prison?"
-
-"Yes, but only for you and me."
-
-"Then I shall reconsider my resolution about going out. We have
-still time to take a train to Hereford and see him to-night?"
-
-"Ample."
-
-"Then let us do so. Watson, I fear that you will find it very
-slow, but I shall only be away a couple of hours."
-
-I walked down to the station with them, and then wandered through
-the streets of the little town, finally returning to the hotel,
-where I lay upon the sofa and tried to interest myself in a
-yellow-backed novel. The puny plot of the story was so thin,
-however, when compared to the deep mystery through which we were
-groping, and I found my attention wander so continually from the
-action to the fact, that I at last flung it across the room and
-gave myself up entirely to a consideration of the events of the
-day. Supposing that this unhappy young man's story were
-absolutely true, then what hellish thing, what absolutely
-unforeseen and extraordinary calamity could have occurred between
-the time when he parted from his father, and the moment when,
-drawn back by his screams, he rushed into the glade? It was
-something terrible and deadly. What could it be? Might not the
-nature of the injuries reveal something to my medical instincts?
-I rang the bell and called for the weekly county paper, which
-contained a verbatim account of the inquest. In the surgeon's
-deposition it was stated that the posterior third of the left
-parietal bone and the left half of the occipital bone had been
-shattered by a heavy blow from a blunt weapon. I marked the spot
-upon my own head. Clearly such a blow must have been struck from
-behind. That was to some extent in favour of the accused, as when
-seen quarrelling he was face to face with his father. Still, it
-did not go for very much, for the older man might have turned his
-back before the blow fell. Still, it might be worth while to call
-Holmes' attention to it. Then there was the peculiar dying
-reference to a rat. What could that mean? It could not be
-delirium. A man dying from a sudden blow does not commonly become
-delirious. No, it was more likely to be an attempt to explain how
-he met his fate. But what could it indicate? I cudgelled my
-brains to find some possible explanation. And then the incident
-of the grey cloth seen by young McCarthy. If that were true the
-murderer must have dropped some part of his dress, presumably his
-overcoat, in his flight, and must have had the hardihood to
-return and to carry it away at the instant when the son was
-kneeling with his back turned not a dozen paces off. What a
-tissue of mysteries and improbabilities the whole thing was! I
-did not wonder at Lestrade's opinion, and yet I had so much faith
-in Sherlock Holmes' insight that I could not lose hope as long
-as every fresh fact seemed to strengthen his conviction of young
-McCarthy's innocence.
-
-It was late before Sherlock Holmes returned. He came back alone,
-for Lestrade was staying in lodgings in the town.
-
-"The glass still keeps very high," he remarked as he sat down.
-"It is of importance that it should not rain before we are able
-to go over the ground. On the other hand, a man should be at his
-very best and keenest for such nice work as that, and I did not
-wish to do it when fagged by a long journey. I have seen young
-McCarthy."
-
-"And what did you learn from him?"
-
-"Nothing."
-
-"Could he throw no light?"
-
-"None at all. I was inclined to think at one time that he knew
-who had done it and was screening him or her, but I am convinced
-now that he is as puzzled as everyone else. He is not a very
-quick-witted youth, though comely to look at and, I should think,
-sound at heart."
-
-"I cannot admire his taste," I remarked, "if it is indeed a fact
-that he was averse to a marriage with so charming a young lady as
-this Miss Turner."
-
-"Ah, thereby hangs a rather painful tale. This fellow is madly,
-insanely, in love with her, but some two years ago, when he was
-only a lad, and before he really knew her, for she had been away
-five years at a boarding-school, what does the idiot do but get
-into the clutches of a barmaid in Bristol and marry her at a
-registry office? No one knows a word of the matter, but you can
-imagine how maddening it must be to him to be upbraided for not
-doing what he would give his very eyes to do, but what he knows
-to be absolutely impossible. It was sheer frenzy of this sort
-which made him throw his hands up into the air when his father,
-at their last interview, was goading him on to propose to Miss
-Turner. On the other hand, he had no means of supporting himself,
-and his father, who was by all accounts a very hard man, would
-have thrown him over utterly had he known the truth. It was with
-his barmaid wife that he had spent the last three days in
-Bristol, and his father did not know where he was. Mark that
-point. It is of importance. Good has come out of evil, however,
-for the barmaid, finding from the papers that he is in serious
-trouble and likely to be hanged, has thrown him over utterly and
-has written to him to say that she has a husband already in the
-Bermuda Dockyard, so that there is really no tie between them. I
-think that that bit of news has consoled young McCarthy for all
-that he has suffered."
-
-"But if he is innocent, who has done it?"
-
-"Ah! who? I would call your attention very particularly to two
-points. One is that the murdered man had an appointment with
-someone at the pool, and that the someone could not have been his
-son, for his son was away, and he did not know when he would
-return. The second is that the murdered man was heard to cry
-'Cooee!' before he knew that his son had returned. Those are the
-crucial points upon which the case depends. And now let us talk
-about George Meredith, if you please, and we shall leave all
-minor matters until to-morrow."
-
-There was no rain, as Holmes had foretold, and the morning broke
-bright and cloudless. At nine o'clock Lestrade called for us with
-the carriage, and we set off for Hatherley Farm and the Boscombe
-Pool.
-
-"There is serious news this morning," Lestrade observed. "It is
-said that Mr. Turner, of the Hall, is so ill that his life is
-despaired of."
-
-"An elderly man, I presume?" said Holmes.
-
-"About sixty; but his constitution has been shattered by his life
-abroad, and he has been in failing health for some time. This
-business has had a very bad effect upon him. He was an old friend
-of McCarthy's, and, I may add, a great benefactor to him, for I
-have learned that he gave him Hatherley Farm rent free."
-
-"Indeed! That is interesting," said Holmes.
-
-"Oh, yes! In a hundred other ways he has helped him. Everybody
-about here speaks of his kindness to him."
-
-"Really! Does it not strike you as a little singular that this
-McCarthy, who appears to have had little of his own, and to have
-been under such obligations to Turner, should still talk of
-marrying his son to Turner's daughter, who is, presumably,
-heiress to the estate, and that in such a very cocksure manner,
-as if it were merely a case of a proposal and all else would
-follow? It is the more strange, since we know that Turner himself
-was averse to the idea. The daughter told us as much. Do you not
-deduce something from that?"
-
-"We have got to the deductions and the inferences," said
-Lestrade, winking at me. "I find it hard enough to tackle facts,
-Holmes, without flying away after theories and fancies."
-
-"You are right," said Holmes demurely; "you do find it very hard
-to tackle the facts."
-
-"Anyhow, I have grasped one fact which you seem to find it
-difficult to get hold of," replied Lestrade with some warmth.
-
-"And that is--"
-
-"That McCarthy senior met his death from McCarthy junior and that
-all theories to the contrary are the merest moonshine."
-
-"Well, moonshine is a brighter thing than fog," said Holmes,
-laughing. "But I am very much mistaken if this is not Hatherley
-Farm upon the left."
-
-"Yes, that is it." It was a widespread, comfortable-looking
-building, two-storied, slate-roofed, with great yellow blotches
-of lichen upon the grey walls. The drawn blinds and the smokeless
-chimneys, however, gave it a stricken look, as though the weight
-of this horror still lay heavy upon it. We called at the door,
-when the maid, at Holmes' request, showed us the boots which her
-master wore at the time of his death, and also a pair of the
-son's, though not the pair which he had then had. Having measured
-these very carefully from seven or eight different points, Holmes
-desired to be led to the court-yard, from which we all followed
-the winding track which led to Boscombe Pool.
-
-Sherlock Holmes was transformed when he was hot upon such a scent
-as this. Men who had only known the quiet thinker and logician of
-Baker Street would have failed to recognise him. His face flushed
-and darkened. His brows were drawn into two hard black lines,
-while his eyes shone out from beneath them with a steely glitter.
-His face was bent downward, his shoulders bowed, his lips
-compressed, and the veins stood out like whipcord in his long,
-sinewy neck. His nostrils seemed to dilate with a purely animal
-lust for the chase, and his mind was so absolutely concentrated
-upon the matter before him that a question or remark fell
-unheeded upon his ears, or, at the most, only provoked a quick,
-impatient snarl in reply. Swiftly and silently he made his way
-along the track which ran through the meadows, and so by way of
-the woods to the Boscombe Pool. It was damp, marshy ground, as is
-all that district, and there were marks of many feet, both upon
-the path and amid the short grass which bounded it on either
-side. Sometimes Holmes would hurry on, sometimes stop dead, and
-once he made quite a little detour into the meadow. Lestrade and
-I walked behind him, the detective indifferent and contemptuous,
-while I watched my friend with the interest which sprang from the
-conviction that every one of his actions was directed towards a
-definite end.
-
-The Boscombe Pool, which is a little reed-girt sheet of water
-some fifty yards across, is situated at the boundary between the
-Hatherley Farm and the private park of the wealthy Mr. Turner.
-Above the woods which lined it upon the farther side we could see
-the red, jutting pinnacles which marked the site of the rich
-landowner's dwelling. On the Hatherley side of the pool the woods
-grew very thick, and there was a narrow belt of sodden grass
-twenty paces across between the edge of the trees and the reeds
-which lined the lake. Lestrade showed us the exact spot at which
-the body had been found, and, indeed, so moist was the ground,
-that I could plainly see the traces which had been left by the
-fall of the stricken man. To Holmes, as I could see by his eager
-face and peering eyes, very many other things were to be read
-upon the trampled grass. He ran round, like a dog who is picking
-up a scent, and then turned upon my companion.
-
-"What did you go into the pool for?" he asked.
-
-"I fished about with a rake. I thought there might be some weapon
-or other trace. But how on earth--"
-
-"Oh, tut, tut! I have no time! That left foot of yours with its
-inward twist is all over the place. A mole could trace it, and
-there it vanishes among the reeds. Oh, how simple it would all
-have been had I been here before they came like a herd of buffalo
-and wallowed all over it. Here is where the party with the
-lodge-keeper came, and they have covered all tracks for six or
-eight feet round the body. But here are three separate tracks of
-the same feet." He drew out a lens and lay down upon his
-waterproof to have a better view, talking all the time rather to
-himself than to us. "These are young McCarthy's feet. Twice he
-was walking, and once he ran swiftly, so that the soles are
-deeply marked and the heels hardly visible. That bears out his
-story. He ran when he saw his father on the ground. Then here are
-the father's feet as he paced up and down. What is this, then? It
-is the butt-end of the gun as the son stood listening. And this?
-Ha, ha! What have we here? Tiptoes! tiptoes! Square, too, quite
-unusual boots! They come, they go, they come again--of course
-that was for the cloak. Now where did they come from?" He ran up
-and down, sometimes losing, sometimes finding the track until we
-were well within the edge of the wood and under the shadow of a
-great beech, the largest tree in the neighbourhood. Holmes traced
-his way to the farther side of this and lay down once more upon
-his face with a little cry of satisfaction. For a long time he
-remained there, turning over the leaves and dried sticks,
-gathering up what seemed to me to be dust into an envelope and
-examining with his lens not only the ground but even the bark of
-the tree as far as he could reach. A jagged stone was lying among
-the moss, and this also he carefully examined and retained. Then
-he followed a pathway through the wood until he came to the
-highroad, where all traces were lost.
-
-"It has been a case of considerable interest," he remarked,
-returning to his natural manner. "I fancy that this grey house on
-the right must be the lodge. I think that I will go in and have a
-word with Moran, and perhaps write a little note. Having done
-that, we may drive back to our luncheon. You may walk to the cab,
-and I shall be with you presently."
-
-It was about ten minutes before we regained our cab and drove
-back into Ross, Holmes still carrying with him the stone which he
-had picked up in the wood.
-
-"This may interest you, Lestrade," he remarked, holding it out.
-"The murder was done with it."
-
-"I see no marks."
-
-"There are none."
-
-"How do you know, then?"
-
-"The grass was growing under it. It had only lain there a few
-days. There was no sign of a place whence it had been taken. It
-corresponds with the injuries. There is no sign of any other
-weapon."
-
-"And the murderer?"
-
-"Is a tall man, left-handed, limps with the right leg, wears
-thick-soled shooting-boots and a grey cloak, smokes Indian
-cigars, uses a cigar-holder, and carries a blunt pen-knife in his
-pocket. There are several other indications, but these may be
-enough to aid us in our search."
-
-Lestrade laughed. "I am afraid that I am still a sceptic," he
-said. "Theories are all very well, but we have to deal with a
-hard-headed British jury."
-
-"Nous verrons," answered Holmes calmly. "You work your own
-method, and I shall work mine. I shall be busy this afternoon,
-and shall probably return to London by the evening train."
-
-"And leave your case unfinished?"
-
-"No, finished."
-
-"But the mystery?"
-
-"It is solved."
-
-"Who was the criminal, then?"
-
-"The gentleman I describe."
-
-"But who is he?"
-
-"Surely it would not be difficult to find out. This is not such a
-populous neighbourhood."
-
-Lestrade shrugged his shoulders. "I am a practical man," he said,
-"and I really cannot undertake to go about the country looking
-for a left-handed gentleman with a game leg. I should become the
-laughing-stock of Scotland Yard."
-
-"All right," said Holmes quietly. "I have given you the chance.
-Here are your lodgings. Good-bye. I shall drop you a line before
-I leave."
-
-Having left Lestrade at his rooms, we drove to our hotel, where
-we found lunch upon the table. Holmes was silent and buried in
-thought with a pained expression upon his face, as one who finds
-himself in a perplexing position.
-
-"Look here, Watson," he said when the cloth was cleared "just sit
-down in this chair and let me preach to you for a little. I don't
-know quite what to do, and I should value your advice. Light a
-cigar and let me expound."
-
- "Pray do so."
-
-"Well, now, in considering this case there are two points about
-young McCarthy's narrative which struck us both instantly,
-although they impressed me in his favour and you against him. One
-was the fact that his father should, according to his account,
-cry 'Cooee!' before seeing him. The other was his singular dying
-reference to a rat. He mumbled several words, you understand, but
-that was all that caught the son's ear. Now from this double
-point our research must commence, and we will begin it by
-presuming that what the lad says is absolutely true."
-
-"What of this 'Cooee!' then?"
-
-"Well, obviously it could not have been meant for the son. The
-son, as far as he knew, was in Bristol. It was mere chance that
-he was within earshot. The 'Cooee!' was meant to attract the
-attention of whoever it was that he had the appointment with. But
-'Cooee' is a distinctly Australian cry, and one which is used
-between Australians. There is a strong presumption that the
-person whom McCarthy expected to meet him at Boscombe Pool was
-someone who had been in Australia."
-
-"What of the rat, then?"
-
-Sherlock Holmes took a folded paper from his pocket and flattened
-it out on the table. "This is a map of the Colony of Victoria,"
-he said. "I wired to Bristol for it last night." He put his hand
-over part of the map. "What do you read?"
-
-"ARAT," I read.
-
-"And now?" He raised his hand.
-
-"BALLARAT."
-
-"Quite so. That was the word the man uttered, and of which his
-son only caught the last two syllables. He was trying to utter
-the name of his murderer. So and so, of Ballarat."
-
-"It is wonderful!" I exclaimed.
-
-"It is obvious. And now, you see, I had narrowed the field down
-considerably. The possession of a grey garment was a third point
-which, granting the son's statement to be correct, was a
-certainty. We have come now out of mere vagueness to the definite
-conception of an Australian from Ballarat with a grey cloak."
-
-"Certainly."
-
-"And one who was at home in the district, for the pool can only
-be approached by the farm or by the estate, where strangers could
-hardly wander."
-
-"Quite so."
-
-"Then comes our expedition of to-day. By an examination of the
-ground I gained the trifling details which I gave to that
-imbecile Lestrade, as to the personality of the criminal."
-
-"But how did you gain them?"
-
-"You know my method. It is founded upon the observation of
-trifles."
-
-"His height I know that you might roughly judge from the length
-of his stride. His boots, too, might be told from their traces."
-
-"Yes, they were peculiar boots."
-
-"But his lameness?"
-
-"The impression of his right foot was always less distinct than
-his left. He put less weight upon it. Why? Because he limped--he
-was lame."
-
-"But his left-handedness."
-
-"You were yourself struck by the nature of the injury as recorded
-by the surgeon at the inquest. The blow was struck from
-immediately behind, and yet was upon the left side. Now, how can
-that be unless it were by a left-handed man? He had stood behind
-that tree during the interview between the father and son. He had
-even smoked there. I found the ash of a cigar, which my special
-knowledge of tobacco ashes enables me to pronounce as an Indian
-cigar. I have, as you know, devoted some attention to this, and
-written a little monograph on the ashes of 140 different
-varieties of pipe, cigar, and cigarette tobacco. Having found the
-ash, I then looked round and discovered the stump among the moss
-where he had tossed it. It was an Indian cigar, of the variety
-which are rolled in Rotterdam."
-
-"And the cigar-holder?"
-
-"I could see that the end had not been in his mouth. Therefore he
-used a holder. The tip had been cut off, not bitten off, but the
-cut was not a clean one, so I deduced a blunt pen-knife."
-
-"Holmes," I said, "you have drawn a net round this man from which
-he cannot escape, and you have saved an innocent human life as
-truly as if you had cut the cord which was hanging him. I see the
-direction in which all this points. The culprit is--"
-
-"Mr. John Turner," cried the hotel waiter, opening the door of
-our sitting-room, and ushering in a visitor.
-
-The man who entered was a strange and impressive figure. His
-slow, limping step and bowed shoulders gave the appearance of
-decrepitude, and yet his hard, deep-lined, craggy features, and
-his enormous limbs showed that he was possessed of unusual
-strength of body and of character. His tangled beard, grizzled
-hair, and outstanding, drooping eyebrows combined to give an air
-of dignity and power to his appearance, but his face was of an
-ashen white, while his lips and the corners of his nostrils were
-tinged with a shade of blue. It was clear to me at a glance that
-he was in the grip of some deadly and chronic disease.
-
-"Pray sit down on the sofa," said Holmes gently. "You had my
-note?"
-
-"Yes, the lodge-keeper brought it up. You said that you wished to
-see me here to avoid scandal."
-
-"I thought people would talk if I went to the Hall."
-
-"And why did you wish to see me?" He looked across at my
-companion with despair in his weary eyes, as though his question
-was already answered.
-
-"Yes," said Holmes, answering the look rather than the words. "It
-is so. I know all about McCarthy."
-
-The old man sank his face in his hands. "God help me!" he cried.
-"But I would not have let the young man come to harm. I give you
-my word that I would have spoken out if it went against him at
-the Assizes."
-
-"I am glad to hear you say so," said Holmes gravely.
-
-"I would have spoken now had it not been for my dear girl. It
-would break her heart--it will break her heart when she hears
-that I am arrested."
-
-"It may not come to that," said Holmes.
-
-"What?"
-
-"I am no official agent. I understand that it was your daughter
-who required my presence here, and I am acting in her interests.
-Young McCarthy must be got off, however."
-
-"I am a dying man," said old Turner. "I have had diabetes for
-years. My doctor says it is a question whether I shall live a
-month. Yet I would rather die under my own roof than in a gaol."
-
-Holmes rose and sat down at the table with his pen in his hand
-and a bundle of paper before him. "Just tell us the truth," he
-said. "I shall jot down the facts. You will sign it, and Watson
-here can witness it. Then I could produce your confession at the
-last extremity to save young McCarthy. I promise you that I shall
-not use it unless it is absolutely needed."
-
-"It's as well," said the old man; "it's a question whether I
-shall live to the Assizes, so it matters little to me, but I
-should wish to spare Alice the shock. And now I will make the
-thing clear to you; it has been a long time in the acting, but
-will not take me long to tell.
-
-"You didn't know this dead man, McCarthy. He was a devil
-incarnate. I tell you that. God keep you out of the clutches of
-such a man as he. His grip has been upon me these twenty years,
-and he has blasted my life. I'll tell you first how I came to be
-in his power.
-
-"It was in the early '60's at the diggings. I was a young chap
-then, hot-blooded and reckless, ready to turn my hand at
-anything; I got among bad companions, took to drink, had no luck
-with my claim, took to the bush, and in a word became what you
-would call over here a highway robber. There were six of us, and
-we had a wild, free life of it, sticking up a station from time
-to time, or stopping the wagons on the road to the diggings.
-Black Jack of Ballarat was the name I went under, and our party
-is still remembered in the colony as the Ballarat Gang.
-
-"One day a gold convoy came down from Ballarat to Melbourne, and
-we lay in wait for it and attacked it. There were six troopers
-and six of us, so it was a close thing, but we emptied four of
-their saddles at the first volley. Three of our boys were killed,
-however, before we got the swag. I put my pistol to the head of
-the wagon-driver, who was this very man McCarthy. I wish to the
-Lord that I had shot him then, but I spared him, though I saw his
-wicked little eyes fixed on my face, as though to remember every
-feature. We got away with the gold, became wealthy men, and made
-our way over to England without being suspected. There I parted
-from my old pals and determined to settle down to a quiet and
-respectable life. I bought this estate, which chanced to be in
-the market, and I set myself to do a little good with my money,
-to make up for the way in which I had earned it. I married, too,
-and though my wife died young she left me my dear little Alice.
-Even when she was just a baby her wee hand seemed to lead me down
-the right path as nothing else had ever done. In a word, I turned
-over a new leaf and did my best to make up for the past. All was
-going well when McCarthy laid his grip upon me.
-
-"I had gone up to town about an investment, and I met him in
-Regent Street with hardly a coat to his back or a boot to his
-foot.
-
-"'Here we are, Jack,' says he, touching me on the arm; 'we'll be
-as good as a family to you. There's two of us, me and my son, and
-you can have the keeping of us. If you don't--it's a fine,
-law-abiding country is England, and there's always a policeman
-within hail.'
-
-"Well, down they came to the west country, there was no shaking
-them off, and there they have lived rent free on my best land
-ever since. There was no rest for me, no peace, no forgetfulness;
-turn where I would, there was his cunning, grinning face at my
-elbow. It grew worse as Alice grew up, for he soon saw I was more
-afraid of her knowing my past than of the police. Whatever he
-wanted he must have, and whatever it was I gave him without
-question, land, money, houses, until at last he asked a thing
-which I could not give. He asked for Alice.
-
-"His son, you see, had grown up, and so had my girl, and as I was
-known to be in weak health, it seemed a fine stroke to him that
-his lad should step into the whole property. But there I was
-firm. I would not have his cursed stock mixed with mine; not that
-I had any dislike to the lad, but his blood was in him, and that
-was enough. I stood firm. McCarthy threatened. I braved him to do
-his worst. We were to meet at the pool midway between our houses
-to talk it over.
-
-"When I went down there I found him talking with his son, so I
-smoked a cigar and waited behind a tree until he should be alone.
-But as I listened to his talk all that was black and bitter in
-me seemed to come uppermost. He was urging his son to marry my
-daughter with as little regard for what she might think as if she
-were a slut from off the streets. It drove me mad to think that I
-and all that I held most dear should be in the power of such a
-man as this. Could I not snap the bond? I was already a dying and
-a desperate man. Though clear of mind and fairly strong of limb,
-I knew that my own fate was sealed. But my memory and my girl!
-Both could be saved if I could but silence that foul tongue. I
-did it, Mr. Holmes. I would do it again. Deeply as I have sinned,
-I have led a life of martyrdom to atone for it. But that my girl
-should be entangled in the same meshes which held me was more
-than I could suffer. I struck him down with no more compunction
-than if he had been some foul and venomous beast. His cry brought
-back his son; but I had gained the cover of the wood, though I
-was forced to go back to fetch the cloak which I had dropped in
-my flight. That is the true story, gentlemen, of all that
-occurred."
-
-"Well, it is not for me to judge you," said Holmes as the old man
-signed the statement which had been drawn out. "I pray that we
-may never be exposed to such a temptation."
-
-"I pray not, sir. And what do you intend to do?"
-
-"In view of your health, nothing. You are yourself aware that you
-will soon have to answer for your deed at a higher court than the
-Assizes. I will keep your confession, and if McCarthy is
-condemned I shall be forced to use it. If not, it shall never be
-seen by mortal eye; and your secret, whether you be alive or
-dead, shall be safe with us."
-
-"Farewell, then," said the old man solemnly. "Your own deathbeds,
-when they come, will be the easier for the thought of the peace
-which you have given to mine." Tottering and shaking in all his
-giant frame, he stumbled slowly from the room.
-
-"God help us!" said Holmes after a long silence. "Why does fate
-play such tricks with poor, helpless worms? I never hear of such
-a case as this that I do not think of Baxter's words, and say,
-'There, but for the grace of God, goes Sherlock Holmes.'"
-
-James McCarthy was acquitted at the Assizes on the strength of a
-number of objections which had been drawn out by Holmes and
-submitted to the defending counsel. Old Turner lived for seven
-months after our interview, but he is now dead; and there is
-every prospect that the son and daughter may come to live happily
-together in ignorance of the black cloud which rests upon their
-past.
-
-
-
-ADVENTURE V. THE FIVE ORANGE PIPS
-
-When I glance over my notes and records of the Sherlock Holmes
-cases between the years '82 and '90, I am faced by so many which
-present strange and interesting features that it is no easy
-matter to know which to choose and which to leave. Some, however,
-have already gained publicity through the papers, and others have
-not offered a field for those peculiar qualities which my friend
-possessed in so high a degree, and which it is the object of
-these papers to illustrate. Some, too, have baffled his
-analytical skill, and would be, as narratives, beginnings without
-an ending, while others have been but partially cleared up, and
-have their explanations founded rather upon conjecture and
-surmise than on that absolute logical proof which was so dear to
-him. There is, however, one of these last which was so remarkable
-in its details and so startling in its results that I am tempted
-to give some account of it in spite of the fact that there are
-points in connection with it which never have been, and probably
-never will be, entirely cleared up.
-
-The year '87 furnished us with a long series of cases of greater
-or less interest, of which I retain the records. Among my
-headings under this one twelve months I find an account of the
-adventure of the Paradol Chamber, of the Amateur Mendicant
-Society, who held a luxurious club in the lower vault of a
-furniture warehouse, of the facts connected with the loss of the
-British barque "Sophy Anderson", of the singular adventures of the
-Grice Patersons in the island of Uffa, and finally of the
-Camberwell poisoning case. In the latter, as may be remembered,
-Sherlock Holmes was able, by winding up the dead man's watch, to
-prove that it had been wound up two hours before, and that
-therefore the deceased had gone to bed within that time--a
-deduction which was of the greatest importance in clearing up the
-case. All these I may sketch out at some future date, but none of
-them present such singular features as the strange train of
-circumstances which I have now taken up my pen to describe.
-
-It was in the latter days of September, and the equinoctial gales
-had set in with exceptional violence. All day the wind had
-screamed and the rain had beaten against the windows, so that
-even here in the heart of great, hand-made London we were forced
-to raise our minds for the instant from the routine of life and
-to recognise the presence of those great elemental forces which
-shriek at mankind through the bars of his civilisation, like
-untamed beasts in a cage. As evening drew in, the storm grew
-higher and louder, and the wind cried and sobbed like a child in
-the chimney. Sherlock Holmes sat moodily at one side of the
-fireplace cross-indexing his records of crime, while I at the
-other was deep in one of Clark Russell's fine sea-stories until
-the howl of the gale from without seemed to blend with the text,
-and the splash of the rain to lengthen out into the long swash of
-the sea waves. My wife was on a visit to her mother's, and for a
-few days I was a dweller once more in my old quarters at Baker
-Street.
-
-"Why," said I, glancing up at my companion, "that was surely the
-bell. Who could come to-night? Some friend of yours, perhaps?"
-
-"Except yourself I have none," he answered. "I do not encourage
-visitors."
-
-"A client, then?"
-
-"If so, it is a serious case. Nothing less would bring a man out
-on such a day and at such an hour. But I take it that it is more
-likely to be some crony of the landlady's."
-
-Sherlock Holmes was wrong in his conjecture, however, for there
-came a step in the passage and a tapping at the door. He
-stretched out his long arm to turn the lamp away from himself and
-towards the vacant chair upon which a newcomer must sit.
-
-"Come in!" said he.
-
-The man who entered was young, some two-and-twenty at the
-outside, well-groomed and trimly clad, with something of
-refinement and delicacy in his bearing. The streaming umbrella
-which he held in his hand, and his long shining waterproof told
-of the fierce weather through which he had come. He looked about
-him anxiously in the glare of the lamp, and I could see that his
-face was pale and his eyes heavy, like those of a man who is
-weighed down with some great anxiety.
-
-"I owe you an apology," he said, raising his golden pince-nez to
-his eyes. "I trust that I am not intruding. I fear that I have
-brought some traces of the storm and rain into your snug
-chamber."
-
-"Give me your coat and umbrella," said Holmes. "They may rest
-here on the hook and will be dry presently. You have come up from
-the south-west, I see."
-
-"Yes, from Horsham."
-
-"That clay and chalk mixture which I see upon your toe caps is
-quite distinctive."
-
-"I have come for advice."
-
-"That is easily got."
-
-"And help."
-
-"That is not always so easy."
-
-"I have heard of you, Mr. Holmes. I heard from Major Prendergast
-how you saved him in the Tankerville Club scandal."
-
-"Ah, of course. He was wrongfully accused of cheating at cards."
-
-"He said that you could solve anything."
-
-"He said too much."
-
-"That you are never beaten."
-
-"I have been beaten four times--three times by men, and once by a
-woman."
-
-"But what is that compared with the number of your successes?"
-
-"It is true that I have been generally successful."
-
-"Then you may be so with me."
-
-"I beg that you will draw your chair up to the fire and favour me
-with some details as to your case."
-
-"It is no ordinary one."
-
-"None of those which come to me are. I am the last court of
-appeal."
-
-"And yet I question, sir, whether, in all your experience, you
-have ever listened to a more mysterious and inexplicable chain of
-events than those which have happened in my own family."
-
-"You fill me with interest," said Holmes. "Pray give us the
-essential facts from the commencement, and I can afterwards
-question you as to those details which seem to me to be most
-important."
-
-The young man pulled his chair up and pushed his wet feet out
-towards the blaze.
-
-"My name," said he, "is John Openshaw, but my own affairs have,
-as far as I can understand, little to do with this awful
-business. It is a hereditary matter; so in order to give you an
-idea of the facts, I must go back to the commencement of the
-affair.
-
-"You must know that my grandfather had two sons--my uncle Elias
-and my father Joseph. My father had a small factory at Coventry,
-which he enlarged at the time of the invention of bicycling. He
-was a patentee of the Openshaw unbreakable tire, and his business
-met with such success that he was able to sell it and to retire
-upon a handsome competence.
-
-"My uncle Elias emigrated to America when he was a young man and
-became a planter in Florida, where he was reported to have done
-very well. At the time of the war he fought in Jackson's army,
-and afterwards under Hood, where he rose to be a colonel. When
-Lee laid down his arms my uncle returned to his plantation, where
-he remained for three or four years. About 1869 or 1870 he came
-back to Europe and took a small estate in Sussex, near Horsham.
-He had made a very considerable fortune in the States, and his
-reason for leaving them was his aversion to the negroes, and his
-dislike of the Republican policy in extending the franchise to
-them. He was a singular man, fierce and quick-tempered, very
-foul-mouthed when he was angry, and of a most retiring
-disposition. During all the years that he lived at Horsham, I
-doubt if ever he set foot in the town. He had a garden and two or
-three fields round his house, and there he would take his
-exercise, though very often for weeks on end he would never leave
-his room. He drank a great deal of brandy and smoked very
-heavily, but he would see no society and did not want any
-friends, not even his own brother.
-
-"He didn't mind me; in fact, he took a fancy to me, for at the
-time when he saw me first I was a youngster of twelve or so. This
-would be in the year 1878, after he had been eight or nine years
-in England. He begged my father to let me live with him and he
-was very kind to me in his way. When he was sober he used to be
-fond of playing backgammon and draughts with me, and he would
-make me his representative both with the servants and with the
-tradespeople, so that by the time that I was sixteen I was quite
-master of the house. I kept all the keys and could go where I
-liked and do what I liked, so long as I did not disturb him in
-his privacy. There was one singular exception, however, for he
-had a single room, a lumber-room up among the attics, which was
-invariably locked, and which he would never permit either me or
-anyone else to enter. With a boy's curiosity I have peeped
-through the keyhole, but I was never able to see more than such a
-collection of old trunks and bundles as would be expected in such
-a room.
-
-"One day--it was in March, 1883--a letter with a foreign stamp
-lay upon the table in front of the colonel's plate. It was not a
-common thing for him to receive letters, for his bills were all
-paid in ready money, and he had no friends of any sort. 'From
-India!' said he as he took it up, 'Pondicherry postmark! What can
-this be?' Opening it hurriedly, out there jumped five little
-dried orange pips, which pattered down upon his plate. I began to
-laugh at this, but the laugh was struck from my lips at the sight
-of his face. His lip had fallen, his eyes were protruding, his
-skin the colour of putty, and he glared at the envelope which he
-still held in his trembling hand, 'K. K. K.!' he shrieked, and
-then, 'My God, my God, my sins have overtaken me!'
-
-"'What is it, uncle?' I cried.
-
-"'Death,' said he, and rising from the table he retired to his
-room, leaving me palpitating with horror. I took up the envelope
-and saw scrawled in red ink upon the inner flap, just above the
-gum, the letter K three times repeated. There was nothing else
-save the five dried pips. What could be the reason of his
-overpowering terror? I left the breakfast-table, and as I
-ascended the stair I met him coming down with an old rusty key,
-which must have belonged to the attic, in one hand, and a small
-brass box, like a cashbox, in the other.
-
-"'They may do what they like, but I'll checkmate them still,'
-said he with an oath. 'Tell Mary that I shall want a fire in my
-room to-day, and send down to Fordham, the Horsham lawyer.'
-
-"I did as he ordered, and when the lawyer arrived I was asked to
-step up to the room. The fire was burning brightly, and in the
-grate there was a mass of black, fluffy ashes, as of burned
-paper, while the brass box stood open and empty beside it. As I
-glanced at the box I noticed, with a start, that upon the lid was
-printed the treble K which I had read in the morning upon the
-envelope.
-
-"'I wish you, John,' said my uncle, 'to witness my will. I leave
-my estate, with all its advantages and all its disadvantages, to
-my brother, your father, whence it will, no doubt, descend to
-you. If you can enjoy it in peace, well and good! If you find you
-cannot, take my advice, my boy, and leave it to your deadliest
-enemy. I am sorry to give you such a two-edged thing, but I can't
-say what turn things are going to take. Kindly sign the paper
-where Mr. Fordham shows you.'
-
-"I signed the paper as directed, and the lawyer took it away with
-him. The singular incident made, as you may think, the deepest
-impression upon me, and I pondered over it and turned it every
-way in my mind without being able to make anything of it. Yet I
-could not shake off the vague feeling of dread which it left
-behind, though the sensation grew less keen as the weeks passed
-and nothing happened to disturb the usual routine of our lives. I
-could see a change in my uncle, however. He drank more than ever,
-and he was less inclined for any sort of society. Most of his
-time he would spend in his room, with the door locked upon the
-inside, but sometimes he would emerge in a sort of drunken frenzy
-and would burst out of the house and tear about the garden with a
-revolver in his hand, screaming out that he was afraid of no man,
-and that he was not to be cooped up, like a sheep in a pen, by
-man or devil. When these hot fits were over, however, he would
-rush tumultuously in at the door and lock and bar it behind him,
-like a man who can brazen it out no longer against the terror
-which lies at the roots of his soul. At such times I have seen
-his face, even on a cold day, glisten with moisture, as though it
-were new raised from a basin.
-
-"Well, to come to an end of the matter, Mr. Holmes, and not to
-abuse your patience, there came a night when he made one of those
-drunken sallies from which he never came back. We found him, when
-we went to search for him, face downward in a little
-green-scummed pool, which lay at the foot of the garden. There
-was no sign of any violence, and the water was but two feet deep,
-so that the jury, having regard to his known eccentricity,
-brought in a verdict of 'suicide.' But I, who knew how he winced
-from the very thought of death, had much ado to persuade myself
-that he had gone out of his way to meet it. The matter passed,
-however, and my father entered into possession of the estate, and
-of some 14,000 pounds, which lay to his credit at the bank."
-
-"One moment," Holmes interposed, "your statement is, I foresee,
-one of the most remarkable to which I have ever listened. Let me
-have the date of the reception by your uncle of the letter, and
-the date of his supposed suicide."
-
-"The letter arrived on March 10, 1883. His death was seven weeks
-later, upon the night of May 2nd."
-
-"Thank you. Pray proceed."
-
-"When my father took over the Horsham property, he, at my
-request, made a careful examination of the attic, which had been
-always locked up. We found the brass box there, although its
-contents had been destroyed. On the inside of the cover was a
-paper label, with the initials of K. K. K. repeated upon it, and
-'Letters, memoranda, receipts, and a register' written beneath.
-These, we presume, indicated the nature of the papers which had
-been destroyed by Colonel Openshaw. For the rest, there was
-nothing of much importance in the attic save a great many
-scattered papers and note-books bearing upon my uncle's life in
-America. Some of them were of the war time and showed that he had
-done his duty well and had borne the repute of a brave soldier.
-Others were of a date during the reconstruction of the Southern
-states, and were mostly concerned with politics, for he had
-evidently taken a strong part in opposing the carpet-bag
-politicians who had been sent down from the North.
-
-"Well, it was the beginning of '84 when my father came to live at
-Horsham, and all went as well as possible with us until the
-January of '85. On the fourth day after the new year I heard my
-father give a sharp cry of surprise as we sat together at the
-breakfast-table. There he was, sitting with a newly opened
-envelope in one hand and five dried orange pips in the
-outstretched palm of the other one. He had always laughed at what
-he called my cock-and-bull story about the colonel, but he looked
-very scared and puzzled now that the same thing had come upon
-himself.
-
-"'Why, what on earth does this mean, John?' he stammered.
-
-"My heart had turned to lead. 'It is K. K. K.,' said I.
-
-"He looked inside the envelope. 'So it is,' he cried. 'Here are
-the very letters. But what is this written above them?'
-
-"'Put the papers on the sundial,' I read, peeping over his
-shoulder.
-
-"'What papers? What sundial?' he asked.
-
-"'The sundial in the garden. There is no other,' said I; 'but the
-papers must be those that are destroyed.'
-
-"'Pooh!' said he, gripping hard at his courage. 'We are in a
-civilised land here, and we can't have tomfoolery of this kind.
-Where does the thing come from?'
-
-"'From Dundee,' I answered, glancing at the postmark.
-
-"'Some preposterous practical joke,' said he. 'What have I to do
-with sundials and papers? I shall take no notice of such
-nonsense.'
-
-"'I should certainly speak to the police,' I said.
-
-"'And be laughed at for my pains. Nothing of the sort.'
-
-"'Then let me do so?'
-
-"'No, I forbid you. I won't have a fuss made about such
-nonsense.'
-
-"It was in vain to argue with him, for he was a very obstinate
-man. I went about, however, with a heart which was full of
-forebodings.
-
-"On the third day after the coming of the letter my father went
-from home to visit an old friend of his, Major Freebody, who is
-in command of one of the forts upon Portsdown Hill. I was glad
-that he should go, for it seemed to me that he was farther from
-danger when he was away from home. In that, however, I was in
-error. Upon the second day of his absence I received a telegram
-from the major, imploring me to come at once. My father had
-fallen over one of the deep chalk-pits which abound in the
-neighbourhood, and was lying senseless, with a shattered skull. I
-hurried to him, but he passed away without having ever recovered
-his consciousness. He had, as it appears, been returning from
-Fareham in the twilight, and as the country was unknown to him,
-and the chalk-pit unfenced, the jury had no hesitation in
-bringing in a verdict of 'death from accidental causes.'
-Carefully as I examined every fact connected with his death, I
-was unable to find anything which could suggest the idea of
-murder. There were no signs of violence, no footmarks, no
-robbery, no record of strangers having been seen upon the roads.
-And yet I need not tell you that my mind was far from at ease,
-and that I was well-nigh certain that some foul plot had been
-woven round him.
-
-"In this sinister way I came into my inheritance. You will ask me
-why I did not dispose of it? I answer, because I was well
-convinced that our troubles were in some way dependent upon an
-incident in my uncle's life, and that the danger would be as
-pressing in one house as in another.
-
-"It was in January, '85, that my poor father met his end, and two
-years and eight months have elapsed since then. During that time
-I have lived happily at Horsham, and I had begun to hope that
-this curse had passed away from the family, and that it had ended
-with the last generation. I had begun to take comfort too soon,
-however; yesterday morning the blow fell in the very shape in
-which it had come upon my father."
-
-The young man took from his waistcoat a crumpled envelope, and
-turning to the table he shook out upon it five little dried
-orange pips.
-
-"This is the envelope," he continued. "The postmark is
-London--eastern division. Within are the very words which were
-upon my father's last message: 'K. K. K.'; and then 'Put the
-papers on the sundial.'"
-
-"What have you done?" asked Holmes.
-
-"Nothing."
-
-"Nothing?"
-
-"To tell the truth"--he sank his face into his thin, white
-hands--"I have felt helpless. I have felt like one of those poor
-rabbits when the snake is writhing towards it. I seem to be in
-the grasp of some resistless, inexorable evil, which no foresight
-and no precautions can guard against."
-
-"Tut! tut!" cried Sherlock Holmes. "You must act, man, or you are
-lost. Nothing but energy can save you. This is no time for
-despair."
-
-"I have seen the police."
-
-"Ah!"
-
-"But they listened to my story with a smile. I am convinced that
-the inspector has formed the opinion that the letters are all
-practical jokes, and that the deaths of my relations were really
-accidents, as the jury stated, and were not to be connected with
-the warnings."
-
-Holmes shook his clenched hands in the air. "Incredible
-imbecility!" he cried.
-
-"They have, however, allowed me a policeman, who may remain in
-the house with me."
-
-"Has he come with you to-night?"
-
-"No. His orders were to stay in the house."
-
-Again Holmes raved in the air.
-
-"Why did you come to me," he cried, "and, above all, why did you
-not come at once?"
-
-"I did not know. It was only to-day that I spoke to Major
-Prendergast about my troubles and was advised by him to come to
-you."
-
-"It is really two days since you had the letter. We should have
-acted before this. You have no further evidence, I suppose, than
-that which you have placed before us--no suggestive detail which
-might help us?"
-
-"There is one thing," said John Openshaw. He rummaged in his coat
-pocket, and, drawing out a piece of discoloured, blue-tinted
-paper, he laid it out upon the table. "I have some remembrance,"
-said he, "that on the day when my uncle burned the papers I
-observed that the small, unburned margins which lay amid the
-ashes were of this particular colour. I found this single sheet
-upon the floor of his room, and I am inclined to think that it
-may be one of the papers which has, perhaps, fluttered out from
-among the others, and in that way has escaped destruction. Beyond
-the mention of pips, I do not see that it helps us much. I think
-myself that it is a page from some private diary. The writing is
-undoubtedly my uncle's."
-
-Holmes moved the lamp, and we both bent over the sheet of paper,
-which showed by its ragged edge that it had indeed been torn from
-a book. It was headed, "March, 1869," and beneath were the
-following enigmatical notices:
-
-"4th. Hudson came. Same old platform.
-
-"7th. Set the pips on McCauley, Paramore, and
- John Swain, of St. Augustine.
-
-"9th. McCauley cleared.
-
-"10th. John Swain cleared.
-
-"12th. Visited Paramore. All well."
-
-"Thank you!" said Holmes, folding up the paper and returning it
-to our visitor. "And now you must on no account lose another
-instant. We cannot spare time even to discuss what you have told
-me. You must get home instantly and act."
-
-"What shall I do?"
-
-"There is but one thing to do. It must be done at once. You must
-put this piece of paper which you have shown us into the brass
-box which you have described. You must also put in a note to say
-that all the other papers were burned by your uncle, and that
-this is the only one which remains. You must assert that in such
-words as will carry conviction with them. Having done this, you
-must at once put the box out upon the sundial, as directed. Do
-you understand?"
-
-"Entirely."
-
-"Do not think of revenge, or anything of the sort, at present. I
-think that we may gain that by means of the law; but we have our
-web to weave, while theirs is already woven. The first
-consideration is to remove the pressing danger which threatens
-you. The second is to clear up the mystery and to punish the
-guilty parties."
-
-"I thank you," said the young man, rising and pulling on his
-overcoat. "You have given me fresh life and hope. I shall
-certainly do as you advise."
-
-"Do not lose an instant. And, above all, take care of yourself in
-the meanwhile, for I do not think that there can be a doubt that
-you are threatened by a very real and imminent danger. How do you
-go back?"
-
-"By train from Waterloo."
-
-"It is not yet nine. The streets will be crowded, so I trust that
-you may be in safety. And yet you cannot guard yourself too
-closely."
-
-"I am armed."
-
-"That is well. To-morrow I shall set to work upon your case."
-
-"I shall see you at Horsham, then?"
-
-"No, your secret lies in London. It is there that I shall seek
-it."
-
-"Then I shall call upon you in a day, or in two days, with news
-as to the box and the papers. I shall take your advice in every
-particular." He shook hands with us and took his leave. Outside
-the wind still screamed and the rain splashed and pattered
-against the windows. This strange, wild story seemed to have come
-to us from amid the mad elements--blown in upon us like a sheet
-of sea-weed in a gale--and now to have been reabsorbed by them
-once more.
-
-Sherlock Holmes sat for some time in silence, with his head sunk
-forward and his eyes bent upon the red glow of the fire. Then he
-lit his pipe, and leaning back in his chair he watched the blue
-smoke-rings as they chased each other up to the ceiling.
-
-"I think, Watson," he remarked at last, "that of all our cases we
-have had none more fantastic than this."
-
-"Save, perhaps, the Sign of Four."
-
-"Well, yes. Save, perhaps, that. And yet this John Openshaw seems
-to me to be walking amid even greater perils than did the
-Sholtos."
-
-"But have you," I asked, "formed any definite conception as to
-what these perils are?"
-
-"There can be no question as to their nature," he answered.
-
-"Then what are they? Who is this K. K. K., and why does he pursue
-this unhappy family?"
-
-Sherlock Holmes closed his eyes and placed his elbows upon the
-arms of his chair, with his finger-tips together. "The ideal
-reasoner," he remarked, "would, when he had once been shown a
-single fact in all its bearings, deduce from it not only all the
-chain of events which led up to it but also all the results which
-would follow from it. As Cuvier could correctly describe a whole
-animal by the contemplation of a single bone, so the observer who
-has thoroughly understood one link in a series of incidents
-should be able to accurately state all the other ones, both
-before and after. We have not yet grasped the results which the
-reason alone can attain to. Problems may be solved in the study
-which have baffled all those who have sought a solution by the
-aid of their senses. To carry the art, however, to its highest
-pitch, it is necessary that the reasoner should be able to
-utilise all the facts which have come to his knowledge; and this
-in itself implies, as you will readily see, a possession of all
-knowledge, which, even in these days of free education and
-encyclopaedias, is a somewhat rare accomplishment. It is not so
-impossible, however, that a man should possess all knowledge
-which is likely to be useful to him in his work, and this I have
-endeavoured in my case to do. If I remember rightly, you on one
-occasion, in the early days of our friendship, defined my limits
-in a very precise fashion."
-
-"Yes," I answered, laughing. "It was a singular document.
-Philosophy, astronomy, and politics were marked at zero, I
-remember. Botany variable, geology profound as regards the
-mud-stains from any region within fifty miles of town, chemistry
-eccentric, anatomy unsystematic, sensational literature and crime
-records unique, violin-player, boxer, swordsman, lawyer, and
-self-poisoner by cocaine and tobacco. Those, I think, were the
-main points of my analysis."
-
-Holmes grinned at the last item. "Well," he said, "I say now, as
-I said then, that a man should keep his little brain-attic
-stocked with all the furniture that he is likely to use, and the
-rest he can put away in the lumber-room of his library, where he
-can get it if he wants it. Now, for such a case as the one which
-has been submitted to us to-night, we need certainly to muster
-all our resources. Kindly hand me down the letter K of the
-'American Encyclopaedia' which stands upon the shelf beside you.
-Thank you. Now let us consider the situation and see what may be
-deduced from it. In the first place, we may start with a strong
-presumption that Colonel Openshaw had some very strong reason for
-leaving America. Men at his time of life do not change all their
-habits and exchange willingly the charming climate of Florida for
-the lonely life of an English provincial town. His extreme love
-of solitude in England suggests the idea that he was in fear of
-someone or something, so we may assume as a working hypothesis
-that it was fear of someone or something which drove him from
-America. As to what it was he feared, we can only deduce that by
-considering the formidable letters which were received by himself
-and his successors. Did you remark the postmarks of those
-letters?"
-
-"The first was from Pondicherry, the second from Dundee, and the
-third from London."
-
-"From East London. What do you deduce from that?"
-
-"They are all seaports. That the writer was on board of a ship."
-
-"Excellent. We have already a clue. There can be no doubt that
-the probability--the strong probability--is that the writer was
-on board of a ship. And now let us consider another point. In the
-case of Pondicherry, seven weeks elapsed between the threat and
-its fulfilment, in Dundee it was only some three or four days.
-Does that suggest anything?"
-
-"A greater distance to travel."
-
-"But the letter had also a greater distance to come."
-
-"Then I do not see the point."
-
-"There is at least a presumption that the vessel in which the man
-or men are is a sailing-ship. It looks as if they always send
-their singular warning or token before them when starting upon
-their mission. You see how quickly the deed followed the sign
-when it came from Dundee. If they had come from Pondicherry in a
-steamer they would have arrived almost as soon as their letter.
-But, as a matter of fact, seven weeks elapsed. I think that those
-seven weeks represented the difference between the mail-boat which
-brought the letter and the sailing vessel which brought the
-writer."
-
-"It is possible."
-
-"More than that. It is probable. And now you see the deadly
-urgency of this new case, and why I urged young Openshaw to
-caution. The blow has always fallen at the end of the time which
-it would take the senders to travel the distance. But this one
-comes from London, and therefore we cannot count upon delay."
-
-"Good God!" I cried. "What can it mean, this relentless
-persecution?"
-
-"The papers which Openshaw carried are obviously of vital
-importance to the person or persons in the sailing-ship. I think
-that it is quite clear that there must be more than one of them.
-A single man could not have carried out two deaths in such a way
-as to deceive a coroner's jury. There must have been several in
-it, and they must have been men of resource and determination.
-Their papers they mean to have, be the holder of them who it may.
-In this way you see K. K. K. ceases to be the initials of an
-individual and becomes the badge of a society."
-
-"But of what society?"
-
-"Have you never--" said Sherlock Holmes, bending forward and
-sinking his voice--"have you never heard of the Ku Klux Klan?"
-
-"I never have."
-
-Holmes turned over the leaves of the book upon his knee. "Here it
-is," said he presently:
-
-"'Ku Klux Klan. A name derived from the fanciful resemblance to
-the sound produced by cocking a rifle. This terrible secret
-society was formed by some ex-Confederate soldiers in the
-Southern states after the Civil War, and it rapidly formed local
-branches in different parts of the country, notably in Tennessee,
-Louisiana, the Carolinas, Georgia, and Florida. Its power was
-used for political purposes, principally for the terrorising of
-the negro voters and the murdering and driving from the country
-of those who were opposed to its views. Its outrages were usually
-preceded by a warning sent to the marked man in some fantastic
-but generally recognised shape--a sprig of oak-leaves in some
-parts, melon seeds or orange pips in others. On receiving this
-the victim might either openly abjure his former ways, or might
-fly from the country. If he braved the matter out, death would
-unfailingly come upon him, and usually in some strange and
-unforeseen manner. So perfect was the organisation of the
-society, and so systematic its methods, that there is hardly a
-case upon record where any man succeeded in braving it with
-impunity, or in which any of its outrages were traced home to the
-perpetrators. For some years the organisation flourished in spite
-of the efforts of the United States government and of the better
-classes of the community in the South. Eventually, in the year
-1869, the movement rather suddenly collapsed, although there have
-been sporadic outbreaks of the same sort since that date.'
-
-"You will observe," said Holmes, laying down the volume, "that
-the sudden breaking up of the society was coincident with the
-disappearance of Openshaw from America with their papers. It may
-well have been cause and effect. It is no wonder that he and his
-family have some of the more implacable spirits upon their track.
-You can understand that this register and diary may implicate
-some of the first men in the South, and that there may be many
-who will not sleep easy at night until it is recovered."
-
-"Then the page we have seen--"
-
-"Is such as we might expect. It ran, if I remember right, 'sent
-the pips to A, B, and C'--that is, sent the society's warning to
-them. Then there are successive entries that A and B cleared, or
-left the country, and finally that C was visited, with, I fear, a
-sinister result for C. Well, I think, Doctor, that we may let
-some light into this dark place, and I believe that the only
-chance young Openshaw has in the meantime is to do what I have
-told him. There is nothing more to be said or to be done
-to-night, so hand me over my violin and let us try to forget for
-half an hour the miserable weather and the still more miserable
-ways of our fellow-men."
-
-
-It had cleared in the morning, and the sun was shining with a
-subdued brightness through the dim veil which hangs over the
-great city. Sherlock Holmes was already at breakfast when I came
-down.
-
-"You will excuse me for not waiting for you," said he; "I have, I
-foresee, a very busy day before me in looking into this case of
-young Openshaw's."
-
-"What steps will you take?" I asked.
-
-"It will very much depend upon the results of my first inquiries.
-I may have to go down to Horsham, after all."
-
-"You will not go there first?"
-
-"No, I shall commence with the City. Just ring the bell and the
-maid will bring up your coffee."
-
-As I waited, I lifted the unopened newspaper from the table and
-glanced my eye over it. It rested upon a heading which sent a
-chill to my heart.
-
-"Holmes," I cried, "you are too late."
-
-"Ah!" said he, laying down his cup, "I feared as much. How was it
-done?" He spoke calmly, but I could see that he was deeply moved.
-
-"My eye caught the name of Openshaw, and the heading 'Tragedy
-Near Waterloo Bridge.' Here is the account:
-
-"Between nine and ten last night Police-Constable Cook, of the H
-Division, on duty near Waterloo Bridge, heard a cry for help and
-a splash in the water. The night, however, was extremely dark and
-stormy, so that, in spite of the help of several passers-by, it
-was quite impossible to effect a rescue. The alarm, however, was
-given, and, by the aid of the water-police, the body was
-eventually recovered. It proved to be that of a young gentleman
-whose name, as it appears from an envelope which was found in his
-pocket, was John Openshaw, and whose residence is near Horsham.
-It is conjectured that he may have been hurrying down to catch
-the last train from Waterloo Station, and that in his haste and
-the extreme darkness he missed his path and walked over the edge
-of one of the small landing-places for river steamboats. The body
-exhibited no traces of violence, and there can be no doubt that
-the deceased had been the victim of an unfortunate accident,
-which should have the effect of calling the attention of the
-authorities to the condition of the riverside landing-stages."
-
-We sat in silence for some minutes, Holmes more depressed and
-shaken than I had ever seen him.
-
-"That hurts my pride, Watson," he said at last. "It is a petty
-feeling, no doubt, but it hurts my pride. It becomes a personal
-matter with me now, and, if God sends me health, I shall set my
-hand upon this gang. That he should come to me for help, and that
-I should send him away to his death--!" He sprang from his chair
-and paced about the room in uncontrollable agitation, with a
-flush upon his sallow cheeks and a nervous clasping and
-unclasping of his long thin hands.
-
-"They must be cunning devils," he exclaimed at last. "How could
-they have decoyed him down there? The Embankment is not on the
-direct line to the station. The bridge, no doubt, was too
-crowded, even on such a night, for their purpose. Well, Watson,
-we shall see who will win in the long run. I am going out now!"
-
-"To the police?"
-
-"No; I shall be my own police. When I have spun the web they may
-take the flies, but not before."
-
-All day I was engaged in my professional work, and it was late in
-the evening before I returned to Baker Street. Sherlock Holmes
-had not come back yet. It was nearly ten o'clock before he
-entered, looking pale and worn. He walked up to the sideboard,
-and tearing a piece from the loaf he devoured it voraciously,
-washing it down with a long draught of water.
-
-"You are hungry," I remarked.
-
-"Starving. It had escaped my memory. I have had nothing since
-breakfast."
-
-"Nothing?"
-
-"Not a bite. I had no time to think of it."
-
-"And how have you succeeded?"
-
-"Well."
-
-"You have a clue?"
-
-"I have them in the hollow of my hand. Young Openshaw shall not
-long remain unavenged. Why, Watson, let us put their own devilish
-trade-mark upon them. It is well thought of!"
-
-"What do you mean?"
-
-He took an orange from the cupboard, and tearing it to pieces he
-squeezed out the pips upon the table. Of these he took five and
-thrust them into an envelope. On the inside of the flap he wrote
-"S. H. for J. O." Then he sealed it and addressed it to "Captain
-James Calhoun, Barque 'Lone Star,' Savannah, Georgia."
-
-"That will await him when he enters port," said he, chuckling.
-"It may give him a sleepless night. He will find it as sure a
-precursor of his fate as Openshaw did before him."
-
-"And who is this Captain Calhoun?"
-
-"The leader of the gang. I shall have the others, but he first."
-
-"How did you trace it, then?"
-
-He took a large sheet of paper from his pocket, all covered with
-dates and names.
-
-"I have spent the whole day," said he, "over Lloyd's registers
-and files of the old papers, following the future career of every
-vessel which touched at Pondicherry in January and February in
-'83. There were thirty-six ships of fair tonnage which were
-reported there during those months. Of these, one, the 'Lone Star,'
-instantly attracted my attention, since, although it was reported
-as having cleared from London, the name is that which is given to
-one of the states of the Union."
-
-"Texas, I think."
-
-"I was not and am not sure which; but I knew that the ship must
-have an American origin."
-
-"What then?"
-
-"I searched the Dundee records, and when I found that the barque
-'Lone Star' was there in January, '85, my suspicion became a
-certainty. I then inquired as to the vessels which lay at present
-in the port of London."
-
-"Yes?"
-
-"The 'Lone Star' had arrived here last week. I went down to the
-Albert Dock and found that she had been taken down the river by
-the early tide this morning, homeward bound to Savannah. I wired
-to Gravesend and learned that she had passed some time ago, and
-as the wind is easterly I have no doubt that she is now past the
-Goodwins and not very far from the Isle of Wight."
-
-"What will you do, then?"
-
-"Oh, I have my hand upon him. He and the two mates, are as I
-learn, the only native-born Americans in the ship. The others are
-Finns and Germans. I know, also, that they were all three away
-from the ship last night. I had it from the stevedore who has
-been loading their cargo. By the time that their sailing-ship
-reaches Savannah the mail-boat will have carried this letter, and
-the cable will have informed the police of Savannah that these
-three gentlemen are badly wanted here upon a charge of murder."
-
-There is ever a flaw, however, in the best laid of human plans,
-and the murderers of John Openshaw were never to receive the
-orange pips which would show them that another, as cunning and as
-resolute as themselves, was upon their track. Very long and very
-severe were the equinoctial gales that year. We waited long for
-news of the "Lone Star" of Savannah, but none ever reached us. We
-did at last hear that somewhere far out in the Atlantic a
-shattered stern-post of a boat was seen swinging in the trough
-of a wave, with the letters "L. S." carved upon it, and that is
-all which we shall ever know of the fate of the "Lone Star."
-
-
-
-ADVENTURE VI. THE MAN WITH THE TWISTED LIP
-
-Isa Whitney, brother of the late Elias Whitney, D.D., Principal
-of the Theological College of St. George's, was much addicted to
-opium. The habit grew upon him, as I understand, from some
-foolish freak when he was at college; for having read De
-Quincey's description of his dreams and sensations, he had
-drenched his tobacco with laudanum in an attempt to produce the
-same effects. He found, as so many more have done, that the
-practice is easier to attain than to get rid of, and for many
-years he continued to be a slave to the drug, an object of
-mingled horror and pity to his friends and relatives. I can see
-him now, with yellow, pasty face, drooping lids, and pin-point
-pupils, all huddled in a chair, the wreck and ruin of a noble
-man.
-
-One night--it was in June, '89--there came a ring to my bell,
-about the hour when a man gives his first yawn and glances at the
-clock. I sat up in my chair, and my wife laid her needle-work
-down in her lap and made a little face of disappointment.
-
-"A patient!" said she. "You'll have to go out."
-
-I groaned, for I was newly come back from a weary day.
-
-We heard the door open, a few hurried words, and then quick steps
-upon the linoleum. Our own door flew open, and a lady, clad in
-some dark-coloured stuff, with a black veil, entered the room.
-
-"You will excuse my calling so late," she began, and then,
-suddenly losing her self-control, she ran forward, threw her arms
-about my wife's neck, and sobbed upon her shoulder. "Oh, I'm in
-such trouble!" she cried; "I do so want a little help."
-
-"Why," said my wife, pulling up her veil, "it is Kate Whitney.
-How you startled me, Kate! I had not an idea who you were when
-you came in."
-
-"I didn't know what to do, so I came straight to you." That was
-always the way. Folk who were in grief came to my wife like birds
-to a light-house.
-
-"It was very sweet of you to come. Now, you must have some wine
-and water, and sit here comfortably and tell us all about it. Or
-should you rather that I sent James off to bed?"
-
-"Oh, no, no! I want the doctor's advice and help, too. It's about
-Isa. He has not been home for two days. I am so frightened about
-him!"
-
-It was not the first time that she had spoken to us of her
-husband's trouble, to me as a doctor, to my wife as an old friend
-and school companion. We soothed and comforted her by such words
-as we could find. Did she know where her husband was? Was it
-possible that we could bring him back to her?
-
-It seems that it was. She had the surest information that of late
-he had, when the fit was on him, made use of an opium den in the
-farthest east of the City. Hitherto his orgies had always been
-confined to one day, and he had come back, twitching and
-shattered, in the evening. But now the spell had been upon him
-eight-and-forty hours, and he lay there, doubtless among the
-dregs of the docks, breathing in the poison or sleeping off the
-effects. There he was to be found, she was sure of it, at the Bar
-of Gold, in Upper Swandam Lane. But what was she to do? How could
-she, a young and timid woman, make her way into such a place and
-pluck her husband out from among the ruffians who surrounded him?
-
-There was the case, and of course there was but one way out of
-it. Might I not escort her to this place? And then, as a second
-thought, why should she come at all? I was Isa Whitney's medical
-adviser, and as such I had influence over him. I could manage it
-better if I were alone. I promised her on my word that I would
-send him home in a cab within two hours if he were indeed at the
-address which she had given me. And so in ten minutes I had left
-my armchair and cheery sitting-room behind me, and was speeding
-eastward in a hansom on a strange errand, as it seemed to me at
-the time, though the future only could show how strange it was to
-be.
-
-But there was no great difficulty in the first stage of my
-adventure. Upper Swandam Lane is a vile alley lurking behind the
-high wharves which line the north side of the river to the east
-of London Bridge. Between a slop-shop and a gin-shop, approached
-by a steep flight of steps leading down to a black gap like the
-mouth of a cave, I found the den of which I was in search.
-Ordering my cab to wait, I passed down the steps, worn hollow in
-the centre by the ceaseless tread of drunken feet; and by the
-light of a flickering oil-lamp above the door I found the latch
-and made my way into a long, low room, thick and heavy with the
-brown opium smoke, and terraced with wooden berths, like the
-forecastle of an emigrant ship.
-
-Through the gloom one could dimly catch a glimpse of bodies lying
-in strange fantastic poses, bowed shoulders, bent knees, heads
-thrown back, and chins pointing upward, with here and there a
-dark, lack-lustre eye turned upon the newcomer. Out of the black
-shadows there glimmered little red circles of light, now bright,
-now faint, as the burning poison waxed or waned in the bowls of
-the metal pipes. The most lay silent, but some muttered to
-themselves, and others talked together in a strange, low,
-monotonous voice, their conversation coming in gushes, and then
-suddenly tailing off into silence, each mumbling out his own
-thoughts and paying little heed to the words of his neighbour. At
-the farther end was a small brazier of burning charcoal, beside
-which on a three-legged wooden stool there sat a tall, thin old
-man, with his jaw resting upon his two fists, and his elbows upon
-his knees, staring into the fire.
-
-As I entered, a sallow Malay attendant had hurried up with a pipe
-for me and a supply of the drug, beckoning me to an empty berth.
-
-"Thank you. I have not come to stay," said I. "There is a friend
-of mine here, Mr. Isa Whitney, and I wish to speak with him."
-
-There was a movement and an exclamation from my right, and
-peering through the gloom, I saw Whitney, pale, haggard, and
-unkempt, staring out at me.
-
-"My God! It's Watson," said he. He was in a pitiable state of
-reaction, with every nerve in a twitter. "I say, Watson, what
-o'clock is it?"
-
-"Nearly eleven."
-
-"Of what day?"
-
-"Of Friday, June 19th."
-
-"Good heavens! I thought it was Wednesday. It is Wednesday. What
-d'you want to frighten a chap for?" He sank his face onto his
-arms and began to sob in a high treble key.
-
-"I tell you that it is Friday, man. Your wife has been waiting
-this two days for you. You should be ashamed of yourself!"
-
-"So I am. But you've got mixed, Watson, for I have only been here
-a few hours, three pipes, four pipes--I forget how many. But I'll
-go home with you. I wouldn't frighten Kate--poor little Kate.
-Give me your hand! Have you a cab?"
-
-"Yes, I have one waiting."
-
-"Then I shall go in it. But I must owe something. Find what I
-owe, Watson. I am all off colour. I can do nothing for myself."
-
-I walked down the narrow passage between the double row of
-sleepers, holding my breath to keep out the vile, stupefying
-fumes of the drug, and looking about for the manager. As I passed
-the tall man who sat by the brazier I felt a sudden pluck at my
-skirt, and a low voice whispered, "Walk past me, and then look
-back at me." The words fell quite distinctly upon my ear. I
-glanced down. They could only have come from the old man at my
-side, and yet he sat now as absorbed as ever, very thin, very
-wrinkled, bent with age, an opium pipe dangling down from between
-his knees, as though it had dropped in sheer lassitude from his
-fingers. I took two steps forward and looked back. It took all my
-self-control to prevent me from breaking out into a cry of
-astonishment. He had turned his back so that none could see him
-but I. His form had filled out, his wrinkles were gone, the dull
-eyes had regained their fire, and there, sitting by the fire and
-grinning at my surprise, was none other than Sherlock Holmes. He
-made a slight motion to me to approach him, and instantly, as he
-turned his face half round to the company once more, subsided
-into a doddering, loose-lipped senility.
-
-"Holmes!" I whispered, "what on earth are you doing in this den?"
-
-"As low as you can," he answered; "I have excellent ears. If you
-would have the great kindness to get rid of that sottish friend
-of yours I should be exceedingly glad to have a little talk with
-you."
-
-"I have a cab outside."
-
-"Then pray send him home in it. You may safely trust him, for he
-appears to be too limp to get into any mischief. I should
-recommend you also to send a note by the cabman to your wife to
-say that you have thrown in your lot with me. If you will wait
-outside, I shall be with you in five minutes."
-
-It was difficult to refuse any of Sherlock Holmes' requests, for
-they were always so exceedingly definite, and put forward with
-such a quiet air of mastery. I felt, however, that when Whitney
-was once confined in the cab my mission was practically
-accomplished; and for the rest, I could not wish anything better
-than to be associated with my friend in one of those singular
-adventures which were the normal condition of his existence. In a
-few minutes I had written my note, paid Whitney's bill, led him
-out to the cab, and seen him driven through the darkness. In a
-very short time a decrepit figure had emerged from the opium den,
-and I was walking down the street with Sherlock Holmes. For two
-streets he shuffled along with a bent back and an uncertain foot.
-Then, glancing quickly round, he straightened himself out and
-burst into a hearty fit of laughter.
-
-"I suppose, Watson," said he, "that you imagine that I have added
-opium-smoking to cocaine injections, and all the other little
-weaknesses on which you have favoured me with your medical
-views."
-
-"I was certainly surprised to find you there."
-
-"But not more so than I to find you."
-
-"I came to find a friend."
-
-"And I to find an enemy."
-
-"An enemy?"
-
-"Yes; one of my natural enemies, or, shall I say, my natural
-prey. Briefly, Watson, I am in the midst of a very remarkable
-inquiry, and I have hoped to find a clue in the incoherent
-ramblings of these sots, as I have done before now. Had I been
-recognised in that den my life would not have been worth an
-hour's purchase; for I have used it before now for my own
-purposes, and the rascally Lascar who runs it has sworn to have
-vengeance upon me. There is a trap-door at the back of that
-building, near the corner of Paul's Wharf, which could tell some
-strange tales of what has passed through it upon the moonless
-nights."
-
-"What! You do not mean bodies?"
-
-"Ay, bodies, Watson. We should be rich men if we had 1000 pounds
-for every poor devil who has been done to death in that den. It
-is the vilest murder-trap on the whole riverside, and I fear that
-Neville St. Clair has entered it never to leave it more. But our
-trap should be here." He put his two forefingers between his
-teeth and whistled shrilly--a signal which was answered by a
-similar whistle from the distance, followed shortly by the rattle
-of wheels and the clink of horses' hoofs.
-
-"Now, Watson," said Holmes, as a tall dog-cart dashed up through
-the gloom, throwing out two golden tunnels of yellow light from
-its side lanterns. "You'll come with me, won't you?"
-
-"If I can be of use."
-
-"Oh, a trusty comrade is always of use; and a chronicler still
-more so. My room at The Cedars is a double-bedded one."
-
-"The Cedars?"
-
-"Yes; that is Mr. St. Clair's house. I am staying there while I
-conduct the inquiry."
-
-"Where is it, then?"
-
-"Near Lee, in Kent. We have a seven-mile drive before us."
-
-"But I am all in the dark."
-
-"Of course you are. You'll know all about it presently. Jump up
-here. All right, John; we shall not need you. Here's half a
-crown. Look out for me to-morrow, about eleven. Give her her
-head. So long, then!"
-
-He flicked the horse with his whip, and we dashed away through
-the endless succession of sombre and deserted streets, which
-widened gradually, until we were flying across a broad
-balustraded bridge, with the murky river flowing sluggishly
-beneath us. Beyond lay another dull wilderness of bricks and
-mortar, its silence broken only by the heavy, regular footfall of
-the policeman, or the songs and shouts of some belated party of
-revellers. A dull wrack was drifting slowly across the sky, and a
-star or two twinkled dimly here and there through the rifts of
-the clouds. Holmes drove in silence, with his head sunk upon his
-breast, and the air of a man who is lost in thought, while I sat
-beside him, curious to learn what this new quest might be which
-seemed to tax his powers so sorely, and yet afraid to break in
-upon the current of his thoughts. We had driven several miles,
-and were beginning to get to the fringe of the belt of suburban
-villas, when he shook himself, shrugged his shoulders, and lit up
-his pipe with the air of a man who has satisfied himself that he
-is acting for the best.
-
-"You have a grand gift of silence, Watson," said he. "It makes
-you quite invaluable as a companion. 'Pon my word, it is a great
-thing for me to have someone to talk to, for my own thoughts are
-not over-pleasant. I was wondering what I should say to this dear
-little woman to-night when she meets me at the door."
-
-"You forget that I know nothing about it."
-
-"I shall just have time to tell you the facts of the case before
-we get to Lee. It seems absurdly simple, and yet, somehow I can
-get nothing to go upon. There's plenty of thread, no doubt, but I
-can't get the end of it into my hand. Now, I'll state the case
-clearly and concisely to you, Watson, and maybe you can see a
-spark where all is dark to me."
-
-"Proceed, then."
-
-"Some years ago--to be definite, in May, 1884--there came to Lee
-a gentleman, Neville St. Clair by name, who appeared to have
-plenty of money. He took a large villa, laid out the grounds very
-nicely, and lived generally in good style. By degrees he made
-friends in the neighbourhood, and in 1887 he married the daughter
-of a local brewer, by whom he now has two children. He had no
-occupation, but was interested in several companies and went into
-town as a rule in the morning, returning by the 5:14 from Cannon
-Street every night. Mr. St. Clair is now thirty-seven years of
-age, is a man of temperate habits, a good husband, a very
-affectionate father, and a man who is popular with all who know
-him. I may add that his whole debts at the present moment, as far
-as we have been able to ascertain, amount to 88 pounds 10s., while
-he has 220 pounds standing to his credit in the Capital and
-Counties Bank. There is no reason, therefore, to think that money
-troubles have been weighing upon his mind.
-
-"Last Monday Mr. Neville St. Clair went into town rather earlier
-than usual, remarking before he started that he had two important
-commissions to perform, and that he would bring his little boy
-home a box of bricks. Now, by the merest chance, his wife
-received a telegram upon this same Monday, very shortly after his
-departure, to the effect that a small parcel of considerable
-value which she had been expecting was waiting for her at the
-offices of the Aberdeen Shipping Company. Now, if you are well up
-in your London, you will know that the office of the company is
-in Fresno Street, which branches out of Upper Swandam Lane, where
-you found me to-night. Mrs. St. Clair had her lunch, started for
-the City, did some shopping, proceeded to the company's office,
-got her packet, and found herself at exactly 4:35 walking through
-Swandam Lane on her way back to the station. Have you followed me
-so far?"
-
-"It is very clear."
-
-"If you remember, Monday was an exceedingly hot day, and Mrs. St.
-Clair walked slowly, glancing about in the hope of seeing a cab,
-as she did not like the neighbourhood in which she found herself.
-While she was walking in this way down Swandam Lane, she suddenly
-heard an ejaculation or cry, and was struck cold to see her
-husband looking down at her and, as it seemed to her, beckoning
-to her from a second-floor window. The window was open, and she
-distinctly saw his face, which she describes as being terribly
-agitated. He waved his hands frantically to her, and then
-vanished from the window so suddenly that it seemed to her that
-he had been plucked back by some irresistible force from behind.
-One singular point which struck her quick feminine eye was that
-although he wore some dark coat, such as he had started to town
-in, he had on neither collar nor necktie.
-
-"Convinced that something was amiss with him, she rushed down the
-steps--for the house was none other than the opium den in which
-you found me to-night--and running through the front room she
-attempted to ascend the stairs which led to the first floor. At
-the foot of the stairs, however, she met this Lascar scoundrel of
-whom I have spoken, who thrust her back and, aided by a Dane, who
-acts as assistant there, pushed her out into the street. Filled
-with the most maddening doubts and fears, she rushed down the
-lane and, by rare good-fortune, met in Fresno Street a number of
-constables with an inspector, all on their way to their beat. The
-inspector and two men accompanied her back, and in spite of the
-continued resistance of the proprietor, they made their way to
-the room in which Mr. St. Clair had last been seen. There was no
-sign of him there. In fact, in the whole of that floor there was
-no one to be found save a crippled wretch of hideous aspect, who,
-it seems, made his home there. Both he and the Lascar stoutly
-swore that no one else had been in the front room during the
-afternoon. So determined was their denial that the inspector was
-staggered, and had almost come to believe that Mrs. St. Clair had
-been deluded when, with a cry, she sprang at a small deal box
-which lay upon the table and tore the lid from it. Out there fell
-a cascade of children's bricks. It was the toy which he had
-promised to bring home.
-
-"This discovery, and the evident confusion which the cripple
-showed, made the inspector realise that the matter was serious.
-The rooms were carefully examined, and results all pointed to an
-abominable crime. The front room was plainly furnished as a
-sitting-room and led into a small bedroom, which looked out upon
-the back of one of the wharves. Between the wharf and the bedroom
-window is a narrow strip, which is dry at low tide but is covered
-at high tide with at least four and a half feet of water. The
-bedroom window was a broad one and opened from below. On
-examination traces of blood were to be seen upon the windowsill,
-and several scattered drops were visible upon the wooden floor of
-the bedroom. Thrust away behind a curtain in the front room were
-all the clothes of Mr. Neville St. Clair, with the exception of
-his coat. His boots, his socks, his hat, and his watch--all were
-there. There were no signs of violence upon any of these
-garments, and there were no other traces of Mr. Neville St.
-Clair. Out of the window he must apparently have gone for no
-other exit could be discovered, and the ominous bloodstains upon
-the sill gave little promise that he could save himself by
-swimming, for the tide was at its very highest at the moment of
-the tragedy.
-
-"And now as to the villains who seemed to be immediately
-implicated in the matter. The Lascar was known to be a man of the
-vilest antecedents, but as, by Mrs. St. Clair's story, he was
-known to have been at the foot of the stair within a very few
-seconds of her husband's appearance at the window, he could
-hardly have been more than an accessory to the crime. His defence
-was one of absolute ignorance, and he protested that he had no
-knowledge as to the doings of Hugh Boone, his lodger, and that he
-could not account in any way for the presence of the missing
-gentleman's clothes.
-
-"So much for the Lascar manager. Now for the sinister cripple who
-lives upon the second floor of the opium den, and who was
-certainly the last human being whose eyes rested upon Neville St.
-Clair. His name is Hugh Boone, and his hideous face is one which
-is familiar to every man who goes much to the City. He is a
-professional beggar, though in order to avoid the police
-regulations he pretends to a small trade in wax vestas. Some
-little distance down Threadneedle Street, upon the left-hand
-side, there is, as you may have remarked, a small angle in the
-wall. Here it is that this creature takes his daily seat,
-cross-legged with his tiny stock of matches on his lap, and as he
-is a piteous spectacle a small rain of charity descends into the
-greasy leather cap which lies upon the pavement beside him. I
-have watched the fellow more than once before ever I thought of
-making his professional acquaintance, and I have been surprised
-at the harvest which he has reaped in a short time. His
-appearance, you see, is so remarkable that no one can pass him
-without observing him. A shock of orange hair, a pale face
-disfigured by a horrible scar, which, by its contraction, has
-turned up the outer edge of his upper lip, a bulldog chin, and a
-pair of very penetrating dark eyes, which present a singular
-contrast to the colour of his hair, all mark him out from amid
-the common crowd of mendicants and so, too, does his wit, for he
-is ever ready with a reply to any piece of chaff which may be
-thrown at him by the passers-by. This is the man whom we now
-learn to have been the lodger at the opium den, and to have been
-the last man to see the gentleman of whom we are in quest."
-
-"But a cripple!" said I. "What could he have done single-handed
-against a man in the prime of life?"
-
-"He is a cripple in the sense that he walks with a limp; but in
-other respects he appears to be a powerful and well-nurtured man.
-Surely your medical experience would tell you, Watson, that
-weakness in one limb is often compensated for by exceptional
-strength in the others."
-
-"Pray continue your narrative."
-
-"Mrs. St. Clair had fainted at the sight of the blood upon the
-window, and she was escorted home in a cab by the police, as her
-presence could be of no help to them in their investigations.
-Inspector Barton, who had charge of the case, made a very careful
-examination of the premises, but without finding anything which
-threw any light upon the matter. One mistake had been made in not
-arresting Boone instantly, as he was allowed some few minutes
-during which he might have communicated with his friend the
-Lascar, but this fault was soon remedied, and he was seized and
-searched, without anything being found which could incriminate
-him. There were, it is true, some blood-stains upon his right
-shirt-sleeve, but he pointed to his ring-finger, which had been
-cut near the nail, and explained that the bleeding came from
-there, adding that he had been to the window not long before, and
-that the stains which had been observed there came doubtless from
-the same source. He denied strenuously having ever seen Mr.
-Neville St. Clair and swore that the presence of the clothes in
-his room was as much a mystery to him as to the police. As to
-Mrs. St. Clair's assertion that she had actually seen her husband
-at the window, he declared that she must have been either mad or
-dreaming. He was removed, loudly protesting, to the
-police-station, while the inspector remained upon the premises in
-the hope that the ebbing tide might afford some fresh clue.
-
-"And it did, though they hardly found upon the mud-bank what they
-had feared to find. It was Neville St. Clair's coat, and not
-Neville St. Clair, which lay uncovered as the tide receded. And
-what do you think they found in the pockets?"
-
-"I cannot imagine."
-
-"No, I don't think you would guess. Every pocket stuffed with
-pennies and half-pennies--421 pennies and 270 half-pennies. It
-was no wonder that it had not been swept away by the tide. But a
-human body is a different matter. There is a fierce eddy between
-the wharf and the house. It seemed likely enough that the
-weighted coat had remained when the stripped body had been sucked
-away into the river."
-
-"But I understand that all the other clothes were found in the
-room. Would the body be dressed in a coat alone?"
-
-"No, sir, but the facts might be met speciously enough. Suppose
-that this man Boone had thrust Neville St. Clair through the
-window, there is no human eye which could have seen the deed.
-What would he do then? It would of course instantly strike him
-that he must get rid of the tell-tale garments. He would seize
-the coat, then, and be in the act of throwing it out, when it
-would occur to him that it would swim and not sink. He has little
-time, for he has heard the scuffle downstairs when the wife tried
-to force her way up, and perhaps he has already heard from his
-Lascar confederate that the police are hurrying up the street.
-There is not an instant to be lost. He rushes to some secret
-hoard, where he has accumulated the fruits of his beggary, and he
-stuffs all the coins upon which he can lay his hands into the
-pockets to make sure of the coat's sinking. He throws it out, and
-would have done the same with the other garments had not he heard
-the rush of steps below, and only just had time to close the
-window when the police appeared."
-
-"It certainly sounds feasible."
-
-"Well, we will take it as a working hypothesis for want of a
-better. Boone, as I have told you, was arrested and taken to the
-station, but it could not be shown that there had ever before
-been anything against him. He had for years been known as a
-professional beggar, but his life appeared to have been a very
-quiet and innocent one. There the matter stands at present, and
-the questions which have to be solved--what Neville St. Clair was
-doing in the opium den, what happened to him when there, where is
-he now, and what Hugh Boone had to do with his disappearance--are
-all as far from a solution as ever. I confess that I cannot
-recall any case within my experience which looked at the first
-glance so simple and yet which presented such difficulties."
-
-While Sherlock Holmes had been detailing this singular series of
-events, we had been whirling through the outskirts of the great
-town until the last straggling houses had been left behind, and
-we rattled along with a country hedge upon either side of us.
-Just as he finished, however, we drove through two scattered
-villages, where a few lights still glimmered in the windows.
-
-"We are on the outskirts of Lee," said my companion. "We have
-touched on three English counties in our short drive, starting in
-Middlesex, passing over an angle of Surrey, and ending in Kent.
-See that light among the trees? That is The Cedars, and beside
-that lamp sits a woman whose anxious ears have already, I have
-little doubt, caught the clink of our horse's feet."
-
-"But why are you not conducting the case from Baker Street?" I
-asked.
-
-"Because there are many inquiries which must be made out here.
-Mrs. St. Clair has most kindly put two rooms at my disposal, and
-you may rest assured that she will have nothing but a welcome for
-my friend and colleague. I hate to meet her, Watson, when I have
-no news of her husband. Here we are. Whoa, there, whoa!"
-
-We had pulled up in front of a large villa which stood within its
-own grounds. A stable-boy had run out to the horse's head, and
-springing down, I followed Holmes up the small, winding
-gravel-drive which led to the house. As we approached, the door
-flew open, and a little blonde woman stood in the opening, clad
-in some sort of light mousseline de soie, with a touch of fluffy
-pink chiffon at her neck and wrists. She stood with her figure
-outlined against the flood of light, one hand upon the door, one
-half-raised in her eagerness, her body slightly bent, her head
-and face protruded, with eager eyes and parted lips, a standing
-question.
-
-"Well?" she cried, "well?" And then, seeing that there were two
-of us, she gave a cry of hope which sank into a groan as she saw
-that my companion shook his head and shrugged his shoulders.
-
-"No good news?"
-
-"None."
-
-"No bad?"
-
-"No."
-
-"Thank God for that. But come in. You must be weary, for you have
-had a long day."
-
-"This is my friend, Dr. Watson. He has been of most vital use to
-me in several of my cases, and a lucky chance has made it
-possible for me to bring him out and associate him with this
-investigation."
-
-"I am delighted to see you," said she, pressing my hand warmly.
-"You will, I am sure, forgive anything that may be wanting in our
-arrangements, when you consider the blow which has come so
-suddenly upon us."
-
-"My dear madam," said I, "I am an old campaigner, and if I were
-not I can very well see that no apology is needed. If I can be of
-any assistance, either to you or to my friend here, I shall be
-indeed happy."
-
-"Now, Mr. Sherlock Holmes," said the lady as we entered a
-well-lit dining-room, upon the table of which a cold supper had
-been laid out, "I should very much like to ask you one or two
-plain questions, to which I beg that you will give a plain
-answer."
-
-"Certainly, madam."
-
-"Do not trouble about my feelings. I am not hysterical, nor given
-to fainting. I simply wish to hear your real, real opinion."
-
-"Upon what point?"
-
-"In your heart of hearts, do you think that Neville is alive?"
-
-Sherlock Holmes seemed to be embarrassed by the question.
-"Frankly, now!" she repeated, standing upon the rug and looking
-keenly down at him as he leaned back in a basket-chair.
-
-"Frankly, then, madam, I do not."
-
-"You think that he is dead?"
-
-"I do."
-
-"Murdered?"
-
-"I don't say that. Perhaps."
-
-"And on what day did he meet his death?"
-
-"On Monday."
-
-"Then perhaps, Mr. Holmes, you will be good enough to explain how
-it is that I have received a letter from him to-day."
-
-Sherlock Holmes sprang out of his chair as if he had been
-galvanised.
-
-"What!" he roared.
-
-"Yes, to-day." She stood smiling, holding up a little slip of
-paper in the air.
-
-"May I see it?"
-
-"Certainly."
-
-He snatched it from her in his eagerness, and smoothing it out
-upon the table he drew over the lamp and examined it intently. I
-had left my chair and was gazing at it over his shoulder. The
-envelope was a very coarse one and was stamped with the Gravesend
-postmark and with the date of that very day, or rather of the day
-before, for it was considerably after midnight.
-
-"Coarse writing," murmured Holmes. "Surely this is not your
-husband's writing, madam."
-
-"No, but the enclosure is."
-
-"I perceive also that whoever addressed the envelope had to go
-and inquire as to the address."
-
-"How can you tell that?"
-
-"The name, you see, is in perfectly black ink, which has dried
-itself. The rest is of the greyish colour, which shows that
-blotting-paper has been used. If it had been written straight
-off, and then blotted, none would be of a deep black shade. This
-man has written the name, and there has then been a pause before
-he wrote the address, which can only mean that he was not
-familiar with it. It is, of course, a trifle, but there is
-nothing so important as trifles. Let us now see the letter. Ha!
-there has been an enclosure here!"
-
-"Yes, there was a ring. His signet-ring."
-
-"And you are sure that this is your husband's hand?"
-
-"One of his hands."
-
-"One?"
-
-"His hand when he wrote hurriedly. It is very unlike his usual
-writing, and yet I know it well."
-
-"'Dearest do not be frightened. All will come well. There is a
-huge error which it may take some little time to rectify.
-Wait in patience.--NEVILLE.' Written in pencil upon the fly-leaf
-of a book, octavo size, no water-mark. Hum! Posted to-day in
-Gravesend by a man with a dirty thumb. Ha! And the flap has been
-gummed, if I am not very much in error, by a person who had been
-chewing tobacco. And you have no doubt that it is your husband's
-hand, madam?"
-
-"None. Neville wrote those words."
-
-"And they were posted to-day at Gravesend. Well, Mrs. St. Clair,
-the clouds lighten, though I should not venture to say that the
-danger is over."
-
-"But he must be alive, Mr. Holmes."
-
-"Unless this is a clever forgery to put us on the wrong scent.
-The ring, after all, proves nothing. It may have been taken from
-him."
-
-"No, no; it is, it is his very own writing!"
-
-"Very well. It may, however, have been written on Monday and only
-posted to-day."
-
-"That is possible."
-
-"If so, much may have happened between."
-
-"Oh, you must not discourage me, Mr. Holmes. I know that all is
-well with him. There is so keen a sympathy between us that I
-should know if evil came upon him. On the very day that I saw him
-last he cut himself in the bedroom, and yet I in the dining-room
-rushed upstairs instantly with the utmost certainty that
-something had happened. Do you think that I would respond to such
-a trifle and yet be ignorant of his death?"
-
-"I have seen too much not to know that the impression of a woman
-may be more valuable than the conclusion of an analytical
-reasoner. And in this letter you certainly have a very strong
-piece of evidence to corroborate your view. But if your husband
-is alive and able to write letters, why should he remain away
-from you?"
-
-"I cannot imagine. It is unthinkable."
-
-"And on Monday he made no remarks before leaving you?"
-
-"No."
-
-"And you were surprised to see him in Swandam Lane?"
-
-"Very much so."
-
-"Was the window open?"
-
-"Yes."
-
-"Then he might have called to you?"
-
-"He might."
-
-"He only, as I understand, gave an inarticulate cry?"
-
-"Yes."
-
-"A call for help, you thought?"
-
-"Yes. He waved his hands."
-
-"But it might have been a cry of surprise. Astonishment at the
-unexpected sight of you might cause him to throw up his hands?"
-
-"It is possible."
-
-"And you thought he was pulled back?"
-
-"He disappeared so suddenly."
-
-"He might have leaped back. You did not see anyone else in the
-room?"
-
-"No, but this horrible man confessed to having been there, and
-the Lascar was at the foot of the stairs."
-
-"Quite so. Your husband, as far as you could see, had his
-ordinary clothes on?"
-
-"But without his collar or tie. I distinctly saw his bare
-throat."
-
-"Had he ever spoken of Swandam Lane?"
-
-"Never."
-
-"Had he ever showed any signs of having taken opium?"
-
-"Never."
-
-"Thank you, Mrs. St. Clair. Those are the principal points about
-which I wished to be absolutely clear. We shall now have a little
-supper and then retire, for we may have a very busy day
-to-morrow."
-
-A large and comfortable double-bedded room had been placed at our
-disposal, and I was quickly between the sheets, for I was weary
-after my night of adventure. Sherlock Holmes was a man, however,
-who, when he had an unsolved problem upon his mind, would go for
-days, and even for a week, without rest, turning it over,
-rearranging his facts, looking at it from every point of view
-until he had either fathomed it or convinced himself that his
-data were insufficient. It was soon evident to me that he was now
-preparing for an all-night sitting. He took off his coat and
-waistcoat, put on a large blue dressing-gown, and then wandered
-about the room collecting pillows from his bed and cushions from
-the sofa and armchairs. With these he constructed a sort of
-Eastern divan, upon which he perched himself cross-legged, with
-an ounce of shag tobacco and a box of matches laid out in front
-of him. In the dim light of the lamp I saw him sitting there, an
-old briar pipe between his lips, his eyes fixed vacantly upon the
-corner of the ceiling, the blue smoke curling up from him,
-silent, motionless, with the light shining upon his strong-set
-aquiline features. So he sat as I dropped off to sleep, and so he
-sat when a sudden ejaculation caused me to wake up, and I found
-the summer sun shining into the apartment. The pipe was still
-between his lips, the smoke still curled upward, and the room was
-full of a dense tobacco haze, but nothing remained of the heap of
-shag which I had seen upon the previous night.
-
-"Awake, Watson?" he asked.
-
-"Yes."
-
-"Game for a morning drive?"
-
-"Certainly."
-
-"Then dress. No one is stirring yet, but I know where the
-stable-boy sleeps, and we shall soon have the trap out." He
-chuckled to himself as he spoke, his eyes twinkled, and he seemed
-a different man to the sombre thinker of the previous night.
-
-As I dressed I glanced at my watch. It was no wonder that no one
-was stirring. It was twenty-five minutes past four. I had hardly
-finished when Holmes returned with the news that the boy was
-putting in the horse.
-
-"I want to test a little theory of mine," said he, pulling on his
-boots. "I think, Watson, that you are now standing in the
-presence of one of the most absolute fools in Europe. I deserve
-to be kicked from here to Charing Cross. But I think I have the
-key of the affair now."
-
-"And where is it?" I asked, smiling.
-
-"In the bathroom," he answered. "Oh, yes, I am not joking," he
-continued, seeing my look of incredulity. "I have just been
-there, and I have taken it out, and I have got it in this
-Gladstone bag. Come on, my boy, and we shall see whether it will
-not fit the lock."
-
-We made our way downstairs as quietly as possible, and out into
-the bright morning sunshine. In the road stood our horse and
-trap, with the half-clad stable-boy waiting at the head. We both
-sprang in, and away we dashed down the London Road. A few country
-carts were stirring, bearing in vegetables to the metropolis, but
-the lines of villas on either side were as silent and lifeless as
-some city in a dream.
-
-"It has been in some points a singular case," said Holmes,
-flicking the horse on into a gallop. "I confess that I have been
-as blind as a mole, but it is better to learn wisdom late than
-never to learn it at all."
-
-In town the earliest risers were just beginning to look sleepily
-from their windows as we drove through the streets of the Surrey
-side. Passing down the Waterloo Bridge Road we crossed over the
-river, and dashing up Wellington Street wheeled sharply to the
-right and found ourselves in Bow Street. Sherlock Holmes was well
-known to the force, and the two constables at the door saluted
-him. One of them held the horse's head while the other led us in.
-
-"Who is on duty?" asked Holmes.
-
-"Inspector Bradstreet, sir."
-
-"Ah, Bradstreet, how are you?" A tall, stout official had come
-down the stone-flagged passage, in a peaked cap and frogged
-jacket. "I wish to have a quiet word with you, Bradstreet."
-"Certainly, Mr. Holmes. Step into my room here." It was a small,
-office-like room, with a huge ledger upon the table, and a
-telephone projecting from the wall. The inspector sat down at his
-desk.
-
-"What can I do for you, Mr. Holmes?"
-
-"I called about that beggarman, Boone--the one who was charged
-with being concerned in the disappearance of Mr. Neville St.
-Clair, of Lee."
-
-"Yes. He was brought up and remanded for further inquiries."
-
-"So I heard. You have him here?"
-
-"In the cells."
-
-"Is he quiet?"
-
-"Oh, he gives no trouble. But he is a dirty scoundrel."
-
-"Dirty?"
-
-"Yes, it is all we can do to make him wash his hands, and his
-face is as black as a tinker's. Well, when once his case has been
-settled, he will have a regular prison bath; and I think, if you
-saw him, you would agree with me that he needed it."
-
-"I should like to see him very much."
-
-"Would you? That is easily done. Come this way. You can leave
-your bag."
-
-"No, I think that I'll take it."
-
-"Very good. Come this way, if you please." He led us down a
-passage, opened a barred door, passed down a winding stair, and
-brought us to a whitewashed corridor with a line of doors on each
-side.
-
-"The third on the right is his," said the inspector. "Here it
-is!" He quietly shot back a panel in the upper part of the door
-and glanced through.
-
-"He is asleep," said he. "You can see him very well."
-
-We both put our eyes to the grating. The prisoner lay with his
-face towards us, in a very deep sleep, breathing slowly and
-heavily. He was a middle-sized man, coarsely clad as became his
-calling, with a coloured shirt protruding through the rent in his
-tattered coat. He was, as the inspector had said, extremely
-dirty, but the grime which covered his face could not conceal its
-repulsive ugliness. A broad wheal from an old scar ran right
-across it from eye to chin, and by its contraction had turned up
-one side of the upper lip, so that three teeth were exposed in a
-perpetual snarl. A shock of very bright red hair grew low over
-his eyes and forehead.
-
-"He's a beauty, isn't he?" said the inspector.
-
-"He certainly needs a wash," remarked Holmes. "I had an idea that
-he might, and I took the liberty of bringing the tools with me."
-He opened the Gladstone bag as he spoke, and took out, to my
-astonishment, a very large bath-sponge.
-
-"He! he! You are a funny one," chuckled the inspector.
-
-"Now, if you will have the great goodness to open that door very
-quietly, we will soon make him cut a much more respectable
-figure."
-
-"Well, I don't know why not," said the inspector. "He doesn't
-look a credit to the Bow Street cells, does he?" He slipped his
-key into the lock, and we all very quietly entered the cell. The
-sleeper half turned, and then settled down once more into a deep
-slumber. Holmes stooped to the water-jug, moistened his sponge,
-and then rubbed it twice vigorously across and down the
-prisoner's face.
-
-"Let me introduce you," he shouted, "to Mr. Neville St. Clair, of
-Lee, in the county of Kent."
-
-Never in my life have I seen such a sight. The man's face peeled
-off under the sponge like the bark from a tree. Gone was the
-coarse brown tint! Gone, too, was the horrid scar which had
-seamed it across, and the twisted lip which had given the
-repulsive sneer to the face! A twitch brought away the tangled
-red hair, and there, sitting up in his bed, was a pale,
-sad-faced, refined-looking man, black-haired and smooth-skinned,
-rubbing his eyes and staring about him with sleepy bewilderment.
-Then suddenly realising the exposure, he broke into a scream and
-threw himself down with his face to the pillow.
-
-"Great heavens!" cried the inspector, "it is, indeed, the missing
-man. I know him from the photograph."
-
-The prisoner turned with the reckless air of a man who abandons
-himself to his destiny. "Be it so," said he. "And pray what am I
-charged with?"
-
-"With making away with Mr. Neville St.-- Oh, come, you can't be
-charged with that unless they make a case of attempted suicide of
-it," said the inspector with a grin. "Well, I have been
-twenty-seven years in the force, but this really takes the cake."
-
-"If I am Mr. Neville St. Clair, then it is obvious that no crime
-has been committed, and that, therefore, I am illegally
-detained."
-
-"No crime, but a very great error has been committed," said
-Holmes. "You would have done better to have trusted your wife."
-
-"It was not the wife; it was the children," groaned the prisoner.
-"God help me, I would not have them ashamed of their father. My
-God! What an exposure! What can I do?"
-
-Sherlock Holmes sat down beside him on the couch and patted him
-kindly on the shoulder.
-
-"If you leave it to a court of law to clear the matter up," said
-he, "of course you can hardly avoid publicity. On the other hand,
-if you convince the police authorities that there is no possible
-case against you, I do not know that there is any reason that the
-details should find their way into the papers. Inspector
-Bradstreet would, I am sure, make notes upon anything which you
-might tell us and submit it to the proper authorities. The case
-would then never go into court at all."
-
-"God bless you!" cried the prisoner passionately. "I would have
-endured imprisonment, ay, even execution, rather than have left
-my miserable secret as a family blot to my children.
-
-"You are the first who have ever heard my story. My father was a
-schoolmaster in Chesterfield, where I received an excellent
-education. I travelled in my youth, took to the stage, and
-finally became a reporter on an evening paper in London. One day
-my editor wished to have a series of articles upon begging in the
-metropolis, and I volunteered to supply them. There was the point
-from which all my adventures started. It was only by trying
-begging as an amateur that I could get the facts upon which to
-base my articles. When an actor I had, of course, learned all the
-secrets of making up, and had been famous in the green-room for
-my skill. I took advantage now of my attainments. I painted my
-face, and to make myself as pitiable as possible I made a good
-scar and fixed one side of my lip in a twist by the aid of a
-small slip of flesh-coloured plaster. Then with a red head of
-hair, and an appropriate dress, I took my station in the business
-part of the city, ostensibly as a match-seller but really as a
-beggar. For seven hours I plied my trade, and when I returned
-home in the evening I found to my surprise that I had received no
-less than 26s. 4d.
-
-"I wrote my articles and thought little more of the matter until,
-some time later, I backed a bill for a friend and had a writ
-served upon me for 25 pounds. I was at my wit's end where to get
-the money, but a sudden idea came to me. I begged a fortnight's
-grace from the creditor, asked for a holiday from my employers,
-and spent the time in begging in the City under my disguise. In
-ten days I had the money and had paid the debt.
-
-"Well, you can imagine how hard it was to settle down to arduous
-work at 2 pounds a week when I knew that I could earn as much in
-a day by smearing my face with a little paint, laying my cap on
-the ground, and sitting still. It was a long fight between my
-pride and the money, but the dollars won at last, and I threw up
-reporting and sat day after day in the corner which I had first
-chosen, inspiring pity by my ghastly face and filling my pockets
-with coppers. Only one man knew my secret. He was the keeper of a
-low den in which I used to lodge in Swandam Lane, where I could
-every morning emerge as a squalid beggar and in the evenings
-transform myself into a well-dressed man about town. This fellow,
-a Lascar, was well paid by me for his rooms, so that I knew that
-my secret was safe in his possession.
-
-"Well, very soon I found that I was saving considerable sums of
-money. I do not mean that any beggar in the streets of London
-could earn 700 pounds a year--which is less than my average
-takings--but I had exceptional advantages in my power of making
-up, and also in a facility of repartee, which improved by
-practice and made me quite a recognised character in the City.
-All day a stream of pennies, varied by silver, poured in upon me,
-and it was a very bad day in which I failed to take 2 pounds.
-
-"As I grew richer I grew more ambitious, took a house in the
-country, and eventually married, without anyone having a
-suspicion as to my real occupation. My dear wife knew that I had
-business in the City. She little knew what.
-
-"Last Monday I had finished for the day and was dressing in my
-room above the opium den when I looked out of my window and saw,
-to my horror and astonishment, that my wife was standing in the
-street, with her eyes fixed full upon me. I gave a cry of
-surprise, threw up my arms to cover my face, and, rushing to my
-confidant, the Lascar, entreated him to prevent anyone from
-coming up to me. I heard her voice downstairs, but I knew that
-she could not ascend. Swiftly I threw off my clothes, pulled on
-those of a beggar, and put on my pigments and wig. Even a wife's
-eyes could not pierce so complete a disguise. But then it
-occurred to me that there might be a search in the room, and that
-the clothes might betray me. I threw open the window, reopening
-by my violence a small cut which I had inflicted upon myself in
-the bedroom that morning. Then I seized my coat, which was
-weighted by the coppers which I had just transferred to it from
-the leather bag in which I carried my takings. I hurled it out of
-the window, and it disappeared into the Thames. The other clothes
-would have followed, but at that moment there was a rush of
-constables up the stair, and a few minutes after I found, rather,
-I confess, to my relief, that instead of being identified as Mr.
-Neville St. Clair, I was arrested as his murderer.
-
-"I do not know that there is anything else for me to explain. I
-was determined to preserve my disguise as long as possible, and
-hence my preference for a dirty face. Knowing that my wife would
-be terribly anxious, I slipped off my ring and confided it to the
-Lascar at a moment when no constable was watching me, together
-with a hurried scrawl, telling her that she had no cause to
-fear."
-
-"That note only reached her yesterday," said Holmes.
-
-"Good God! What a week she must have spent!"
-
-"The police have watched this Lascar," said Inspector Bradstreet,
-"and I can quite understand that he might find it difficult to
-post a letter unobserved. Probably he handed it to some sailor
-customer of his, who forgot all about it for some days."
-
-"That was it," said Holmes, nodding approvingly; "I have no doubt
-of it. But have you never been prosecuted for begging?"
-
-"Many times; but what was a fine to me?"
-
-"It must stop here, however," said Bradstreet. "If the police are
-to hush this thing up, there must be no more of Hugh Boone."
-
-"I have sworn it by the most solemn oaths which a man can take."
-
-"In that case I think that it is probable that no further steps
-may be taken. But if you are found again, then all must come out.
-I am sure, Mr. Holmes, that we are very much indebted to you for
-having cleared the matter up. I wish I knew how you reach your
-results."
-
-"I reached this one," said my friend, "by sitting upon five
-pillows and consuming an ounce of shag. I think, Watson, that if
-we drive to Baker Street we shall just be in time for breakfast."
-
-
-
-VII. THE ADVENTURE OF THE BLUE CARBUNCLE
-
-I had called upon my friend Sherlock Holmes upon the second
-morning after Christmas, with the intention of wishing him the
-compliments of the season. He was lounging upon the sofa in a
-purple dressing-gown, a pipe-rack within his reach upon the
-right, and a pile of crumpled morning papers, evidently newly
-studied, near at hand. Beside the couch was a wooden chair, and
-on the angle of the back hung a very seedy and disreputable
-hard-felt hat, much the worse for wear, and cracked in several
-places. A lens and a forceps lying upon the seat of the chair
-suggested that the hat had been suspended in this manner for the
-purpose of examination.
-
-"You are engaged," said I; "perhaps I interrupt you."
-
-"Not at all. I am glad to have a friend with whom I can discuss
-my results. The matter is a perfectly trivial one"--he jerked his
-thumb in the direction of the old hat--"but there are points in
-connection with it which are not entirely devoid of interest and
-even of instruction."
-
-I seated myself in his armchair and warmed my hands before his
-crackling fire, for a sharp frost had set in, and the windows
-were thick with the ice crystals. "I suppose," I remarked, "that,
-homely as it looks, this thing has some deadly story linked on to
-it--that it is the clue which will guide you in the solution of
-some mystery and the punishment of some crime."
-
-"No, no. No crime," said Sherlock Holmes, laughing. "Only one of
-those whimsical little incidents which will happen when you have
-four million human beings all jostling each other within the
-space of a few square miles. Amid the action and reaction of so
-dense a swarm of humanity, every possible combination of events
-may be expected to take place, and many a little problem will be
-presented which may be striking and bizarre without being
-criminal. We have already had experience of such."
-
-"So much so," I remarked, "that of the last six cases which I
-have added to my notes, three have been entirely free of any
-legal crime."
-
-"Precisely. You allude to my attempt to recover the Irene Adler
-papers, to the singular case of Miss Mary Sutherland, and to the
-adventure of the man with the twisted lip. Well, I have no doubt
-that this small matter will fall into the same innocent category.
-You know Peterson, the commissionaire?"
-
-"Yes."
-
-"It is to him that this trophy belongs."
-
-"It is his hat."
-
-"No, no, he found it. Its owner is unknown. I beg that you will
-look upon it not as a battered billycock but as an intellectual
-problem. And, first, as to how it came here. It arrived upon
-Christmas morning, in company with a good fat goose, which is, I
-have no doubt, roasting at this moment in front of Peterson's
-fire. The facts are these: about four o'clock on Christmas
-morning, Peterson, who, as you know, is a very honest fellow, was
-returning from some small jollification and was making his way
-homeward down Tottenham Court Road. In front of him he saw, in
-the gaslight, a tallish man, walking with a slight stagger, and
-carrying a white goose slung over his shoulder. As he reached the
-corner of Goodge Street, a row broke out between this stranger
-and a little knot of roughs. One of the latter knocked off the
-man's hat, on which he raised his stick to defend himself and,
-swinging it over his head, smashed the shop window behind him.
-Peterson had rushed forward to protect the stranger from his
-assailants; but the man, shocked at having broken the window, and
-seeing an official-looking person in uniform rushing towards him,
-dropped his goose, took to his heels, and vanished amid the
-labyrinth of small streets which lie at the back of Tottenham
-Court Road. The roughs had also fled at the appearance of
-Peterson, so that he was left in possession of the field of
-battle, and also of the spoils of victory in the shape of this
-battered hat and a most unimpeachable Christmas goose."
-
-"Which surely he restored to their owner?"
-
-"My dear fellow, there lies the problem. It is true that 'For
-Mrs. Henry Baker' was printed upon a small card which was tied to
-the bird's left leg, and it is also true that the initials 'H.
-B.' are legible upon the lining of this hat, but as there are
-some thousands of Bakers, and some hundreds of Henry Bakers in
-this city of ours, it is not easy to restore lost property to any
-one of them."
-
-"What, then, did Peterson do?"
-
-"He brought round both hat and goose to me on Christmas morning,
-knowing that even the smallest problems are of interest to me.
-The goose we retained until this morning, when there were signs
-that, in spite of the slight frost, it would be well that it
-should be eaten without unnecessary delay. Its finder has carried
-it off, therefore, to fulfil the ultimate destiny of a goose,
-while I continue to retain the hat of the unknown gentleman who
-lost his Christmas dinner."
-
-"Did he not advertise?"
-
-"No."
-
-"Then, what clue could you have as to his identity?"
-
-"Only as much as we can deduce."
-
-"From his hat?"
-
-"Precisely."
-
-"But you are joking. What can you gather from this old battered
-felt?"
-
-"Here is my lens. You know my methods. What can you gather
-yourself as to the individuality of the man who has worn this
-article?"
-
-I took the tattered object in my hands and turned it over rather
-ruefully. It was a very ordinary black hat of the usual round
-shape, hard and much the worse for wear. The lining had been of
-red silk, but was a good deal discoloured. There was no maker's
-name; but, as Holmes had remarked, the initials "H. B." were
-scrawled upon one side. It was pierced in the brim for a
-hat-securer, but the elastic was missing. For the rest, it was
-cracked, exceedingly dusty, and spotted in several places,
-although there seemed to have been some attempt to hide the
-discoloured patches by smearing them with ink.
-
-"I can see nothing," said I, handing it back to my friend.
-
-"On the contrary, Watson, you can see everything. You fail,
-however, to reason from what you see. You are too timid in
-drawing your inferences."
-
-"Then, pray tell me what it is that you can infer from this hat?"
-
-He picked it up and gazed at it in the peculiar introspective
-fashion which was characteristic of him. "It is perhaps less
-suggestive than it might have been," he remarked, "and yet there
-are a few inferences which are very distinct, and a few others
-which represent at least a strong balance of probability. That
-the man was highly intellectual is of course obvious upon the
-face of it, and also that he was fairly well-to-do within the
-last three years, although he has now fallen upon evil days. He
-had foresight, but has less now than formerly, pointing to a
-moral retrogression, which, when taken with the decline of his
-fortunes, seems to indicate some evil influence, probably drink,
-at work upon him. This may account also for the obvious fact that
-his wife has ceased to love him."
-
-"My dear Holmes!"
-
-"He has, however, retained some degree of self-respect," he
-continued, disregarding my remonstrance. "He is a man who leads a
-sedentary life, goes out little, is out of training entirely, is
-middle-aged, has grizzled hair which he has had cut within the
-last few days, and which he anoints with lime-cream. These are
-the more patent facts which are to be deduced from his hat. Also,
-by the way, that it is extremely improbable that he has gas laid
-on in his house."
-
-"You are certainly joking, Holmes."
-
-"Not in the least. Is it possible that even now, when I give you
-these results, you are unable to see how they are attained?"
-
-"I have no doubt that I am very stupid, but I must confess that I
-am unable to follow you. For example, how did you deduce that
-this man was intellectual?"
-
-For answer Holmes clapped the hat upon his head. It came right
-over the forehead and settled upon the bridge of his nose. "It is
-a question of cubic capacity," said he; "a man with so large a
-brain must have something in it."
-
-"The decline of his fortunes, then?"
-
-"This hat is three years old. These flat brims curled at the edge
-came in then. It is a hat of the very best quality. Look at the
-band of ribbed silk and the excellent lining. If this man could
-afford to buy so expensive a hat three years ago, and has had no
-hat since, then he has assuredly gone down in the world."
-
-"Well, that is clear enough, certainly. But how about the
-foresight and the moral retrogression?"
-
-Sherlock Holmes laughed. "Here is the foresight," said he putting
-his finger upon the little disc and loop of the hat-securer.
-"They are never sold upon hats. If this man ordered one, it is a
-sign of a certain amount of foresight, since he went out of his
-way to take this precaution against the wind. But since we see
-that he has broken the elastic and has not troubled to replace
-it, it is obvious that he has less foresight now than formerly,
-which is a distinct proof of a weakening nature. On the other
-hand, he has endeavoured to conceal some of these stains upon the
-felt by daubing them with ink, which is a sign that he has not
-entirely lost his self-respect."
-
-"Your reasoning is certainly plausible."
-
-"The further points, that he is middle-aged, that his hair is
-grizzled, that it has been recently cut, and that he uses
-lime-cream, are all to be gathered from a close examination of the
-lower part of the lining. The lens discloses a large number of
-hair-ends, clean cut by the scissors of the barber. They all
-appear to be adhesive, and there is a distinct odour of
-lime-cream. This dust, you will observe, is not the gritty, grey
-dust of the street but the fluffy brown dust of the house,
-showing that it has been hung up indoors most of the time, while
-the marks of moisture upon the inside are proof positive that the
-wearer perspired very freely, and could therefore, hardly be in
-the best of training."
-
-"But his wife--you said that she had ceased to love him."
-
-"This hat has not been brushed for weeks. When I see you, my dear
-Watson, with a week's accumulation of dust upon your hat, and
-when your wife allows you to go out in such a state, I shall fear
-that you also have been unfortunate enough to lose your wife's
-affection."
-
-"But he might be a bachelor."
-
-"Nay, he was bringing home the goose as a peace-offering to his
-wife. Remember the card upon the bird's leg."
-
-"You have an answer to everything. But how on earth do you deduce
-that the gas is not laid on in his house?"
-
-"One tallow stain, or even two, might come by chance; but when I
-see no less than five, I think that there can be little doubt
-that the individual must be brought into frequent contact with
-burning tallow--walks upstairs at night probably with his hat in
-one hand and a guttering candle in the other. Anyhow, he never
-got tallow-stains from a gas-jet. Are you satisfied?"
-
-"Well, it is very ingenious," said I, laughing; "but since, as
-you said just now, there has been no crime committed, and no harm
-done save the loss of a goose, all this seems to be rather a
-waste of energy."
-
-Sherlock Holmes had opened his mouth to reply, when the door flew
-open, and Peterson, the commissionaire, rushed into the apartment
-with flushed cheeks and the face of a man who is dazed with
-astonishment.
-
-"The goose, Mr. Holmes! The goose, sir!" he gasped.
-
-"Eh? What of it, then? Has it returned to life and flapped off
-through the kitchen window?" Holmes twisted himself round upon
-the sofa to get a fairer view of the man's excited face.
-
-"See here, sir! See what my wife found in its crop!" He held out
-his hand and displayed upon the centre of the palm a brilliantly
-scintillating blue stone, rather smaller than a bean in size, but
-of such purity and radiance that it twinkled like an electric
-point in the dark hollow of his hand.
-
-Sherlock Holmes sat up with a whistle. "By Jove, Peterson!" said
-he, "this is treasure trove indeed. I suppose you know what you
-have got?"
-
-"A diamond, sir? A precious stone. It cuts into glass as though
-it were putty."
-
-"It's more than a precious stone. It is the precious stone."
-
-"Not the Countess of Morcar's blue carbuncle!" I ejaculated.
-
-"Precisely so. I ought to know its size and shape, seeing that I
-have read the advertisement about it in The Times every day
-lately. It is absolutely unique, and its value can only be
-conjectured, but the reward offered of 1000 pounds is certainly
-not within a twentieth part of the market price."
-
-"A thousand pounds! Great Lord of mercy!" The commissionaire
-plumped down into a chair and stared from one to the other of us.
-
-"That is the reward, and I have reason to know that there are
-sentimental considerations in the background which would induce
-the Countess to part with half her fortune if she could but
-recover the gem."
-
-"It was lost, if I remember aright, at the Hotel Cosmopolitan," I
-remarked.
-
-"Precisely so, on December 22nd, just five days ago. John Horner,
-a plumber, was accused of having abstracted it from the lady's
-jewel-case. The evidence against him was so strong that the case
-has been referred to the Assizes. I have some account of the
-matter here, I believe." He rummaged amid his newspapers,
-glancing over the dates, until at last he smoothed one out,
-doubled it over, and read the following paragraph:
-
-"Hotel Cosmopolitan Jewel Robbery. John Horner, 26, plumber, was
-brought up upon the charge of having upon the 22nd inst.,
-abstracted from the jewel-case of the Countess of Morcar the
-valuable gem known as the blue carbuncle. James Ryder,
-upper-attendant at the hotel, gave his evidence to the effect
-that he had shown Horner up to the dressing-room of the Countess
-of Morcar upon the day of the robbery in order that he might
-solder the second bar of the grate, which was loose. He had
-remained with Horner some little time, but had finally been
-called away. On returning, he found that Horner had disappeared,
-that the bureau had been forced open, and that the small morocco
-casket in which, as it afterwards transpired, the Countess was
-accustomed to keep her jewel, was lying empty upon the
-dressing-table. Ryder instantly gave the alarm, and Horner was
-arrested the same evening; but the stone could not be found
-either upon his person or in his rooms. Catherine Cusack, maid to
-the Countess, deposed to having heard Ryder's cry of dismay on
-discovering the robbery, and to having rushed into the room,
-where she found matters as described by the last witness.
-Inspector Bradstreet, B division, gave evidence as to the arrest
-of Horner, who struggled frantically, and protested his innocence
-in the strongest terms. Evidence of a previous conviction for
-robbery having been given against the prisoner, the magistrate
-refused to deal summarily with the offence, but referred it to
-the Assizes. Horner, who had shown signs of intense emotion
-during the proceedings, fainted away at the conclusion and was
-carried out of court."
-
-"Hum! So much for the police-court," said Holmes thoughtfully,
-tossing aside the paper. "The question for us now to solve is the
-sequence of events leading from a rifled jewel-case at one end to
-the crop of a goose in Tottenham Court Road at the other. You
-see, Watson, our little deductions have suddenly assumed a much
-more important and less innocent aspect. Here is the stone; the
-stone came from the goose, and the goose came from Mr. Henry
-Baker, the gentleman with the bad hat and all the other
-characteristics with which I have bored you. So now we must set
-ourselves very seriously to finding this gentleman and
-ascertaining what part he has played in this little mystery. To
-do this, we must try the simplest means first, and these lie
-undoubtedly in an advertisement in all the evening papers. If
-this fail, I shall have recourse to other methods."
-
-"What will you say?"
-
-"Give me a pencil and that slip of paper. Now, then: 'Found at
-the corner of Goodge Street, a goose and a black felt hat. Mr.
-Henry Baker can have the same by applying at 6:30 this evening at
-221B, Baker Street.' That is clear and concise."
-
-"Very. But will he see it?"
-
-"Well, he is sure to keep an eye on the papers, since, to a poor
-man, the loss was a heavy one. He was clearly so scared by his
-mischance in breaking the window and by the approach of Peterson
-that he thought of nothing but flight, but since then he must
-have bitterly regretted the impulse which caused him to drop his
-bird. Then, again, the introduction of his name will cause him to
-see it, for everyone who knows him will direct his attention to
-it. Here you are, Peterson, run down to the advertising agency
-and have this put in the evening papers."
-
-"In which, sir?"
-
-"Oh, in the Globe, Star, Pall Mall, St. James's, Evening News,
-Standard, Echo, and any others that occur to you."
-
-"Very well, sir. And this stone?"
-
-"Ah, yes, I shall keep the stone. Thank you. And, I say,
-Peterson, just buy a goose on your way back and leave it here
-with me, for we must have one to give to this gentleman in place
-of the one which your family is now devouring."
-
-When the commissionaire had gone, Holmes took up the stone and
-held it against the light. "It's a bonny thing," said he. "Just
-see how it glints and sparkles. Of course it is a nucleus and
-focus of crime. Every good stone is. They are the devil's pet
-baits. In the larger and older jewels every facet may stand for a
-bloody deed. This stone is not yet twenty years old. It was found
-in the banks of the Amoy River in southern China and is remarkable
-in having every characteristic of the carbuncle, save that it is
-blue in shade instead of ruby red. In spite of its youth, it has
-already a sinister history. There have been two murders, a
-vitriol-throwing, a suicide, and several robberies brought about
-for the sake of this forty-grain weight of crystallised charcoal.
-Who would think that so pretty a toy would be a purveyor to the
-gallows and the prison? I'll lock it up in my strong box now and
-drop a line to the Countess to say that we have it."
-
-"Do you think that this man Horner is innocent?"
-
-"I cannot tell."
-
-"Well, then, do you imagine that this other one, Henry Baker, had
-anything to do with the matter?"
-
-"It is, I think, much more likely that Henry Baker is an
-absolutely innocent man, who had no idea that the bird which he
-was carrying was of considerably more value than if it were made
-of solid gold. That, however, I shall determine by a very simple
-test if we have an answer to our advertisement."
-
-"And you can do nothing until then?"
-
-"Nothing."
-
-"In that case I shall continue my professional round. But I shall
-come back in the evening at the hour you have mentioned, for I
-should like to see the solution of so tangled a business."
-
-"Very glad to see you. I dine at seven. There is a woodcock, I
-believe. By the way, in view of recent occurrences, perhaps I
-ought to ask Mrs. Hudson to examine its crop."
-
-I had been delayed at a case, and it was a little after half-past
-six when I found myself in Baker Street once more. As I
-approached the house I saw a tall man in a Scotch bonnet with a
-coat which was buttoned up to his chin waiting outside in the
-bright semicircle which was thrown from the fanlight. Just as I
-arrived the door was opened, and we were shown up together to
-Holmes' room.
-
-"Mr. Henry Baker, I believe," said he, rising from his armchair
-and greeting his visitor with the easy air of geniality which he
-could so readily assume. "Pray take this chair by the fire, Mr.
-Baker. It is a cold night, and I observe that your circulation is
-more adapted for summer than for winter. Ah, Watson, you have
-just come at the right time. Is that your hat, Mr. Baker?"
-
-"Yes, sir, that is undoubtedly my hat."
-
-He was a large man with rounded shoulders, a massive head, and a
-broad, intelligent face, sloping down to a pointed beard of
-grizzled brown. A touch of red in nose and cheeks, with a slight
-tremor of his extended hand, recalled Holmes' surmise as to his
-habits. His rusty black frock-coat was buttoned right up in
-front, with the collar turned up, and his lank wrists protruded
-from his sleeves without a sign of cuff or shirt. He spoke in a
-slow staccato fashion, choosing his words with care, and gave the
-impression generally of a man of learning and letters who had had
-ill-usage at the hands of fortune.
-
-"We have retained these things for some days," said Holmes,
-"because we expected to see an advertisement from you giving your
-address. I am at a loss to know now why you did not advertise."
-
-Our visitor gave a rather shamefaced laugh. "Shillings have not
-been so plentiful with me as they once were," he remarked. "I had
-no doubt that the gang of roughs who assaulted me had carried off
-both my hat and the bird. I did not care to spend more money in a
-hopeless attempt at recovering them."
-
-"Very naturally. By the way, about the bird, we were compelled to
-eat it."
-
-"To eat it!" Our visitor half rose from his chair in his
-excitement.
-
-"Yes, it would have been of no use to anyone had we not done so.
-But I presume that this other goose upon the sideboard, which is
-about the same weight and perfectly fresh, will answer your
-purpose equally well?"
-
-"Oh, certainly, certainly," answered Mr. Baker with a sigh of
-relief.
-
-"Of course, we still have the feathers, legs, crop, and so on of
-your own bird, so if you wish--"
-
-The man burst into a hearty laugh. "They might be useful to me as
-relics of my adventure," said he, "but beyond that I can hardly
-see what use the disjecta membra of my late acquaintance are
-going to be to me. No, sir, I think that, with your permission, I
-will confine my attentions to the excellent bird which I perceive
-upon the sideboard."
-
-Sherlock Holmes glanced sharply across at me with a slight shrug
-of his shoulders.
-
-"There is your hat, then, and there your bird," said he. "By the
-way, would it bore you to tell me where you got the other one
-from? I am somewhat of a fowl fancier, and I have seldom seen a
-better grown goose."
-
-"Certainly, sir," said Baker, who had risen and tucked his newly
-gained property under his arm. "There are a few of us who
-frequent the Alpha Inn, near the Museum--we are to be found in
-the Museum itself during the day, you understand. This year our
-good host, Windigate by name, instituted a goose club, by which,
-on consideration of some few pence every week, we were each to
-receive a bird at Christmas. My pence were duly paid, and the
-rest is familiar to you. I am much indebted to you, sir, for a
-Scotch bonnet is fitted neither to my years nor my gravity." With
-a comical pomposity of manner he bowed solemnly to both of us and
-strode off upon his way.
-
-"So much for Mr. Henry Baker," said Holmes when he had closed the
-door behind him. "It is quite certain that he knows nothing
-whatever about the matter. Are you hungry, Watson?"
-
-"Not particularly."
-
-"Then I suggest that we turn our dinner into a supper and follow
-up this clue while it is still hot."
-
-"By all means."
-
-It was a bitter night, so we drew on our ulsters and wrapped
-cravats about our throats. Outside, the stars were shining coldly
-in a cloudless sky, and the breath of the passers-by blew out
-into smoke like so many pistol shots. Our footfalls rang out
-crisply and loudly as we swung through the doctors' quarter,
-Wimpole Street, Harley Street, and so through Wigmore Street into
-Oxford Street. In a quarter of an hour we were in Bloomsbury at
-the Alpha Inn, which is a small public-house at the corner of one
-of the streets which runs down into Holborn. Holmes pushed open
-the door of the private bar and ordered two glasses of beer from
-the ruddy-faced, white-aproned landlord.
-
-"Your beer should be excellent if it is as good as your geese,"
-said he.
-
-"My geese!" The man seemed surprised.
-
-"Yes. I was speaking only half an hour ago to Mr. Henry Baker,
-who was a member of your goose club."
-
-"Ah! yes, I see. But you see, sir, them's not our geese."
-
-"Indeed! Whose, then?"
-
-"Well, I got the two dozen from a salesman in Covent Garden."
-
-"Indeed? I know some of them. Which was it?"
-
-"Breckinridge is his name."
-
-"Ah! I don't know him. Well, here's your good health landlord,
-and prosperity to your house. Good-night."
-
-"Now for Mr. Breckinridge," he continued, buttoning up his coat
-as we came out into the frosty air. "Remember, Watson that though
-we have so homely a thing as a goose at one end of this chain, we
-have at the other a man who will certainly get seven years' penal
-servitude unless we can establish his innocence. It is possible
-that our inquiry may but confirm his guilt; but, in any case, we
-have a line of investigation which has been missed by the police,
-and which a singular chance has placed in our hands. Let us
-follow it out to the bitter end. Faces to the south, then, and
-quick march!"
-
-We passed across Holborn, down Endell Street, and so through a
-zigzag of slums to Covent Garden Market. One of the largest
-stalls bore the name of Breckinridge upon it, and the proprietor
-a horsey-looking man, with a sharp face and trim side-whiskers was
-helping a boy to put up the shutters.
-
-"Good-evening. It's a cold night," said Holmes.
-
-The salesman nodded and shot a questioning glance at my
-companion.
-
-"Sold out of geese, I see," continued Holmes, pointing at the
-bare slabs of marble.
-
-"Let you have five hundred to-morrow morning."
-
-"That's no good."
-
-"Well, there are some on the stall with the gas-flare."
-
-"Ah, but I was recommended to you."
-
-"Who by?"
-
-"The landlord of the Alpha."
-
-"Oh, yes; I sent him a couple of dozen."
-
-"Fine birds they were, too. Now where did you get them from?"
-
-To my surprise the question provoked a burst of anger from the
-salesman.
-
-"Now, then, mister," said he, with his head cocked and his arms
-akimbo, "what are you driving at? Let's have it straight, now."
-
-"It is straight enough. I should like to know who sold you the
-geese which you supplied to the Alpha."
-
-"Well then, I shan't tell you. So now!"
-
-"Oh, it is a matter of no importance; but I don't know why you
-should be so warm over such a trifle."
-
-"Warm! You'd be as warm, maybe, if you were as pestered as I am.
-When I pay good money for a good article there should be an end
-of the business; but it's 'Where are the geese?' and 'Who did you
-sell the geese to?' and 'What will you take for the geese?' One
-would think they were the only geese in the world, to hear the
-fuss that is made over them."
-
-"Well, I have no connection with any other people who have been
-making inquiries," said Holmes carelessly. "If you won't tell us
-the bet is off, that is all. But I'm always ready to back my
-opinion on a matter of fowls, and I have a fiver on it that the
-bird I ate is country bred."
-
-"Well, then, you've lost your fiver, for it's town bred," snapped
-the salesman.
-
-"It's nothing of the kind."
-
-"I say it is."
-
-"I don't believe it."
-
-"D'you think you know more about fowls than I, who have handled
-them ever since I was a nipper? I tell you, all those birds that
-went to the Alpha were town bred."
-
-"You'll never persuade me to believe that."
-
-"Will you bet, then?"
-
-"It's merely taking your money, for I know that I am right. But
-I'll have a sovereign on with you, just to teach you not to be
-obstinate."
-
-The salesman chuckled grimly. "Bring me the books, Bill," said
-he.
-
-The small boy brought round a small thin volume and a great
-greasy-backed one, laying them out together beneath the hanging
-lamp.
-
-"Now then, Mr. Cocksure," said the salesman, "I thought that I
-was out of geese, but before I finish you'll find that there is
-still one left in my shop. You see this little book?"
-
-"Well?"
-
-"That's the list of the folk from whom I buy. D'you see? Well,
-then, here on this page are the country folk, and the numbers
-after their names are where their accounts are in the big ledger.
-Now, then! You see this other page in red ink? Well, that is a
-list of my town suppliers. Now, look at that third name. Just
-read it out to me."
-
-"Mrs. Oakshott, 117, Brixton Road--249," read Holmes.
-
-"Quite so. Now turn that up in the ledger."
-
-Holmes turned to the page indicated. "Here you are, 'Mrs.
-Oakshott, 117, Brixton Road, egg and poultry supplier.'"
-
-"Now, then, what's the last entry?"
-
-"'December 22nd. Twenty-four geese at 7s. 6d.'"
-
-"Quite so. There you are. And underneath?"
-
-"'Sold to Mr. Windigate of the Alpha, at 12s.'"
-
-"What have you to say now?"
-
-Sherlock Holmes looked deeply chagrined. He drew a sovereign from
-his pocket and threw it down upon the slab, turning away with the
-air of a man whose disgust is too deep for words. A few yards off
-he stopped under a lamp-post and laughed in the hearty, noiseless
-fashion which was peculiar to him.
-
-"When you see a man with whiskers of that cut and the 'Pink 'un'
-protruding out of his pocket, you can always draw him by a bet,"
-said he. "I daresay that if I had put 100 pounds down in front of
-him, that man would not have given me such complete information
-as was drawn from him by the idea that he was doing me on a
-wager. Well, Watson, we are, I fancy, nearing the end of our
-quest, and the only point which remains to be determined is
-whether we should go on to this Mrs. Oakshott to-night, or
-whether we should reserve it for to-morrow. It is clear from what
-that surly fellow said that there are others besides ourselves
-who are anxious about the matter, and I should--"
-
-His remarks were suddenly cut short by a loud hubbub which broke
-out from the stall which we had just left. Turning round we saw a
-little rat-faced fellow standing in the centre of the circle of
-yellow light which was thrown by the swinging lamp, while
-Breckinridge, the salesman, framed in the door of his stall, was
-shaking his fists fiercely at the cringing figure.
-
-"I've had enough of you and your geese," he shouted. "I wish you
-were all at the devil together. If you come pestering me any more
-with your silly talk I'll set the dog at you. You bring Mrs.
-Oakshott here and I'll answer her, but what have you to do with
-it? Did I buy the geese off you?"
-
-"No; but one of them was mine all the same," whined the little
-man.
-
-"Well, then, ask Mrs. Oakshott for it."
-
-"She told me to ask you."
-
-"Well, you can ask the King of Proosia, for all I care. I've had
-enough of it. Get out of this!" He rushed fiercely forward, and
-the inquirer flitted away into the darkness.
-
-"Ha! this may save us a visit to Brixton Road," whispered Holmes.
-"Come with me, and we will see what is to be made of this
-fellow." Striding through the scattered knots of people who
-lounged round the flaring stalls, my companion speedily overtook
-the little man and touched him upon the shoulder. He sprang
-round, and I could see in the gas-light that every vestige of
-colour had been driven from his face.
-
-"Who are you, then? What do you want?" he asked in a quavering
-voice.
-
-"You will excuse me," said Holmes blandly, "but I could not help
-overhearing the questions which you put to the salesman just now.
-I think that I could be of assistance to you."
-
-"You? Who are you? How could you know anything of the matter?"
-
-"My name is Sherlock Holmes. It is my business to know what other
-people don't know."
-
-"But you can know nothing of this?"
-
-"Excuse me, I know everything of it. You are endeavouring to
-trace some geese which were sold by Mrs. Oakshott, of Brixton
-Road, to a salesman named Breckinridge, by him in turn to Mr.
-Windigate, of the Alpha, and by him to his club, of which Mr.
-Henry Baker is a member."
-
-"Oh, sir, you are the very man whom I have longed to meet," cried
-the little fellow with outstretched hands and quivering fingers.
-"I can hardly explain to you how interested I am in this matter."
-
-Sherlock Holmes hailed a four-wheeler which was passing. "In that
-case we had better discuss it in a cosy room rather than in this
-wind-swept market-place," said he. "But pray tell me, before we
-go farther, who it is that I have the pleasure of assisting."
-
-The man hesitated for an instant. "My name is John Robinson," he
-answered with a sidelong glance.
-
-"No, no; the real name," said Holmes sweetly. "It is always
-awkward doing business with an alias."
-
-A flush sprang to the white cheeks of the stranger. "Well then,"
-said he, "my real name is James Ryder."
-
-"Precisely so. Head attendant at the Hotel Cosmopolitan. Pray
-step into the cab, and I shall soon be able to tell you
-everything which you would wish to know."
-
-The little man stood glancing from one to the other of us with
-half-frightened, half-hopeful eyes, as one who is not sure
-whether he is on the verge of a windfall or of a catastrophe.
-Then he stepped into the cab, and in half an hour we were back in
-the sitting-room at Baker Street. Nothing had been said during
-our drive, but the high, thin breathing of our new companion, and
-the claspings and unclaspings of his hands, spoke of the nervous
-tension within him.
-
-"Here we are!" said Holmes cheerily as we filed into the room.
-"The fire looks very seasonable in this weather. You look cold,
-Mr. Ryder. Pray take the basket-chair. I will just put on my
-slippers before we settle this little matter of yours. Now, then!
-You want to know what became of those geese?"
-
-"Yes, sir."
-
-"Or rather, I fancy, of that goose. It was one bird, I imagine in
-which you were interested--white, with a black bar across the
-tail."
-
-Ryder quivered with emotion. "Oh, sir," he cried, "can you tell
-me where it went to?"
-
-"It came here."
-
-"Here?"
-
-"Yes, and a most remarkable bird it proved. I don't wonder that
-you should take an interest in it. It laid an egg after it was
-dead--the bonniest, brightest little blue egg that ever was seen.
-I have it here in my museum."
-
-Our visitor staggered to his feet and clutched the mantelpiece
-with his right hand. Holmes unlocked his strong-box and held up
-the blue carbuncle, which shone out like a star, with a cold,
-brilliant, many-pointed radiance. Ryder stood glaring with a
-drawn face, uncertain whether to claim or to disown it.
-
-"The game's up, Ryder," said Holmes quietly. "Hold up, man, or
-you'll be into the fire! Give him an arm back into his chair,
-Watson. He's not got blood enough to go in for felony with
-impunity. Give him a dash of brandy. So! Now he looks a little
-more human. What a shrimp it is, to be sure!"
-
-For a moment he had staggered and nearly fallen, but the brandy
-brought a tinge of colour into his cheeks, and he sat staring
-with frightened eyes at his accuser.
-
-"I have almost every link in my hands, and all the proofs which I
-could possibly need, so there is little which you need tell me.
-Still, that little may as well be cleared up to make the case
-complete. You had heard, Ryder, of this blue stone of the
-Countess of Morcar's?"
-
-"It was Catherine Cusack who told me of it," said he in a
-crackling voice.
-
-"I see--her ladyship's waiting-maid. Well, the temptation of
-sudden wealth so easily acquired was too much for you, as it has
-been for better men before you; but you were not very scrupulous
-in the means you used. It seems to me, Ryder, that there is the
-making of a very pretty villain in you. You knew that this man
-Horner, the plumber, had been concerned in some such matter
-before, and that suspicion would rest the more readily upon him.
-What did you do, then? You made some small job in my lady's
-room--you and your confederate Cusack--and you managed that he
-should be the man sent for. Then, when he had left, you rifled
-the jewel-case, raised the alarm, and had this unfortunate man
-arrested. You then--"
-
-Ryder threw himself down suddenly upon the rug and clutched at my
-companion's knees. "For God's sake, have mercy!" he shrieked.
-"Think of my father! Of my mother! It would break their hearts. I
-never went wrong before! I never will again. I swear it. I'll
-swear it on a Bible. Oh, don't bring it into court! For Christ's
-sake, don't!"
-
-"Get back into your chair!" said Holmes sternly. "It is very well
-to cringe and crawl now, but you thought little enough of this
-poor Horner in the dock for a crime of which he knew nothing."
-
-"I will fly, Mr. Holmes. I will leave the country, sir. Then the
-charge against him will break down."
-
-"Hum! We will talk about that. And now let us hear a true account
-of the next act. How came the stone into the goose, and how came
-the goose into the open market? Tell us the truth, for there lies
-your only hope of safety."
-
-Ryder passed his tongue over his parched lips. "I will tell you
-it just as it happened, sir," said he. "When Horner had been
-arrested, it seemed to me that it would be best for me to get
-away with the stone at once, for I did not know at what moment
-the police might not take it into their heads to search me and my
-room. There was no place about the hotel where it would be safe.
-I went out, as if on some commission, and I made for my sister's
-house. She had married a man named Oakshott, and lived in Brixton
-Road, where she fattened fowls for the market. All the way there
-every man I met seemed to me to be a policeman or a detective;
-and, for all that it was a cold night, the sweat was pouring down
-my face before I came to the Brixton Road. My sister asked me
-what was the matter, and why I was so pale; but I told her that I
-had been upset by the jewel robbery at the hotel. Then I went
-into the back yard and smoked a pipe and wondered what it would
-be best to do.
-
-"I had a friend once called Maudsley, who went to the bad, and
-has just been serving his time in Pentonville. One day he had met
-me, and fell into talk about the ways of thieves, and how they
-could get rid of what they stole. I knew that he would be true to
-me, for I knew one or two things about him; so I made up my mind
-to go right on to Kilburn, where he lived, and take him into my
-confidence. He would show me how to turn the stone into money.
-But how to get to him in safety? I thought of the agonies I had
-gone through in coming from the hotel. I might at any moment be
-seized and searched, and there would be the stone in my waistcoat
-pocket. I was leaning against the wall at the time and looking at
-the geese which were waddling about round my feet, and suddenly
-an idea came into my head which showed me how I could beat the
-best detective that ever lived.
-
-"My sister had told me some weeks before that I might have the
-pick of her geese for a Christmas present, and I knew that she
-was always as good as her word. I would take my goose now, and in
-it I would carry my stone to Kilburn. There was a little shed in
-the yard, and behind this I drove one of the birds--a fine big
-one, white, with a barred tail. I caught it, and prying its bill
-open, I thrust the stone down its throat as far as my finger
-could reach. The bird gave a gulp, and I felt the stone pass
-along its gullet and down into its crop. But the creature flapped
-and struggled, and out came my sister to know what was the
-matter. As I turned to speak to her the brute broke loose and
-fluttered off among the others.
-
-"'Whatever were you doing with that bird, Jem?' says she.
-
-"'Well,' said I, 'you said you'd give me one for Christmas, and I
-was feeling which was the fattest.'
-
-"'Oh,' says she, 'we've set yours aside for you--Jem's bird, we
-call it. It's the big white one over yonder. There's twenty-six
-of them, which makes one for you, and one for us, and two dozen
-for the market.'
-
-"'Thank you, Maggie,' says I; 'but if it is all the same to you,
-I'd rather have that one I was handling just now.'
-
-"'The other is a good three pound heavier,' said she, 'and we
-fattened it expressly for you.'
-
-"'Never mind. I'll have the other, and I'll take it now,' said I.
-
-"'Oh, just as you like,' said she, a little huffed. 'Which is it
-you want, then?'
-
-"'That white one with the barred tail, right in the middle of the
-flock.'
-
-"'Oh, very well. Kill it and take it with you.'
-
-"Well, I did what she said, Mr. Holmes, and I carried the bird
-all the way to Kilburn. I told my pal what I had done, for he was
-a man that it was easy to tell a thing like that to. He laughed
-until he choked, and we got a knife and opened the goose. My
-heart turned to water, for there was no sign of the stone, and I
-knew that some terrible mistake had occurred. I left the bird,
-rushed back to my sister's, and hurried into the back yard. There
-was not a bird to be seen there.
-
-"'Where are they all, Maggie?' I cried.
-
-"'Gone to the dealer's, Jem.'
-
-"'Which dealer's?'
-
-"'Breckinridge, of Covent Garden.'
-
-"'But was there another with a barred tail?' I asked, 'the same
-as the one I chose?'
-
-"'Yes, Jem; there were two barred-tailed ones, and I could never
-tell them apart.'
-
-"Well, then, of course I saw it all, and I ran off as hard as my
-feet would carry me to this man Breckinridge; but he had sold the
-lot at once, and not one word would he tell me as to where they
-had gone. You heard him yourselves to-night. Well, he has always
-answered me like that. My sister thinks that I am going mad.
-Sometimes I think that I am myself. And now--and now I am myself
-a branded thief, without ever having touched the wealth for which
-I sold my character. God help me! God help me!" He burst into
-convulsive sobbing, with his face buried in his hands.
-
-There was a long silence, broken only by his heavy breathing and
-by the measured tapping of Sherlock Holmes' finger-tips upon the
-edge of the table. Then my friend rose and threw open the door.
-
-"Get out!" said he.
-
-"What, sir! Oh, Heaven bless you!"
-
-"No more words. Get out!"
-
-And no more words were needed. There was a rush, a clatter upon
-the stairs, the bang of a door, and the crisp rattle of running
-footfalls from the street.
-
-"After all, Watson," said Holmes, reaching up his hand for his
-clay pipe, "I am not retained by the police to supply their
-deficiencies. If Horner were in danger it would be another thing;
-but this fellow will not appear against him, and the case must
-collapse. I suppose that I am commuting a felony, but it is just
-possible that I am saving a soul. This fellow will not go wrong
-again; he is too terribly frightened. Send him to gaol now, and
-you make him a gaol-bird for life. Besides, it is the season of
-forgiveness. Chance has put in our way a most singular and
-whimsical problem, and its solution is its own reward. If you
-will have the goodness to touch the bell, Doctor, we will begin
-another investigation, in which, also a bird will be the chief
-feature."
-
-
-
-VIII. THE ADVENTURE OF THE SPECKLED BAND
-
-On glancing over my notes of the seventy odd cases in which I
-have during the last eight years studied the methods of my friend
-Sherlock Holmes, I find many tragic, some comic, a large number
-merely strange, but none commonplace; for, working as he did
-rather for the love of his art than for the acquirement of
-wealth, he refused to associate himself with any investigation
-which did not tend towards the unusual, and even the fantastic.
-Of all these varied cases, however, I cannot recall any which
-presented more singular features than that which was associated
-with the well-known Surrey family of the Roylotts of Stoke Moran.
-The events in question occurred in the early days of my
-association with Holmes, when we were sharing rooms as bachelors
-in Baker Street. It is possible that I might have placed them
-upon record before, but a promise of secrecy was made at the
-time, from which I have only been freed during the last month by
-the untimely death of the lady to whom the pledge was given. It
-is perhaps as well that the facts should now come to light, for I
-have reasons to know that there are widespread rumours as to the
-death of Dr. Grimesby Roylott which tend to make the matter even
-more terrible than the truth.
-
-It was early in April in the year '83 that I woke one morning to
-find Sherlock Holmes standing, fully dressed, by the side of my
-bed. He was a late riser, as a rule, and as the clock on the
-mantelpiece showed me that it was only a quarter-past seven, I
-blinked up at him in some surprise, and perhaps just a little
-resentment, for I was myself regular in my habits.
-
-"Very sorry to knock you up, Watson," said he, "but it's the
-common lot this morning. Mrs. Hudson has been knocked up, she
-retorted upon me, and I on you."
-
-"What is it, then--a fire?"
-
-"No; a client. It seems that a young lady has arrived in a
-considerable state of excitement, who insists upon seeing me. She
-is waiting now in the sitting-room. Now, when young ladies wander
-about the metropolis at this hour of the morning, and knock
-sleepy people up out of their beds, I presume that it is
-something very pressing which they have to communicate. Should it
-prove to be an interesting case, you would, I am sure, wish to
-follow it from the outset. I thought, at any rate, that I should
-call you and give you the chance."
-
-"My dear fellow, I would not miss it for anything."
-
-I had no keener pleasure than in following Holmes in his
-professional investigations, and in admiring the rapid
-deductions, as swift as intuitions, and yet always founded on a
-logical basis with which he unravelled the problems which were
-submitted to him. I rapidly threw on my clothes and was ready in
-a few minutes to accompany my friend down to the sitting-room. A
-lady dressed in black and heavily veiled, who had been sitting in
-the window, rose as we entered.
-
-"Good-morning, madam," said Holmes cheerily. "My name is Sherlock
-Holmes. This is my intimate friend and associate, Dr. Watson,
-before whom you can speak as freely as before myself. Ha! I am
-glad to see that Mrs. Hudson has had the good sense to light the
-fire. Pray draw up to it, and I shall order you a cup of hot
-coffee, for I observe that you are shivering."
-
-"It is not cold which makes me shiver," said the woman in a low
-voice, changing her seat as requested.
-
-"What, then?"
-
-"It is fear, Mr. Holmes. It is terror." She raised her veil as
-she spoke, and we could see that she was indeed in a pitiable
-state of agitation, her face all drawn and grey, with restless
-frightened eyes, like those of some hunted animal. Her features
-and figure were those of a woman of thirty, but her hair was shot
-with premature grey, and her expression was weary and haggard.
-Sherlock Holmes ran her over with one of his quick,
-all-comprehensive glances.
-
-"You must not fear," said he soothingly, bending forward and
-patting her forearm. "We shall soon set matters right, I have no
-doubt. You have come in by train this morning, I see."
-
-"You know me, then?"
-
-"No, but I observe the second half of a return ticket in the palm
-of your left glove. You must have started early, and yet you had
-a good drive in a dog-cart, along heavy roads, before you reached
-the station."
-
-The lady gave a violent start and stared in bewilderment at my
-companion.
-
-"There is no mystery, my dear madam," said he, smiling. "The left
-arm of your jacket is spattered with mud in no less than seven
-places. The marks are perfectly fresh. There is no vehicle save a
-dog-cart which throws up mud in that way, and then only when you
-sit on the left-hand side of the driver."
-
-"Whatever your reasons may be, you are perfectly correct," said
-she. "I started from home before six, reached Leatherhead at
-twenty past, and came in by the first train to Waterloo. Sir, I
-can stand this strain no longer; I shall go mad if it continues.
-I have no one to turn to--none, save only one, who cares for me,
-and he, poor fellow, can be of little aid. I have heard of you,
-Mr. Holmes; I have heard of you from Mrs. Farintosh, whom you
-helped in the hour of her sore need. It was from her that I had
-your address. Oh, sir, do you not think that you could help me,
-too, and at least throw a little light through the dense darkness
-which surrounds me? At present it is out of my power to reward
-you for your services, but in a month or six weeks I shall be
-married, with the control of my own income, and then at least you
-shall not find me ungrateful."
-
-Holmes turned to his desk and, unlocking it, drew out a small
-case-book, which he consulted.
-
-"Farintosh," said he. "Ah yes, I recall the case; it was
-concerned with an opal tiara. I think it was before your time,
-Watson. I can only say, madam, that I shall be happy to devote
-the same care to your case as I did to that of your friend. As to
-reward, my profession is its own reward; but you are at liberty
-to defray whatever expenses I may be put to, at the time which
-suits you best. And now I beg that you will lay before us
-everything that may help us in forming an opinion upon the
-matter."
-
-"Alas!" replied our visitor, "the very horror of my situation
-lies in the fact that my fears are so vague, and my suspicions
-depend so entirely upon small points, which might seem trivial to
-another, that even he to whom of all others I have a right to
-look for help and advice looks upon all that I tell him about it
-as the fancies of a nervous woman. He does not say so, but I can
-read it from his soothing answers and averted eyes. But I have
-heard, Mr. Holmes, that you can see deeply into the manifold
-wickedness of the human heart. You may advise me how to walk amid
-the dangers which encompass me."
-
-"I am all attention, madam."
-
-"My name is Helen Stoner, and I am living with my stepfather, who
-is the last survivor of one of the oldest Saxon families in
-England, the Roylotts of Stoke Moran, on the western border of
-Surrey."
-
-Holmes nodded his head. "The name is familiar to me," said he.
-
-"The family was at one time among the richest in England, and the
-estates extended over the borders into Berkshire in the north,
-and Hampshire in the west. In the last century, however, four
-successive heirs were of a dissolute and wasteful disposition,
-and the family ruin was eventually completed by a gambler in the
-days of the Regency. Nothing was left save a few acres of ground,
-and the two-hundred-year-old house, which is itself crushed under
-a heavy mortgage. The last squire dragged out his existence
-there, living the horrible life of an aristocratic pauper; but
-his only son, my stepfather, seeing that he must adapt himself to
-the new conditions, obtained an advance from a relative, which
-enabled him to take a medical degree and went out to Calcutta,
-where, by his professional skill and his force of character, he
-established a large practice. In a fit of anger, however, caused
-by some robberies which had been perpetrated in the house, he
-beat his native butler to death and narrowly escaped a capital
-sentence. As it was, he suffered a long term of imprisonment and
-afterwards returned to England a morose and disappointed man.
-
-"When Dr. Roylott was in India he married my mother, Mrs. Stoner,
-the young widow of Major-General Stoner, of the Bengal Artillery.
-My sister Julia and I were twins, and we were only two years old
-at the time of my mother's re-marriage. She had a considerable
-sum of money--not less than 1000 pounds a year--and this she
-bequeathed to Dr. Roylott entirely while we resided with him,
-with a provision that a certain annual sum should be allowed to
-each of us in the event of our marriage. Shortly after our return
-to England my mother died--she was killed eight years ago in a
-railway accident near Crewe. Dr. Roylott then abandoned his
-attempts to establish himself in practice in London and took us
-to live with him in the old ancestral house at Stoke Moran. The
-money which my mother had left was enough for all our wants, and
-there seemed to be no obstacle to our happiness.
-
-"But a terrible change came over our stepfather about this time.
-Instead of making friends and exchanging visits with our
-neighbours, who had at first been overjoyed to see a Roylott of
-Stoke Moran back in the old family seat, he shut himself up in
-his house and seldom came out save to indulge in ferocious
-quarrels with whoever might cross his path. Violence of temper
-approaching to mania has been hereditary in the men of the
-family, and in my stepfather's case it had, I believe, been
-intensified by his long residence in the tropics. A series of
-disgraceful brawls took place, two of which ended in the
-police-court, until at last he became the terror of the village,
-and the folks would fly at his approach, for he is a man of
-immense strength, and absolutely uncontrollable in his anger.
-
-"Last week he hurled the local blacksmith over a parapet into a
-stream, and it was only by paying over all the money which I
-could gather together that I was able to avert another public
-exposure. He had no friends at all save the wandering gipsies,
-and he would give these vagabonds leave to encamp upon the few
-acres of bramble-covered land which represent the family estate,
-and would accept in return the hospitality of their tents,
-wandering away with them sometimes for weeks on end. He has a
-passion also for Indian animals, which are sent over to him by a
-correspondent, and he has at this moment a cheetah and a baboon,
-which wander freely over his grounds and are feared by the
-villagers almost as much as their master.
-
-"You can imagine from what I say that my poor sister Julia and I
-had no great pleasure in our lives. No servant would stay with
-us, and for a long time we did all the work of the house. She was
-but thirty at the time of her death, and yet her hair had already
-begun to whiten, even as mine has."
-
-"Your sister is dead, then?"
-
-"She died just two years ago, and it is of her death that I wish
-to speak to you. You can understand that, living the life which I
-have described, we were little likely to see anyone of our own
-age and position. We had, however, an aunt, my mother's maiden
-sister, Miss Honoria Westphail, who lives near Harrow, and we
-were occasionally allowed to pay short visits at this lady's
-house. Julia went there at Christmas two years ago, and met there
-a half-pay major of marines, to whom she became engaged. My
-stepfather learned of the engagement when my sister returned and
-offered no objection to the marriage; but within a fortnight of
-the day which had been fixed for the wedding, the terrible event
-occurred which has deprived me of my only companion."
-
-Sherlock Holmes had been leaning back in his chair with his eyes
-closed and his head sunk in a cushion, but he half opened his
-lids now and glanced across at his visitor.
-
-"Pray be precise as to details," said he.
-
-"It is easy for me to be so, for every event of that dreadful
-time is seared into my memory. The manor-house is, as I have
-already said, very old, and only one wing is now inhabited. The
-bedrooms in this wing are on the ground floor, the sitting-rooms
-being in the central block of the buildings. Of these bedrooms
-the first is Dr. Roylott's, the second my sister's, and the third
-my own. There is no communication between them, but they all open
-out into the same corridor. Do I make myself plain?"
-
-"Perfectly so."
-
-"The windows of the three rooms open out upon the lawn. That
-fatal night Dr. Roylott had gone to his room early, though we
-knew that he had not retired to rest, for my sister was troubled
-by the smell of the strong Indian cigars which it was his custom
-to smoke. She left her room, therefore, and came into mine, where
-she sat for some time, chatting about her approaching wedding. At
-eleven o'clock she rose to leave me, but she paused at the door
-and looked back.
-
-"'Tell me, Helen,' said she, 'have you ever heard anyone whistle
-in the dead of the night?'
-
-"'Never,' said I.
-
-"'I suppose that you could not possibly whistle, yourself, in
-your sleep?'
-
-"'Certainly not. But why?'
-
-"'Because during the last few nights I have always, about three
-in the morning, heard a low, clear whistle. I am a light sleeper,
-and it has awakened me. I cannot tell where it came from--perhaps
-from the next room, perhaps from the lawn. I thought that I would
-just ask you whether you had heard it.'
-
-"'No, I have not. It must be those wretched gipsies in the
-plantation.'
-
-"'Very likely. And yet if it were on the lawn, I wonder that you
-did not hear it also.'
-
-"'Ah, but I sleep more heavily than you.'
-
-"'Well, it is of no great consequence, at any rate.' She smiled
-back at me, closed my door, and a few moments later I heard her
-key turn in the lock."
-
-"Indeed," said Holmes. "Was it your custom always to lock
-yourselves in at night?"
-
-"Always."
-
-"And why?"
-
-"I think that I mentioned to you that the doctor kept a cheetah
-and a baboon. We had no feeling of security unless our doors were
-locked."
-
-"Quite so. Pray proceed with your statement."
-
-"I could not sleep that night. A vague feeling of impending
-misfortune impressed me. My sister and I, you will recollect,
-were twins, and you know how subtle are the links which bind two
-souls which are so closely allied. It was a wild night. The wind
-was howling outside, and the rain was beating and splashing
-against the windows. Suddenly, amid all the hubbub of the gale,
-there burst forth the wild scream of a terrified woman. I knew
-that it was my sister's voice. I sprang from my bed, wrapped a
-shawl round me, and rushed into the corridor. As I opened my door
-I seemed to hear a low whistle, such as my sister described, and
-a few moments later a clanging sound, as if a mass of metal had
-fallen. As I ran down the passage, my sister's door was unlocked,
-and revolved slowly upon its hinges. I stared at it
-horror-stricken, not knowing what was about to issue from it. By
-the light of the corridor-lamp I saw my sister appear at the
-opening, her face blanched with terror, her hands groping for
-help, her whole figure swaying to and fro like that of a
-drunkard. I ran to her and threw my arms round her, but at that
-moment her knees seemed to give way and she fell to the ground.
-She writhed as one who is in terrible pain, and her limbs were
-dreadfully convulsed. At first I thought that she had not
-recognised me, but as I bent over her she suddenly shrieked out
-in a voice which I shall never forget, 'Oh, my God! Helen! It was
-the band! The speckled band!' There was something else which she
-would fain have said, and she stabbed with her finger into the
-air in the direction of the doctor's room, but a fresh convulsion
-seized her and choked her words. I rushed out, calling loudly for
-my stepfather, and I met him hastening from his room in his
-dressing-gown. When he reached my sister's side she was
-unconscious, and though he poured brandy down her throat and sent
-for medical aid from the village, all efforts were in vain, for
-she slowly sank and died without having recovered her
-consciousness. Such was the dreadful end of my beloved sister."
-
-"One moment," said Holmes, "are you sure about this whistle and
-metallic sound? Could you swear to it?"
-
-"That was what the county coroner asked me at the inquiry. It is
-my strong impression that I heard it, and yet, among the crash of
-the gale and the creaking of an old house, I may possibly have
-been deceived."
-
-"Was your sister dressed?"
-
-"No, she was in her night-dress. In her right hand was found the
-charred stump of a match, and in her left a match-box."
-
-"Showing that she had struck a light and looked about her when
-the alarm took place. That is important. And what conclusions did
-the coroner come to?"
-
-"He investigated the case with great care, for Dr. Roylott's
-conduct had long been notorious in the county, but he was unable
-to find any satisfactory cause of death. My evidence showed that
-the door had been fastened upon the inner side, and the windows
-were blocked by old-fashioned shutters with broad iron bars,
-which were secured every night. The walls were carefully sounded,
-and were shown to be quite solid all round, and the flooring was
-also thoroughly examined, with the same result. The chimney is
-wide, but is barred up by four large staples. It is certain,
-therefore, that my sister was quite alone when she met her end.
-Besides, there were no marks of any violence upon her."
-
-"How about poison?"
-
-"The doctors examined her for it, but without success."
-
-"What do you think that this unfortunate lady died of, then?"
-
-"It is my belief that she died of pure fear and nervous shock,
-though what it was that frightened her I cannot imagine."
-
-"Were there gipsies in the plantation at the time?"
-
-"Yes, there are nearly always some there."
-
-"Ah, and what did you gather from this allusion to a band--a
-speckled band?"
-
-"Sometimes I have thought that it was merely the wild talk of
-delirium, sometimes that it may have referred to some band of
-people, perhaps to these very gipsies in the plantation. I do not
-know whether the spotted handkerchiefs which so many of them wear
-over their heads might have suggested the strange adjective which
-she used."
-
-Holmes shook his head like a man who is far from being satisfied.
-
-"These are very deep waters," said he; "pray go on with your
-narrative."
-
-"Two years have passed since then, and my life has been until
-lately lonelier than ever. A month ago, however, a dear friend,
-whom I have known for many years, has done me the honour to ask
-my hand in marriage. His name is Armitage--Percy Armitage--the
-second son of Mr. Armitage, of Crane Water, near Reading. My
-stepfather has offered no opposition to the match, and we are to
-be married in the course of the spring. Two days ago some repairs
-were started in the west wing of the building, and my bedroom
-wall has been pierced, so that I have had to move into the
-chamber in which my sister died, and to sleep in the very bed in
-which she slept. Imagine, then, my thrill of terror when last
-night, as I lay awake, thinking over her terrible fate, I
-suddenly heard in the silence of the night the low whistle which
-had been the herald of her own death. I sprang up and lit the
-lamp, but nothing was to be seen in the room. I was too shaken to
-go to bed again, however, so I dressed, and as soon as it was
-daylight I slipped down, got a dog-cart at the Crown Inn, which
-is opposite, and drove to Leatherhead, from whence I have come on
-this morning with the one object of seeing you and asking your
-advice."
-
-"You have done wisely," said my friend. "But have you told me
-all?"
-
-"Yes, all."
-
-"Miss Roylott, you have not. You are screening your stepfather."
-
-"Why, what do you mean?"
-
-For answer Holmes pushed back the frill of black lace which
-fringed the hand that lay upon our visitor's knee. Five little
-livid spots, the marks of four fingers and a thumb, were printed
-upon the white wrist.
-
-"You have been cruelly used," said Holmes.
-
-The lady coloured deeply and covered over her injured wrist. "He
-is a hard man," she said, "and perhaps he hardly knows his own
-strength."
-
-There was a long silence, during which Holmes leaned his chin
-upon his hands and stared into the crackling fire.
-
-"This is a very deep business," he said at last. "There are a
-thousand details which I should desire to know before I decide
-upon our course of action. Yet we have not a moment to lose. If
-we were to come to Stoke Moran to-day, would it be possible for
-us to see over these rooms without the knowledge of your
-stepfather?"
-
-"As it happens, he spoke of coming into town to-day upon some
-most important business. It is probable that he will be away all
-day, and that there would be nothing to disturb you. We have a
-housekeeper now, but she is old and foolish, and I could easily
-get her out of the way."
-
-"Excellent. You are not averse to this trip, Watson?"
-
-"By no means."
-
-"Then we shall both come. What are you going to do yourself?"
-
-"I have one or two things which I would wish to do now that I am
-in town. But I shall return by the twelve o'clock train, so as to
-be there in time for your coming."
-
-"And you may expect us early in the afternoon. I have myself some
-small business matters to attend to. Will you not wait and
-breakfast?"
-
-"No, I must go. My heart is lightened already since I have
-confided my trouble to you. I shall look forward to seeing you
-again this afternoon." She dropped her thick black veil over her
-face and glided from the room.
-
-"And what do you think of it all, Watson?" asked Sherlock Holmes,
-leaning back in his chair.
-
-"It seems to me to be a most dark and sinister business."
-
-"Dark enough and sinister enough."
-
-"Yet if the lady is correct in saying that the flooring and walls
-are sound, and that the door, window, and chimney are impassable,
-then her sister must have been undoubtedly alone when she met her
-mysterious end."
-
-"What becomes, then, of these nocturnal whistles, and what of the
-very peculiar words of the dying woman?"
-
-"I cannot think."
-
-"When you combine the ideas of whistles at night, the presence of
-a band of gipsies who are on intimate terms with this old doctor,
-the fact that we have every reason to believe that the doctor has
-an interest in preventing his stepdaughter's marriage, the dying
-allusion to a band, and, finally, the fact that Miss Helen Stoner
-heard a metallic clang, which might have been caused by one of
-those metal bars that secured the shutters falling back into its
-place, I think that there is good ground to think that the
-mystery may be cleared along those lines."
-
-"But what, then, did the gipsies do?"
-
-"I cannot imagine."
-
-"I see many objections to any such theory."
-
-"And so do I. It is precisely for that reason that we are going
-to Stoke Moran this day. I want to see whether the objections are
-fatal, or if they may be explained away. But what in the name of
-the devil!"
-
-The ejaculation had been drawn from my companion by the fact that
-our door had been suddenly dashed open, and that a huge man had
-framed himself in the aperture. His costume was a peculiar
-mixture of the professional and of the agricultural, having a
-black top-hat, a long frock-coat, and a pair of high gaiters,
-with a hunting-crop swinging in his hand. So tall was he that his
-hat actually brushed the cross bar of the doorway, and his
-breadth seemed to span it across from side to side. A large face,
-seared with a thousand wrinkles, burned yellow with the sun, and
-marked with every evil passion, was turned from one to the other
-of us, while his deep-set, bile-shot eyes, and his high, thin,
-fleshless nose, gave him somewhat the resemblance to a fierce old
-bird of prey.
-
-"Which of you is Holmes?" asked this apparition.
-
-"My name, sir; but you have the advantage of me," said my
-companion quietly.
-
-"I am Dr. Grimesby Roylott, of Stoke Moran."
-
-"Indeed, Doctor," said Holmes blandly. "Pray take a seat."
-
-"I will do nothing of the kind. My stepdaughter has been here. I
-have traced her. What has she been saying to you?"
-
-"It is a little cold for the time of the year," said Holmes.
-
-"What has she been saying to you?" screamed the old man
-furiously.
-
-"But I have heard that the crocuses promise well," continued my
-companion imperturbably.
-
-"Ha! You put me off, do you?" said our new visitor, taking a step
-forward and shaking his hunting-crop. "I know you, you scoundrel!
-I have heard of you before. You are Holmes, the meddler."
-
-My friend smiled.
-
-"Holmes, the busybody!"
-
-His smile broadened.
-
-"Holmes, the Scotland Yard Jack-in-office!"
-
-Holmes chuckled heartily. "Your conversation is most
-entertaining," said he. "When you go out close the door, for
-there is a decided draught."
-
-"I will go when I have said my say. Don't you dare to meddle with
-my affairs. I know that Miss Stoner has been here. I traced her!
-I am a dangerous man to fall foul of! See here." He stepped
-swiftly forward, seized the poker, and bent it into a curve with
-his huge brown hands.
-
-"See that you keep yourself out of my grip," he snarled, and
-hurling the twisted poker into the fireplace he strode out of the
-room.
-
-"He seems a very amiable person," said Holmes, laughing. "I am
-not quite so bulky, but if he had remained I might have shown him
-that my grip was not much more feeble than his own." As he spoke
-he picked up the steel poker and, with a sudden effort,
-straightened it out again.
-
-"Fancy his having the insolence to confound me with the official
-detective force! This incident gives zest to our investigation,
-however, and I only trust that our little friend will not suffer
-from her imprudence in allowing this brute to trace her. And now,
-Watson, we shall order breakfast, and afterwards I shall walk
-down to Doctors' Commons, where I hope to get some data which may
-help us in this matter."
-
-
-It was nearly one o'clock when Sherlock Holmes returned from his
-excursion. He held in his hand a sheet of blue paper, scrawled
-over with notes and figures.
-
-"I have seen the will of the deceased wife," said he. "To
-determine its exact meaning I have been obliged to work out the
-present prices of the investments with which it is concerned. The
-total income, which at the time of the wife's death was little
-short of 1100 pounds, is now, through the fall in agricultural
-prices, not more than 750 pounds. Each daughter can claim an
-income of 250 pounds, in case of marriage. It is evident,
-therefore, that if both girls had married, this beauty would have
-had a mere pittance, while even one of them would cripple him to
-a very serious extent. My morning's work has not been wasted,
-since it has proved that he has the very strongest motives for
-standing in the way of anything of the sort. And now, Watson,
-this is too serious for dawdling, especially as the old man is
-aware that we are interesting ourselves in his affairs; so if you
-are ready, we shall call a cab and drive to Waterloo. I should be
-very much obliged if you would slip your revolver into your
-pocket. An Eley's No. 2 is an excellent argument with gentlemen
-who can twist steel pokers into knots. That and a tooth-brush
-are, I think, all that we need."
-
-At Waterloo we were fortunate in catching a train for
-Leatherhead, where we hired a trap at the station inn and drove
-for four or five miles through the lovely Surrey lanes. It was a
-perfect day, with a bright sun and a few fleecy clouds in the
-heavens. The trees and wayside hedges were just throwing out
-their first green shoots, and the air was full of the pleasant
-smell of the moist earth. To me at least there was a strange
-contrast between the sweet promise of the spring and this
-sinister quest upon which we were engaged. My companion sat in
-the front of the trap, his arms folded, his hat pulled down over
-his eyes, and his chin sunk upon his breast, buried in the
-deepest thought. Suddenly, however, he started, tapped me on the
-shoulder, and pointed over the meadows.
-
-"Look there!" said he.
-
-A heavily timbered park stretched up in a gentle slope,
-thickening into a grove at the highest point. From amid the
-branches there jutted out the grey gables and high roof-tree of a
-very old mansion.
-
-"Stoke Moran?" said he.
-
-"Yes, sir, that be the house of Dr. Grimesby Roylott," remarked
-the driver.
-
-"There is some building going on there," said Holmes; "that is
-where we are going."
-
-"There's the village," said the driver, pointing to a cluster of
-roofs some distance to the left; "but if you want to get to the
-house, you'll find it shorter to get over this stile, and so by
-the foot-path over the fields. There it is, where the lady is
-walking."
-
-"And the lady, I fancy, is Miss Stoner," observed Holmes, shading
-his eyes. "Yes, I think we had better do as you suggest."
-
-We got off, paid our fare, and the trap rattled back on its way
-to Leatherhead.
-
-"I thought it as well," said Holmes as we climbed the stile,
-"that this fellow should think we had come here as architects, or
-on some definite business. It may stop his gossip.
-Good-afternoon, Miss Stoner. You see that we have been as good as
-our word."
-
-Our client of the morning had hurried forward to meet us with a
-face which spoke her joy. "I have been waiting so eagerly for
-you," she cried, shaking hands with us warmly. "All has turned
-out splendidly. Dr. Roylott has gone to town, and it is unlikely
-that he will be back before evening."
-
-"We have had the pleasure of making the doctor's acquaintance,"
-said Holmes, and in a few words he sketched out what had
-occurred. Miss Stoner turned white to the lips as she listened.
-
-"Good heavens!" she cried, "he has followed me, then."
-
-"So it appears."
-
-"He is so cunning that I never know when I am safe from him. What
-will he say when he returns?"
-
-"He must guard himself, for he may find that there is someone
-more cunning than himself upon his track. You must lock yourself
-up from him to-night. If he is violent, we shall take you away to
-your aunt's at Harrow. Now, we must make the best use of our
-time, so kindly take us at once to the rooms which we are to
-examine."
-
-The building was of grey, lichen-blotched stone, with a high
-central portion and two curving wings, like the claws of a crab,
-thrown out on each side. In one of these wings the windows were
-broken and blocked with wooden boards, while the roof was partly
-caved in, a picture of ruin. The central portion was in little
-better repair, but the right-hand block was comparatively modern,
-and the blinds in the windows, with the blue smoke curling up
-from the chimneys, showed that this was where the family resided.
-Some scaffolding had been erected against the end wall, and the
-stone-work had been broken into, but there were no signs of any
-workmen at the moment of our visit. Holmes walked slowly up and
-down the ill-trimmed lawn and examined with deep attention the
-outsides of the windows.
-
-"This, I take it, belongs to the room in which you used to sleep,
-the centre one to your sister's, and the one next to the main
-building to Dr. Roylott's chamber?"
-
-"Exactly so. But I am now sleeping in the middle one."
-
-"Pending the alterations, as I understand. By the way, there does
-not seem to be any very pressing need for repairs at that end
-wall."
-
-"There were none. I believe that it was an excuse to move me from
-my room."
-
-"Ah! that is suggestive. Now, on the other side of this narrow
-wing runs the corridor from which these three rooms open. There
-are windows in it, of course?"
-
-"Yes, but very small ones. Too narrow for anyone to pass
-through."
-
-"As you both locked your doors at night, your rooms were
-unapproachable from that side. Now, would you have the kindness
-to go into your room and bar your shutters?"
-
-Miss Stoner did so, and Holmes, after a careful examination
-through the open window, endeavoured in every way to force the
-shutter open, but without success. There was no slit through
-which a knife could be passed to raise the bar. Then with his
-lens he tested the hinges, but they were of solid iron, built
-firmly into the massive masonry. "Hum!" said he, scratching his
-chin in some perplexity, "my theory certainly presents some
-difficulties. No one could pass these shutters if they were
-bolted. Well, we shall see if the inside throws any light upon
-the matter."
-
-A small side door led into the whitewashed corridor from which
-the three bedrooms opened. Holmes refused to examine the third
-chamber, so we passed at once to the second, that in which Miss
-Stoner was now sleeping, and in which her sister had met with her
-fate. It was a homely little room, with a low ceiling and a
-gaping fireplace, after the fashion of old country-houses. A
-brown chest of drawers stood in one corner, a narrow
-white-counterpaned bed in another, and a dressing-table on the
-left-hand side of the window. These articles, with two small
-wicker-work chairs, made up all the furniture in the room save
-for a square of Wilton carpet in the centre. The boards round and
-the panelling of the walls were of brown, worm-eaten oak, so old
-and discoloured that it may have dated from the original building
-of the house. Holmes drew one of the chairs into a corner and sat
-silent, while his eyes travelled round and round and up and down,
-taking in every detail of the apartment.
-
-"Where does that bell communicate with?" he asked at last
-pointing to a thick bell-rope which hung down beside the bed, the
-tassel actually lying upon the pillow.
-
-"It goes to the housekeeper's room."
-
-"It looks newer than the other things?"
-
-"Yes, it was only put there a couple of years ago."
-
-"Your sister asked for it, I suppose?"
-
-"No, I never heard of her using it. We used always to get what we
-wanted for ourselves."
-
-"Indeed, it seemed unnecessary to put so nice a bell-pull there.
-You will excuse me for a few minutes while I satisfy myself as to
-this floor." He threw himself down upon his face with his lens in
-his hand and crawled swiftly backward and forward, examining
-minutely the cracks between the boards. Then he did the same with
-the wood-work with which the chamber was panelled. Finally he
-walked over to the bed and spent some time in staring at it and
-in running his eye up and down the wall. Finally he took the
-bell-rope in his hand and gave it a brisk tug.
-
-"Why, it's a dummy," said he.
-
-"Won't it ring?"
-
-"No, it is not even attached to a wire. This is very interesting.
-You can see now that it is fastened to a hook just above where
-the little opening for the ventilator is."
-
-"How very absurd! I never noticed that before."
-
-"Very strange!" muttered Holmes, pulling at the rope. "There are
-one or two very singular points about this room. For example,
-what a fool a builder must be to open a ventilator into another
-room, when, with the same trouble, he might have communicated
-with the outside air!"
-
-"That is also quite modern," said the lady.
-
-"Done about the same time as the bell-rope?" remarked Holmes.
-
-"Yes, there were several little changes carried out about that
-time."
-
-"They seem to have been of a most interesting character--dummy
-bell-ropes, and ventilators which do not ventilate. With your
-permission, Miss Stoner, we shall now carry our researches into
-the inner apartment."
-
-Dr. Grimesby Roylott's chamber was larger than that of his
-step-daughter, but was as plainly furnished. A camp-bed, a small
-wooden shelf full of books, mostly of a technical character, an
-armchair beside the bed, a plain wooden chair against the wall, a
-round table, and a large iron safe were the principal things
-which met the eye. Holmes walked slowly round and examined each
-and all of them with the keenest interest.
-
-"What's in here?" he asked, tapping the safe.
-
-"My stepfather's business papers."
-
-"Oh! you have seen inside, then?"
-
-"Only once, some years ago. I remember that it was full of
-papers."
-
-"There isn't a cat in it, for example?"
-
-"No. What a strange idea!"
-
-"Well, look at this!" He took up a small saucer of milk which
-stood on the top of it.
-
-"No; we don't keep a cat. But there is a cheetah and a baboon."
-
-"Ah, yes, of course! Well, a cheetah is just a big cat, and yet a
-saucer of milk does not go very far in satisfying its wants, I
-daresay. There is one point which I should wish to determine." He
-squatted down in front of the wooden chair and examined the seat
-of it with the greatest attention.
-
-"Thank you. That is quite settled," said he, rising and putting
-his lens in his pocket. "Hullo! Here is something interesting!"
-
-The object which had caught his eye was a small dog lash hung on
-one corner of the bed. The lash, however, was curled upon itself
-and tied so as to make a loop of whipcord.
-
-"What do you make of that, Watson?"
-
-"It's a common enough lash. But I don't know why it should be
-tied."
-
-"That is not quite so common, is it? Ah, me! it's a wicked world,
-and when a clever man turns his brains to crime it is the worst
-of all. I think that I have seen enough now, Miss Stoner, and
-with your permission we shall walk out upon the lawn."
-
-I had never seen my friend's face so grim or his brow so dark as
-it was when we turned from the scene of this investigation. We
-had walked several times up and down the lawn, neither Miss
-Stoner nor myself liking to break in upon his thoughts before he
-roused himself from his reverie.
-
-"It is very essential, Miss Stoner," said he, "that you should
-absolutely follow my advice in every respect."
-
-"I shall most certainly do so."
-
-"The matter is too serious for any hesitation. Your life may
-depend upon your compliance."
-
-"I assure you that I am in your hands."
-
-"In the first place, both my friend and I must spend the night in
-your room."
-
-Both Miss Stoner and I gazed at him in astonishment.
-
-"Yes, it must be so. Let me explain. I believe that that is the
-village inn over there?"
-
-"Yes, that is the Crown."
-
-"Very good. Your windows would be visible from there?"
-
-"Certainly."
-
-"You must confine yourself to your room, on pretence of a
-headache, when your stepfather comes back. Then when you hear him
-retire for the night, you must open the shutters of your window,
-undo the hasp, put your lamp there as a signal to us, and then
-withdraw quietly with everything which you are likely to want
-into the room which you used to occupy. I have no doubt that, in
-spite of the repairs, you could manage there for one night."
-
-"Oh, yes, easily."
-
-"The rest you will leave in our hands."
-
-"But what will you do?"
-
-"We shall spend the night in your room, and we shall investigate
-the cause of this noise which has disturbed you."
-
-"I believe, Mr. Holmes, that you have already made up your mind,"
-said Miss Stoner, laying her hand upon my companion's sleeve.
-
-"Perhaps I have."
-
-"Then, for pity's sake, tell me what was the cause of my sister's
-death."
-
-"I should prefer to have clearer proofs before I speak."
-
-"You can at least tell me whether my own thought is correct, and
-if she died from some sudden fright."
-
-"No, I do not think so. I think that there was probably some more
-tangible cause. And now, Miss Stoner, we must leave you for if
-Dr. Roylott returned and saw us our journey would be in vain.
-Good-bye, and be brave, for if you will do what I have told you,
-you may rest assured that we shall soon drive away the dangers
-that threaten you."
-
-Sherlock Holmes and I had no difficulty in engaging a bedroom and
-sitting-room at the Crown Inn. They were on the upper floor, and
-from our window we could command a view of the avenue gate, and
-of the inhabited wing of Stoke Moran Manor House. At dusk we saw
-Dr. Grimesby Roylott drive past, his huge form looming up beside
-the little figure of the lad who drove him. The boy had some
-slight difficulty in undoing the heavy iron gates, and we heard
-the hoarse roar of the doctor's voice and saw the fury with which
-he shook his clinched fists at him. The trap drove on, and a few
-minutes later we saw a sudden light spring up among the trees as
-the lamp was lit in one of the sitting-rooms.
-
-"Do you know, Watson," said Holmes as we sat together in the
-gathering darkness, "I have really some scruples as to taking you
-to-night. There is a distinct element of danger."
-
-"Can I be of assistance?"
-
-"Your presence might be invaluable."
-
-"Then I shall certainly come."
-
-"It is very kind of you."
-
-"You speak of danger. You have evidently seen more in these rooms
-than was visible to me."
-
-"No, but I fancy that I may have deduced a little more. I imagine
-that you saw all that I did."
-
-"I saw nothing remarkable save the bell-rope, and what purpose
-that could answer I confess is more than I can imagine."
-
-"You saw the ventilator, too?"
-
-"Yes, but I do not think that it is such a very unusual thing to
-have a small opening between two rooms. It was so small that a
-rat could hardly pass through."
-
-"I knew that we should find a ventilator before ever we came to
-Stoke Moran."
-
-"My dear Holmes!"
-
-"Oh, yes, I did. You remember in her statement she said that her
-sister could smell Dr. Roylott's cigar. Now, of course that
-suggested at once that there must be a communication between the
-two rooms. It could only be a small one, or it would have been
-remarked upon at the coroner's inquiry. I deduced a ventilator."
-
-"But what harm can there be in that?"
-
-"Well, there is at least a curious coincidence of dates. A
-ventilator is made, a cord is hung, and a lady who sleeps in the
-bed dies. Does not that strike you?"
-
-"I cannot as yet see any connection."
-
-"Did you observe anything very peculiar about that bed?"
-
-"No."
-
-"It was clamped to the floor. Did you ever see a bed fastened
-like that before?"
-
-"I cannot say that I have."
-
-"The lady could not move her bed. It must always be in the same
-relative position to the ventilator and to the rope--or so we may
-call it, since it was clearly never meant for a bell-pull."
-
-"Holmes," I cried, "I seem to see dimly what you are hinting at.
-We are only just in time to prevent some subtle and horrible
-crime."
-
-"Subtle enough and horrible enough. When a doctor does go wrong
-he is the first of criminals. He has nerve and he has knowledge.
-Palmer and Pritchard were among the heads of their profession.
-This man strikes even deeper, but I think, Watson, that we shall
-be able to strike deeper still. But we shall have horrors enough
-before the night is over; for goodness' sake let us have a quiet
-pipe and turn our minds for a few hours to something more
-cheerful."
-
-
-About nine o'clock the light among the trees was extinguished,
-and all was dark in the direction of the Manor House. Two hours
-passed slowly away, and then, suddenly, just at the stroke of
-eleven, a single bright light shone out right in front of us.
-
-"That is our signal," said Holmes, springing to his feet; "it
-comes from the middle window."
-
-As we passed out he exchanged a few words with the landlord,
-explaining that we were going on a late visit to an acquaintance,
-and that it was possible that we might spend the night there. A
-moment later we were out on the dark road, a chill wind blowing
-in our faces, and one yellow light twinkling in front of us
-through the gloom to guide us on our sombre errand.
-
-There was little difficulty in entering the grounds, for
-unrepaired breaches gaped in the old park wall. Making our way
-among the trees, we reached the lawn, crossed it, and were about
-to enter through the window when out from a clump of laurel
-bushes there darted what seemed to be a hideous and distorted
-child, who threw itself upon the grass with writhing limbs and
-then ran swiftly across the lawn into the darkness.
-
-"My God!" I whispered; "did you see it?"
-
-Holmes was for the moment as startled as I. His hand closed like
-a vice upon my wrist in his agitation. Then he broke into a low
-laugh and put his lips to my ear.
-
-"It is a nice household," he murmured. "That is the baboon."
-
-I had forgotten the strange pets which the doctor affected. There
-was a cheetah, too; perhaps we might find it upon our shoulders
-at any moment. I confess that I felt easier in my mind when,
-after following Holmes' example and slipping off my shoes, I
-found myself inside the bedroom. My companion noiselessly closed
-the shutters, moved the lamp onto the table, and cast his eyes
-round the room. All was as we had seen it in the daytime. Then
-creeping up to me and making a trumpet of his hand, he whispered
-into my ear again so gently that it was all that I could do to
-distinguish the words:
-
-"The least sound would be fatal to our plans."
-
-I nodded to show that I had heard.
-
-"We must sit without light. He would see it through the
-ventilator."
-
-I nodded again.
-
-"Do not go asleep; your very life may depend upon it. Have your
-pistol ready in case we should need it. I will sit on the side of
-the bed, and you in that chair."
-
-I took out my revolver and laid it on the corner of the table.
-
-Holmes had brought up a long thin cane, and this he placed upon
-the bed beside him. By it he laid the box of matches and the
-stump of a candle. Then he turned down the lamp, and we were left
-in darkness.
-
-How shall I ever forget that dreadful vigil? I could not hear a
-sound, not even the drawing of a breath, and yet I knew that my
-companion sat open-eyed, within a few feet of me, in the same
-state of nervous tension in which I was myself. The shutters cut
-off the least ray of light, and we waited in absolute darkness.
-
-From outside came the occasional cry of a night-bird, and once at
-our very window a long drawn catlike whine, which told us that
-the cheetah was indeed at liberty. Far away we could hear the
-deep tones of the parish clock, which boomed out every quarter of
-an hour. How long they seemed, those quarters! Twelve struck, and
-one and two and three, and still we sat waiting silently for
-whatever might befall.
-
-Suddenly there was the momentary gleam of a light up in the
-direction of the ventilator, which vanished immediately, but was
-succeeded by a strong smell of burning oil and heated metal.
-Someone in the next room had lit a dark-lantern. I heard a gentle
-sound of movement, and then all was silent once more, though the
-smell grew stronger. For half an hour I sat with straining ears.
-Then suddenly another sound became audible--a very gentle,
-soothing sound, like that of a small jet of steam escaping
-continually from a kettle. The instant that we heard it, Holmes
-sprang from the bed, struck a match, and lashed furiously with
-his cane at the bell-pull.
-
-"You see it, Watson?" he yelled. "You see it?"
-
-But I saw nothing. At the moment when Holmes struck the light I
-heard a low, clear whistle, but the sudden glare flashing into my
-weary eyes made it impossible for me to tell what it was at which
-my friend lashed so savagely. I could, however, see that his face
-was deadly pale and filled with horror and loathing. He had
-ceased to strike and was gazing up at the ventilator when
-suddenly there broke from the silence of the night the most
-horrible cry to which I have ever listened. It swelled up louder
-and louder, a hoarse yell of pain and fear and anger all mingled
-in the one dreadful shriek. They say that away down in the
-village, and even in the distant parsonage, that cry raised the
-sleepers from their beds. It struck cold to our hearts, and I
-stood gazing at Holmes, and he at me, until the last echoes of it
-had died away into the silence from which it rose.
-
-"What can it mean?" I gasped.
-
-"It means that it is all over," Holmes answered. "And perhaps,
-after all, it is for the best. Take your pistol, and we will
-enter Dr. Roylott's room."
-
-With a grave face he lit the lamp and led the way down the
-corridor. Twice he struck at the chamber door without any reply
-from within. Then he turned the handle and entered, I at his
-heels, with the cocked pistol in my hand.
-
-It was a singular sight which met our eyes. On the table stood a
-dark-lantern with the shutter half open, throwing a brilliant
-beam of light upon the iron safe, the door of which was ajar.
-Beside this table, on the wooden chair, sat Dr. Grimesby Roylott
-clad in a long grey dressing-gown, his bare ankles protruding
-beneath, and his feet thrust into red heelless Turkish slippers.
-Across his lap lay the short stock with the long lash which we
-had noticed during the day. His chin was cocked upward and his
-eyes were fixed in a dreadful, rigid stare at the corner of the
-ceiling. Round his brow he had a peculiar yellow band, with
-brownish speckles, which seemed to be bound tightly round his
-head. As we entered he made neither sound nor motion.
-
-"The band! the speckled band!" whispered Holmes.
-
-I took a step forward. In an instant his strange headgear began
-to move, and there reared itself from among his hair the squat
-diamond-shaped head and puffed neck of a loathsome serpent.
-
-"It is a swamp adder!" cried Holmes; "the deadliest snake in
-India. He has died within ten seconds of being bitten. Violence
-does, in truth, recoil upon the violent, and the schemer falls
-into the pit which he digs for another. Let us thrust this
-creature back into its den, and we can then remove Miss Stoner to
-some place of shelter and let the county police know what has
-happened."
-
-As he spoke he drew the dog-whip swiftly from the dead man's lap,
-and throwing the noose round the reptile's neck he drew it from
-its horrid perch and, carrying it at arm's length, threw it into
-the iron safe, which he closed upon it.
-
-Such are the true facts of the death of Dr. Grimesby Roylott, of
-Stoke Moran. It is not necessary that I should prolong a
-narrative which has already run to too great a length by telling
-how we broke the sad news to the terrified girl, how we conveyed
-her by the morning train to the care of her good aunt at Harrow,
-of how the slow process of official inquiry came to the
-conclusion that the doctor met his fate while indiscreetly
-playing with a dangerous pet. The little which I had yet to learn
-of the case was told me by Sherlock Holmes as we travelled back
-next day.
-
-"I had," said he, "come to an entirely erroneous conclusion which
-shows, my dear Watson, how dangerous it always is to reason from
-insufficient data. The presence of the gipsies, and the use of
-the word 'band,' which was used by the poor girl, no doubt, to
-explain the appearance which she had caught a hurried glimpse of
-by the light of her match, were sufficient to put me upon an
-entirely wrong scent. I can only claim the merit that I instantly
-reconsidered my position when, however, it became clear to me
-that whatever danger threatened an occupant of the room could not
-come either from the window or the door. My attention was
-speedily drawn, as I have already remarked to you, to this
-ventilator, and to the bell-rope which hung down to the bed. The
-discovery that this was a dummy, and that the bed was clamped to
-the floor, instantly gave rise to the suspicion that the rope was
-there as a bridge for something passing through the hole and
-coming to the bed. The idea of a snake instantly occurred to me,
-and when I coupled it with my knowledge that the doctor was
-furnished with a supply of creatures from India, I felt that I
-was probably on the right track. The idea of using a form of
-poison which could not possibly be discovered by any chemical
-test was just such a one as would occur to a clever and ruthless
-man who had had an Eastern training. The rapidity with which such
-a poison would take effect would also, from his point of view, be
-an advantage. It would be a sharp-eyed coroner, indeed, who could
-distinguish the two little dark punctures which would show where
-the poison fangs had done their work. Then I thought of the
-whistle. Of course he must recall the snake before the morning
-light revealed it to the victim. He had trained it, probably by
-the use of the milk which we saw, to return to him when summoned.
-He would put it through this ventilator at the hour that he
-thought best, with the certainty that it would crawl down the
-rope and land on the bed. It might or might not bite the
-occupant, perhaps she might escape every night for a week, but
-sooner or later she must fall a victim.
-
-"I had come to these conclusions before ever I had entered his
-room. An inspection of his chair showed me that he had been in
-the habit of standing on it, which of course would be necessary
-in order that he should reach the ventilator. The sight of the
-safe, the saucer of milk, and the loop of whipcord were enough to
-finally dispel any doubts which may have remained. The metallic
-clang heard by Miss Stoner was obviously caused by her stepfather
-hastily closing the door of his safe upon its terrible occupant.
-Having once made up my mind, you know the steps which I took in
-order to put the matter to the proof. I heard the creature hiss
-as I have no doubt that you did also, and I instantly lit the
-light and attacked it."
-
-"With the result of driving it through the ventilator."
-
-"And also with the result of causing it to turn upon its master
-at the other side. Some of the blows of my cane came home and
-roused its snakish temper, so that it flew upon the first person
-it saw. In this way I am no doubt indirectly responsible for Dr.
-Grimesby Roylott's death, and I cannot say that it is likely to
-weigh very heavily upon my conscience."
-
-
-
-IX. THE ADVENTURE OF THE ENGINEER'S THUMB
-
-Of all the problems which have been submitted to my friend, Mr.
-Sherlock Holmes, for solution during the years of our intimacy,
-there were only two which I was the means of introducing to his
-notice--that of Mr. Hatherley's thumb, and that of Colonel
-Warburton's madness. Of these the latter may have afforded a
-finer field for an acute and original observer, but the other was
-so strange in its inception and so dramatic in its details that
-it may be the more worthy of being placed upon record, even if it
-gave my friend fewer openings for those deductive methods of
-reasoning by which he achieved such remarkable results. The story
-has, I believe, been told more than once in the newspapers, but,
-like all such narratives, its effect is much less striking when
-set forth en bloc in a single half-column of print than when the
-facts slowly evolve before your own eyes, and the mystery clears
-gradually away as each new discovery furnishes a step which leads
-on to the complete truth. At the time the circumstances made a
-deep impression upon me, and the lapse of two years has hardly
-served to weaken the effect.
-
-It was in the summer of '89, not long after my marriage, that the
-events occurred which I am now about to summarise. I had returned
-to civil practice and had finally abandoned Holmes in his Baker
-Street rooms, although I continually visited him and occasionally
-even persuaded him to forgo his Bohemian habits so far as to come
-and visit us. My practice had steadily increased, and as I
-happened to live at no very great distance from Paddington
-Station, I got a few patients from among the officials. One of
-these, whom I had cured of a painful and lingering disease, was
-never weary of advertising my virtues and of endeavouring to send
-me on every sufferer over whom he might have any influence.
-
-One morning, at a little before seven o'clock, I was awakened by
-the maid tapping at the door to announce that two men had come
-from Paddington and were waiting in the consulting-room. I
-dressed hurriedly, for I knew by experience that railway cases
-were seldom trivial, and hastened downstairs. As I descended, my
-old ally, the guard, came out of the room and closed the door
-tightly behind him.
-
-"I've got him here," he whispered, jerking his thumb over his
-shoulder; "he's all right."
-
-"What is it, then?" I asked, for his manner suggested that it was
-some strange creature which he had caged up in my room.
-
-"It's a new patient," he whispered. "I thought I'd bring him
-round myself; then he couldn't slip away. There he is, all safe
-and sound. I must go now, Doctor; I have my dooties, just the
-same as you." And off he went, this trusty tout, without even
-giving me time to thank him.
-
-I entered my consulting-room and found a gentleman seated by the
-table. He was quietly dressed in a suit of heather tweed with a
-soft cloth cap which he had laid down upon my books. Round one of
-his hands he had a handkerchief wrapped, which was mottled all
-over with bloodstains. He was young, not more than
-five-and-twenty, I should say, with a strong, masculine face; but
-he was exceedingly pale and gave me the impression of a man who
-was suffering from some strong agitation, which it took all his
-strength of mind to control.
-
-"I am sorry to knock you up so early, Doctor," said he, "but I
-have had a very serious accident during the night. I came in by
-train this morning, and on inquiring at Paddington as to where I
-might find a doctor, a worthy fellow very kindly escorted me
-here. I gave the maid a card, but I see that she has left it upon
-the side-table."
-
-I took it up and glanced at it. "Mr. Victor Hatherley, hydraulic
-engineer, 16A, Victoria Street (3rd floor)." That was the name,
-style, and abode of my morning visitor. "I regret that I have
-kept you waiting," said I, sitting down in my library-chair. "You
-are fresh from a night journey, I understand, which is in itself
-a monotonous occupation."
-
-"Oh, my night could not be called monotonous," said he, and
-laughed. He laughed very heartily, with a high, ringing note,
-leaning back in his chair and shaking his sides. All my medical
-instincts rose up against that laugh.
-
-"Stop it!" I cried; "pull yourself together!" and I poured out
-some water from a caraffe.
-
-It was useless, however. He was off in one of those hysterical
-outbursts which come upon a strong nature when some great crisis
-is over and gone. Presently he came to himself once more, very
-weary and pale-looking.
-
-"I have been making a fool of myself," he gasped.
-
-"Not at all. Drink this." I dashed some brandy into the water,
-and the colour began to come back to his bloodless cheeks.
-
-"That's better!" said he. "And now, Doctor, perhaps you would
-kindly attend to my thumb, or rather to the place where my thumb
-used to be."
-
-He unwound the handkerchief and held out his hand. It gave even
-my hardened nerves a shudder to look at it. There were four
-protruding fingers and a horrid red, spongy surface where the
-thumb should have been. It had been hacked or torn right out from
-the roots.
-
-"Good heavens!" I cried, "this is a terrible injury. It must have
-bled considerably."
-
-"Yes, it did. I fainted when it was done, and I think that I must
-have been senseless for a long time. When I came to I found that
-it was still bleeding, so I tied one end of my handkerchief very
-tightly round the wrist and braced it up with a twig."
-
-"Excellent! You should have been a surgeon."
-
-"It is a question of hydraulics, you see, and came within my own
-province."
-
-"This has been done," said I, examining the wound, "by a very
-heavy and sharp instrument."
-
-"A thing like a cleaver," said he.
-
-"An accident, I presume?"
-
-"By no means."
-
-"What! a murderous attack?"
-
-"Very murderous indeed."
-
-"You horrify me."
-
-I sponged the wound, cleaned it, dressed it, and finally covered
-it over with cotton wadding and carbolised bandages. He lay back
-without wincing, though he bit his lip from time to time.
-
-"How is that?" I asked when I had finished.
-
-"Capital! Between your brandy and your bandage, I feel a new man.
-I was very weak, but I have had a good deal to go through."
-
-"Perhaps you had better not speak of the matter. It is evidently
-trying to your nerves."
-
-"Oh, no, not now. I shall have to tell my tale to the police;
-but, between ourselves, if it were not for the convincing
-evidence of this wound of mine, I should be surprised if they
-believed my statement, for it is a very extraordinary one, and I
-have not much in the way of proof with which to back it up; and,
-even if they believe me, the clues which I can give them are so
-vague that it is a question whether justice will be done."
-
-"Ha!" cried I, "if it is anything in the nature of a problem
-which you desire to see solved, I should strongly recommend you
-to come to my friend, Mr. Sherlock Holmes, before you go to the
-official police."
-
-"Oh, I have heard of that fellow," answered my visitor, "and I
-should be very glad if he would take the matter up, though of
-course I must use the official police as well. Would you give me
-an introduction to him?"
-
-"I'll do better. I'll take you round to him myself."
-
-"I should be immensely obliged to you."
-
-"We'll call a cab and go together. We shall just be in time to
-have a little breakfast with him. Do you feel equal to it?"
-
-"Yes; I shall not feel easy until I have told my story."
-
-"Then my servant will call a cab, and I shall be with you in an
-instant." I rushed upstairs, explained the matter shortly to my
-wife, and in five minutes was inside a hansom, driving with my
-new acquaintance to Baker Street.
-
-Sherlock Holmes was, as I expected, lounging about his
-sitting-room in his dressing-gown, reading the agony column of The
-Times and smoking his before-breakfast pipe, which was composed
-of all the plugs and dottles left from his smokes of the day
-before, all carefully dried and collected on the corner of the
-mantelpiece. He received us in his quietly genial fashion,
-ordered fresh rashers and eggs, and joined us in a hearty meal.
-When it was concluded he settled our new acquaintance upon the
-sofa, placed a pillow beneath his head, and laid a glass of
-brandy and water within his reach.
-
-"It is easy to see that your experience has been no common one,
-Mr. Hatherley," said he. "Pray, lie down there and make yourself
-absolutely at home. Tell us what you can, but stop when you are
-tired and keep up your strength with a little stimulant."
-
-"Thank you," said my patient, "but I have felt another man since
-the doctor bandaged me, and I think that your breakfast has
-completed the cure. I shall take up as little of your valuable
-time as possible, so I shall start at once upon my peculiar
-experiences."
-
-Holmes sat in his big armchair with the weary, heavy-lidded
-expression which veiled his keen and eager nature, while I sat
-opposite to him, and we listened in silence to the strange story
-which our visitor detailed to us.
-
-"You must know," said he, "that I am an orphan and a bachelor,
-residing alone in lodgings in London. By profession I am a
-hydraulic engineer, and I have had considerable experience of my
-work during the seven years that I was apprenticed to Venner &
-Matheson, the well-known firm, of Greenwich. Two years ago,
-having served my time, and having also come into a fair sum of
-money through my poor father's death, I determined to start in
-business for myself and took professional chambers in Victoria
-Street.
-
-"I suppose that everyone finds his first independent start in
-business a dreary experience. To me it has been exceptionally so.
-During two years I have had three consultations and one small
-job, and that is absolutely all that my profession has brought
-me. My gross takings amount to 27 pounds 10s. Every day, from
-nine in the morning until four in the afternoon, I waited in my
-little den, until at last my heart began to sink, and I came to
-believe that I should never have any practice at all.
-
-"Yesterday, however, just as I was thinking of leaving the
-office, my clerk entered to say there was a gentleman waiting who
-wished to see me upon business. He brought up a card, too, with
-the name of 'Colonel Lysander Stark' engraved upon it. Close at
-his heels came the colonel himself, a man rather over the middle
-size, but of an exceeding thinness. I do not think that I have
-ever seen so thin a man. His whole face sharpened away into nose
-and chin, and the skin of his cheeks was drawn quite tense over
-his outstanding bones. Yet this emaciation seemed to be his
-natural habit, and due to no disease, for his eye was bright, his
-step brisk, and his bearing assured. He was plainly but neatly
-dressed, and his age, I should judge, would be nearer forty than
-thirty.
-
-"'Mr. Hatherley?' said he, with something of a German accent.
-'You have been recommended to me, Mr. Hatherley, as being a man
-who is not only proficient in his profession but is also discreet
-and capable of preserving a secret.'
-
-"I bowed, feeling as flattered as any young man would at such an
-address. 'May I ask who it was who gave me so good a character?'
-
-"'Well, perhaps it is better that I should not tell you that just
-at this moment. I have it from the same source that you are both
-an orphan and a bachelor and are residing alone in London.'
-
-"'That is quite correct,' I answered; 'but you will excuse me if
-I say that I cannot see how all this bears upon my professional
-qualifications. I understand that it was on a professional matter
-that you wished to speak to me?'
-
-"'Undoubtedly so. But you will find that all I say is really to
-the point. I have a professional commission for you, but absolute
-secrecy is quite essential--absolute secrecy, you understand, and
-of course we may expect that more from a man who is alone than
-from one who lives in the bosom of his family.'
-
-"'If I promise to keep a secret,' said I, 'you may absolutely
-depend upon my doing so.'
-
-"He looked very hard at me as I spoke, and it seemed to me that I
-had never seen so suspicious and questioning an eye.
-
-"'Do you promise, then?' said he at last.
-
-"'Yes, I promise.'
-
-"'Absolute and complete silence before, during, and after? No
-reference to the matter at all, either in word or writing?'
-
-"'I have already given you my word.'
-
-"'Very good.' He suddenly sprang up, and darting like lightning
-across the room he flung open the door. The passage outside was
-empty.
-
-"'That's all right,' said he, coming back. 'I know that clerks are
-sometimes curious as to their master's affairs. Now we can talk
-in safety.' He drew up his chair very close to mine and began to
-stare at me again with the same questioning and thoughtful look.
-
-"A feeling of repulsion, and of something akin to fear had begun
-to rise within me at the strange antics of this fleshless man.
-Even my dread of losing a client could not restrain me from
-showing my impatience.
-
-"'I beg that you will state your business, sir,' said I; 'my time
-is of value.' Heaven forgive me for that last sentence, but the
-words came to my lips.
-
-"'How would fifty guineas for a night's work suit you?' he asked.
-
-"'Most admirably.'
-
-"'I say a night's work, but an hour's would be nearer the mark. I
-simply want your opinion about a hydraulic stamping machine which
-has got out of gear. If you show us what is wrong we shall soon
-set it right ourselves. What do you think of such a commission as
-that?'
-
-"'The work appears to be light and the pay munificent.'
-
-"'Precisely so. We shall want you to come to-night by the last
-train.'
-
-"'Where to?'
-
-"'To Eyford, in Berkshire. It is a little place near the borders
-of Oxfordshire, and within seven miles of Reading. There is a
-train from Paddington which would bring you there at about
-11:15.'
-
-"'Very good.'
-
-"'I shall come down in a carriage to meet you.'
-
-"'There is a drive, then?'
-
-"'Yes, our little place is quite out in the country. It is a good
-seven miles from Eyford Station.'
-
-"'Then we can hardly get there before midnight. I suppose there
-would be no chance of a train back. I should be compelled to stop
-the night.'
-
-"'Yes, we could easily give you a shake-down.'
-
-"'That is very awkward. Could I not come at some more convenient
-hour?'
-
-"'We have judged it best that you should come late. It is to
-recompense you for any inconvenience that we are paying to you, a
-young and unknown man, a fee which would buy an opinion from the
-very heads of your profession. Still, of course, if you would
-like to draw out of the business, there is plenty of time to do
-so.'
-
-"I thought of the fifty guineas, and of how very useful they
-would be to me. 'Not at all,' said I, 'I shall be very happy to
-accommodate myself to your wishes. I should like, however, to
-understand a little more clearly what it is that you wish me to
-do.'
-
-"'Quite so. It is very natural that the pledge of secrecy which
-we have exacted from you should have aroused your curiosity. I
-have no wish to commit you to anything without your having it all
-laid before you. I suppose that we are absolutely safe from
-eavesdroppers?'
-
-"'Entirely.'
-
-"'Then the matter stands thus. You are probably aware that
-fuller's-earth is a valuable product, and that it is only found
-in one or two places in England?'
-
-"'I have heard so.'
-
-"'Some little time ago I bought a small place--a very small
-place--within ten miles of Reading. I was fortunate enough to
-discover that there was a deposit of fuller's-earth in one of my
-fields. On examining it, however, I found that this deposit was a
-comparatively small one, and that it formed a link between two
-very much larger ones upon the right and left--both of them,
-however, in the grounds of my neighbours. These good people were
-absolutely ignorant that their land contained that which was
-quite as valuable as a gold-mine. Naturally, it was to my
-interest to buy their land before they discovered its true value,
-but unfortunately I had no capital by which I could do this. I
-took a few of my friends into the secret, however, and they
-suggested that we should quietly and secretly work our own little
-deposit and that in this way we should earn the money which would
-enable us to buy the neighbouring fields. This we have now been
-doing for some time, and in order to help us in our operations we
-erected a hydraulic press. This press, as I have already
-explained, has got out of order, and we wish your advice upon the
-subject. We guard our secret very jealously, however, and if it
-once became known that we had hydraulic engineers coming to our
-little house, it would soon rouse inquiry, and then, if the facts
-came out, it would be good-bye to any chance of getting these
-fields and carrying out our plans. That is why I have made you
-promise me that you will not tell a human being that you are
-going to Eyford to-night. I hope that I make it all plain?'
-
-"'I quite follow you,' said I. 'The only point which I could not
-quite understand was what use you could make of a hydraulic press
-in excavating fuller's-earth, which, as I understand, is dug out
-like gravel from a pit.'
-
-"'Ah!' said he carelessly, 'we have our own process. We compress
-the earth into bricks, so as to remove them without revealing
-what they are. But that is a mere detail. I have taken you fully
-into my confidence now, Mr. Hatherley, and I have shown you how I
-trust you.' He rose as he spoke. 'I shall expect you, then, at
-Eyford at 11:15.'
-
-"'I shall certainly be there.'
-
-"'And not a word to a soul.' He looked at me with a last long,
-questioning gaze, and then, pressing my hand in a cold, dank
-grasp, he hurried from the room.
-
-"Well, when I came to think it all over in cool blood I was very
-much astonished, as you may both think, at this sudden commission
-which had been intrusted to me. On the one hand, of course, I was
-glad, for the fee was at least tenfold what I should have asked
-had I set a price upon my own services, and it was possible that
-this order might lead to other ones. On the other hand, the face
-and manner of my patron had made an unpleasant impression upon
-me, and I could not think that his explanation of the
-fuller's-earth was sufficient to explain the necessity for my
-coming at midnight, and his extreme anxiety lest I should tell
-anyone of my errand. However, I threw all fears to the winds, ate
-a hearty supper, drove to Paddington, and started off, having
-obeyed to the letter the injunction as to holding my tongue.
-
-"At Reading I had to change not only my carriage but my station.
-However, I was in time for the last train to Eyford, and I
-reached the little dim-lit station after eleven o'clock. I was the
-only passenger who got out there, and there was no one upon the
-platform save a single sleepy porter with a lantern. As I passed
-out through the wicket gate, however, I found my acquaintance of
-the morning waiting in the shadow upon the other side. Without a
-word he grasped my arm and hurried me into a carriage, the door
-of which was standing open. He drew up the windows on either
-side, tapped on the wood-work, and away we went as fast as the
-horse could go."
-
-"One horse?" interjected Holmes.
-
-"Yes, only one."
-
-"Did you observe the colour?"
-
-"Yes, I saw it by the side-lights when I was stepping into the
-carriage. It was a chestnut."
-
-"Tired-looking or fresh?"
-
-"Oh, fresh and glossy."
-
-"Thank you. I am sorry to have interrupted you. Pray continue
-your most interesting statement."
-
-"Away we went then, and we drove for at least an hour. Colonel
-Lysander Stark had said that it was only seven miles, but I
-should think, from the rate that we seemed to go, and from the
-time that we took, that it must have been nearer twelve. He sat
-at my side in silence all the time, and I was aware, more than
-once when I glanced in his direction, that he was looking at me
-with great intensity. The country roads seem to be not very good
-in that part of the world, for we lurched and jolted terribly. I
-tried to look out of the windows to see something of where we
-were, but they were made of frosted glass, and I could make out
-nothing save the occasional bright blur of a passing light. Now
-and then I hazarded some remark to break the monotony of the
-journey, but the colonel answered only in monosyllables, and the
-conversation soon flagged. At last, however, the bumping of the
-road was exchanged for the crisp smoothness of a gravel-drive,
-and the carriage came to a stand. Colonel Lysander Stark sprang
-out, and, as I followed after him, pulled me swiftly into a porch
-which gaped in front of us. We stepped, as it were, right out of
-the carriage and into the hall, so that I failed to catch the
-most fleeting glance of the front of the house. The instant that
-I had crossed the threshold the door slammed heavily behind us,
-and I heard faintly the rattle of the wheels as the carriage
-drove away.
-
-"It was pitch dark inside the house, and the colonel fumbled
-about looking for matches and muttering under his breath.
-Suddenly a door opened at the other end of the passage, and a
-long, golden bar of light shot out in our direction. It grew
-broader, and a woman appeared with a lamp in her hand, which she
-held above her head, pushing her face forward and peering at us.
-I could see that she was pretty, and from the gloss with which
-the light shone upon her dark dress I knew that it was a rich
-material. She spoke a few words in a foreign tongue in a tone as
-though asking a question, and when my companion answered in a
-gruff monosyllable she gave such a start that the lamp nearly
-fell from her hand. Colonel Stark went up to her, whispered
-something in her ear, and then, pushing her back into the room
-from whence she had come, he walked towards me again with the
-lamp in his hand.
-
-"'Perhaps you will have the kindness to wait in this room for a
-few minutes,' said he, throwing open another door. It was a
-quiet, little, plainly furnished room, with a round table in the
-centre, on which several German books were scattered. Colonel
-Stark laid down the lamp on the top of a harmonium beside the
-door. 'I shall not keep you waiting an instant,' said he, and
-vanished into the darkness.
-
-"I glanced at the books upon the table, and in spite of my
-ignorance of German I could see that two of them were treatises
-on science, the others being volumes of poetry. Then I walked
-across to the window, hoping that I might catch some glimpse of
-the country-side, but an oak shutter, heavily barred, was folded
-across it. It was a wonderfully silent house. There was an old
-clock ticking loudly somewhere in the passage, but otherwise
-everything was deadly still. A vague feeling of uneasiness began
-to steal over me. Who were these German people, and what were
-they doing living in this strange, out-of-the-way place? And
-where was the place? I was ten miles or so from Eyford, that was
-all I knew, but whether north, south, east, or west I had no
-idea. For that matter, Reading, and possibly other large towns,
-were within that radius, so the place might not be so secluded,
-after all. Yet it was quite certain, from the absolute stillness,
-that we were in the country. I paced up and down the room,
-humming a tune under my breath to keep up my spirits and feeling
-that I was thoroughly earning my fifty-guinea fee.
-
-"Suddenly, without any preliminary sound in the midst of the
-utter stillness, the door of my room swung slowly open. The woman
-was standing in the aperture, the darkness of the hall behind
-her, the yellow light from my lamp beating upon her eager and
-beautiful face. I could see at a glance that she was sick with
-fear, and the sight sent a chill to my own heart. She held up one
-shaking finger to warn me to be silent, and she shot a few
-whispered words of broken English at me, her eyes glancing back,
-like those of a frightened horse, into the gloom behind her.
-
-"'I would go,' said she, trying hard, as it seemed to me, to
-speak calmly; 'I would go. I should not stay here. There is no
-good for you to do.'
-
-"'But, madam,' said I, 'I have not yet done what I came for. I
-cannot possibly leave until I have seen the machine.'
-
-"'It is not worth your while to wait,' she went on. 'You can pass
-through the door; no one hinders.' And then, seeing that I smiled
-and shook my head, she suddenly threw aside her constraint and
-made a step forward, with her hands wrung together. 'For the love
-of Heaven!' she whispered, 'get away from here before it is too
-late!'
-
-"But I am somewhat headstrong by nature, and the more ready to
-engage in an affair when there is some obstacle in the way. I
-thought of my fifty-guinea fee, of my wearisome journey, and of
-the unpleasant night which seemed to be before me. Was it all to
-go for nothing? Why should I slink away without having carried
-out my commission, and without the payment which was my due? This
-woman might, for all I knew, be a monomaniac. With a stout
-bearing, therefore, though her manner had shaken me more than I
-cared to confess, I still shook my head and declared my intention
-of remaining where I was. She was about to renew her entreaties
-when a door slammed overhead, and the sound of several footsteps
-was heard upon the stairs. She listened for an instant, threw up
-her hands with a despairing gesture, and vanished as suddenly and
-as noiselessly as she had come.
-
-"The newcomers were Colonel Lysander Stark and a short thick man
-with a chinchilla beard growing out of the creases of his double
-chin, who was introduced to me as Mr. Ferguson.
-
-"'This is my secretary and manager,' said the colonel. 'By the
-way, I was under the impression that I left this door shut just
-now. I fear that you have felt the draught.'
-
-"'On the contrary,' said I, 'I opened the door myself because I
-felt the room to be a little close.'
-
-"He shot one of his suspicious looks at me. 'Perhaps we had
-better proceed to business, then,' said he. 'Mr. Ferguson and I
-will take you up to see the machine.'
-
-"'I had better put my hat on, I suppose.'
-
-"'Oh, no, it is in the house.'
-
-"'What, you dig fuller's-earth in the house?'
-
-"'No, no. This is only where we compress it. But never mind that.
-All we wish you to do is to examine the machine and to let us
-know what is wrong with it.'
-
-"We went upstairs together, the colonel first with the lamp, the
-fat manager and I behind him. It was a labyrinth of an old house,
-with corridors, passages, narrow winding staircases, and little
-low doors, the thresholds of which were hollowed out by the
-generations who had crossed them. There were no carpets and no
-signs of any furniture above the ground floor, while the plaster
-was peeling off the walls, and the damp was breaking through in
-green, unhealthy blotches. I tried to put on as unconcerned an
-air as possible, but I had not forgotten the warnings of the
-lady, even though I disregarded them, and I kept a keen eye upon
-my two companions. Ferguson appeared to be a morose and silent
-man, but I could see from the little that he said that he was at
-least a fellow-countryman.
-
-"Colonel Lysander Stark stopped at last before a low door, which
-he unlocked. Within was a small, square room, in which the three
-of us could hardly get at one time. Ferguson remained outside,
-and the colonel ushered me in.
-
-"'We are now,' said he, 'actually within the hydraulic press, and
-it would be a particularly unpleasant thing for us if anyone were
-to turn it on. The ceiling of this small chamber is really the
-end of the descending piston, and it comes down with the force of
-many tons upon this metal floor. There are small lateral columns
-of water outside which receive the force, and which transmit and
-multiply it in the manner which is familiar to you. The machine
-goes readily enough, but there is some stiffness in the working
-of it, and it has lost a little of its force. Perhaps you will
-have the goodness to look it over and to show us how we can set
-it right.'
-
-"I took the lamp from him, and I examined the machine very
-thoroughly. It was indeed a gigantic one, and capable of
-exercising enormous pressure. When I passed outside, however, and
-pressed down the levers which controlled it, I knew at once by
-the whishing sound that there was a slight leakage, which allowed
-a regurgitation of water through one of the side cylinders. An
-examination showed that one of the india-rubber bands which was
-round the head of a driving-rod had shrunk so as not quite to
-fill the socket along which it worked. This was clearly the cause
-of the loss of power, and I pointed it out to my companions, who
-followed my remarks very carefully and asked several practical
-questions as to how they should proceed to set it right. When I
-had made it clear to them, I returned to the main chamber of the
-machine and took a good look at it to satisfy my own curiosity.
-It was obvious at a glance that the story of the fuller's-earth
-was the merest fabrication, for it would be absurd to suppose
-that so powerful an engine could be designed for so inadequate a
-purpose. The walls were of wood, but the floor consisted of a
-large iron trough, and when I came to examine it I could see a
-crust of metallic deposit all over it. I had stooped and was
-scraping at this to see exactly what it was when I heard a
-muttered exclamation in German and saw the cadaverous face of the
-colonel looking down at me.
-
-"'What are you doing there?' he asked.
-
-"I felt angry at having been tricked by so elaborate a story as
-that which he had told me. 'I was admiring your fuller's-earth,'
-said I; 'I think that I should be better able to advise you as to
-your machine if I knew what the exact purpose was for which it
-was used.'
-
-"The instant that I uttered the words I regretted the rashness of
-my speech. His face set hard, and a baleful light sprang up in
-his grey eyes.
-
-"'Very well,' said he, 'you shall know all about the machine.' He
-took a step backward, slammed the little door, and turned the key
-in the lock. I rushed towards it and pulled at the handle, but it
-was quite secure, and did not give in the least to my kicks and
-shoves. 'Hullo!' I yelled. 'Hullo! Colonel! Let me out!'
-
-"And then suddenly in the silence I heard a sound which sent my
-heart into my mouth. It was the clank of the levers and the swish
-of the leaking cylinder. He had set the engine at work. The lamp
-still stood upon the floor where I had placed it when examining
-the trough. By its light I saw that the black ceiling was coming
-down upon me, slowly, jerkily, but, as none knew better than
-myself, with a force which must within a minute grind me to a
-shapeless pulp. I threw myself, screaming, against the door, and
-dragged with my nails at the lock. I implored the colonel to let
-me out, but the remorseless clanking of the levers drowned my
-cries. The ceiling was only a foot or two above my head, and with
-my hand upraised I could feel its hard, rough surface. Then it
-flashed through my mind that the pain of my death would depend
-very much upon the position in which I met it. If I lay on my
-face the weight would come upon my spine, and I shuddered to
-think of that dreadful snap. Easier the other way, perhaps; and
-yet, had I the nerve to lie and look up at that deadly black
-shadow wavering down upon me? Already I was unable to stand
-erect, when my eye caught something which brought a gush of hope
-back to my heart.
-
-"I have said that though the floor and ceiling were of iron, the
-walls were of wood. As I gave a last hurried glance around, I saw
-a thin line of yellow light between two of the boards, which
-broadened and broadened as a small panel was pushed backward. For
-an instant I could hardly believe that here was indeed a door
-which led away from death. The next instant I threw myself
-through, and lay half-fainting upon the other side. The panel had
-closed again behind me, but the crash of the lamp, and a few
-moments afterwards the clang of the two slabs of metal, told me
-how narrow had been my escape.
-
-"I was recalled to myself by a frantic plucking at my wrist, and
-I found myself lying upon the stone floor of a narrow corridor,
-while a woman bent over me and tugged at me with her left hand,
-while she held a candle in her right. It was the same good friend
-whose warning I had so foolishly rejected.
-
-"'Come! come!' she cried breathlessly. 'They will be here in a
-moment. They will see that you are not there. Oh, do not waste
-the so-precious time, but come!'
-
-"This time, at least, I did not scorn her advice. I staggered to
-my feet and ran with her along the corridor and down a winding
-stair. The latter led to another broad passage, and just as we
-reached it we heard the sound of running feet and the shouting of
-two voices, one answering the other from the floor on which we
-were and from the one beneath. My guide stopped and looked about
-her like one who is at her wit's end. Then she threw open a door
-which led into a bedroom, through the window of which the moon
-was shining brightly.
-
-"'It is your only chance,' said she. 'It is high, but it may be
-that you can jump it.'
-
-"As she spoke a light sprang into view at the further end of the
-passage, and I saw the lean figure of Colonel Lysander Stark
-rushing forward with a lantern in one hand and a weapon like a
-butcher's cleaver in the other. I rushed across the bedroom,
-flung open the window, and looked out. How quiet and sweet and
-wholesome the garden looked in the moonlight, and it could not be
-more than thirty feet down. I clambered out upon the sill, but I
-hesitated to jump until I should have heard what passed between
-my saviour and the ruffian who pursued me. If she were ill-used,
-then at any risks I was determined to go back to her assistance.
-The thought had hardly flashed through my mind before he was at
-the door, pushing his way past her; but she threw her arms round
-him and tried to hold him back.
-
-"'Fritz! Fritz!' she cried in English, 'remember your promise
-after the last time. You said it should not be again. He will be
-silent! Oh, he will be silent!'
-
-"'You are mad, Elise!' he shouted, struggling to break away from
-her. 'You will be the ruin of us. He has seen too much. Let me
-pass, I say!' He dashed her to one side, and, rushing to the
-window, cut at me with his heavy weapon. I had let myself go, and
-was hanging by the hands to the sill, when his blow fell. I was
-conscious of a dull pain, my grip loosened, and I fell into the
-garden below.
-
-"I was shaken but not hurt by the fall; so I picked myself up and
-rushed off among the bushes as hard as I could run, for I
-understood that I was far from being out of danger yet. Suddenly,
-however, as I ran, a deadly dizziness and sickness came over me.
-I glanced down at my hand, which was throbbing painfully, and
-then, for the first time, saw that my thumb had been cut off and
-that the blood was pouring from my wound. I endeavoured to tie my
-handkerchief round it, but there came a sudden buzzing in my
-ears, and next moment I fell in a dead faint among the
-rose-bushes.
-
-"How long I remained unconscious I cannot tell. It must have been
-a very long time, for the moon had sunk, and a bright morning was
-breaking when I came to myself. My clothes were all sodden with
-dew, and my coat-sleeve was drenched with blood from my wounded
-thumb. The smarting of it recalled in an instant all the
-particulars of my night's adventure, and I sprang to my feet with
-the feeling that I might hardly yet be safe from my pursuers. But
-to my astonishment, when I came to look round me, neither house
-nor garden were to be seen. I had been lying in an angle of the
-hedge close by the highroad, and just a little lower down was a
-long building, which proved, upon my approaching it, to be the
-very station at which I had arrived upon the previous night. Were
-it not for the ugly wound upon my hand, all that had passed
-during those dreadful hours might have been an evil dream.
-
-"Half dazed, I went into the station and asked about the morning
-train. There would be one to Reading in less than an hour. The
-same porter was on duty, I found, as had been there when I
-arrived. I inquired of him whether he had ever heard of Colonel
-Lysander Stark. The name was strange to him. Had he observed a
-carriage the night before waiting for me? No, he had not. Was
-there a police-station anywhere near? There was one about three
-miles off.
-
-"It was too far for me to go, weak and ill as I was. I determined
-to wait until I got back to town before telling my story to the
-police. It was a little past six when I arrived, so I went first
-to have my wound dressed, and then the doctor was kind enough to
-bring me along here. I put the case into your hands and shall do
-exactly what you advise."
-
-We both sat in silence for some little time after listening to
-this extraordinary narrative. Then Sherlock Holmes pulled down
-from the shelf one of the ponderous commonplace books in which he
-placed his cuttings.
-
-"Here is an advertisement which will interest you," said he. "It
-appeared in all the papers about a year ago. Listen to this:
-'Lost, on the 9th inst., Mr. Jeremiah Hayling, aged
-twenty-six, a hydraulic engineer. Left his lodgings at ten
-o'clock at night, and has not been heard of since. Was
-dressed in,' etc., etc. Ha! That represents the last time that
-the colonel needed to have his machine overhauled, I fancy."
-
-"Good heavens!" cried my patient. "Then that explains what the
-girl said."
-
-"Undoubtedly. It is quite clear that the colonel was a cool and
-desperate man, who was absolutely determined that nothing should
-stand in the way of his little game, like those out-and-out
-pirates who will leave no survivor from a captured ship. Well,
-every moment now is precious, so if you feel equal to it we shall
-go down to Scotland Yard at once as a preliminary to starting for
-Eyford."
-
-Some three hours or so afterwards we were all in the train
-together, bound from Reading to the little Berkshire village.
-There were Sherlock Holmes, the hydraulic engineer, Inspector
-Bradstreet, of Scotland Yard, a plain-clothes man, and myself.
-Bradstreet had spread an ordnance map of the county out upon the
-seat and was busy with his compasses drawing a circle with Eyford
-for its centre.
-
-"There you are," said he. "That circle is drawn at a radius of
-ten miles from the village. The place we want must be somewhere
-near that line. You said ten miles, I think, sir."
-
-"It was an hour's good drive."
-
-"And you think that they brought you back all that way when you
-were unconscious?"
-
-"They must have done so. I have a confused memory, too, of having
-been lifted and conveyed somewhere."
-
-"What I cannot understand," said I, "is why they should have
-spared you when they found you lying fainting in the garden.
-Perhaps the villain was softened by the woman's entreaties."
-
-"I hardly think that likely. I never saw a more inexorable face
-in my life."
-
-"Oh, we shall soon clear up all that," said Bradstreet. "Well, I
-have drawn my circle, and I only wish I knew at what point upon
-it the folk that we are in search of are to be found."
-
-"I think I could lay my finger on it," said Holmes quietly.
-
-"Really, now!" cried the inspector, "you have formed your
-opinion! Come, now, we shall see who agrees with you. I say it is
-south, for the country is more deserted there."
-
-"And I say east," said my patient.
-
-"I am for west," remarked the plain-clothes man. "There are
-several quiet little villages up there."
-
-"And I am for north," said I, "because there are no hills there,
-and our friend says that he did not notice the carriage go up
-any."
-
-"Come," cried the inspector, laughing; "it's a very pretty
-diversity of opinion. We have boxed the compass among us. Who do
-you give your casting vote to?"
-
-"You are all wrong."
-
-"But we can't all be."
-
-"Oh, yes, you can. This is my point." He placed his finger in the
-centre of the circle. "This is where we shall find them."
-
-"But the twelve-mile drive?" gasped Hatherley.
-
-"Six out and six back. Nothing simpler. You say yourself that the
-horse was fresh and glossy when you got in. How could it be that
-if it had gone twelve miles over heavy roads?"
-
-"Indeed, it is a likely ruse enough," observed Bradstreet
-thoughtfully. "Of course there can be no doubt as to the nature
-of this gang."
-
-"None at all," said Holmes. "They are coiners on a large scale,
-and have used the machine to form the amalgam which has taken the
-place of silver."
-
-"We have known for some time that a clever gang was at work,"
-said the inspector. "They have been turning out half-crowns by
-the thousand. We even traced them as far as Reading, but could
-get no farther, for they had covered their traces in a way that
-showed that they were very old hands. But now, thanks to this
-lucky chance, I think that we have got them right enough."
-
-But the inspector was mistaken, for those criminals were not
-destined to fall into the hands of justice. As we rolled into
-Eyford Station we saw a gigantic column of smoke which streamed
-up from behind a small clump of trees in the neighbourhood and
-hung like an immense ostrich feather over the landscape.
-
-"A house on fire?" asked Bradstreet as the train steamed off
-again on its way.
-
-"Yes, sir!" said the station-master.
-
-"When did it break out?"
-
-"I hear that it was during the night, sir, but it has got worse,
-and the whole place is in a blaze."
-
-"Whose house is it?"
-
-"Dr. Becher's."
-
-"Tell me," broke in the engineer, "is Dr. Becher a German, very
-thin, with a long, sharp nose?"
-
-The station-master laughed heartily. "No, sir, Dr. Becher is an
-Englishman, and there isn't a man in the parish who has a
-better-lined waistcoat. But he has a gentleman staying with him,
-a patient, as I understand, who is a foreigner, and he looks as
-if a little good Berkshire beef would do him no harm."
-
-The station-master had not finished his speech before we were all
-hastening in the direction of the fire. The road topped a low
-hill, and there was a great widespread whitewashed building in
-front of us, spouting fire at every chink and window, while in
-the garden in front three fire-engines were vainly striving to
-keep the flames under.
-
-"That's it!" cried Hatherley, in intense excitement. "There is
-the gravel-drive, and there are the rose-bushes where I lay. That
-second window is the one that I jumped from."
-
-"Well, at least," said Holmes, "you have had your revenge upon
-them. There can be no question that it was your oil-lamp which,
-when it was crushed in the press, set fire to the wooden walls,
-though no doubt they were too excited in the chase after you to
-observe it at the time. Now keep your eyes open in this crowd for
-your friends of last night, though I very much fear that they are
-a good hundred miles off by now."
-
-And Holmes' fears came to be realised, for from that day to this
-no word has ever been heard either of the beautiful woman, the
-sinister German, or the morose Englishman. Early that morning a
-peasant had met a cart containing several people and some very
-bulky boxes driving rapidly in the direction of Reading, but
-there all traces of the fugitives disappeared, and even Holmes'
-ingenuity failed ever to discover the least clue as to their
-whereabouts.
-
-The firemen had been much perturbed at the strange arrangements
-which they had found within, and still more so by discovering a
-newly severed human thumb upon a window-sill of the second floor.
-About sunset, however, their efforts were at last successful, and
-they subdued the flames, but not before the roof had fallen in,
-and the whole place been reduced to such absolute ruin that, save
-some twisted cylinders and iron piping, not a trace remained of
-the machinery which had cost our unfortunate acquaintance so
-dearly. Large masses of nickel and of tin were discovered stored
-in an out-house, but no coins were to be found, which may have
-explained the presence of those bulky boxes which have been
-already referred to.
-
-How our hydraulic engineer had been conveyed from the garden to
-the spot where he recovered his senses might have remained
-forever a mystery were it not for the soft mould, which told us a
-very plain tale. He had evidently been carried down by two
-persons, one of whom had remarkably small feet and the other
-unusually large ones. On the whole, it was most probable that the
-silent Englishman, being less bold or less murderous than his
-companion, had assisted the woman to bear the unconscious man out
-of the way of danger.
-
-"Well," said our engineer ruefully as we took our seats to return
-once more to London, "it has been a pretty business for me! I
-have lost my thumb and I have lost a fifty-guinea fee, and what
-have I gained?"
-
-"Experience," said Holmes, laughing. "Indirectly it may be of
-value, you know; you have only to put it into words to gain the
-reputation of being excellent company for the remainder of your
-existence."
-
-
-
-X. THE ADVENTURE OF THE NOBLE BACHELOR
-
-The Lord St. Simon marriage, and its curious termination, have
-long ceased to be a subject of interest in those exalted circles
-in which the unfortunate bridegroom moves. Fresh scandals have
-eclipsed it, and their more piquant details have drawn the
-gossips away from this four-year-old drama. As I have reason to
-believe, however, that the full facts have never been revealed to
-the general public, and as my friend Sherlock Holmes had a
-considerable share in clearing the matter up, I feel that no
-memoir of him would be complete without some little sketch of
-this remarkable episode.
-
-It was a few weeks before my own marriage, during the days when I
-was still sharing rooms with Holmes in Baker Street, that he came
-home from an afternoon stroll to find a letter on the table
-waiting for him. I had remained indoors all day, for the weather
-had taken a sudden turn to rain, with high autumnal winds, and
-the Jezail bullet which I had brought back in one of my limbs as
-a relic of my Afghan campaign throbbed with dull persistence.
-With my body in one easy-chair and my legs upon another, I had
-surrounded myself with a cloud of newspapers until at last,
-saturated with the news of the day, I tossed them all aside and
-lay listless, watching the huge crest and monogram upon the
-envelope upon the table and wondering lazily who my friend's
-noble correspondent could be.
-
-"Here is a very fashionable epistle," I remarked as he entered.
-"Your morning letters, if I remember right, were from a
-fish-monger and a tide-waiter."
-
-"Yes, my correspondence has certainly the charm of variety," he
-answered, smiling, "and the humbler are usually the more
-interesting. This looks like one of those unwelcome social
-summonses which call upon a man either to be bored or to lie."
-
-He broke the seal and glanced over the contents.
-
-"Oh, come, it may prove to be something of interest, after all."
-
-"Not social, then?"
-
-"No, distinctly professional."
-
-"And from a noble client?"
-
-"One of the highest in England."
-
-"My dear fellow, I congratulate you."
-
-"I assure you, Watson, without affectation, that the status of my
-client is a matter of less moment to me than the interest of his
-case. It is just possible, however, that that also may not be
-wanting in this new investigation. You have been reading the
-papers diligently of late, have you not?"
-
-"It looks like it," said I ruefully, pointing to a huge bundle in
-the corner. "I have had nothing else to do."
-
-"It is fortunate, for you will perhaps be able to post me up. I
-read nothing except the criminal news and the agony column. The
-latter is always instructive. But if you have followed recent
-events so closely you must have read about Lord St. Simon and his
-wedding?"
-
-"Oh, yes, with the deepest interest."
-
-"That is well. The letter which I hold in my hand is from Lord
-St. Simon. I will read it to you, and in return you must turn
-over these papers and let me have whatever bears upon the matter.
-This is what he says:
-
-"'MY DEAR MR. SHERLOCK HOLMES:--Lord Backwater tells me that I
-may place implicit reliance upon your judgment and discretion. I
-have determined, therefore, to call upon you and to consult you
-in reference to the very painful event which has occurred in
-connection with my wedding. Mr. Lestrade, of Scotland Yard, is
-acting already in the matter, but he assures me that he sees no
-objection to your co-operation, and that he even thinks that
-it might be of some assistance. I will call at four o'clock in
-the afternoon, and, should you have any other engagement at that
-time, I hope that you will postpone it, as this matter is of
-paramount importance. Yours faithfully, ST. SIMON.'
-
-"It is dated from Grosvenor Mansions, written with a quill pen,
-and the noble lord has had the misfortune to get a smear of ink
-upon the outer side of his right little finger," remarked Holmes
-as he folded up the epistle.
-
-"He says four o'clock. It is three now. He will be here in an
-hour."
-
-"Then I have just time, with your assistance, to get clear upon
-the subject. Turn over those papers and arrange the extracts in
-their order of time, while I take a glance as to who our client
-is." He picked a red-covered volume from a line of books of
-reference beside the mantelpiece. "Here he is," said he, sitting
-down and flattening it out upon his knee. "'Lord Robert Walsingham
-de Vere St. Simon, second son of the Duke of Balmoral.' Hum! 'Arms:
-Azure, three caltrops in chief over a fess sable. Born in 1846.'
-He's forty-one years of age, which is mature for marriage. Was
-Under-Secretary for the colonies in a late administration. The
-Duke, his father, was at one time Secretary for Foreign Affairs.
-They inherit Plantagenet blood by direct descent, and Tudor on
-the distaff side. Ha! Well, there is nothing very instructive in
-all this. I think that I must turn to you Watson, for something
-more solid."
-
-"I have very little difficulty in finding what I want," said I,
-"for the facts are quite recent, and the matter struck me as
-remarkable. I feared to refer them to you, however, as I knew
-that you had an inquiry on hand and that you disliked the
-intrusion of other matters."
-
-"Oh, you mean the little problem of the Grosvenor Square
-furniture van. That is quite cleared up now--though, indeed, it
-was obvious from the first. Pray give me the results of your
-newspaper selections."
-
-"Here is the first notice which I can find. It is in the personal
-column of the Morning Post, and dates, as you see, some weeks
-back: 'A marriage has been arranged,' it says, 'and will, if
-rumour is correct, very shortly take place, between Lord Robert
-St. Simon, second son of the Duke of Balmoral, and Miss Hatty
-Doran, the only daughter of Aloysius Doran. Esq., of San
-Francisco, Cal., U.S.A.' That is all."
-
-"Terse and to the point," remarked Holmes, stretching his long,
-thin legs towards the fire.
-
-"There was a paragraph amplifying this in one of the society
-papers of the same week. Ah, here it is: 'There will soon be a
-call for protection in the marriage market, for the present
-free-trade principle appears to tell heavily against our home
-product. One by one the management of the noble houses of Great
-Britain is passing into the hands of our fair cousins from across
-the Atlantic. An important addition has been made during the last
-week to the list of the prizes which have been borne away by
-these charming invaders. Lord St. Simon, who has shown himself
-for over twenty years proof against the little god's arrows, has
-now definitely announced his approaching marriage with Miss Hatty
-Doran, the fascinating daughter of a California millionaire. Miss
-Doran, whose graceful figure and striking face attracted much
-attention at the Westbury House festivities, is an only child,
-and it is currently reported that her dowry will run to
-considerably over the six figures, with expectancies for the
-future. As it is an open secret that the Duke of Balmoral has
-been compelled to sell his pictures within the last few years,
-and as Lord St. Simon has no property of his own save the small
-estate of Birchmoor, it is obvious that the Californian heiress
-is not the only gainer by an alliance which will enable her to
-make the easy and common transition from a Republican lady to a
-British peeress.'"
-
-"Anything else?" asked Holmes, yawning.
-
-"Oh, yes; plenty. Then there is another note in the Morning Post
-to say that the marriage would be an absolutely quiet one, that it
-would be at St. George's, Hanover Square, that only half a dozen
-intimate friends would be invited, and that the party would
-return to the furnished house at Lancaster Gate which has been
-taken by Mr. Aloysius Doran. Two days later--that is, on
-Wednesday last--there is a curt announcement that the wedding had
-taken place, and that the honeymoon would be passed at Lord
-Backwater's place, near Petersfield. Those are all the notices
-which appeared before the disappearance of the bride."
-
-"Before the what?" asked Holmes with a start.
-
-"The vanishing of the lady."
-
-"When did she vanish, then?"
-
-"At the wedding breakfast."
-
-"Indeed. This is more interesting than it promised to be; quite
-dramatic, in fact."
-
-"Yes; it struck me as being a little out of the common."
-
-"They often vanish before the ceremony, and occasionally during
-the honeymoon; but I cannot call to mind anything quite so prompt
-as this. Pray let me have the details."
-
-"I warn you that they are very incomplete."
-
-"Perhaps we may make them less so."
-
-"Such as they are, they are set forth in a single article of a
-morning paper of yesterday, which I will read to you. It is
-headed, 'Singular Occurrence at a Fashionable Wedding':
-
-"'The family of Lord Robert St. Simon has been thrown into the
-greatest consternation by the strange and painful episodes which
-have taken place in connection with his wedding. The ceremony, as
-shortly announced in the papers of yesterday, occurred on the
-previous morning; but it is only now that it has been possible to
-confirm the strange rumours which have been so persistently
-floating about. In spite of the attempts of the friends to hush
-the matter up, so much public attention has now been drawn to it
-that no good purpose can be served by affecting to disregard what
-is a common subject for conversation.
-
-"'The ceremony, which was performed at St. George's, Hanover
-Square, was a very quiet one, no one being present save the
-father of the bride, Mr. Aloysius Doran, the Duchess of Balmoral,
-Lord Backwater, Lord Eustace and Lady Clara St. Simon (the
-younger brother and sister of the bridegroom), and Lady Alicia
-Whittington. The whole party proceeded afterwards to the house of
-Mr. Aloysius Doran, at Lancaster Gate, where breakfast had been
-prepared. It appears that some little trouble was caused by a
-woman, whose name has not been ascertained, who endeavoured to
-force her way into the house after the bridal party, alleging
-that she had some claim upon Lord St. Simon. It was only after a
-painful and prolonged scene that she was ejected by the butler
-and the footman. The bride, who had fortunately entered the house
-before this unpleasant interruption, had sat down to breakfast
-with the rest, when she complained of a sudden indisposition and
-retired to her room. Her prolonged absence having caused some
-comment, her father followed her, but learned from her maid that
-she had only come up to her chamber for an instant, caught up an
-ulster and bonnet, and hurried down to the passage. One of the
-footmen declared that he had seen a lady leave the house thus
-apparelled, but had refused to credit that it was his mistress,
-believing her to be with the company. On ascertaining that his
-daughter had disappeared, Mr. Aloysius Doran, in conjunction with
-the bridegroom, instantly put themselves in communication with
-the police, and very energetic inquiries are being made, which
-will probably result in a speedy clearing up of this very
-singular business. Up to a late hour last night, however, nothing
-had transpired as to the whereabouts of the missing lady. There
-are rumours of foul play in the matter, and it is said that the
-police have caused the arrest of the woman who had caused the
-original disturbance, in the belief that, from jealousy or some
-other motive, she may have been concerned in the strange
-disappearance of the bride.'"
-
-"And is that all?"
-
-"Only one little item in another of the morning papers, but it is
-a suggestive one."
-
-"And it is--"
-
-"That Miss Flora Millar, the lady who had caused the disturbance,
-has actually been arrested. It appears that she was formerly a
-danseuse at the Allegro, and that she has known the bridegroom
-for some years. There are no further particulars, and the whole
-case is in your hands now--so far as it has been set forth in the
-public press."
-
-"And an exceedingly interesting case it appears to be. I would
-not have missed it for worlds. But there is a ring at the bell,
-Watson, and as the clock makes it a few minutes after four, I
-have no doubt that this will prove to be our noble client. Do not
-dream of going, Watson, for I very much prefer having a witness,
-if only as a check to my own memory."
-
-"Lord Robert St. Simon," announced our page-boy, throwing open
-the door. A gentleman entered, with a pleasant, cultured face,
-high-nosed and pale, with something perhaps of petulance about
-the mouth, and with the steady, well-opened eye of a man whose
-pleasant lot it had ever been to command and to be obeyed. His
-manner was brisk, and yet his general appearance gave an undue
-impression of age, for he had a slight forward stoop and a little
-bend of the knees as he walked. His hair, too, as he swept off
-his very curly-brimmed hat, was grizzled round the edges and thin
-upon the top. As to his dress, it was careful to the verge of
-foppishness, with high collar, black frock-coat, white waistcoat,
-yellow gloves, patent-leather shoes, and light-coloured gaiters.
-He advanced slowly into the room, turning his head from left to
-right, and swinging in his right hand the cord which held his
-golden eyeglasses.
-
-"Good-day, Lord St. Simon," said Holmes, rising and bowing. "Pray
-take the basket-chair. This is my friend and colleague, Dr.
-Watson. Draw up a little to the fire, and we will talk this
-matter over."
-
-"A most painful matter to me, as you can most readily imagine,
-Mr. Holmes. I have been cut to the quick. I understand that you
-have already managed several delicate cases of this sort, sir,
-though I presume that they were hardly from the same class of
-society."
-
-"No, I am descending."
-
-"I beg pardon."
-
-"My last client of the sort was a king."
-
-"Oh, really! I had no idea. And which king?"
-
-"The King of Scandinavia."
-
-"What! Had he lost his wife?"
-
-"You can understand," said Holmes suavely, "that I extend to the
-affairs of my other clients the same secrecy which I promise to
-you in yours."
-
-"Of course! Very right! very right! I'm sure I beg pardon. As to
-my own case, I am ready to give you any information which may
-assist you in forming an opinion."
-
-"Thank you. I have already learned all that is in the public
-prints, nothing more. I presume that I may take it as correct--this
-article, for example, as to the disappearance of the bride."
-
-Lord St. Simon glanced over it. "Yes, it is correct, as far as it
-goes."
-
-"But it needs a great deal of supplementing before anyone could
-offer an opinion. I think that I may arrive at my facts most
-directly by questioning you."
-
-"Pray do so."
-
-"When did you first meet Miss Hatty Doran?"
-
-"In San Francisco, a year ago."
-
-"You were travelling in the States?"
-
-"Yes."
-
-"Did you become engaged then?"
-
-"No."
-
-"But you were on a friendly footing?"
-
-"I was amused by her society, and she could see that I was
-amused."
-
-"Her father is very rich?"
-
-"He is said to be the richest man on the Pacific slope."
-
-"And how did he make his money?"
-
-"In mining. He had nothing a few years ago. Then he struck gold,
-invested it, and came up by leaps and bounds."
-
-"Now, what is your own impression as to the young lady's--your
-wife's character?"
-
-The nobleman swung his glasses a little faster and stared down
-into the fire. "You see, Mr. Holmes," said he, "my wife was
-twenty before her father became a rich man. During that time she
-ran free in a mining camp and wandered through woods or
-mountains, so that her education has come from Nature rather than
-from the schoolmaster. She is what we call in England a tomboy,
-with a strong nature, wild and free, unfettered by any sort of
-traditions. She is impetuous--volcanic, I was about to say. She
-is swift in making up her mind and fearless in carrying out her
-resolutions. On the other hand, I would not have given her the
-name which I have the honour to bear"--he gave a little stately
-cough--"had not I thought her to be at bottom a noble woman. I
-believe that she is capable of heroic self-sacrifice and that
-anything dishonourable would be repugnant to her."
-
-"Have you her photograph?"
-
-"I brought this with me." He opened a locket and showed us the
-full face of a very lovely woman. It was not a photograph but an
-ivory miniature, and the artist had brought out the full effect
-of the lustrous black hair, the large dark eyes, and the
-exquisite mouth. Holmes gazed long and earnestly at it. Then he
-closed the locket and handed it back to Lord St. Simon.
-
-"The young lady came to London, then, and you renewed your
-acquaintance?"
-
-"Yes, her father brought her over for this last London season. I
-met her several times, became engaged to her, and have now
-married her."
-
-"She brought, I understand, a considerable dowry?"
-
-"A fair dowry. Not more than is usual in my family."
-
-"And this, of course, remains to you, since the marriage is a
-fait accompli?"
-
-"I really have made no inquiries on the subject."
-
-"Very naturally not. Did you see Miss Doran on the day before the
-wedding?"
-
-"Yes."
-
-"Was she in good spirits?"
-
-"Never better. She kept talking of what we should do in our
-future lives."
-
-"Indeed! That is very interesting. And on the morning of the
-wedding?"
-
-"She was as bright as possible--at least until after the
-ceremony."
-
-"And did you observe any change in her then?"
-
-"Well, to tell the truth, I saw then the first signs that I had
-ever seen that her temper was just a little sharp. The incident
-however, was too trivial to relate and can have no possible
-bearing upon the case."
-
-"Pray let us have it, for all that."
-
-"Oh, it is childish. She dropped her bouquet as we went towards
-the vestry. She was passing the front pew at the time, and it
-fell over into the pew. There was a moment's delay, but the
-gentleman in the pew handed it up to her again, and it did not
-appear to be the worse for the fall. Yet when I spoke to her of
-the matter, she answered me abruptly; and in the carriage, on our
-way home, she seemed absurdly agitated over this trifling cause."
-
-"Indeed! You say that there was a gentleman in the pew. Some of
-the general public were present, then?"
-
-"Oh, yes. It is impossible to exclude them when the church is
-open."
-
-"This gentleman was not one of your wife's friends?"
-
-"No, no; I call him a gentleman by courtesy, but he was quite a
-common-looking person. I hardly noticed his appearance. But
-really I think that we are wandering rather far from the point."
-
-"Lady St. Simon, then, returned from the wedding in a less
-cheerful frame of mind than she had gone to it. What did she do
-on re-entering her father's house?"
-
-"I saw her in conversation with her maid."
-
-"And who is her maid?"
-
-"Alice is her name. She is an American and came from California
-with her."
-
-"A confidential servant?"
-
-"A little too much so. It seemed to me that her mistress allowed
-her to take great liberties. Still, of course, in America they
-look upon these things in a different way."
-
-"How long did she speak to this Alice?"
-
-"Oh, a few minutes. I had something else to think of."
-
-"You did not overhear what they said?"
-
-"Lady St. Simon said something about 'jumping a claim.' She was
-accustomed to use slang of the kind. I have no idea what she
-meant."
-
-"American slang is very expressive sometimes. And what did your
-wife do when she finished speaking to her maid?"
-
-"She walked into the breakfast-room."
-
-"On your arm?"
-
-"No, alone. She was very independent in little matters like that.
-Then, after we had sat down for ten minutes or so, she rose
-hurriedly, muttered some words of apology, and left the room. She
-never came back."
-
-"But this maid, Alice, as I understand, deposes that she went to
-her room, covered her bride's dress with a long ulster, put on a
-bonnet, and went out."
-
-"Quite so. And she was afterwards seen walking into Hyde Park in
-company with Flora Millar, a woman who is now in custody, and who
-had already made a disturbance at Mr. Doran's house that
-morning."
-
-"Ah, yes. I should like a few particulars as to this young lady,
-and your relations to her."
-
-Lord St. Simon shrugged his shoulders and raised his eyebrows.
-"We have been on a friendly footing for some years--I may say on
-a very friendly footing. She used to be at the Allegro. I have
-not treated her ungenerously, and she had no just cause of
-complaint against me, but you know what women are, Mr. Holmes.
-Flora was a dear little thing, but exceedingly hot-headed and
-devotedly attached to me. She wrote me dreadful letters when she
-heard that I was about to be married, and, to tell the truth, the
-reason why I had the marriage celebrated so quietly was that I
-feared lest there might be a scandal in the church. She came to
-Mr. Doran's door just after we returned, and she endeavoured to
-push her way in, uttering very abusive expressions towards my
-wife, and even threatening her, but I had foreseen the
-possibility of something of the sort, and I had two police
-fellows there in private clothes, who soon pushed her out again.
-She was quiet when she saw that there was no good in making a
-row."
-
-"Did your wife hear all this?"
-
-"No, thank goodness, she did not."
-
-"And she was seen walking with this very woman afterwards?"
-
-"Yes. That is what Mr. Lestrade, of Scotland Yard, looks upon as
-so serious. It is thought that Flora decoyed my wife out and laid
-some terrible trap for her."
-
-"Well, it is a possible supposition."
-
-"You think so, too?"
-
-"I did not say a probable one. But you do not yourself look upon
-this as likely?"
-
-"I do not think Flora would hurt a fly."
-
-"Still, jealousy is a strange transformer of characters. Pray
-what is your own theory as to what took place?"
-
-"Well, really, I came to seek a theory, not to propound one. I
-have given you all the facts. Since you ask me, however, I may
-say that it has occurred to me as possible that the excitement of
-this affair, the consciousness that she had made so immense a
-social stride, had the effect of causing some little nervous
-disturbance in my wife."
-
-"In short, that she had become suddenly deranged?"
-
-"Well, really, when I consider that she has turned her back--I
-will not say upon me, but upon so much that many have aspired to
-without success--I can hardly explain it in any other fashion."
-
-"Well, certainly that is also a conceivable hypothesis," said
-Holmes, smiling. "And now, Lord St. Simon, I think that I have
-nearly all my data. May I ask whether you were seated at the
-breakfast-table so that you could see out of the window?"
-
-"We could see the other side of the road and the Park."
-
-"Quite so. Then I do not think that I need to detain you longer.
-I shall communicate with you."
-
-"Should you be fortunate enough to solve this problem," said our
-client, rising.
-
-"I have solved it."
-
-"Eh? What was that?"
-
-"I say that I have solved it."
-
-"Where, then, is my wife?"
-
-"That is a detail which I shall speedily supply."
-
-Lord St. Simon shook his head. "I am afraid that it will take
-wiser heads than yours or mine," he remarked, and bowing in a
-stately, old-fashioned manner he departed.
-
-"It is very good of Lord St. Simon to honour my head by putting
-it on a level with his own," said Sherlock Holmes, laughing. "I
-think that I shall have a whisky and soda and a cigar after all
-this cross-questioning. I had formed my conclusions as to the
-case before our client came into the room."
-
-"My dear Holmes!"
-
-"I have notes of several similar cases, though none, as I
-remarked before, which were quite as prompt. My whole examination
-served to turn my conjecture into a certainty. Circumstantial
-evidence is occasionally very convincing, as when you find a
-trout in the milk, to quote Thoreau's example."
-
-"But I have heard all that you have heard."
-
-"Without, however, the knowledge of pre-existing cases which
-serves me so well. There was a parallel instance in Aberdeen some
-years back, and something on very much the same lines at Munich
-the year after the Franco-Prussian War. It is one of these
-cases--but, hullo, here is Lestrade! Good-afternoon, Lestrade!
-You will find an extra tumbler upon the sideboard, and there are
-cigars in the box."
-
-The official detective was attired in a pea-jacket and cravat,
-which gave him a decidedly nautical appearance, and he carried a
-black canvas bag in his hand. With a short greeting he seated
-himself and lit the cigar which had been offered to him.
-
-"What's up, then?" asked Holmes with a twinkle in his eye. "You
-look dissatisfied."
-
-"And I feel dissatisfied. It is this infernal St. Simon marriage
-case. I can make neither head nor tail of the business."
-
-"Really! You surprise me."
-
-"Who ever heard of such a mixed affair? Every clue seems to slip
-through my fingers. I have been at work upon it all day."
-
-"And very wet it seems to have made you," said Holmes laying his
-hand upon the arm of the pea-jacket.
-
-"Yes, I have been dragging the Serpentine."
-
-"In heaven's name, what for?"
-
-"In search of the body of Lady St. Simon."
-
-Sherlock Holmes leaned back in his chair and laughed heartily.
-
-"Have you dragged the basin of Trafalgar Square fountain?" he
-asked.
-
-"Why? What do you mean?"
-
-"Because you have just as good a chance of finding this lady in
-the one as in the other."
-
-Lestrade shot an angry glance at my companion. "I suppose you
-know all about it," he snarled.
-
-"Well, I have only just heard the facts, but my mind is made up."
-
-"Oh, indeed! Then you think that the Serpentine plays no part in
-the matter?"
-
-"I think it very unlikely."
-
-"Then perhaps you will kindly explain how it is that we found
-this in it?" He opened his bag as he spoke, and tumbled onto the
-floor a wedding-dress of watered silk, a pair of white satin
-shoes and a bride's wreath and veil, all discoloured and soaked
-in water. "There," said he, putting a new wedding-ring upon the
-top of the pile. "There is a little nut for you to crack, Master
-Holmes."
-
-"Oh, indeed!" said my friend, blowing blue rings into the air.
-"You dragged them from the Serpentine?"
-
-"No. They were found floating near the margin by a park-keeper.
-They have been identified as her clothes, and it seemed to me
-that if the clothes were there the body would not be far off."
-
-"By the same brilliant reasoning, every man's body is to be found
-in the neighbourhood of his wardrobe. And pray what did you hope
-to arrive at through this?"
-
-"At some evidence implicating Flora Millar in the disappearance."
-
-"I am afraid that you will find it difficult."
-
-"Are you, indeed, now?" cried Lestrade with some bitterness. "I
-am afraid, Holmes, that you are not very practical with your
-deductions and your inferences. You have made two blunders in as
-many minutes. This dress does implicate Miss Flora Millar."
-
-"And how?"
-
-"In the dress is a pocket. In the pocket is a card-case. In the
-card-case is a note. And here is the very note." He slapped it
-down upon the table in front of him. "Listen to this: 'You will
-see me when all is ready. Come at once. F.H.M.' Now my theory all
-along has been that Lady St. Simon was decoyed away by Flora
-Millar, and that she, with confederates, no doubt, was
-responsible for her disappearance. Here, signed with her
-initials, is the very note which was no doubt quietly slipped
-into her hand at the door and which lured her within their
-reach."
-
-"Very good, Lestrade," said Holmes, laughing. "You really are
-very fine indeed. Let me see it." He took up the paper in a
-listless way, but his attention instantly became riveted, and he
-gave a little cry of satisfaction. "This is indeed important,"
-said he.
-
-"Ha! you find it so?"
-
-"Extremely so. I congratulate you warmly."
-
-Lestrade rose in his triumph and bent his head to look. "Why," he
-shrieked, "you're looking at the wrong side!"
-
-"On the contrary, this is the right side."
-
-"The right side? You're mad! Here is the note written in pencil
-over here."
-
-"And over here is what appears to be the fragment of a hotel
-bill, which interests me deeply."
-
-"There's nothing in it. I looked at it before," said Lestrade.
-"'Oct. 4th, rooms 8s., breakfast 2s. 6d., cocktail 1s., lunch 2s.
-6d., glass sherry, 8d.' I see nothing in that."
-
-"Very likely not. It is most important, all the same. As to the
-note, it is important also, or at least the initials are, so I
-congratulate you again."
-
-"I've wasted time enough," said Lestrade, rising. "I believe in
-hard work and not in sitting by the fire spinning fine theories.
-Good-day, Mr. Holmes, and we shall see which gets to the bottom
-of the matter first." He gathered up the garments, thrust them
-into the bag, and made for the door.
-
-"Just one hint to you, Lestrade," drawled Holmes before his rival
-vanished; "I will tell you the true solution of the matter. Lady
-St. Simon is a myth. There is not, and there never has been, any
-such person."
-
-Lestrade looked sadly at my companion. Then he turned to me,
-tapped his forehead three times, shook his head solemnly, and
-hurried away.
-
-He had hardly shut the door behind him when Holmes rose to put on
-his overcoat. "There is something in what the fellow says about
-outdoor work," he remarked, "so I think, Watson, that I must
-leave you to your papers for a little."
-
-It was after five o'clock when Sherlock Holmes left me, but I had
-no time to be lonely, for within an hour there arrived a
-confectioner's man with a very large flat box. This he unpacked
-with the help of a youth whom he had brought with him, and
-presently, to my very great astonishment, a quite epicurean
-little cold supper began to be laid out upon our humble
-lodging-house mahogany. There were a couple of brace of cold
-woodcock, a pheasant, a pâté de foie gras pie with a group of
-ancient and cobwebby bottles. Having laid out all these luxuries,
-my two visitors vanished away, like the genii of the Arabian
-Nights, with no explanation save that the things had been paid
-for and were ordered to this address.
-
-Just before nine o'clock Sherlock Holmes stepped briskly into the
-room. His features were gravely set, but there was a light in his
-eye which made me think that he had not been disappointed in his
-conclusions.
-
-"They have laid the supper, then," he said, rubbing his hands.
-
-"You seem to expect company. They have laid for five."
-
-"Yes, I fancy we may have some company dropping in," said he. "I
-am surprised that Lord St. Simon has not already arrived. Ha! I
-fancy that I hear his step now upon the stairs."
-
-It was indeed our visitor of the afternoon who came bustling in,
-dangling his glasses more vigorously than ever, and with a very
-perturbed expression upon his aristocratic features.
-
-"My messenger reached you, then?" asked Holmes.
-
-"Yes, and I confess that the contents startled me beyond measure.
-Have you good authority for what you say?"
-
-"The best possible."
-
-Lord St. Simon sank into a chair and passed his hand over his
-forehead.
-
-"What will the Duke say," he murmured, "when he hears that one of
-the family has been subjected to such humiliation?"
-
-"It is the purest accident. I cannot allow that there is any
-humiliation."
-
-"Ah, you look on these things from another standpoint."
-
-"I fail to see that anyone is to blame. I can hardly see how the
-lady could have acted otherwise, though her abrupt method of
-doing it was undoubtedly to be regretted. Having no mother, she
-had no one to advise her at such a crisis."
-
-"It was a slight, sir, a public slight," said Lord St. Simon,
-tapping his fingers upon the table.
-
-"You must make allowance for this poor girl, placed in so
-unprecedented a position."
-
-"I will make no allowance. I am very angry indeed, and I have
-been shamefully used."
-
-"I think that I heard a ring," said Holmes. "Yes, there are steps
-on the landing. If I cannot persuade you to take a lenient view
-of the matter, Lord St. Simon, I have brought an advocate here
-who may be more successful." He opened the door and ushered in a
-lady and gentleman. "Lord St. Simon," said he "allow me to
-introduce you to Mr. and Mrs. Francis Hay Moulton. The lady, I
-think, you have already met."
-
-At the sight of these newcomers our client had sprung from his
-seat and stood very erect, with his eyes cast down and his hand
-thrust into the breast of his frock-coat, a picture of offended
-dignity. The lady had taken a quick step forward and had held out
-her hand to him, but he still refused to raise his eyes. It was
-as well for his resolution, perhaps, for her pleading face was
-one which it was hard to resist.
-
-"You're angry, Robert," said she. "Well, I guess you have every
-cause to be."
-
-"Pray make no apology to me," said Lord St. Simon bitterly.
-
-"Oh, yes, I know that I have treated you real bad and that I
-should have spoken to you before I went; but I was kind of
-rattled, and from the time when I saw Frank here again I just
-didn't know what I was doing or saying. I only wonder I didn't
-fall down and do a faint right there before the altar."
-
-"Perhaps, Mrs. Moulton, you would like my friend and me to leave
-the room while you explain this matter?"
-
-"If I may give an opinion," remarked the strange gentleman,
-"we've had just a little too much secrecy over this business
-already. For my part, I should like all Europe and America to
-hear the rights of it." He was a small, wiry, sunburnt man,
-clean-shaven, with a sharp face and alert manner.
-
-"Then I'll tell our story right away," said the lady. "Frank here
-and I met in '84, in McQuire's camp, near the Rockies, where pa
-was working a claim. We were engaged to each other, Frank and I;
-but then one day father struck a rich pocket and made a pile,
-while poor Frank here had a claim that petered out and came to
-nothing. The richer pa grew the poorer was Frank; so at last pa
-wouldn't hear of our engagement lasting any longer, and he took
-me away to 'Frisco. Frank wouldn't throw up his hand, though; so
-he followed me there, and he saw me without pa knowing anything
-about it. It would only have made him mad to know, so we just
-fixed it all up for ourselves. Frank said that he would go and
-make his pile, too, and never come back to claim me until he had
-as much as pa. So then I promised to wait for him to the end of
-time and pledged myself not to marry anyone else while he lived.
-'Why shouldn't we be married right away, then,' said he, 'and
-then I will feel sure of you; and I won't claim to be your
-husband until I come back?' Well, we talked it over, and he had
-fixed it all up so nicely, with a clergyman all ready in waiting,
-that we just did it right there; and then Frank went off to seek
-his fortune, and I went back to pa.
-
-"The next I heard of Frank was that he was in Montana, and then
-he went prospecting in Arizona, and then I heard of him from New
-Mexico. After that came a long newspaper story about how a
-miners' camp had been attacked by Apache Indians, and there was
-my Frank's name among the killed. I fainted dead away, and I was
-very sick for months after. Pa thought I had a decline and took
-me to half the doctors in 'Frisco. Not a word of news came for a
-year and more, so that I never doubted that Frank was really
-dead. Then Lord St. Simon came to 'Frisco, and we came to London,
-and a marriage was arranged, and pa was very pleased, but I felt
-all the time that no man on this earth would ever take the place
-in my heart that had been given to my poor Frank.
-
-"Still, if I had married Lord St. Simon, of course I'd have done
-my duty by him. We can't command our love, but we can our
-actions. I went to the altar with him with the intention to make
-him just as good a wife as it was in me to be. But you may
-imagine what I felt when, just as I came to the altar rails, I
-glanced back and saw Frank standing and looking at me out of the
-first pew. I thought it was his ghost at first; but when I looked
-again there he was still, with a kind of question in his eyes, as
-if to ask me whether I were glad or sorry to see him. I wonder I
-didn't drop. I know that everything was turning round, and the
-words of the clergyman were just like the buzz of a bee in my
-ear. I didn't know what to do. Should I stop the service and make
-a scene in the church? I glanced at him again, and he seemed to
-know what I was thinking, for he raised his finger to his lips to
-tell me to be still. Then I saw him scribble on a piece of paper,
-and I knew that he was writing me a note. As I passed his pew on
-the way out I dropped my bouquet over to him, and he slipped the
-note into my hand when he returned me the flowers. It was only a
-line asking me to join him when he made the sign to me to do so.
-Of course I never doubted for a moment that my first duty was now
-to him, and I determined to do just whatever he might direct.
-
-"When I got back I told my maid, who had known him in California,
-and had always been his friend. I ordered her to say nothing, but
-to get a few things packed and my ulster ready. I know I ought to
-have spoken to Lord St. Simon, but it was dreadful hard before
-his mother and all those great people. I just made up my mind to
-run away and explain afterwards. I hadn't been at the table ten
-minutes before I saw Frank out of the window at the other side of
-the road. He beckoned to me and then began walking into the Park.
-I slipped out, put on my things, and followed him. Some woman
-came talking something or other about Lord St. Simon to
-me--seemed to me from the little I heard as if he had a little
-secret of his own before marriage also--but I managed to get away
-from her and soon overtook Frank. We got into a cab together, and
-away we drove to some lodgings he had taken in Gordon Square, and
-that was my true wedding after all those years of waiting. Frank
-had been a prisoner among the Apaches, had escaped, came on to
-'Frisco, found that I had given him up for dead and had gone to
-England, followed me there, and had come upon me at last on the
-very morning of my second wedding."
-
-"I saw it in a paper," explained the American. "It gave the name
-and the church but not where the lady lived."
-
-"Then we had a talk as to what we should do, and Frank was all
-for openness, but I was so ashamed of it all that I felt as if I
-should like to vanish away and never see any of them again--just
-sending a line to pa, perhaps, to show him that I was alive. It
-was awful to me to think of all those lords and ladies sitting
-round that breakfast-table and waiting for me to come back. So
-Frank took my wedding-clothes and things and made a bundle of
-them, so that I should not be traced, and dropped them away
-somewhere where no one could find them. It is likely that we
-should have gone on to Paris to-morrow, only that this good
-gentleman, Mr. Holmes, came round to us this evening, though how
-he found us is more than I can think, and he showed us very
-clearly and kindly that I was wrong and that Frank was right, and
-that we should be putting ourselves in the wrong if we were so
-secret. Then he offered to give us a chance of talking to Lord
-St. Simon alone, and so we came right away round to his rooms at
-once. Now, Robert, you have heard it all, and I am very sorry if
-I have given you pain, and I hope that you do not think very
-meanly of me."
-
-Lord St. Simon had by no means relaxed his rigid attitude, but
-had listened with a frowning brow and a compressed lip to this
-long narrative.
-
-"Excuse me," he said, "but it is not my custom to discuss my most
-intimate personal affairs in this public manner."
-
-"Then you won't forgive me? You won't shake hands before I go?"
-
-"Oh, certainly, if it would give you any pleasure." He put out
-his hand and coldly grasped that which she extended to him.
-
-"I had hoped," suggested Holmes, "that you would have joined us
-in a friendly supper."
-
-"I think that there you ask a little too much," responded his
-Lordship. "I may be forced to acquiesce in these recent
-developments, but I can hardly be expected to make merry over
-them. I think that with your permission I will now wish you all a
-very good-night." He included us all in a sweeping bow and
-stalked out of the room.
-
-"Then I trust that you at least will honour me with your
-company," said Sherlock Holmes. "It is always a joy to meet an
-American, Mr. Moulton, for I am one of those who believe that the
-folly of a monarch and the blundering of a minister in far-gone
-years will not prevent our children from being some day citizens
-of the same world-wide country under a flag which shall be a
-quartering of the Union Jack with the Stars and Stripes."
-
-"The case has been an interesting one," remarked Holmes when our
-visitors had left us, "because it serves to show very clearly how
-simple the explanation may be of an affair which at first sight
-seems to be almost inexplicable. Nothing could be more natural
-than the sequence of events as narrated by this lady, and nothing
-stranger than the result when viewed, for instance, by Mr.
-Lestrade of Scotland Yard."
-
-"You were not yourself at fault at all, then?"
-
-"From the first, two facts were very obvious to me, the one that
-the lady had been quite willing to undergo the wedding ceremony,
-the other that she had repented of it within a few minutes of
-returning home. Obviously something had occurred during the
-morning, then, to cause her to change her mind. What could that
-something be? She could not have spoken to anyone when she was
-out, for she had been in the company of the bridegroom. Had she
-seen someone, then? If she had, it must be someone from America
-because she had spent so short a time in this country that she
-could hardly have allowed anyone to acquire so deep an influence
-over her that the mere sight of him would induce her to change
-her plans so completely. You see we have already arrived, by a
-process of exclusion, at the idea that she might have seen an
-American. Then who could this American be, and why should he
-possess so much influence over her? It might be a lover; it might
-be a husband. Her young womanhood had, I knew, been spent in
-rough scenes and under strange conditions. So far I had got
-before I ever heard Lord St. Simon's narrative. When he told us
-of a man in a pew, of the change in the bride's manner, of so
-transparent a device for obtaining a note as the dropping of a
-bouquet, of her resort to her confidential maid, and of her very
-significant allusion to claim-jumping--which in miners' parlance
-means taking possession of that which another person has a prior
-claim to--the whole situation became absolutely clear. She had
-gone off with a man, and the man was either a lover or was a
-previous husband--the chances being in favour of the latter."
-
-"And how in the world did you find them?"
-
-"It might have been difficult, but friend Lestrade held
-information in his hands the value of which he did not himself
-know. The initials were, of course, of the highest importance,
-but more valuable still was it to know that within a week he had
-settled his bill at one of the most select London hotels."
-
-"How did you deduce the select?"
-
-"By the select prices. Eight shillings for a bed and eightpence
-for a glass of sherry pointed to one of the most expensive
-hotels. There are not many in London which charge at that rate.
-In the second one which I visited in Northumberland Avenue, I
-learned by an inspection of the book that Francis H. Moulton, an
-American gentleman, had left only the day before, and on looking
-over the entries against him, I came upon the very items which I
-had seen in the duplicate bill. His letters were to be forwarded
-to 226 Gordon Square; so thither I travelled, and being fortunate
-enough to find the loving couple at home, I ventured to give them
-some paternal advice and to point out to them that it would be
-better in every way that they should make their position a little
-clearer both to the general public and to Lord St. Simon in
-particular. I invited them to meet him here, and, as you see, I
-made him keep the appointment."
-
-"But with no very good result," I remarked. "His conduct was
-certainly not very gracious."
-
-"Ah, Watson," said Holmes, smiling, "perhaps you would not be
-very gracious either, if, after all the trouble of wooing and
-wedding, you found yourself deprived in an instant of wife and of
-fortune. I think that we may judge Lord St. Simon very mercifully
-and thank our stars that we are never likely to find ourselves in
-the same position. Draw your chair up and hand me my violin, for
-the only problem we have still to solve is how to while away
-these bleak autumnal evenings."
-
-
-
-XI. THE ADVENTURE OF THE BERYL CORONET
-
-"Holmes," said I as I stood one morning in our bow-window looking
-down the street, "here is a madman coming along. It seems rather
-sad that his relatives should allow him to come out alone."
-
-My friend rose lazily from his armchair and stood with his hands
-in the pockets of his dressing-gown, looking over my shoulder. It
-was a bright, crisp February morning, and the snow of the day
-before still lay deep upon the ground, shimmering brightly in the
-wintry sun. Down the centre of Baker Street it had been ploughed
-into a brown crumbly band by the traffic, but at either side and
-on the heaped-up edges of the foot-paths it still lay as white as
-when it fell. The grey pavement had been cleaned and scraped, but
-was still dangerously slippery, so that there were fewer
-passengers than usual. Indeed, from the direction of the
-Metropolitan Station no one was coming save the single gentleman
-whose eccentric conduct had drawn my attention.
-
-He was a man of about fifty, tall, portly, and imposing, with a
-massive, strongly marked face and a commanding figure. He was
-dressed in a sombre yet rich style, in black frock-coat, shining
-hat, neat brown gaiters, and well-cut pearl-grey trousers. Yet
-his actions were in absurd contrast to the dignity of his dress
-and features, for he was running hard, with occasional little
-springs, such as a weary man gives who is little accustomed to
-set any tax upon his legs. As he ran he jerked his hands up and
-down, waggled his head, and writhed his face into the most
-extraordinary contortions.
-
-"What on earth can be the matter with him?" I asked. "He is
-looking up at the numbers of the houses."
-
-"I believe that he is coming here," said Holmes, rubbing his
-hands.
-
-"Here?"
-
-"Yes; I rather think he is coming to consult me professionally. I
-think that I recognise the symptoms. Ha! did I not tell you?" As
-he spoke, the man, puffing and blowing, rushed at our door and
-pulled at our bell until the whole house resounded with the
-clanging.
-
-A few moments later he was in our room, still puffing, still
-gesticulating, but with so fixed a look of grief and despair in
-his eyes that our smiles were turned in an instant to horror and
-pity. For a while he could not get his words out, but swayed his
-body and plucked at his hair like one who has been driven to the
-extreme limits of his reason. Then, suddenly springing to his
-feet, he beat his head against the wall with such force that we
-both rushed upon him and tore him away to the centre of the room.
-Sherlock Holmes pushed him down into the easy-chair and, sitting
-beside him, patted his hand and chatted with him in the easy,
-soothing tones which he knew so well how to employ.
-
-"You have come to me to tell your story, have you not?" said he.
-"You are fatigued with your haste. Pray wait until you have
-recovered yourself, and then I shall be most happy to look into
-any little problem which you may submit to me."
-
-The man sat for a minute or more with a heaving chest, fighting
-against his emotion. Then he passed his handkerchief over his
-brow, set his lips tight, and turned his face towards us.
-
-"No doubt you think me mad?" said he.
-
-"I see that you have had some great trouble," responded Holmes.
-
-"God knows I have!--a trouble which is enough to unseat my
-reason, so sudden and so terrible is it. Public disgrace I might
-have faced, although I am a man whose character has never yet
-borne a stain. Private affliction also is the lot of every man;
-but the two coming together, and in so frightful a form, have
-been enough to shake my very soul. Besides, it is not I alone.
-The very noblest in the land may suffer unless some way be found
-out of this horrible affair."
-
-"Pray compose yourself, sir," said Holmes, "and let me have a
-clear account of who you are and what it is that has befallen
-you."
-
-"My name," answered our visitor, "is probably familiar to your
-ears. I am Alexander Holder, of the banking firm of Holder &
-Stevenson, of Threadneedle Street."
-
-The name was indeed well known to us as belonging to the senior
-partner in the second largest private banking concern in the City
-of London. What could have happened, then, to bring one of the
-foremost citizens of London to this most pitiable pass? We
-waited, all curiosity, until with another effort he braced
-himself to tell his story.
-
-"I feel that time is of value," said he; "that is why I hastened
-here when the police inspector suggested that I should secure
-your co-operation. I came to Baker Street by the Underground and
-hurried from there on foot, for the cabs go slowly through this
-snow. That is why I was so out of breath, for I am a man who
-takes very little exercise. I feel better now, and I will put the
-facts before you as shortly and yet as clearly as I can.
-
-"It is, of course, well known to you that in a successful banking
-business as much depends upon our being able to find remunerative
-investments for our funds as upon our increasing our connection
-and the number of our depositors. One of our most lucrative means
-of laying out money is in the shape of loans, where the security
-is unimpeachable. We have done a good deal in this direction
-during the last few years, and there are many noble families to
-whom we have advanced large sums upon the security of their
-pictures, libraries, or plate.
-
-"Yesterday morning I was seated in my office at the bank when a
-card was brought in to me by one of the clerks. I started when I
-saw the name, for it was that of none other than--well, perhaps
-even to you I had better say no more than that it was a name
-which is a household word all over the earth--one of the highest,
-noblest, most exalted names in England. I was overwhelmed by the
-honour and attempted, when he entered, to say so, but he plunged
-at once into business with the air of a man who wishes to hurry
-quickly through a disagreeable task.
-
-"'Mr. Holder,' said he, 'I have been informed that you are in the
-habit of advancing money.'
-
-"'The firm does so when the security is good.' I answered.
-
-"'It is absolutely essential to me,' said he, 'that I should have
-50,000 pounds at once. I could, of course, borrow so trifling a
-sum ten times over from my friends, but I much prefer to make it
-a matter of business and to carry out that business myself. In my
-position you can readily understand that it is unwise to place
-one's self under obligations.'
-
-"'For how long, may I ask, do you want this sum?' I asked.
-
-"'Next Monday I have a large sum due to me, and I shall then most
-certainly repay what you advance, with whatever interest you
-think it right to charge. But it is very essential to me that the
-money should be paid at once.'
-
-"'I should be happy to advance it without further parley from my
-own private purse,' said I, 'were it not that the strain would be
-rather more than it could bear. If, on the other hand, I am to do
-it in the name of the firm, then in justice to my partner I must
-insist that, even in your case, every businesslike precaution
-should be taken.'
-
-"'I should much prefer to have it so,' said he, raising up a
-square, black morocco case which he had laid beside his chair.
-'You have doubtless heard of the Beryl Coronet?'
-
-"'One of the most precious public possessions of the empire,'
-said I.
-
-"'Precisely.' He opened the case, and there, imbedded in soft,
-flesh-coloured velvet, lay the magnificent piece of jewellery
-which he had named. 'There are thirty-nine enormous beryls,' said
-he, 'and the price of the gold chasing is incalculable. The
-lowest estimate would put the worth of the coronet at double the
-sum which I have asked. I am prepared to leave it with you as my
-security.'
-
-"I took the precious case into my hands and looked in some
-perplexity from it to my illustrious client.
-
-"'You doubt its value?' he asked.
-
-"'Not at all. I only doubt--'
-
-"'The propriety of my leaving it. You may set your mind at rest
-about that. I should not dream of doing so were it not absolutely
-certain that I should be able in four days to reclaim it. It is a
-pure matter of form. Is the security sufficient?'
-
-"'Ample.'
-
-"'You understand, Mr. Holder, that I am giving you a strong proof
-of the confidence which I have in you, founded upon all that I
-have heard of you. I rely upon you not only to be discreet and to
-refrain from all gossip upon the matter but, above all, to
-preserve this coronet with every possible precaution because I
-need not say that a great public scandal would be caused if any
-harm were to befall it. Any injury to it would be almost as
-serious as its complete loss, for there are no beryls in the
-world to match these, and it would be impossible to replace them.
-I leave it with you, however, with every confidence, and I shall
-call for it in person on Monday morning.'
-
-"Seeing that my client was anxious to leave, I said no more but,
-calling for my cashier, I ordered him to pay over fifty 1000
-pound notes. When I was alone once more, however, with the
-precious case lying upon the table in front of me, I could not
-but think with some misgivings of the immense responsibility
-which it entailed upon me. There could be no doubt that, as it
-was a national possession, a horrible scandal would ensue if any
-misfortune should occur to it. I already regretted having ever
-consented to take charge of it. However, it was too late to alter
-the matter now, so I locked it up in my private safe and turned
-once more to my work.
-
-"When evening came I felt that it would be an imprudence to leave
-so precious a thing in the office behind me. Bankers' safes had
-been forced before now, and why should not mine be? If so, how
-terrible would be the position in which I should find myself! I
-determined, therefore, that for the next few days I would always
-carry the case backward and forward with me, so that it might
-never be really out of my reach. With this intention, I called a
-cab and drove out to my house at Streatham, carrying the jewel
-with me. I did not breathe freely until I had taken it upstairs
-and locked it in the bureau of my dressing-room.
-
-"And now a word as to my household, Mr. Holmes, for I wish you to
-thoroughly understand the situation. My groom and my page sleep
-out of the house, and may be set aside altogether. I have three
-maid-servants who have been with me a number of years and whose
-absolute reliability is quite above suspicion. Another, Lucy
-Parr, the second waiting-maid, has only been in my service a few
-months. She came with an excellent character, however, and has
-always given me satisfaction. She is a very pretty girl and has
-attracted admirers who have occasionally hung about the place.
-That is the only drawback which we have found to her, but we
-believe her to be a thoroughly good girl in every way.
-
-"So much for the servants. My family itself is so small that it
-will not take me long to describe it. I am a widower and have an
-only son, Arthur. He has been a disappointment to me, Mr.
-Holmes--a grievous disappointment. I have no doubt that I am
-myself to blame. People tell me that I have spoiled him. Very
-likely I have. When my dear wife died I felt that he was all I
-had to love. I could not bear to see the smile fade even for a
-moment from his face. I have never denied him a wish. Perhaps it
-would have been better for both of us had I been sterner, but I
-meant it for the best.
-
-"It was naturally my intention that he should succeed me in my
-business, but he was not of a business turn. He was wild,
-wayward, and, to speak the truth, I could not trust him in the
-handling of large sums of money. When he was young he became a
-member of an aristocratic club, and there, having charming
-manners, he was soon the intimate of a number of men with long
-purses and expensive habits. He learned to play heavily at cards
-and to squander money on the turf, until he had again and again
-to come to me and implore me to give him an advance upon his
-allowance, that he might settle his debts of honour. He tried
-more than once to break away from the dangerous company which he
-was keeping, but each time the influence of his friend, Sir
-George Burnwell, was enough to draw him back again.
-
-"And, indeed, I could not wonder that such a man as Sir George
-Burnwell should gain an influence over him, for he has frequently
-brought him to my house, and I have found myself that I could
-hardly resist the fascination of his manner. He is older than
-Arthur, a man of the world to his finger-tips, one who had been
-everywhere, seen everything, a brilliant talker, and a man of
-great personal beauty. Yet when I think of him in cold blood, far
-away from the glamour of his presence, I am convinced from his
-cynical speech and the look which I have caught in his eyes that
-he is one who should be deeply distrusted. So I think, and so,
-too, thinks my little Mary, who has a woman's quick insight into
-character.
-
-"And now there is only she to be described. She is my niece; but
-when my brother died five years ago and left her alone in the
-world I adopted her, and have looked upon her ever since as my
-daughter. She is a sunbeam in my house--sweet, loving, beautiful,
-a wonderful manager and housekeeper, yet as tender and quiet and
-gentle as a woman could be. She is my right hand. I do not know
-what I could do without her. In only one matter has she ever gone
-against my wishes. Twice my boy has asked her to marry him, for
-he loves her devotedly, but each time she has refused him. I
-think that if anyone could have drawn him into the right path it
-would have been she, and that his marriage might have changed his
-whole life; but now, alas! it is too late--forever too late!
-
-"Now, Mr. Holmes, you know the people who live under my roof, and
-I shall continue with my miserable story.
-
-"When we were taking coffee in the drawing-room that night after
-dinner, I told Arthur and Mary my experience, and of the precious
-treasure which we had under our roof, suppressing only the name
-of my client. Lucy Parr, who had brought in the coffee, had, I am
-sure, left the room; but I cannot swear that the door was closed.
-Mary and Arthur were much interested and wished to see the famous
-coronet, but I thought it better not to disturb it.
-
-"'Where have you put it?' asked Arthur.
-
-"'In my own bureau.'
-
-"'Well, I hope to goodness the house won't be burgled during the
-night.' said he.
-
-"'It is locked up,' I answered.
-
-"'Oh, any old key will fit that bureau. When I was a youngster I
-have opened it myself with the key of the box-room cupboard.'
-
-"He often had a wild way of talking, so that I thought little of
-what he said. He followed me to my room, however, that night with
-a very grave face.
-
-"'Look here, dad,' said he with his eyes cast down, 'can you let
-me have 200 pounds?'
-
-"'No, I cannot!' I answered sharply. 'I have been far too
-generous with you in money matters.'
-
-"'You have been very kind,' said he, 'but I must have this money,
-or else I can never show my face inside the club again.'
-
-"'And a very good thing, too!' I cried.
-
-"'Yes, but you would not have me leave it a dishonoured man,'
-said he. 'I could not bear the disgrace. I must raise the money
-in some way, and if you will not let me have it, then I must try
-other means.'
-
-"I was very angry, for this was the third demand during the
-month. 'You shall not have a farthing from me,' I cried, on which
-he bowed and left the room without another word.
-
-"When he was gone I unlocked my bureau, made sure that my
-treasure was safe, and locked it again. Then I started to go
-round the house to see that all was secure--a duty which I
-usually leave to Mary but which I thought it well to perform
-myself that night. As I came down the stairs I saw Mary herself
-at the side window of the hall, which she closed and fastened as
-I approached.
-
-"'Tell me, dad,' said she, looking, I thought, a little
-disturbed, 'did you give Lucy, the maid, leave to go out
-to-night?'
-
-"'Certainly not.'
-
-"'She came in just now by the back door. I have no doubt that she
-has only been to the side gate to see someone, but I think that
-it is hardly safe and should be stopped.'
-
-"'You must speak to her in the morning, or I will if you prefer
-it. Are you sure that everything is fastened?'
-
-"'Quite sure, dad.'
-
-"'Then, good-night.' I kissed her and went up to my bedroom
-again, where I was soon asleep.
-
-"I am endeavouring to tell you everything, Mr. Holmes, which may
-have any bearing upon the case, but I beg that you will question
-me upon any point which I do not make clear."
-
-"On the contrary, your statement is singularly lucid."
-
-"I come to a part of my story now in which I should wish to be
-particularly so. I am not a very heavy sleeper, and the anxiety
-in my mind tended, no doubt, to make me even less so than usual.
-About two in the morning, then, I was awakened by some sound in
-the house. It had ceased ere I was wide awake, but it had left an
-impression behind it as though a window had gently closed
-somewhere. I lay listening with all my ears. Suddenly, to my
-horror, there was a distinct sound of footsteps moving softly in
-the next room. I slipped out of bed, all palpitating with fear,
-and peeped round the corner of my dressing-room door.
-
-"'Arthur!' I screamed, 'you villain! you thief! How dare you
-touch that coronet?'
-
-"The gas was half up, as I had left it, and my unhappy boy,
-dressed only in his shirt and trousers, was standing beside the
-light, holding the coronet in his hands. He appeared to be
-wrenching at it, or bending it with all his strength. At my cry
-he dropped it from his grasp and turned as pale as death. I
-snatched it up and examined it. One of the gold corners, with
-three of the beryls in it, was missing.
-
-"'You blackguard!' I shouted, beside myself with rage. 'You have
-destroyed it! You have dishonoured me forever! Where are the
-jewels which you have stolen?'
-
-"'Stolen!' he cried.
-
-"'Yes, thief!' I roared, shaking him by the shoulder.
-
-"'There are none missing. There cannot be any missing,' said he.
-
-"'There are three missing. And you know where they are. Must I
-call you a liar as well as a thief? Did I not see you trying to
-tear off another piece?'
-
-"'You have called me names enough,' said he, 'I will not stand it
-any longer. I shall not say another word about this business,
-since you have chosen to insult me. I will leave your house in
-the morning and make my own way in the world.'
-
-"'You shall leave it in the hands of the police!' I cried
-half-mad with grief and rage. 'I shall have this matter probed to
-the bottom.'
-
-"'You shall learn nothing from me,' said he with a passion such
-as I should not have thought was in his nature. 'If you choose to
-call the police, let the police find what they can.'
-
-"By this time the whole house was astir, for I had raised my
-voice in my anger. Mary was the first to rush into my room, and,
-at the sight of the coronet and of Arthur's face, she read the
-whole story and, with a scream, fell down senseless on the
-ground. I sent the house-maid for the police and put the
-investigation into their hands at once. When the inspector and a
-constable entered the house, Arthur, who had stood sullenly with
-his arms folded, asked me whether it was my intention to charge
-him with theft. I answered that it had ceased to be a private
-matter, but had become a public one, since the ruined coronet was
-national property. I was determined that the law should have its
-way in everything.
-
-"'At least,' said he, 'you will not have me arrested at once. It
-would be to your advantage as well as mine if I might leave the
-house for five minutes.'
-
-"'That you may get away, or perhaps that you may conceal what you
-have stolen,' said I. And then, realising the dreadful position
-in which I was placed, I implored him to remember that not only
-my honour but that of one who was far greater than I was at
-stake; and that he threatened to raise a scandal which would
-convulse the nation. He might avert it all if he would but tell
-me what he had done with the three missing stones.
-
-"'You may as well face the matter,' said I; 'you have been caught
-in the act, and no confession could make your guilt more heinous.
-If you but make such reparation as is in your power, by telling
-us where the beryls are, all shall be forgiven and forgotten.'
-
-"'Keep your forgiveness for those who ask for it,' he answered,
-turning away from me with a sneer. I saw that he was too hardened
-for any words of mine to influence him. There was but one way for
-it. I called in the inspector and gave him into custody. A search
-was made at once not only of his person but of his room and of
-every portion of the house where he could possibly have concealed
-the gems; but no trace of them could be found, nor would the
-wretched boy open his mouth for all our persuasions and our
-threats. This morning he was removed to a cell, and I, after
-going through all the police formalities, have hurried round to
-you to implore you to use your skill in unravelling the matter.
-The police have openly confessed that they can at present make
-nothing of it. You may go to any expense which you think
-necessary. I have already offered a reward of 1000 pounds. My
-God, what shall I do! I have lost my honour, my gems, and my son
-in one night. Oh, what shall I do!"
-
-He put a hand on either side of his head and rocked himself to
-and fro, droning to himself like a child whose grief has got
-beyond words.
-
-Sherlock Holmes sat silent for some few minutes, with his brows
-knitted and his eyes fixed upon the fire.
-
-"Do you receive much company?" he asked.
-
-"None save my partner with his family and an occasional friend of
-Arthur's. Sir George Burnwell has been several times lately. No
-one else, I think."
-
-"Do you go out much in society?"
-
-"Arthur does. Mary and I stay at home. We neither of us care for
-it."
-
-"That is unusual in a young girl."
-
-"She is of a quiet nature. Besides, she is not so very young. She
-is four-and-twenty."
-
-"This matter, from what you say, seems to have been a shock to
-her also."
-
-"Terrible! She is even more affected than I."
-
-"You have neither of you any doubt as to your son's guilt?"
-
-"How can we have when I saw him with my own eyes with the coronet
-in his hands."
-
-"I hardly consider that a conclusive proof. Was the remainder of
-the coronet at all injured?"
-
-"Yes, it was twisted."
-
-"Do you not think, then, that he might have been trying to
-straighten it?"
-
-"God bless you! You are doing what you can for him and for me.
-But it is too heavy a task. What was he doing there at all? If
-his purpose were innocent, why did he not say so?"
-
-"Precisely. And if it were guilty, why did he not invent a lie?
-His silence appears to me to cut both ways. There are several
-singular points about the case. What did the police think of the
-noise which awoke you from your sleep?"
-
-"They considered that it might be caused by Arthur's closing his
-bedroom door."
-
-"A likely story! As if a man bent on felony would slam his door
-so as to wake a household. What did they say, then, of the
-disappearance of these gems?"
-
-"They are still sounding the planking and probing the furniture
-in the hope of finding them."
-
-"Have they thought of looking outside the house?"
-
-"Yes, they have shown extraordinary energy. The whole garden has
-already been minutely examined."
-
-"Now, my dear sir," said Holmes, "is it not obvious to you now
-that this matter really strikes very much deeper than either you
-or the police were at first inclined to think? It appeared to you
-to be a simple case; to me it seems exceedingly complex. Consider
-what is involved by your theory. You suppose that your son came
-down from his bed, went, at great risk, to your dressing-room,
-opened your bureau, took out your coronet, broke off by main
-force a small portion of it, went off to some other place,
-concealed three gems out of the thirty-nine, with such skill that
-nobody can find them, and then returned with the other thirty-six
-into the room in which he exposed himself to the greatest danger
-of being discovered. I ask you now, is such a theory tenable?"
-
-"But what other is there?" cried the banker with a gesture of
-despair. "If his motives were innocent, why does he not explain
-them?"
-
-"It is our task to find that out," replied Holmes; "so now, if
-you please, Mr. Holder, we will set off for Streatham together,
-and devote an hour to glancing a little more closely into
-details."
-
-My friend insisted upon my accompanying them in their expedition,
-which I was eager enough to do, for my curiosity and sympathy
-were deeply stirred by the story to which we had listened. I
-confess that the guilt of the banker's son appeared to me to be
-as obvious as it did to his unhappy father, but still I had such
-faith in Holmes' judgment that I felt that there must be some
-grounds for hope as long as he was dissatisfied with the accepted
-explanation. He hardly spoke a word the whole way out to the
-southern suburb, but sat with his chin upon his breast and his
-hat drawn over his eyes, sunk in the deepest thought. Our client
-appeared to have taken fresh heart at the little glimpse of hope
-which had been presented to him, and he even broke into a
-desultory chat with me over his business affairs. A short railway
-journey and a shorter walk brought us to Fairbank, the modest
-residence of the great financier.
-
-Fairbank was a good-sized square house of white stone, standing
-back a little from the road. A double carriage-sweep, with a
-snow-clad lawn, stretched down in front to two large iron gates
-which closed the entrance. On the right side was a small wooden
-thicket, which led into a narrow path between two neat hedges
-stretching from the road to the kitchen door, and forming the
-tradesmen's entrance. On the left ran a lane which led to the
-stables, and was not itself within the grounds at all, being a
-public, though little used, thoroughfare. Holmes left us standing
-at the door and walked slowly all round the house, across the
-front, down the tradesmen's path, and so round by the garden
-behind into the stable lane. So long was he that Mr. Holder and I
-went into the dining-room and waited by the fire until he should
-return. We were sitting there in silence when the door opened and
-a young lady came in. She was rather above the middle height,
-slim, with dark hair and eyes, which seemed the darker against
-the absolute pallor of her skin. I do not think that I have ever
-seen such deadly paleness in a woman's face. Her lips, too, were
-bloodless, but her eyes were flushed with crying. As she swept
-silently into the room she impressed me with a greater sense of
-grief than the banker had done in the morning, and it was the
-more striking in her as she was evidently a woman of strong
-character, with immense capacity for self-restraint. Disregarding
-my presence, she went straight to her uncle and passed her hand
-over his head with a sweet womanly caress.
-
-"You have given orders that Arthur should be liberated, have you
-not, dad?" she asked.
-
-"No, no, my girl, the matter must be probed to the bottom."
-
-"But I am so sure that he is innocent. You know what woman's
-instincts are. I know that he has done no harm and that you will
-be sorry for having acted so harshly."
-
-"Why is he silent, then, if he is innocent?"
-
-"Who knows? Perhaps because he was so angry that you should
-suspect him."
-
-"How could I help suspecting him, when I actually saw him with
-the coronet in his hand?"
-
-"Oh, but he had only picked it up to look at it. Oh, do, do take
-my word for it that he is innocent. Let the matter drop and say
-no more. It is so dreadful to think of our dear Arthur in
-prison!"
-
-"I shall never let it drop until the gems are found--never, Mary!
-Your affection for Arthur blinds you as to the awful consequences
-to me. Far from hushing the thing up, I have brought a gentleman
-down from London to inquire more deeply into it."
-
-"This gentleman?" she asked, facing round to me.
-
-"No, his friend. He wished us to leave him alone. He is round in
-the stable lane now."
-
-"The stable lane?" She raised her dark eyebrows. "What can he
-hope to find there? Ah! this, I suppose, is he. I trust, sir,
-that you will succeed in proving, what I feel sure is the truth,
-that my cousin Arthur is innocent of this crime."
-
-"I fully share your opinion, and I trust, with you, that we may
-prove it," returned Holmes, going back to the mat to knock the
-snow from his shoes. "I believe I have the honour of addressing
-Miss Mary Holder. Might I ask you a question or two?"
-
-"Pray do, sir, if it may help to clear this horrible affair up."
-
-"You heard nothing yourself last night?"
-
-"Nothing, until my uncle here began to speak loudly. I heard
-that, and I came down."
-
-"You shut up the windows and doors the night before. Did you
-fasten all the windows?"
-
-"Yes."
-
-"Were they all fastened this morning?"
-
-"Yes."
-
-"You have a maid who has a sweetheart? I think that you remarked
-to your uncle last night that she had been out to see him?"
-
-"Yes, and she was the girl who waited in the drawing-room, and
-who may have heard uncle's remarks about the coronet."
-
-"I see. You infer that she may have gone out to tell her
-sweetheart, and that the two may have planned the robbery."
-
-"But what is the good of all these vague theories," cried the
-banker impatiently, "when I have told you that I saw Arthur with
-the coronet in his hands?"
-
-"Wait a little, Mr. Holder. We must come back to that. About this
-girl, Miss Holder. You saw her return by the kitchen door, I
-presume?"
-
-"Yes; when I went to see if the door was fastened for the night I
-met her slipping in. I saw the man, too, in the gloom."
-
-"Do you know him?"
-
-"Oh, yes! he is the green-grocer who brings our vegetables round.
-His name is Francis Prosper."
-
-"He stood," said Holmes, "to the left of the door--that is to
-say, farther up the path than is necessary to reach the door?"
-
-"Yes, he did."
-
-"And he is a man with a wooden leg?"
-
-Something like fear sprang up in the young lady's expressive
-black eyes. "Why, you are like a magician," said she. "How do you
-know that?" She smiled, but there was no answering smile in
-Holmes' thin, eager face.
-
-"I should be very glad now to go upstairs," said he. "I shall
-probably wish to go over the outside of the house again. Perhaps
-I had better take a look at the lower windows before I go up."
-
-He walked swiftly round from one to the other, pausing only at
-the large one which looked from the hall onto the stable lane.
-This he opened and made a very careful examination of the sill
-with his powerful magnifying lens. "Now we shall go upstairs,"
-said he at last.
-
-The banker's dressing-room was a plainly furnished little
-chamber, with a grey carpet, a large bureau, and a long mirror.
-Holmes went to the bureau first and looked hard at the lock.
-
-"Which key was used to open it?" he asked.
-
-"That which my son himself indicated--that of the cupboard of the
-lumber-room."
-
-"Have you it here?"
-
-"That is it on the dressing-table."
-
-Sherlock Holmes took it up and opened the bureau.
-
-"It is a noiseless lock," said he. "It is no wonder that it did
-not wake you. This case, I presume, contains the coronet. We must
-have a look at it." He opened the case, and taking out the diadem
-he laid it upon the table. It was a magnificent specimen of the
-jeweller's art, and the thirty-six stones were the finest that I
-have ever seen. At one side of the coronet was a cracked edge,
-where a corner holding three gems had been torn away.
-
-"Now, Mr. Holder," said Holmes, "here is the corner which
-corresponds to that which has been so unfortunately lost. Might I
-beg that you will break it off."
-
-The banker recoiled in horror. "I should not dream of trying,"
-said he.
-
-"Then I will." Holmes suddenly bent his strength upon it, but
-without result. "I feel it give a little," said he; "but, though
-I am exceptionally strong in the fingers, it would take me all my
-time to break it. An ordinary man could not do it. Now, what do
-you think would happen if I did break it, Mr. Holder? There would
-be a noise like a pistol shot. Do you tell me that all this
-happened within a few yards of your bed and that you heard
-nothing of it?"
-
-"I do not know what to think. It is all dark to me."
-
-"But perhaps it may grow lighter as we go. What do you think,
-Miss Holder?"
-
-"I confess that I still share my uncle's perplexity."
-
-"Your son had no shoes or slippers on when you saw him?"
-
-"He had nothing on save only his trousers and shirt."
-
-"Thank you. We have certainly been favoured with extraordinary
-luck during this inquiry, and it will be entirely our own fault
-if we do not succeed in clearing the matter up. With your
-permission, Mr. Holder, I shall now continue my investigations
-outside."
-
-He went alone, at his own request, for he explained that any
-unnecessary footmarks might make his task more difficult. For an
-hour or more he was at work, returning at last with his feet
-heavy with snow and his features as inscrutable as ever.
-
-"I think that I have seen now all that there is to see, Mr.
-Holder," said he; "I can serve you best by returning to my
-rooms."
-
-"But the gems, Mr. Holmes. Where are they?"
-
-"I cannot tell."
-
-The banker wrung his hands. "I shall never see them again!" he
-cried. "And my son? You give me hopes?"
-
-"My opinion is in no way altered."
-
-"Then, for God's sake, what was this dark business which was
-acted in my house last night?"
-
-"If you can call upon me at my Baker Street rooms to-morrow
-morning between nine and ten I shall be happy to do what I can to
-make it clearer. I understand that you give me carte blanche to
-act for you, provided only that I get back the gems, and that you
-place no limit on the sum I may draw."
-
-"I would give my fortune to have them back."
-
-"Very good. I shall look into the matter between this and then.
-Good-bye; it is just possible that I may have to come over here
-again before evening."
-
-It was obvious to me that my companion's mind was now made up
-about the case, although what his conclusions were was more than
-I could even dimly imagine. Several times during our homeward
-journey I endeavoured to sound him upon the point, but he always
-glided away to some other topic, until at last I gave it over in
-despair. It was not yet three when we found ourselves in our
-rooms once more. He hurried to his chamber and was down again in
-a few minutes dressed as a common loafer. With his collar turned
-up, his shiny, seedy coat, his red cravat, and his worn boots, he
-was a perfect sample of the class.
-
-"I think that this should do," said he, glancing into the glass
-above the fireplace. "I only wish that you could come with me,
-Watson, but I fear that it won't do. I may be on the trail in
-this matter, or I may be following a will-o'-the-wisp, but I
-shall soon know which it is. I hope that I may be back in a few
-hours." He cut a slice of beef from the joint upon the sideboard,
-sandwiched it between two rounds of bread, and thrusting this
-rude meal into his pocket he started off upon his expedition.
-
-I had just finished my tea when he returned, evidently in
-excellent spirits, swinging an old elastic-sided boot in his
-hand. He chucked it down into a corner and helped himself to a
-cup of tea.
-
-"I only looked in as I passed," said he. "I am going right on."
-
-"Where to?"
-
-"Oh, to the other side of the West End. It may be some time
-before I get back. Don't wait up for me in case I should be
-late."
-
-"How are you getting on?"
-
-"Oh, so so. Nothing to complain of. I have been out to Streatham
-since I saw you last, but I did not call at the house. It is a
-very sweet little problem, and I would not have missed it for a
-good deal. However, I must not sit gossiping here, but must get
-these disreputable clothes off and return to my highly
-respectable self."
-
-I could see by his manner that he had stronger reasons for
-satisfaction than his words alone would imply. His eyes twinkled,
-and there was even a touch of colour upon his sallow cheeks. He
-hastened upstairs, and a few minutes later I heard the slam of
-the hall door, which told me that he was off once more upon his
-congenial hunt.
-
-I waited until midnight, but there was no sign of his return, so
-I retired to my room. It was no uncommon thing for him to be away
-for days and nights on end when he was hot upon a scent, so that
-his lateness caused me no surprise. I do not know at what hour he
-came in, but when I came down to breakfast in the morning there
-he was with a cup of coffee in one hand and the paper in the
-other, as fresh and trim as possible.
-
-"You will excuse my beginning without you, Watson," said he, "but
-you remember that our client has rather an early appointment this
-morning."
-
-"Why, it is after nine now," I answered. "I should not be
-surprised if that were he. I thought I heard a ring."
-
-It was, indeed, our friend the financier. I was shocked by the
-change which had come over him, for his face which was naturally
-of a broad and massive mould, was now pinched and fallen in,
-while his hair seemed to me at least a shade whiter. He entered
-with a weariness and lethargy which was even more painful than
-his violence of the morning before, and he dropped heavily into
-the armchair which I pushed forward for him.
-
-"I do not know what I have done to be so severely tried," said
-he. "Only two days ago I was a happy and prosperous man, without
-a care in the world. Now I am left to a lonely and dishonoured
-age. One sorrow comes close upon the heels of another. My niece,
-Mary, has deserted me."
-
-"Deserted you?"
-
-"Yes. Her bed this morning had not been slept in, her room was
-empty, and a note for me lay upon the hall table. I had said to
-her last night, in sorrow and not in anger, that if she had
-married my boy all might have been well with him. Perhaps it was
-thoughtless of me to say so. It is to that remark that she refers
-in this note:
-
-"'MY DEAREST UNCLE:--I feel that I have brought trouble upon you,
-and that if I had acted differently this terrible misfortune
-might never have occurred. I cannot, with this thought in my
-mind, ever again be happy under your roof, and I feel that I must
-leave you forever. Do not worry about my future, for that is
-provided for; and, above all, do not search for me, for it will
-be fruitless labour and an ill-service to me. In life or in
-death, I am ever your loving,--MARY.'
-
-"What could she mean by that note, Mr. Holmes? Do you think it
-points to suicide?"
-
-"No, no, nothing of the kind. It is perhaps the best possible
-solution. I trust, Mr. Holder, that you are nearing the end of
-your troubles."
-
-"Ha! You say so! You have heard something, Mr. Holmes; you have
-learned something! Where are the gems?"
-
-"You would not think 1000 pounds apiece an excessive sum for
-them?"
-
-"I would pay ten."
-
-"That would be unnecessary. Three thousand will cover the matter.
-And there is a little reward, I fancy. Have you your check-book?
-Here is a pen. Better make it out for 4000 pounds."
-
-With a dazed face the banker made out the required check. Holmes
-walked over to his desk, took out a little triangular piece of
-gold with three gems in it, and threw it down upon the table.
-
-With a shriek of joy our client clutched it up.
-
-"You have it!" he gasped. "I am saved! I am saved!"
-
-The reaction of joy was as passionate as his grief had been, and
-he hugged his recovered gems to his bosom.
-
-"There is one other thing you owe, Mr. Holder," said Sherlock
-Holmes rather sternly.
-
-"Owe!" He caught up a pen. "Name the sum, and I will pay it."
-
-"No, the debt is not to me. You owe a very humble apology to that
-noble lad, your son, who has carried himself in this matter as I
-should be proud to see my own son do, should I ever chance to
-have one."
-
-"Then it was not Arthur who took them?"
-
-"I told you yesterday, and I repeat to-day, that it was not."
-
-"You are sure of it! Then let us hurry to him at once to let him
-know that the truth is known."
-
-"He knows it already. When I had cleared it all up I had an
-interview with him, and finding that he would not tell me the
-story, I told it to him, on which he had to confess that I was
-right and to add the very few details which were not yet quite
-clear to me. Your news of this morning, however, may open his
-lips."
-
-"For heaven's sake, tell me, then, what is this extraordinary
-mystery!"
-
-"I will do so, and I will show you the steps by which I reached
-it. And let me say to you, first, that which it is hardest for me
-to say and for you to hear: there has been an understanding
-between Sir George Burnwell and your niece Mary. They have now
-fled together."
-
-"My Mary? Impossible!"
-
-"It is unfortunately more than possible; it is certain. Neither
-you nor your son knew the true character of this man when you
-admitted him into your family circle. He is one of the most
-dangerous men in England--a ruined gambler, an absolutely
-desperate villain, a man without heart or conscience. Your niece
-knew nothing of such men. When he breathed his vows to her, as he
-had done to a hundred before her, she flattered herself that she
-alone had touched his heart. The devil knows best what he said,
-but at least she became his tool and was in the habit of seeing
-him nearly every evening."
-
-"I cannot, and I will not, believe it!" cried the banker with an
-ashen face.
-
-"I will tell you, then, what occurred in your house last night.
-Your niece, when you had, as she thought, gone to your room,
-slipped down and talked to her lover through the window which
-leads into the stable lane. His footmarks had pressed right
-through the snow, so long had he stood there. She told him of the
-coronet. His wicked lust for gold kindled at the news, and he
-bent her to his will. I have no doubt that she loved you, but
-there are women in whom the love of a lover extinguishes all
-other loves, and I think that she must have been one. She had
-hardly listened to his instructions when she saw you coming
-downstairs, on which she closed the window rapidly and told you
-about one of the servants' escapade with her wooden-legged lover,
-which was all perfectly true.
-
-"Your boy, Arthur, went to bed after his interview with you but
-he slept badly on account of his uneasiness about his club debts.
-In the middle of the night he heard a soft tread pass his door,
-so he rose and, looking out, was surprised to see his cousin
-walking very stealthily along the passage until she disappeared
-into your dressing-room. Petrified with astonishment, the lad
-slipped on some clothes and waited there in the dark to see what
-would come of this strange affair. Presently she emerged from the
-room again, and in the light of the passage-lamp your son saw
-that she carried the precious coronet in her hands. She passed
-down the stairs, and he, thrilling with horror, ran along and
-slipped behind the curtain near your door, whence he could see
-what passed in the hall beneath. He saw her stealthily open the
-window, hand out the coronet to someone in the gloom, and then
-closing it once more hurry back to her room, passing quite close
-to where he stood hid behind the curtain.
-
-"As long as she was on the scene he could not take any action
-without a horrible exposure of the woman whom he loved. But the
-instant that she was gone he realised how crushing a misfortune
-this would be for you, and how all-important it was to set it
-right. He rushed down, just as he was, in his bare feet, opened
-the window, sprang out into the snow, and ran down the lane,
-where he could see a dark figure in the moonlight. Sir George
-Burnwell tried to get away, but Arthur caught him, and there was
-a struggle between them, your lad tugging at one side of the
-coronet, and his opponent at the other. In the scuffle, your son
-struck Sir George and cut him over the eye. Then something
-suddenly snapped, and your son, finding that he had the coronet
-in his hands, rushed back, closed the window, ascended to your
-room, and had just observed that the coronet had been twisted in
-the struggle and was endeavouring to straighten it when you
-appeared upon the scene."
-
-"Is it possible?" gasped the banker.
-
-"You then roused his anger by calling him names at a moment when
-he felt that he had deserved your warmest thanks. He could not
-explain the true state of affairs without betraying one who
-certainly deserved little enough consideration at his hands. He
-took the more chivalrous view, however, and preserved her
-secret."
-
-"And that was why she shrieked and fainted when she saw the
-coronet," cried Mr. Holder. "Oh, my God! what a blind fool I have
-been! And his asking to be allowed to go out for five minutes!
-The dear fellow wanted to see if the missing piece were at the
-scene of the struggle. How cruelly I have misjudged him!"
-
-"When I arrived at the house," continued Holmes, "I at once went
-very carefully round it to observe if there were any traces in
-the snow which might help me. I knew that none had fallen since
-the evening before, and also that there had been a strong frost
-to preserve impressions. I passed along the tradesmen's path, but
-found it all trampled down and indistinguishable. Just beyond it,
-however, at the far side of the kitchen door, a woman had stood
-and talked with a man, whose round impressions on one side showed
-that he had a wooden leg. I could even tell that they had been
-disturbed, for the woman had run back swiftly to the door, as was
-shown by the deep toe and light heel marks, while Wooden-leg had
-waited a little, and then had gone away. I thought at the time
-that this might be the maid and her sweetheart, of whom you had
-already spoken to me, and inquiry showed it was so. I passed
-round the garden without seeing anything more than random tracks,
-which I took to be the police; but when I got into the stable
-lane a very long and complex story was written in the snow in
-front of me.
-
-"There was a double line of tracks of a booted man, and a second
-double line which I saw with delight belonged to a man with naked
-feet. I was at once convinced from what you had told me that the
-latter was your son. The first had walked both ways, but the
-other had run swiftly, and as his tread was marked in places over
-the depression of the boot, it was obvious that he had passed
-after the other. I followed them up and found they led to the
-hall window, where Boots had worn all the snow away while
-waiting. Then I walked to the other end, which was a hundred
-yards or more down the lane. I saw where Boots had faced round,
-where the snow was cut up as though there had been a struggle,
-and, finally, where a few drops of blood had fallen, to show me
-that I was not mistaken. Boots had then run down the lane, and
-another little smudge of blood showed that it was he who had been
-hurt. When he came to the highroad at the other end, I found that
-the pavement had been cleared, so there was an end to that clue.
-
-"On entering the house, however, I examined, as you remember, the
-sill and framework of the hall window with my lens, and I could
-at once see that someone had passed out. I could distinguish the
-outline of an instep where the wet foot had been placed in coming
-in. I was then beginning to be able to form an opinion as to what
-had occurred. A man had waited outside the window; someone had
-brought the gems; the deed had been overseen by your son; he had
-pursued the thief; had struggled with him; they had each tugged
-at the coronet, their united strength causing injuries which
-neither alone could have effected. He had returned with the
-prize, but had left a fragment in the grasp of his opponent. So
-far I was clear. The question now was, who was the man and who
-was it brought him the coronet?
-
-"It is an old maxim of mine that when you have excluded the
-impossible, whatever remains, however improbable, must be the
-truth. Now, I knew that it was not you who had brought it down,
-so there only remained your niece and the maids. But if it were
-the maids, why should your son allow himself to be accused in
-their place? There could be no possible reason. As he loved his
-cousin, however, there was an excellent explanation why he should
-retain her secret--the more so as the secret was a disgraceful
-one. When I remembered that you had seen her at that window, and
-how she had fainted on seeing the coronet again, my conjecture
-became a certainty.
-
-"And who could it be who was her confederate? A lover evidently,
-for who else could outweigh the love and gratitude which she must
-feel to you? I knew that you went out little, and that your
-circle of friends was a very limited one. But among them was Sir
-George Burnwell. I had heard of him before as being a man of evil
-reputation among women. It must have been he who wore those boots
-and retained the missing gems. Even though he knew that Arthur
-had discovered him, he might still flatter himself that he was
-safe, for the lad could not say a word without compromising his
-own family.
-
-"Well, your own good sense will suggest what measures I took
-next. I went in the shape of a loafer to Sir George's house,
-managed to pick up an acquaintance with his valet, learned that
-his master had cut his head the night before, and, finally, at
-the expense of six shillings, made all sure by buying a pair of
-his cast-off shoes. With these I journeyed down to Streatham and
-saw that they exactly fitted the tracks."
-
-"I saw an ill-dressed vagabond in the lane yesterday evening,"
-said Mr. Holder.
-
-"Precisely. It was I. I found that I had my man, so I came home
-and changed my clothes. It was a delicate part which I had to
-play then, for I saw that a prosecution must be avoided to avert
-scandal, and I knew that so astute a villain would see that our
-hands were tied in the matter. I went and saw him. At first, of
-course, he denied everything. But when I gave him every
-particular that had occurred, he tried to bluster and took down a
-life-preserver from the wall. I knew my man, however, and I
-clapped a pistol to his head before he could strike. Then he
-became a little more reasonable. I told him that we would give
-him a price for the stones he held--1000 pounds apiece. That
-brought out the first signs of grief that he had shown. 'Why,
-dash it all!' said he, 'I've let them go at six hundred for the
-three!' I soon managed to get the address of the receiver who had
-them, on promising him that there would be no prosecution. Off I
-set to him, and after much chaffering I got our stones at 1000
-pounds apiece. Then I looked in upon your son, told him that all
-was right, and eventually got to my bed about two o'clock, after
-what I may call a really hard day's work."
-
-"A day which has saved England from a great public scandal," said
-the banker, rising. "Sir, I cannot find words to thank you, but
-you shall not find me ungrateful for what you have done. Your
-skill has indeed exceeded all that I have heard of it. And now I
-must fly to my dear boy to apologise to him for the wrong which I
-have done him. As to what you tell me of poor Mary, it goes to my
-very heart. Not even your skill can inform me where she is now."
-
-"I think that we may safely say," returned Holmes, "that she is
-wherever Sir George Burnwell is. It is equally certain, too, that
-whatever her sins are, they will soon receive a more than
-sufficient punishment."
-
-
-
-XII. THE ADVENTURE OF THE COPPER BEECHES
-
-"To the man who loves art for its own sake," remarked Sherlock
-Holmes, tossing aside the advertisement sheet of the Daily
-Telegraph, "it is frequently in its least important and lowliest
-manifestations that the keenest pleasure is to be derived. It is
-pleasant to me to observe, Watson, that you have so far grasped
-this truth that in these little records of our cases which you
-have been good enough to draw up, and, I am bound to say,
-occasionally to embellish, you have given prominence not so much
-to the many causes célèbres and sensational trials in which I
-have figured but rather to those incidents which may have been
-trivial in themselves, but which have given room for those
-faculties of deduction and of logical synthesis which I have made
-my special province."
-
-"And yet," said I, smiling, "I cannot quite hold myself absolved
-from the charge of sensationalism which has been urged against my
-records."
-
-"You have erred, perhaps," he observed, taking up a glowing
-cinder with the tongs and lighting with it the long cherry-wood
-pipe which was wont to replace his clay when he was in a
-disputatious rather than a meditative mood--"you have erred
-perhaps in attempting to put colour and life into each of your
-statements instead of confining yourself to the task of placing
-upon record that severe reasoning from cause to effect which is
-really the only notable feature about the thing."
-
-"It seems to me that I have done you full justice in the matter,"
-I remarked with some coldness, for I was repelled by the egotism
-which I had more than once observed to be a strong factor in my
-friend's singular character.
-
-"No, it is not selfishness or conceit," said he, answering, as
-was his wont, my thoughts rather than my words. "If I claim full
-justice for my art, it is because it is an impersonal thing--a
-thing beyond myself. Crime is common. Logic is rare. Therefore it
-is upon the logic rather than upon the crime that you should
-dwell. You have degraded what should have been a course of
-lectures into a series of tales."
-
-It was a cold morning of the early spring, and we sat after
-breakfast on either side of a cheery fire in the old room at
-Baker Street. A thick fog rolled down between the lines of
-dun-coloured houses, and the opposing windows loomed like dark,
-shapeless blurs through the heavy yellow wreaths. Our gas was lit
-and shone on the white cloth and glimmer of china and metal, for
-the table had not been cleared yet. Sherlock Holmes had been
-silent all the morning, dipping continuously into the
-advertisement columns of a succession of papers until at last,
-having apparently given up his search, he had emerged in no very
-sweet temper to lecture me upon my literary shortcomings.
-
-"At the same time," he remarked after a pause, during which he
-had sat puffing at his long pipe and gazing down into the fire,
-"you can hardly be open to a charge of sensationalism, for out of
-these cases which you have been so kind as to interest yourself
-in, a fair proportion do not treat of crime, in its legal sense,
-at all. The small matter in which I endeavoured to help the King
-of Bohemia, the singular experience of Miss Mary Sutherland, the
-problem connected with the man with the twisted lip, and the
-incident of the noble bachelor, were all matters which are
-outside the pale of the law. But in avoiding the sensational, I
-fear that you may have bordered on the trivial."
-
-"The end may have been so," I answered, "but the methods I hold
-to have been novel and of interest."
-
-"Pshaw, my dear fellow, what do the public, the great unobservant
-public, who could hardly tell a weaver by his tooth or a
-compositor by his left thumb, care about the finer shades of
-analysis and deduction! But, indeed, if you are trivial, I cannot
-blame you, for the days of the great cases are past. Man, or at
-least criminal man, has lost all enterprise and originality. As
-to my own little practice, it seems to be degenerating into an
-agency for recovering lost lead pencils and giving advice to
-young ladies from boarding-schools. I think that I have touched
-bottom at last, however. This note I had this morning marks my
-zero-point, I fancy. Read it!" He tossed a crumpled letter across
-to me.
-
-It was dated from Montague Place upon the preceding evening, and
-ran thus:
-
-"DEAR MR. HOLMES:--I am very anxious to consult you as to whether
-I should or should not accept a situation which has been offered
-to me as governess. I shall call at half-past ten to-morrow if I
-do not inconvenience you. Yours faithfully,
- "VIOLET HUNTER."
-
-"Do you know the young lady?" I asked.
-
-"Not I."
-
-"It is half-past ten now."
-
-"Yes, and I have no doubt that is her ring."
-
-"It may turn out to be of more interest than you think. You
-remember that the affair of the blue carbuncle, which appeared to
-be a mere whim at first, developed into a serious investigation.
-It may be so in this case, also."
-
-"Well, let us hope so. But our doubts will very soon be solved,
-for here, unless I am much mistaken, is the person in question."
-
-As he spoke the door opened and a young lady entered the room.
-She was plainly but neatly dressed, with a bright, quick face,
-freckled like a plover's egg, and with the brisk manner of a
-woman who has had her own way to make in the world.
-
-"You will excuse my troubling you, I am sure," said she, as my
-companion rose to greet her, "but I have had a very strange
-experience, and as I have no parents or relations of any sort
-from whom I could ask advice, I thought that perhaps you would be
-kind enough to tell me what I should do."
-
-"Pray take a seat, Miss Hunter. I shall be happy to do anything
-that I can to serve you."
-
-I could see that Holmes was favourably impressed by the manner
-and speech of his new client. He looked her over in his searching
-fashion, and then composed himself, with his lids drooping and
-his finger-tips together, to listen to her story.
-
-"I have been a governess for five years," said she, "in the
-family of Colonel Spence Munro, but two months ago the colonel
-received an appointment at Halifax, in Nova Scotia, and took his
-children over to America with him, so that I found myself without
-a situation. I advertised, and I answered advertisements, but
-without success. At last the little money which I had saved began
-to run short, and I was at my wit's end as to what I should do.
-
-"There is a well-known agency for governesses in the West End
-called Westaway's, and there I used to call about once a week in
-order to see whether anything had turned up which might suit me.
-Westaway was the name of the founder of the business, but it is
-really managed by Miss Stoper. She sits in her own little office,
-and the ladies who are seeking employment wait in an anteroom,
-and are then shown in one by one, when she consults her ledgers
-and sees whether she has anything which would suit them.
-
-"Well, when I called last week I was shown into the little office
-as usual, but I found that Miss Stoper was not alone. A
-prodigiously stout man with a very smiling face and a great heavy
-chin which rolled down in fold upon fold over his throat sat at
-her elbow with a pair of glasses on his nose, looking very
-earnestly at the ladies who entered. As I came in he gave quite a
-jump in his chair and turned quickly to Miss Stoper.
-
-"'That will do,' said he; 'I could not ask for anything better.
-Capital! capital!' He seemed quite enthusiastic and rubbed his
-hands together in the most genial fashion. He was such a
-comfortable-looking man that it was quite a pleasure to look at
-him.
-
-"'You are looking for a situation, miss?' he asked.
-
-"'Yes, sir.'
-
-"'As governess?'
-
-"'Yes, sir.'
-
-"'And what salary do you ask?'
-
-"'I had 4 pounds a month in my last place with Colonel Spence
-Munro.'
-
-"'Oh, tut, tut! sweating--rank sweating!' he cried, throwing his
-fat hands out into the air like a man who is in a boiling
-passion. 'How could anyone offer so pitiful a sum to a lady with
-such attractions and accomplishments?'
-
-"'My accomplishments, sir, may be less than you imagine,' said I.
-'A little French, a little German, music, and drawing--'
-
-"'Tut, tut!' he cried. 'This is all quite beside the question.
-The point is, have you or have you not the bearing and deportment
-of a lady? There it is in a nutshell. If you have not, you are
-not fitted for the rearing of a child who may some day play a
-considerable part in the history of the country. But if you have
-why, then, how could any gentleman ask you to condescend to
-accept anything under the three figures? Your salary with me,
-madam, would commence at 100 pounds a year.'
-
-"You may imagine, Mr. Holmes, that to me, destitute as I was,
-such an offer seemed almost too good to be true. The gentleman,
-however, seeing perhaps the look of incredulity upon my face,
-opened a pocket-book and took out a note.
-
-"'It is also my custom,' said he, smiling in the most pleasant
-fashion until his eyes were just two little shining slits amid
-the white creases of his face, 'to advance to my young ladies
-half their salary beforehand, so that they may meet any little
-expenses of their journey and their wardrobe.'
-
-"It seemed to me that I had never met so fascinating and so
-thoughtful a man. As I was already in debt to my tradesmen, the
-advance was a great convenience, and yet there was something
-unnatural about the whole transaction which made me wish to know
-a little more before I quite committed myself.
-
-"'May I ask where you live, sir?' said I.
-
-"'Hampshire. Charming rural place. The Copper Beeches, five miles
-on the far side of Winchester. It is the most lovely country, my
-dear young lady, and the dearest old country-house.'
-
-"'And my duties, sir? I should be glad to know what they would
-be.'
-
-"'One child--one dear little romper just six years old. Oh, if
-you could see him killing cockroaches with a slipper! Smack!
-smack! smack! Three gone before you could wink!' He leaned back
-in his chair and laughed his eyes into his head again.
-
-"I was a little startled at the nature of the child's amusement,
-but the father's laughter made me think that perhaps he was
-joking.
-
-"'My sole duties, then,' I asked, 'are to take charge of a single
-child?'
-
-"'No, no, not the sole, not the sole, my dear young lady,' he
-cried. 'Your duty would be, as I am sure your good sense would
-suggest, to obey any little commands my wife might give, provided
-always that they were such commands as a lady might with
-propriety obey. You see no difficulty, heh?'
-
-"'I should be happy to make myself useful.'
-
-"'Quite so. In dress now, for example. We are faddy people, you
-know--faddy but kind-hearted. If you were asked to wear any dress
-which we might give you, you would not object to our little whim.
-Heh?'
-
-"'No,' said I, considerably astonished at his words.
-
-"'Or to sit here, or sit there, that would not be offensive to
-you?'
-
-"'Oh, no.'
-
-"'Or to cut your hair quite short before you come to us?'
-
-"I could hardly believe my ears. As you may observe, Mr. Holmes,
-my hair is somewhat luxuriant, and of a rather peculiar tint of
-chestnut. It has been considered artistic. I could not dream of
-sacrificing it in this offhand fashion.
-
-"'I am afraid that that is quite impossible,' said I. He had been
-watching me eagerly out of his small eyes, and I could see a
-shadow pass over his face as I spoke.
-
-"'I am afraid that it is quite essential,' said he. 'It is a
-little fancy of my wife's, and ladies' fancies, you know, madam,
-ladies' fancies must be consulted. And so you won't cut your
-hair?'
-
-"'No, sir, I really could not,' I answered firmly.
-
-"'Ah, very well; then that quite settles the matter. It is a
-pity, because in other respects you would really have done very
-nicely. In that case, Miss Stoper, I had best inspect a few more
-of your young ladies.'
-
-"The manageress had sat all this while busy with her papers
-without a word to either of us, but she glanced at me now with so
-much annoyance upon her face that I could not help suspecting
-that she had lost a handsome commission through my refusal.
-
-"'Do you desire your name to be kept upon the books?' she asked.
-
-"'If you please, Miss Stoper.'
-
-"'Well, really, it seems rather useless, since you refuse the
-most excellent offers in this fashion,' said she sharply. 'You
-can hardly expect us to exert ourselves to find another such
-opening for you. Good-day to you, Miss Hunter.' She struck a gong
-upon the table, and I was shown out by the page.
-
-"Well, Mr. Holmes, when I got back to my lodgings and found
-little enough in the cupboard, and two or three bills upon the
-table, I began to ask myself whether I had not done a very
-foolish thing. After all, if these people had strange fads and
-expected obedience on the most extraordinary matters, they were
-at least ready to pay for their eccentricity. Very few
-governesses in England are getting 100 pounds a year. Besides,
-what use was my hair to me? Many people are improved by wearing
-it short and perhaps I should be among the number. Next day I was
-inclined to think that I had made a mistake, and by the day after
-I was sure of it. I had almost overcome my pride so far as to go
-back to the agency and inquire whether the place was still open
-when I received this letter from the gentleman himself. I have it
-here and I will read it to you:
-
- "'The Copper Beeches, near Winchester.
-"'DEAR MISS HUNTER:--Miss Stoper has very kindly given me your
-address, and I write from here to ask you whether you have
-reconsidered your decision. My wife is very anxious that you
-should come, for she has been much attracted by my description of
-you. We are willing to give 30 pounds a quarter, or 120 pounds a
-year, so as to recompense you for any little inconvenience which
-our fads may cause you. They are not very exacting, after all. My
-wife is fond of a particular shade of electric blue and would
-like you to wear such a dress indoors in the morning. You need
-not, however, go to the expense of purchasing one, as we have one
-belonging to my dear daughter Alice (now in Philadelphia), which
-would, I should think, fit you very well. Then, as to sitting
-here or there, or amusing yourself in any manner indicated, that
-need cause you no inconvenience. As regards your hair, it is no
-doubt a pity, especially as I could not help remarking its beauty
-during our short interview, but I am afraid that I must remain
-firm upon this point, and I only hope that the increased salary
-may recompense you for the loss. Your duties, as far as the child
-is concerned, are very light. Now do try to come, and I shall
-meet you with the dog-cart at Winchester. Let me know your train.
-Yours faithfully, JEPHRO RUCASTLE.'
-
-"That is the letter which I have just received, Mr. Holmes, and
-my mind is made up that I will accept it. I thought, however,
-that before taking the final step I should like to submit the
-whole matter to your consideration."
-
-"Well, Miss Hunter, if your mind is made up, that settles the
-question," said Holmes, smiling.
-
-"But you would not advise me to refuse?"
-
-"I confess that it is not the situation which I should like to
-see a sister of mine apply for."
-
-"What is the meaning of it all, Mr. Holmes?"
-
-"Ah, I have no data. I cannot tell. Perhaps you have yourself
-formed some opinion?"
-
-"Well, there seems to me to be only one possible solution. Mr.
-Rucastle seemed to be a very kind, good-natured man. Is it not
-possible that his wife is a lunatic, that he desires to keep the
-matter quiet for fear she should be taken to an asylum, and that
-he humours her fancies in every way in order to prevent an
-outbreak?"
-
-"That is a possible solution--in fact, as matters stand, it is
-the most probable one. But in any case it does not seem to be a
-nice household for a young lady."
-
-"But the money, Mr. Holmes, the money!"
-
-"Well, yes, of course the pay is good--too good. That is what
-makes me uneasy. Why should they give you 120 pounds a year, when
-they could have their pick for 40 pounds? There must be some
-strong reason behind."
-
-"I thought that if I told you the circumstances you would
-understand afterwards if I wanted your help. I should feel so
-much stronger if I felt that you were at the back of me."
-
-"Oh, you may carry that feeling away with you. I assure you that
-your little problem promises to be the most interesting which has
-come my way for some months. There is something distinctly novel
-about some of the features. If you should find yourself in doubt
-or in danger--"
-
-"Danger! What danger do you foresee?"
-
-Holmes shook his head gravely. "It would cease to be a danger if
-we could define it," said he. "But at any time, day or night, a
-telegram would bring me down to your help."
-
-"That is enough." She rose briskly from her chair with the
-anxiety all swept from her face. "I shall go down to Hampshire
-quite easy in my mind now. I shall write to Mr. Rucastle at once,
-sacrifice my poor hair to-night, and start for Winchester
-to-morrow." With a few grateful words to Holmes she bade us both
-good-night and bustled off upon her way.
-
-"At least," said I as we heard her quick, firm steps descending
-the stairs, "she seems to be a young lady who is very well able
-to take care of herself."
-
-"And she would need to be," said Holmes gravely. "I am much
-mistaken if we do not hear from her before many days are past."
-
-It was not very long before my friend's prediction was fulfilled.
-A fortnight went by, during which I frequently found my thoughts
-turning in her direction and wondering what strange side-alley of
-human experience this lonely woman had strayed into. The unusual
-salary, the curious conditions, the light duties, all pointed to
-something abnormal, though whether a fad or a plot, or whether
-the man were a philanthropist or a villain, it was quite beyond
-my powers to determine. As to Holmes, I observed that he sat
-frequently for half an hour on end, with knitted brows and an
-abstracted air, but he swept the matter away with a wave of his
-hand when I mentioned it. "Data! data! data!" he cried
-impatiently. "I can't make bricks without clay." And yet he would
-always wind up by muttering that no sister of his should ever
-have accepted such a situation.
-
-The telegram which we eventually received came late one night
-just as I was thinking of turning in and Holmes was settling down
-to one of those all-night chemical researches which he frequently
-indulged in, when I would leave him stooping over a retort and a
-test-tube at night and find him in the same position when I came
-down to breakfast in the morning. He opened the yellow envelope,
-and then, glancing at the message, threw it across to me.
-
-"Just look up the trains in Bradshaw," said he, and turned back
-to his chemical studies.
-
-The summons was a brief and urgent one.
-
-"Please be at the Black Swan Hotel at Winchester at midday
-to-morrow," it said. "Do come! I am at my wit's end. HUNTER."
-
-"Will you come with me?" asked Holmes, glancing up.
-
-"I should wish to."
-
-"Just look it up, then."
-
-"There is a train at half-past nine," said I, glancing over my
-Bradshaw. "It is due at Winchester at 11:30."
-
-"That will do very nicely. Then perhaps I had better postpone my
-analysis of the acetones, as we may need to be at our best in the
-morning."
-
-By eleven o'clock the next day we were well upon our way to the
-old English capital. Holmes had been buried in the morning papers
-all the way down, but after we had passed the Hampshire border he
-threw them down and began to admire the scenery. It was an ideal
-spring day, a light blue sky, flecked with little fleecy white
-clouds drifting across from west to east. The sun was shining
-very brightly, and yet there was an exhilarating nip in the air,
-which set an edge to a man's energy. All over the countryside,
-away to the rolling hills around Aldershot, the little red and
-grey roofs of the farm-steadings peeped out from amid the light
-green of the new foliage.
-
-"Are they not fresh and beautiful?" I cried with all the
-enthusiasm of a man fresh from the fogs of Baker Street.
-
-But Holmes shook his head gravely.
-
-"Do you know, Watson," said he, "that it is one of the curses of
-a mind with a turn like mine that I must look at everything with
-reference to my own special subject. You look at these scattered
-houses, and you are impressed by their beauty. I look at them,
-and the only thought which comes to me is a feeling of their
-isolation and of the impunity with which crime may be committed
-there."
-
-"Good heavens!" I cried. "Who would associate crime with these
-dear old homesteads?"
-
-"They always fill me with a certain horror. It is my belief,
-Watson, founded upon my experience, that the lowest and vilest
-alleys in London do not present a more dreadful record of sin
-than does the smiling and beautiful countryside."
-
-"You horrify me!"
-
-"But the reason is very obvious. The pressure of public opinion
-can do in the town what the law cannot accomplish. There is no
-lane so vile that the scream of a tortured child, or the thud of
-a drunkard's blow, does not beget sympathy and indignation among
-the neighbours, and then the whole machinery of justice is ever
-so close that a word of complaint can set it going, and there is
-but a step between the crime and the dock. But look at these
-lonely houses, each in its own fields, filled for the most part
-with poor ignorant folk who know little of the law. Think of the
-deeds of hellish cruelty, the hidden wickedness which may go on,
-year in, year out, in such places, and none the wiser. Had this
-lady who appeals to us for help gone to live in Winchester, I
-should never have had a fear for her. It is the five miles of
-country which makes the danger. Still, it is clear that she is
-not personally threatened."
-
-"No. If she can come to Winchester to meet us she can get away."
-
-"Quite so. She has her freedom."
-
-"What CAN be the matter, then? Can you suggest no explanation?"
-
-"I have devised seven separate explanations, each of which would
-cover the facts as far as we know them. But which of these is
-correct can only be determined by the fresh information which we
-shall no doubt find waiting for us. Well, there is the tower of
-the cathedral, and we shall soon learn all that Miss Hunter has
-to tell."
-
-The Black Swan is an inn of repute in the High Street, at no
-distance from the station, and there we found the young lady
-waiting for us. She had engaged a sitting-room, and our lunch
-awaited us upon the table.
-
-"I am so delighted that you have come," she said earnestly. "It
-is so very kind of you both; but indeed I do not know what I
-should do. Your advice will be altogether invaluable to me."
-
-"Pray tell us what has happened to you."
-
-"I will do so, and I must be quick, for I have promised Mr.
-Rucastle to be back before three. I got his leave to come into
-town this morning, though he little knew for what purpose."
-
-"Let us have everything in its due order." Holmes thrust his long
-thin legs out towards the fire and composed himself to listen.
-
-"In the first place, I may say that I have met, on the whole,
-with no actual ill-treatment from Mr. and Mrs. Rucastle. It is
-only fair to them to say that. But I cannot understand them, and
-I am not easy in my mind about them."
-
-"What can you not understand?"
-
-"Their reasons for their conduct. But you shall have it all just
-as it occurred. When I came down, Mr. Rucastle met me here and
-drove me in his dog-cart to the Copper Beeches. It is, as he
-said, beautifully situated, but it is not beautiful in itself,
-for it is a large square block of a house, whitewashed, but all
-stained and streaked with damp and bad weather. There are grounds
-round it, woods on three sides, and on the fourth a field which
-slopes down to the Southampton highroad, which curves past about
-a hundred yards from the front door. This ground in front belongs
-to the house, but the woods all round are part of Lord
-Southerton's preserves. A clump of copper beeches immediately in
-front of the hall door has given its name to the place.
-
-"I was driven over by my employer, who was as amiable as ever,
-and was introduced by him that evening to his wife and the child.
-There was no truth, Mr. Holmes, in the conjecture which seemed to
-us to be probable in your rooms at Baker Street. Mrs. Rucastle is
-not mad. I found her to be a silent, pale-faced woman, much
-younger than her husband, not more than thirty, I should think,
-while he can hardly be less than forty-five. From their
-conversation I have gathered that they have been married about
-seven years, that he was a widower, and that his only child by
-the first wife was the daughter who has gone to Philadelphia. Mr.
-Rucastle told me in private that the reason why she had left them
-was that she had an unreasoning aversion to her stepmother. As
-the daughter could not have been less than twenty, I can quite
-imagine that her position must have been uncomfortable with her
-father's young wife.
-
-"Mrs. Rucastle seemed to me to be colourless in mind as well as
-in feature. She impressed me neither favourably nor the reverse.
-She was a nonentity. It was easy to see that she was passionately
-devoted both to her husband and to her little son. Her light grey
-eyes wandered continually from one to the other, noting every
-little want and forestalling it if possible. He was kind to her
-also in his bluff, boisterous fashion, and on the whole they
-seemed to be a happy couple. And yet she had some secret sorrow,
-this woman. She would often be lost in deep thought, with the
-saddest look upon her face. More than once I have surprised her
-in tears. I have thought sometimes that it was the disposition of
-her child which weighed upon her mind, for I have never met so
-utterly spoiled and so ill-natured a little creature. He is small
-for his age, with a head which is quite disproportionately large.
-His whole life appears to be spent in an alternation between
-savage fits of passion and gloomy intervals of sulking. Giving
-pain to any creature weaker than himself seems to be his one idea
-of amusement, and he shows quite remarkable talent in planning
-the capture of mice, little birds, and insects. But I would
-rather not talk about the creature, Mr. Holmes, and, indeed, he
-has little to do with my story."
-
-"I am glad of all details," remarked my friend, "whether they
-seem to you to be relevant or not."
-
-"I shall try not to miss anything of importance. The one
-unpleasant thing about the house, which struck me at once, was
-the appearance and conduct of the servants. There are only two, a
-man and his wife. Toller, for that is his name, is a rough,
-uncouth man, with grizzled hair and whiskers, and a perpetual
-smell of drink. Twice since I have been with them he has been
-quite drunk, and yet Mr. Rucastle seemed to take no notice of it.
-His wife is a very tall and strong woman with a sour face, as
-silent as Mrs. Rucastle and much less amiable. They are a most
-unpleasant couple, but fortunately I spend most of my time in the
-nursery and my own room, which are next to each other in one
-corner of the building.
-
-"For two days after my arrival at the Copper Beeches my life was
-very quiet; on the third, Mrs. Rucastle came down just after
-breakfast and whispered something to her husband.
-
-"'Oh, yes,' said he, turning to me, 'we are very much obliged to
-you, Miss Hunter, for falling in with our whims so far as to cut
-your hair. I assure you that it has not detracted in the tiniest
-iota from your appearance. We shall now see how the electric-blue
-dress will become you. You will find it laid out upon the bed in
-your room, and if you would be so good as to put it on we should
-both be extremely obliged.'
-
-"The dress which I found waiting for me was of a peculiar shade
-of blue. It was of excellent material, a sort of beige, but it
-bore unmistakable signs of having been worn before. It could not
-have been a better fit if I had been measured for it. Both Mr.
-and Mrs. Rucastle expressed a delight at the look of it, which
-seemed quite exaggerated in its vehemence. They were waiting for
-me in the drawing-room, which is a very large room, stretching
-along the entire front of the house, with three long windows
-reaching down to the floor. A chair had been placed close to the
-central window, with its back turned towards it. In this I was
-asked to sit, and then Mr. Rucastle, walking up and down on the
-other side of the room, began to tell me a series of the funniest
-stories that I have ever listened to. You cannot imagine how
-comical he was, and I laughed until I was quite weary. Mrs.
-Rucastle, however, who has evidently no sense of humour, never so
-much as smiled, but sat with her hands in her lap, and a sad,
-anxious look upon her face. After an hour or so, Mr. Rucastle
-suddenly remarked that it was time to commence the duties of the
-day, and that I might change my dress and go to little Edward in
-the nursery.
-
-"Two days later this same performance was gone through under
-exactly similar circumstances. Again I changed my dress, again I
-sat in the window, and again I laughed very heartily at the funny
-stories of which my employer had an immense répertoire, and which
-he told inimitably. Then he handed me a yellow-backed novel, and
-moving my chair a little sideways, that my own shadow might not
-fall upon the page, he begged me to read aloud to him. I read for
-about ten minutes, beginning in the heart of a chapter, and then
-suddenly, in the middle of a sentence, he ordered me to cease and
-to change my dress.
-
-"You can easily imagine, Mr. Holmes, how curious I became as to
-what the meaning of this extraordinary performance could possibly
-be. They were always very careful, I observed, to turn my face
-away from the window, so that I became consumed with the desire
-to see what was going on behind my back. At first it seemed to be
-impossible, but I soon devised a means. My hand-mirror had been
-broken, so a happy thought seized me, and I concealed a piece of
-the glass in my handkerchief. On the next occasion, in the midst
-of my laughter, I put my handkerchief up to my eyes, and was able
-with a little management to see all that there was behind me. I
-confess that I was disappointed. There was nothing. At least that
-was my first impression. At the second glance, however, I
-perceived that there was a man standing in the Southampton Road,
-a small bearded man in a grey suit, who seemed to be looking in
-my direction. The road is an important highway, and there are
-usually people there. This man, however, was leaning against the
-railings which bordered our field and was looking earnestly up. I
-lowered my handkerchief and glanced at Mrs. Rucastle to find her
-eyes fixed upon me with a most searching gaze. She said nothing,
-but I am convinced that she had divined that I had a mirror in my
-hand and had seen what was behind me. She rose at once.
-
-"'Jephro,' said she, 'there is an impertinent fellow upon the
-road there who stares up at Miss Hunter.'
-
-"'No friend of yours, Miss Hunter?' he asked.
-
-"'No, I know no one in these parts.'
-
-"'Dear me! How very impertinent! Kindly turn round and motion to
-him to go away.'
-
-"'Surely it would be better to take no notice.'
-
-"'No, no, we should have him loitering here always. Kindly turn
-round and wave him away like that.'
-
-"I did as I was told, and at the same instant Mrs. Rucastle drew
-down the blind. That was a week ago, and from that time I have
-not sat again in the window, nor have I worn the blue dress, nor
-seen the man in the road."
-
-"Pray continue," said Holmes. "Your narrative promises to be a
-most interesting one."
-
-"You will find it rather disconnected, I fear, and there may
-prove to be little relation between the different incidents of
-which I speak. On the very first day that I was at the Copper
-Beeches, Mr. Rucastle took me to a small outhouse which stands
-near the kitchen door. As we approached it I heard the sharp
-rattling of a chain, and the sound as of a large animal moving
-about.
-
-"'Look in here!' said Mr. Rucastle, showing me a slit between two
-planks. 'Is he not a beauty?'
-
-"I looked through and was conscious of two glowing eyes, and of a
-vague figure huddled up in the darkness.
-
-"'Don't be frightened,' said my employer, laughing at the start
-which I had given. 'It's only Carlo, my mastiff. I call him mine,
-but really old Toller, my groom, is the only man who can do
-anything with him. We feed him once a day, and not too much then,
-so that he is always as keen as mustard. Toller lets him loose
-every night, and God help the trespasser whom he lays his fangs
-upon. For goodness' sake don't you ever on any pretext set your
-foot over the threshold at night, for it's as much as your life
-is worth.'
-
-"The warning was no idle one, for two nights later I happened to
-look out of my bedroom window about two o'clock in the morning.
-It was a beautiful moonlight night, and the lawn in front of the
-house was silvered over and almost as bright as day. I was
-standing, rapt in the peaceful beauty of the scene, when I was
-aware that something was moving under the shadow of the copper
-beeches. As it emerged into the moonshine I saw what it was. It
-was a giant dog, as large as a calf, tawny tinted, with hanging
-jowl, black muzzle, and huge projecting bones. It walked slowly
-across the lawn and vanished into the shadow upon the other side.
-That dreadful sentinel sent a chill to my heart which I do not
-think that any burglar could have done.
-
-"And now I have a very strange experience to tell you. I had, as
-you know, cut off my hair in London, and I had placed it in a
-great coil at the bottom of my trunk. One evening, after the
-child was in bed, I began to amuse myself by examining the
-furniture of my room and by rearranging my own little things.
-There was an old chest of drawers in the room, the two upper ones
-empty and open, the lower one locked. I had filled the first two
-with my linen, and as I had still much to pack away I was
-naturally annoyed at not having the use of the third drawer. It
-struck me that it might have been fastened by a mere oversight,
-so I took out my bunch of keys and tried to open it. The very
-first key fitted to perfection, and I drew the drawer open. There
-was only one thing in it, but I am sure that you would never
-guess what it was. It was my coil of hair.
-
-"I took it up and examined it. It was of the same peculiar tint,
-and the same thickness. But then the impossibility of the thing
-obtruded itself upon me. How could my hair have been locked in
-the drawer? With trembling hands I undid my trunk, turned out the
-contents, and drew from the bottom my own hair. I laid the two
-tresses together, and I assure you that they were identical. Was
-it not extraordinary? Puzzle as I would, I could make nothing at
-all of what it meant. I returned the strange hair to the drawer,
-and I said nothing of the matter to the Rucastles as I felt that
-I had put myself in the wrong by opening a drawer which they had
-locked.
-
-"I am naturally observant, as you may have remarked, Mr. Holmes,
-and I soon had a pretty good plan of the whole house in my head.
-There was one wing, however, which appeared not to be inhabited
-at all. A door which faced that which led into the quarters of
-the Tollers opened into this suite, but it was invariably locked.
-One day, however, as I ascended the stair, I met Mr. Rucastle
-coming out through this door, his keys in his hand, and a look on
-his face which made him a very different person to the round,
-jovial man to whom I was accustomed. His cheeks were red, his
-brow was all crinkled with anger, and the veins stood out at his
-temples with passion. He locked the door and hurried past me
-without a word or a look.
-
-"This aroused my curiosity, so when I went out for a walk in the
-grounds with my charge, I strolled round to the side from which I
-could see the windows of this part of the house. There were four
-of them in a row, three of which were simply dirty, while the
-fourth was shuttered up. They were evidently all deserted. As I
-strolled up and down, glancing at them occasionally, Mr. Rucastle
-came out to me, looking as merry and jovial as ever.
-
-"'Ah!' said he, 'you must not think me rude if I passed you
-without a word, my dear young lady. I was preoccupied with
-business matters.'
-
-"I assured him that I was not offended. 'By the way,' said I,
-'you seem to have quite a suite of spare rooms up there, and one
-of them has the shutters up.'
-
-"He looked surprised and, as it seemed to me, a little startled
-at my remark.
-
-"'Photography is one of my hobbies,' said he. 'I have made my
-dark room up there. But, dear me! what an observant young lady we
-have come upon. Who would have believed it? Who would have ever
-believed it?' He spoke in a jesting tone, but there was no jest
-in his eyes as he looked at me. I read suspicion there and
-annoyance, but no jest.
-
-"Well, Mr. Holmes, from the moment that I understood that there
-was something about that suite of rooms which I was not to know,
-I was all on fire to go over them. It was not mere curiosity,
-though I have my share of that. It was more a feeling of duty--a
-feeling that some good might come from my penetrating to this
-place. They talk of woman's instinct; perhaps it was woman's
-instinct which gave me that feeling. At any rate, it was there,
-and I was keenly on the lookout for any chance to pass the
-forbidden door.
-
-"It was only yesterday that the chance came. I may tell you that,
-besides Mr. Rucastle, both Toller and his wife find something to
-do in these deserted rooms, and I once saw him carrying a large
-black linen bag with him through the door. Recently he has been
-drinking hard, and yesterday evening he was very drunk; and when
-I came upstairs there was the key in the door. I have no doubt at
-all that he had left it there. Mr. and Mrs. Rucastle were both
-downstairs, and the child was with them, so that I had an
-admirable opportunity. I turned the key gently in the lock,
-opened the door, and slipped through.
-
-"There was a little passage in front of me, unpapered and
-uncarpeted, which turned at a right angle at the farther end.
-Round this corner were three doors in a line, the first and third
-of which were open. They each led into an empty room, dusty and
-cheerless, with two windows in the one and one in the other, so
-thick with dirt that the evening light glimmered dimly through
-them. The centre door was closed, and across the outside of it
-had been fastened one of the broad bars of an iron bed, padlocked
-at one end to a ring in the wall, and fastened at the other with
-stout cord. The door itself was locked as well, and the key was
-not there. This barricaded door corresponded clearly with the
-shuttered window outside, and yet I could see by the glimmer from
-beneath it that the room was not in darkness. Evidently there was
-a skylight which let in light from above. As I stood in the
-passage gazing at the sinister door and wondering what secret it
-might veil, I suddenly heard the sound of steps within the room
-and saw a shadow pass backward and forward against the little
-slit of dim light which shone out from under the door. A mad,
-unreasoning terror rose up in me at the sight, Mr. Holmes. My
-overstrung nerves failed me suddenly, and I turned and ran--ran
-as though some dreadful hand were behind me clutching at the
-skirt of my dress. I rushed down the passage, through the door,
-and straight into the arms of Mr. Rucastle, who was waiting
-outside.
-
-"'So,' said he, smiling, 'it was you, then. I thought that it
-must be when I saw the door open.'
-
-"'Oh, I am so frightened!' I panted.
-
-"'My dear young lady! my dear young lady!'--you cannot think how
-caressing and soothing his manner was--'and what has frightened
-you, my dear young lady?'
-
-"But his voice was just a little too coaxing. He overdid it. I
-was keenly on my guard against him.
-
-"'I was foolish enough to go into the empty wing,' I answered.
-'But it is so lonely and eerie in this dim light that I was
-frightened and ran out again. Oh, it is so dreadfully still in
-there!'
-
-"'Only that?' said he, looking at me keenly.
-
-"'Why, what did you think?' I asked.
-
-"'Why do you think that I lock this door?'
-
-"'I am sure that I do not know.'
-
-"'It is to keep people out who have no business there. Do you
-see?' He was still smiling in the most amiable manner.
-
-"'I am sure if I had known--'
-
-"'Well, then, you know now. And if you ever put your foot over
-that threshold again'--here in an instant the smile hardened into
-a grin of rage, and he glared down at me with the face of a
-demon--'I'll throw you to the mastiff.'
-
-"I was so terrified that I do not know what I did. I suppose that
-I must have rushed past him into my room. I remember nothing
-until I found myself lying on my bed trembling all over. Then I
-thought of you, Mr. Holmes. I could not live there longer without
-some advice. I was frightened of the house, of the man, of the
-woman, of the servants, even of the child. They were all horrible
-to me. If I could only bring you down all would be well. Of
-course I might have fled from the house, but my curiosity was
-almost as strong as my fears. My mind was soon made up. I would
-send you a wire. I put on my hat and cloak, went down to the
-office, which is about half a mile from the house, and then
-returned, feeling very much easier. A horrible doubt came into my
-mind as I approached the door lest the dog might be loose, but I
-remembered that Toller had drunk himself into a state of
-insensibility that evening, and I knew that he was the only one
-in the household who had any influence with the savage creature,
-or who would venture to set him free. I slipped in in safety and
-lay awake half the night in my joy at the thought of seeing you.
-I had no difficulty in getting leave to come into Winchester this
-morning, but I must be back before three o'clock, for Mr. and
-Mrs. Rucastle are going on a visit, and will be away all the
-evening, so that I must look after the child. Now I have told you
-all my adventures, Mr. Holmes, and I should be very glad if you
-could tell me what it all means, and, above all, what I should
-do."
-
-Holmes and I had listened spellbound to this extraordinary story.
-My friend rose now and paced up and down the room, his hands in
-his pockets, and an expression of the most profound gravity upon
-his face.
-
-"Is Toller still drunk?" he asked.
-
-"Yes. I heard his wife tell Mrs. Rucastle that she could do
-nothing with him."
-
-"That is well. And the Rucastles go out to-night?"
-
-"Yes."
-
-"Is there a cellar with a good strong lock?"
-
-"Yes, the wine-cellar."
-
-"You seem to me to have acted all through this matter like a very
-brave and sensible girl, Miss Hunter. Do you think that you could
-perform one more feat? I should not ask it of you if I did not
-think you a quite exceptional woman."
-
-"I will try. What is it?"
-
-"We shall be at the Copper Beeches by seven o'clock, my friend
-and I. The Rucastles will be gone by that time, and Toller will,
-we hope, be incapable. There only remains Mrs. Toller, who might
-give the alarm. If you could send her into the cellar on some
-errand, and then turn the key upon her, you would facilitate
-matters immensely."
-
-"I will do it."
-
-"Excellent! We shall then look thoroughly into the affair. Of
-course there is only one feasible explanation. You have been
-brought there to personate someone, and the real person is
-imprisoned in this chamber. That is obvious. As to who this
-prisoner is, I have no doubt that it is the daughter, Miss Alice
-Rucastle, if I remember right, who was said to have gone to
-America. You were chosen, doubtless, as resembling her in height,
-figure, and the colour of your hair. Hers had been cut off, very
-possibly in some illness through which she has passed, and so, of
-course, yours had to be sacrificed also. By a curious chance you
-came upon her tresses. The man in the road was undoubtedly some
-friend of hers--possibly her fiancé--and no doubt, as you wore
-the girl's dress and were so like her, he was convinced from your
-laughter, whenever he saw you, and afterwards from your gesture,
-that Miss Rucastle was perfectly happy, and that she no longer
-desired his attentions. The dog is let loose at night to prevent
-him from endeavouring to communicate with her. So much is fairly
-clear. The most serious point in the case is the disposition of
-the child."
-
-"What on earth has that to do with it?" I ejaculated.
-
-"My dear Watson, you as a medical man are continually gaining
-light as to the tendencies of a child by the study of the
-parents. Don't you see that the converse is equally valid. I have
-frequently gained my first real insight into the character of
-parents by studying their children. This child's disposition is
-abnormally cruel, merely for cruelty's sake, and whether he
-derives this from his smiling father, as I should suspect, or
-from his mother, it bodes evil for the poor girl who is in their
-power."
-
-"I am sure that you are right, Mr. Holmes," cried our client. "A
-thousand things come back to me which make me certain that you
-have hit it. Oh, let us lose not an instant in bringing help to
-this poor creature."
-
-"We must be circumspect, for we are dealing with a very cunning
-man. We can do nothing until seven o'clock. At that hour we shall
-be with you, and it will not be long before we solve the
-mystery."
-
-We were as good as our word, for it was just seven when we
-reached the Copper Beeches, having put up our trap at a wayside
-public-house. The group of trees, with their dark leaves shining
-like burnished metal in the light of the setting sun, were
-sufficient to mark the house even had Miss Hunter not been
-standing smiling on the door-step.
-
-"Have you managed it?" asked Holmes.
-
-A loud thudding noise came from somewhere downstairs. "That is
-Mrs. Toller in the cellar," said she. "Her husband lies snoring
-on the kitchen rug. Here are his keys, which are the duplicates
-of Mr. Rucastle's."
-
-"You have done well indeed!" cried Holmes with enthusiasm. "Now
-lead the way, and we shall soon see the end of this black
-business."
-
-We passed up the stair, unlocked the door, followed on down a
-passage, and found ourselves in front of the barricade which Miss
-Hunter had described. Holmes cut the cord and removed the
-transverse bar. Then he tried the various keys in the lock, but
-without success. No sound came from within, and at the silence
-Holmes' face clouded over.
-
-"I trust that we are not too late," said he. "I think, Miss
-Hunter, that we had better go in without you. Now, Watson, put
-your shoulder to it, and we shall see whether we cannot make our
-way in."
-
-It was an old rickety door and gave at once before our united
-strength. Together we rushed into the room. It was empty. There
-was no furniture save a little pallet bed, a small table, and a
-basketful of linen. The skylight above was open, and the prisoner
-gone.
-
-"There has been some villainy here," said Holmes; "this beauty
-has guessed Miss Hunter's intentions and has carried his victim
-off."
-
-"But how?"
-
-"Through the skylight. We shall soon see how he managed it." He
-swung himself up onto the roof. "Ah, yes," he cried, "here's the
-end of a long light ladder against the eaves. That is how he did
-it."
-
-"But it is impossible," said Miss Hunter; "the ladder was not
-there when the Rucastles went away."
-
-"He has come back and done it. I tell you that he is a clever and
-dangerous man. I should not be very much surprised if this were
-he whose step I hear now upon the stair. I think, Watson, that it
-would be as well for you to have your pistol ready."
-
-The words were hardly out of his mouth before a man appeared at
-the door of the room, a very fat and burly man, with a heavy
-stick in his hand. Miss Hunter screamed and shrunk against the
-wall at the sight of him, but Sherlock Holmes sprang forward and
-confronted him.
-
-"You villain!" said he, "where's your daughter?"
-
-The fat man cast his eyes round, and then up at the open
-skylight.
-
-"It is for me to ask you that," he shrieked, "you thieves! Spies
-and thieves! I have caught you, have I? You are in my power. I'll
-serve you!" He turned and clattered down the stairs as hard as he
-could go.
-
-"He's gone for the dog!" cried Miss Hunter.
-
-"I have my revolver," said I.
-
-"Better close the front door," cried Holmes, and we all rushed
-down the stairs together. We had hardly reached the hall when we
-heard the baying of a hound, and then a scream of agony, with a
-horrible worrying sound which it was dreadful to listen to. An
-elderly man with a red face and shaking limbs came staggering out
-at a side door.
-
-"My God!" he cried. "Someone has loosed the dog. It's not been
-fed for two days. Quick, quick, or it'll be too late!"
-
-Holmes and I rushed out and round the angle of the house, with
-Toller hurrying behind us. There was the huge famished brute, its
-black muzzle buried in Rucastle's throat, while he writhed and
-screamed upon the ground. Running up, I blew its brains out, and
-it fell over with its keen white teeth still meeting in the great
-creases of his neck. With much labour we separated them and
-carried him, living but horribly mangled, into the house. We laid
-him upon the drawing-room sofa, and having dispatched the sobered
-Toller to bear the news to his wife, I did what I could to
-relieve his pain. We were all assembled round him when the door
-opened, and a tall, gaunt woman entered the room.
-
-"Mrs. Toller!" cried Miss Hunter.
-
-"Yes, miss. Mr. Rucastle let me out when he came back before he
-went up to you. Ah, miss, it is a pity you didn't let me know
-what you were planning, for I would have told you that your pains
-were wasted."
-
-"Ha!" said Holmes, looking keenly at her. "It is clear that Mrs.
-Toller knows more about this matter than anyone else."
-
-"Yes, sir, I do, and I am ready enough to tell what I know."
-
-"Then, pray, sit down, and let us hear it for there are several
-points on which I must confess that I am still in the dark."
-
-"I will soon make it clear to you," said she; "and I'd have done
-so before now if I could ha' got out from the cellar. If there's
-police-court business over this, you'll remember that I was the
-one that stood your friend, and that I was Miss Alice's friend
-too.
-
-"She was never happy at home, Miss Alice wasn't, from the time
-that her father married again. She was slighted like and had no
-say in anything, but it never really became bad for her until
-after she met Mr. Fowler at a friend's house. As well as I could
-learn, Miss Alice had rights of her own by will, but she was so
-quiet and patient, she was, that she never said a word about them
-but just left everything in Mr. Rucastle's hands. He knew he was
-safe with her; but when there was a chance of a husband coming
-forward, who would ask for all that the law would give him, then
-her father thought it time to put a stop on it. He wanted her to
-sign a paper, so that whether she married or not, he could use
-her money. When she wouldn't do it, he kept on worrying her until
-she got brain-fever, and for six weeks was at death's door. Then
-she got better at last, all worn to a shadow, and with her
-beautiful hair cut off; but that didn't make no change in her
-young man, and he stuck to her as true as man could be."
-
-"Ah," said Holmes, "I think that what you have been good enough
-to tell us makes the matter fairly clear, and that I can deduce
-all that remains. Mr. Rucastle then, I presume, took to this
-system of imprisonment?"
-
-"Yes, sir."
-
-"And brought Miss Hunter down from London in order to get rid of
-the disagreeable persistence of Mr. Fowler."
-
-"That was it, sir."
-
-"But Mr. Fowler being a persevering man, as a good seaman should
-be, blockaded the house, and having met you succeeded by certain
-arguments, metallic or otherwise, in convincing you that your
-interests were the same as his."
-
-"Mr. Fowler was a very kind-spoken, free-handed gentleman," said
-Mrs. Toller serenely.
-
-"And in this way he managed that your good man should have no
-want of drink, and that a ladder should be ready at the moment
-when your master had gone out."
-
-"You have it, sir, just as it happened."
-
-"I am sure we owe you an apology, Mrs. Toller," said Holmes, "for
-you have certainly cleared up everything which puzzled us. And
-here comes the country surgeon and Mrs. Rucastle, so I think,
-Watson, that we had best escort Miss Hunter back to Winchester,
-as it seems to me that our locus standi now is rather a
-questionable one."
-
-And thus was solved the mystery of the sinister house with the
-copper beeches in front of the door. Mr. Rucastle survived, but
-was always a broken man, kept alive solely through the care of
-his devoted wife. They still live with their old servants, who
-probably know so much of Rucastle's past life that he finds it
-difficult to part from them. Mr. Fowler and Miss Rucastle were
-married, by special license, in Southampton the day after their
-flight, and he is now the holder of a government appointment in
-the island of Mauritius. As to Miss Violet Hunter, my friend
-Holmes, rather to my disappointment, manifested no further
-interest in her when once she had ceased to be the centre of one
-of his problems, and she is now the head of a private school at
-Walsall, where I believe that she has met with considerable success.
-
-
-
-
-
-
-
-
-
-End of the Project Gutenberg EBook of The Adventures of Sherlock Holmes, by
-Arthur Conan Doyle
-
-*** END OF THIS PROJECT GUTENBERG EBOOK THE ADVENTURES OF SHERLOCK HOLMES ***
-
-***** This file should be named 1661-8.txt or 1661-8.zip *****
-This and all associated files of various formats will be found in:
- http://www.gutenberg.org/1/6/6/1661/
-
-Produced by an anonymous Project Gutenberg volunteer and Jose Menendez
-
-Updated editions will replace the previous one--the old editions
-will be renamed.
-
-Creating the works from public domain print editions means that no
-one owns a United States copyright in these works, so the Foundation
-(and you!) can copy and distribute it in the United States without
-permission and without paying copyright royalties. Special rules,
-set forth in the General Terms of Use part of this license, apply to
-copying and distributing Project Gutenberg-tm electronic works to
-protect the PROJECT GUTENBERG-tm concept and trademark. Project
-Gutenberg is a registered trademark, and may not be used if you
-charge for the eBooks, unless you receive specific permission. If you
-do not charge anything for copies of this eBook, complying with the
-rules is very easy. You may use this eBook for nearly any purpose
-such as creation of derivative works, reports, performances and
-research. They may be modified and printed and given away--you may do
-practically ANYTHING with public domain eBooks. Redistribution is
-subject to the trademark license, especially commercial
-redistribution.
-
-
-
-*** START: FULL LICENSE ***
-
-THE FULL PROJECT GUTENBERG LICENSE
-PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
-
-To protect the Project Gutenberg-tm mission of promoting the free
-distribution of electronic works, by using or distributing this work
-(or any other work associated in any way with the phrase "Project
-Gutenberg"), you agree to comply with all the terms of the Full Project
-Gutenberg-tm License (available with this file or online at
-http://gutenberg.net/license).
-
-
-Section 1. General Terms of Use and Redistributing Project Gutenberg-tm
-electronic works
-
-1.A. By reading or using any part of this Project Gutenberg-tm
-electronic work, you indicate that you have read, understand, agree to
-and accept all the terms of this license and intellectual property
-(trademark/copyright) agreement. If you do not agree to abide by all
-the terms of this agreement, you must cease using and return or destroy
-all copies of Project Gutenberg-tm electronic works in your possession.
-If you paid a fee for obtaining a copy of or access to a Project
-Gutenberg-tm electronic work and you do not agree to be bound by the
-terms of this agreement, you may obtain a refund from the person or
-entity to whom you paid the fee as set forth in paragraph 1.E.8.
-
-1.B. "Project Gutenberg" is a registered trademark. It may only be
-used on or associated in any way with an electronic work by people who
-agree to be bound by the terms of this agreement. There are a few
-things that you can do with most Project Gutenberg-tm electronic works
-even without complying with the full terms of this agreement. See
-paragraph 1.C below. There are a lot of things you can do with Project
-Gutenberg-tm electronic works if you follow the terms of this agreement
-and help preserve free future access to Project Gutenberg-tm electronic
-works. See paragraph 1.E below.
-
-1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation"
-or PGLAF), owns a compilation copyright in the collection of Project
-Gutenberg-tm electronic works. Nearly all the individual works in the
-collection are in the public domain in the United States. If an
-individual work is in the public domain in the United States and you are
-located in the United States, we do not claim a right to prevent you from
-copying, distributing, performing, displaying or creating derivative
-works based on the work as long as all references to Project Gutenberg
-are removed. Of course, we hope that you will support the Project
-Gutenberg-tm mission of promoting free access to electronic works by
-freely sharing Project Gutenberg-tm works in compliance with the terms of
-this agreement for keeping the Project Gutenberg-tm name associated with
-the work. You can easily comply with the terms of this agreement by
-keeping this work in the same format with its attached full Project
-Gutenberg-tm License when you share it without charge with others.
-
-1.D. The copyright laws of the place where you are located also govern
-what you can do with this work. Copyright laws in most countries are in
-a constant state of change. If you are outside the United States, check
-the laws of your country in addition to the terms of this agreement
-before downloading, copying, displaying, performing, distributing or
-creating derivative works based on this work or any other Project
-Gutenberg-tm work. The Foundation makes no representations concerning
-the copyright status of any work in any country outside the United
-States.
-
-1.E. Unless you have removed all references to Project Gutenberg:
-
-1.E.1. The following sentence, with active links to, or other immediate
-access to, the full Project Gutenberg-tm License must appear prominently
-whenever any copy of a Project Gutenberg-tm work (any work on which the
-phrase "Project Gutenberg" appears, or with which the phrase "Project
-Gutenberg" is associated) is accessed, displayed, performed, viewed,
-copied or distributed:
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.net
-
-1.E.2. If an individual Project Gutenberg-tm electronic work is derived
-from the public domain (does not contain a notice indicating that it is
-posted with permission of the copyright holder), the work can be copied
-and distributed to anyone in the United States without paying any fees
-or charges. If you are redistributing or providing access to a work
-with the phrase "Project Gutenberg" associated with or appearing on the
-work, you must comply either with the requirements of paragraphs 1.E.1
-through 1.E.7 or obtain permission for the use of the work and the
-Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or
-1.E.9.
-
-1.E.3. If an individual Project Gutenberg-tm electronic work is posted
-with the permission of the copyright holder, your use and distribution
-must comply with both paragraphs 1.E.1 through 1.E.7 and any additional
-terms imposed by the copyright holder. Additional terms will be linked
-to the Project Gutenberg-tm License for all works posted with the
-permission of the copyright holder found at the beginning of this work.
-
-1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm
-License terms from this work, or any files containing a part of this
-work or any other work associated with Project Gutenberg-tm.
-
-1.E.5. Do not copy, display, perform, distribute or redistribute this
-electronic work, or any part of this electronic work, without
-prominently displaying the sentence set forth in paragraph 1.E.1 with
-active links or immediate access to the full terms of the Project
-Gutenberg-tm License.
-
-1.E.6. You may convert to and distribute this work in any binary,
-compressed, marked up, nonproprietary or proprietary form, including any
-word processing or hypertext form. However, if you provide access to or
-distribute copies of a Project Gutenberg-tm work in a format other than
-"Plain Vanilla ASCII" or other format used in the official version
-posted on the official Project Gutenberg-tm web site (www.gutenberg.net),
-you must, at no additional cost, fee or expense to the user, provide a
-copy, a means of exporting a copy, or a means of obtaining a copy upon
-request, of the work in its original "Plain Vanilla ASCII" or other
-form. Any alternate format must include the full Project Gutenberg-tm
-License as specified in paragraph 1.E.1.
-
-1.E.7. Do not charge a fee for access to, viewing, displaying,
-performing, copying or distributing any Project Gutenberg-tm works
-unless you comply with paragraph 1.E.8 or 1.E.9.
-
-1.E.8. You may charge a reasonable fee for copies of or providing
-access to or distributing Project Gutenberg-tm electronic works provided
-that
-
-- You pay a royalty fee of 20% of the gross profits you derive from
- the use of Project Gutenberg-tm works calculated using the method
- you already use to calculate your applicable taxes. The fee is
- owed to the owner of the Project Gutenberg-tm trademark, but he
- has agreed to donate royalties under this paragraph to the
- Project Gutenberg Literary Archive Foundation. Royalty payments
- must be paid within 60 days following each date on which you
- prepare (or are legally required to prepare) your periodic tax
- returns. Royalty payments should be clearly marked as such and
- sent to the Project Gutenberg Literary Archive Foundation at the
- address specified in Section 4, "Information about donations to
- the Project Gutenberg Literary Archive Foundation."
-
-- You provide a full refund of any money paid by a user who notifies
- you in writing (or by e-mail) within 30 days of receipt that s/he
- does not agree to the terms of the full Project Gutenberg-tm
- License. You must require such a user to return or
- destroy all copies of the works possessed in a physical medium
- and discontinue all use of and all access to other copies of
- Project Gutenberg-tm works.
-
-- You provide, in accordance with paragraph 1.F.3, a full refund of any
- money paid for a work or a replacement copy, if a defect in the
- electronic work is discovered and reported to you within 90 days
- of receipt of the work.
-
-- You comply with all other terms of this agreement for free
- distribution of Project Gutenberg-tm works.
-
-1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm
-electronic work or group of works on different terms than are set
-forth in this agreement, you must obtain permission in writing from
-both the Project Gutenberg Literary Archive Foundation and Michael
-Hart, the owner of the Project Gutenberg-tm trademark. Contact the
-Foundation as set forth in Section 3 below.
-
-1.F.
-
-1.F.1. Project Gutenberg volunteers and employees expend considerable
-effort to identify, do copyright research on, transcribe and proofread
-public domain works in creating the Project Gutenberg-tm
-collection. Despite these efforts, Project Gutenberg-tm electronic
-works, and the medium on which they may be stored, may contain
-"Defects," such as, but not limited to, incomplete, inaccurate or
-corrupt data, transcription errors, a copyright or other intellectual
-property infringement, a defective or damaged disk or other medium, a
-computer virus, or computer codes that damage or cannot be read by
-your equipment.
-
-1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right
-of Replacement or Refund" described in paragraph 1.F.3, the Project
-Gutenberg Literary Archive Foundation, the owner of the Project
-Gutenberg-tm trademark, and any other party distributing a Project
-Gutenberg-tm electronic work under this agreement, disclaim all
-liability to you for damages, costs and expenses, including legal
-fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
-LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE
-PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE
-TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE
-LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
-INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a
-defect in this electronic work within 90 days of receiving it, you can
-receive a refund of the money (if any) you paid for it by sending a
-written explanation to the person you received the work from. If you
-received the work on a physical medium, you must return the medium with
-your written explanation. The person or entity that provided you with
-the defective work may elect to provide a replacement copy in lieu of a
-refund. If you received the work electronically, the person or entity
-providing it to you may choose to give you a second opportunity to
-receive the work electronically in lieu of a refund. If the second copy
-is also defective, you may demand a refund in writing without further
-opportunities to fix the problem.
-
-1.F.4. Except for the limited right of replacement or refund set forth
-in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER
-WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE.
-
-1.F.5. Some states do not allow disclaimers of certain implied
-warranties or the exclusion or limitation of certain types of damages.
-If any disclaimer or limitation set forth in this agreement violates the
-law of the state applicable to this agreement, the agreement shall be
-interpreted to make the maximum disclaimer or limitation permitted by
-the applicable state law. The invalidity or unenforceability of any
-provision of this agreement shall not void the remaining provisions.
-
-1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the
-trademark owner, any agent or employee of the Foundation, anyone
-providing copies of Project Gutenberg-tm electronic works in accordance
-with this agreement, and any volunteers associated with the production,
-promotion and distribution of Project Gutenberg-tm electronic works,
-harmless from all liability, costs and expenses, including legal fees,
-that arise directly or indirectly from any of the following which you do
-or cause to occur: (a) distribution of this or any Project Gutenberg-tm
-work, (b) alteration, modification, or additions or deletions to any
-Project Gutenberg-tm work, and (c) any Defect you cause.
-
-
-Section 2. Information about the Mission of Project Gutenberg-tm
-
-Project Gutenberg-tm is synonymous with the free distribution of
-electronic works in formats readable by the widest variety of computers
-including obsolete, old, middle-aged and new computers. It exists
-because of the efforts of hundreds of volunteers and donations from
-people in all walks of life.
-
-Volunteers and financial support to provide volunteers with the
-assistance they need are critical to reaching Project Gutenberg-tm's
-goals and ensuring that the Project Gutenberg-tm collection will
-remain freely available for generations to come. In 2001, the Project
-Gutenberg Literary Archive Foundation was created to provide a secure
-and permanent future for Project Gutenberg-tm and future generations.
-To learn more about the Project Gutenberg Literary Archive Foundation
-and how your efforts and donations can help, see Sections 3 and 4
-and the Foundation web page at http://www.pglaf.org.
-
-
-Section 3. Information about the Project Gutenberg Literary Archive
-Foundation
-
-The Project Gutenberg Literary Archive Foundation is a non profit
-501(c)(3) educational corporation organized under the laws of the
-state of Mississippi and granted tax exempt status by the Internal
-Revenue Service. The Foundation's EIN or federal tax identification
-number is 64-6221541. Its 501(c)(3) letter is posted at
-http://pglaf.org/fundraising. Contributions to the Project Gutenberg
-Literary Archive Foundation are tax deductible to the full extent
-permitted by U.S. federal laws and your state's laws.
-
-The Foundation's principal office is located at 4557 Melan Dr. S.
-Fairbanks, AK, 99712., but its volunteers and employees are scattered
-throughout numerous locations. Its business office is located at
-809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email
-business@pglaf.org. Email contact links and up to date contact
-information can be found at the Foundation's web site and official
-page at http://pglaf.org
-
-For additional contact information:
- Dr. Gregory B. Newby
- Chief Executive and Director
- gbnewby@pglaf.org
-
-
-Section 4. Information about Donations to the Project Gutenberg
-Literary Archive Foundation
-
-Project Gutenberg-tm depends upon and cannot survive without wide
-spread public support and donations to carry out its mission of
-increasing the number of public domain and licensed works that can be
-freely distributed in machine readable form accessible by the widest
-array of equipment including outdated equipment. Many small donations
-($1 to $5,000) are particularly important to maintaining tax exempt
-status with the IRS.
-
-The Foundation is committed to complying with the laws regulating
-charities and charitable donations in all 50 states of the United
-States. Compliance requirements are not uniform and it takes a
-considerable effort, much paperwork and many fees to meet and keep up
-with these requirements. We do not solicit donations in locations
-where we have not received written confirmation of compliance. To
-SEND DONATIONS or determine the status of compliance for any
-particular state visit http://pglaf.org
-
-While we cannot and do not solicit contributions from states where we
-have not met the solicitation requirements, we know of no prohibition
-against accepting unsolicited donations from donors in such states who
-approach us with offers to donate.
-
-International donations are gratefully accepted, but we cannot make
-any statements concerning tax treatment of donations received from
-outside the United States. U.S. laws alone swamp our small staff.
-
-Please check the Project Gutenberg Web pages for current donation
-methods and addresses. Donations are accepted in a number of other
-ways including including checks, online payments and credit card
-donations. To donate, please visit: http://pglaf.org/donate
-
-
-Section 5. General Information About Project Gutenberg-tm electronic
-works.
-
-Professor Michael S. Hart is the originator of the Project Gutenberg-tm
-concept of a library of electronic works that could be freely shared
-with anyone. For thirty years, he produced and distributed Project
-Gutenberg-tm eBooks with only a loose network of volunteer support.
-
-
-Project Gutenberg-tm eBooks are often created from several printed
-editions, all of which are confirmed as Public Domain in the U.S.
-unless a copyright notice is included. Thus, we do not necessarily
-keep eBooks in compliance with any particular paper edition.
-
-
-Most people start at our Web site which has the main PG search facility:
-
- http://www.gutenberg.net
-
-This Web site includes information about Project Gutenberg-tm,
-including how to make donations to the Project Gutenberg Literary
-Archive Foundation, how to help produce our new eBooks, and how to
-subscribe to our email newsletter to hear about new eBooks.
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/data/file2.txt b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/data/file2.txt
deleted file mode 100644
index a25d303..0000000
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/data/file2.txt
+++ /dev/null
@@ -1,10216 +0,0 @@
-Project Gutenberg's Memoirs of Sherlock Holmes, by Sir Arthur Conan Doyle
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.org
-
-
-Title: Memoirs of Sherlock Holmes
-
-Author: Sir Arthur Conan Doyle
-
-Posting Date: July 31, 2008 [EBook #834]
-Release Date: March, 1997
-[This file last updated on August 16, 2010]
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK MEMOIRS OF SHERLOCK HOLMES ***
-
-
-
-
-Produced by Angela M. Cable
-
-
-
-
-
-MEMOIRS OF SHERLOCK HOLMES
-
-by Sir Arthur Conan Doyle
-
-
-
-
-Adventure I. Silver Blaze
-
-
-"I am afraid, Watson, that I shall have to go," said Holmes, as we sat
-down together to our breakfast one morning.
-
-"Go! Where to?"
-
-"To Dartmoor; to King's Pyland."
-
-I was not surprised. Indeed, my only wonder was that he had not already
-been mixed up in this extraordinary case, which was the one topic of
-conversation through the length and breadth of England. For a whole day
-my companion had rambled about the room with his chin upon his chest and
-his brows knitted, charging and recharging his pipe with the strongest
-black tobacco, and absolutely deaf to any of my questions or remarks.
-Fresh editions of every paper had been sent up by our news agent, only
-to be glanced over and tossed down into a corner. Yet, silent as he was,
-I knew perfectly well what it was over which he was brooding. There was
-but one problem before the public which could challenge his powers of
-analysis, and that was the singular disappearance of the favorite for
-the Wessex Cup, and the tragic murder of its trainer. When, therefore,
-he suddenly announced his intention of setting out for the scene of the
-drama it was only what I had both expected and hoped for.
-
-"I should be most happy to go down with you if I should not be in the
-way," said I.
-
-"My dear Watson, you would confer a great favor upon me by coming. And
-I think that your time will not be misspent, for there are points about
-the case which promise to make it an absolutely unique one. We have, I
-think, just time to catch our train at Paddington, and I will go further
-into the matter upon our journey. You would oblige me by bringing with
-you your very excellent field-glass."
-
-And so it happened that an hour or so later I found myself in the
-corner of a first-class carriage flying along en route for Exeter, while
-Sherlock Holmes, with his sharp, eager face framed in his ear-flapped
-travelling-cap, dipped rapidly into the bundle of fresh papers which he
-had procured at Paddington. We had left Reading far behind us before
-he thrust the last one of them under the seat, and offered me his
-cigar-case.
-
-"We are going well," said he, looking out the window and glancing at his
-watch. "Our rate at present is fifty-three and a half miles an hour."
-
-"I have not observed the quarter-mile posts," said I.
-
-"Nor have I. But the telegraph posts upon this line are sixty yards
-apart, and the calculation is a simple one. I presume that you
-have looked into this matter of the murder of John Straker and the
-disappearance of Silver Blaze?"
-
-"I have seen what the Telegraph and the Chronicle have to say."
-
-"It is one of those cases where the art of the reasoner should be
-used rather for the sifting of details than for the acquiring of fresh
-evidence. The tragedy has been so uncommon, so complete and of such
-personal importance to so many people, that we are suffering from a
-plethora of surmise, conjecture, and hypothesis. The difficulty is to
-detach the framework of fact--of absolute undeniable fact--from the
-embellishments of theorists and reporters. Then, having established
-ourselves upon this sound basis, it is our duty to see what inferences
-may be drawn and what are the special points upon which the whole
-mystery turns. On Tuesday evening I received telegrams from both Colonel
-Ross, the owner of the horse, and from Inspector Gregory, who is looking
-after the case, inviting my cooperation."
-
-"Tuesday evening!" I exclaimed. "And this is Thursday morning. Why
-didn't you go down yesterday?"
-
-"Because I made a blunder, my dear Watson--which is, I am afraid, a more
-common occurrence than any one would think who only knew me through your
-memoirs. The fact is that I could not believe it possible that the most
-remarkable horse in England could long remain concealed, especially in
-so sparsely inhabited a place as the north of Dartmoor. From hour to
-hour yesterday I expected to hear that he had been found, and that
-his abductor was the murderer of John Straker. When, however, another
-morning had come, and I found that beyond the arrest of young Fitzroy
-Simpson nothing had been done, I felt that it was time for me to take
-action. Yet in some ways I feel that yesterday has not been wasted."
-
-"You have formed a theory, then?"
-
-"At least I have got a grip of the essential facts of the case. I shall
-enumerate them to you, for nothing clears up a case so much as stating
-it to another person, and I can hardly expect your co-operation if I do
-not show you the position from which we start."
-
-I lay back against the cushions, puffing at my cigar, while Holmes,
-leaning forward, with his long, thin forefinger checking off the points
-upon the palm of his left hand, gave me a sketch of the events which had
-led to our journey.
-
-"Silver Blaze," said he, "is from the Somomy stock, and holds as
-brilliant a record as his famous ancestor. He is now in his fifth year,
-and has brought in turn each of the prizes of the turf to Colonel Ross,
-his fortunate owner. Up to the time of the catastrophe he was the first
-favorite for the Wessex Cup, the betting being three to one on him. He
-has always, however, been a prime favorite with the racing public, and
-has never yet disappointed them, so that even at those odds enormous
-sums of money have been laid upon him. It is obvious, therefore, that
-there were many people who had the strongest interest in preventing
-Silver Blaze from being there at the fall of the flag next Tuesday.
-
-"The fact was, of course, appreciated at King's Pyland, where the
-Colonel's training-stable is situated. Every precaution was taken to
-guard the favorite. The trainer, John Straker, is a retired jockey
-who rode in Colonel Ross's colors before he became too heavy for the
-weighing-chair. He has served the Colonel for five years as jockey and
-for seven as trainer, and has always shown himself to be a zealous and
-honest servant. Under him were three lads; for the establishment was a
-small one, containing only four horses in all. One of these lads sat up
-each night in the stable, while the others slept in the loft. All three
-bore excellent characters. John Straker, who is a married man, lived
-in a small villa about two hundred yards from the stables. He has no
-children, keeps one maid-servant, and is comfortably off. The country
-round is very lonely, but about half a mile to the north there is a
-small cluster of villas which have been built by a Tavistock contractor
-for the use of invalids and others who may wish to enjoy the pure
-Dartmoor air. Tavistock itself lies two miles to the west, while
-across the moor, also about two miles distant, is the larger training
-establishment of Mapleton, which belongs to Lord Backwater, and is
-managed by Silas Brown. In every other direction the moor is a complete
-wilderness, inhabited only by a few roaming gypsies. Such was the
-general situation last Monday night when the catastrophe occurred.
-
-"On that evening the horses had been exercised and watered as usual, and
-the stables were locked up at nine o'clock. Two of the lads walked up
-to the trainer's house, where they had supper in the kitchen, while the
-third, Ned Hunter, remained on guard. At a few minutes after nine
-the maid, Edith Baxter, carried down to the stables his supper, which
-consisted of a dish of curried mutton. She took no liquid, as there was
-a water-tap in the stables, and it was the rule that the lad on duty
-should drink nothing else. The maid carried a lantern with her, as it
-was very dark and the path ran across the open moor.
-
-"Edith Baxter was within thirty yards of the stables, when a man
-appeared out of the darkness and called to her to stop. As he stepped
-into the circle of yellow light thrown by the lantern she saw that he
-was a person of gentlemanly bearing, dressed in a gray suit of tweeds,
-with a cloth cap. He wore gaiters, and carried a heavy stick with a knob
-to it. She was most impressed, however, by the extreme pallor of his
-face and by the nervousness of his manner. His age, she thought, would
-be rather over thirty than under it.
-
-"'Can you tell me where I am?' he asked. 'I had almost made up my mind
-to sleep on the moor, when I saw the light of your lantern.'
-
-"'You are close to the King's Pyland training-stables,' said she.
-
-"'Oh, indeed! What a stroke of luck!' he cried. 'I understand that a
-stable-boy sleeps there alone every night. Perhaps that is his supper
-which you are carrying to him. Now I am sure that you would not be too
-proud to earn the price of a new dress, would you?' He took a piece of
-white paper folded up out of his waistcoat pocket. 'See that the boy
-has this to-night, and you shall have the prettiest frock that money can
-buy.'
-
-"She was frightened by the earnestness of his manner, and ran past him
-to the window through which she was accustomed to hand the meals. It was
-already opened, and Hunter was seated at the small table inside. She had
-begun to tell him of what had happened, when the stranger came up again.
-
-"'Good-evening,' said he, looking through the window. 'I wanted to have
-a word with you.' The girl has sworn that as he spoke she noticed the
-corner of the little paper packet protruding from his closed hand.
-
-"'What business have you here?' asked the lad.
-
-"'It's business that may put something into your pocket,' said the
-other. 'You've two horses in for the Wessex Cup--Silver Blaze and
-Bayard. Let me have the straight tip and you won't be a loser. Is it a
-fact that at the weights Bayard could give the other a hundred yards in
-five furlongs, and that the stable have put their money on him?'
-
-"'So, you're one of those damned touts!' cried the lad. 'I'll show you
-how we serve them in King's Pyland.' He sprang up and rushed across the
-stable to unloose the dog. The girl fled away to the house, but as she
-ran she looked back and saw that the stranger was leaning through the
-window. A minute later, however, when Hunter rushed out with the hound
-he was gone, and though he ran all round the buildings he failed to find
-any trace of him."
-
-"One moment," I asked. "Did the stable-boy, when he ran out with the
-dog, leave the door unlocked behind him?"
-
-"Excellent, Watson, excellent!" murmured my companion. "The importance
-of the point struck me so forcibly that I sent a special wire to
-Dartmoor yesterday to clear the matter up. The boy locked the door
-before he left it. The window, I may add, was not large enough for a man
-to get through.
-
-"Hunter waited until his fellow-grooms had returned, when he sent a
-message to the trainer and told him what had occurred. Straker was
-excited at hearing the account, although he does not seem to have quite
-realized its true significance. It left him, however, vaguely uneasy,
-and Mrs. Straker, waking at one in the morning, found that he was
-dressing. In reply to her inquiries, he said that he could not sleep on
-account of his anxiety about the horses, and that he intended to walk
-down to the stables to see that all was well. She begged him to remain
-at home, as she could hear the rain pattering against the window, but in
-spite of her entreaties he pulled on his large mackintosh and left the
-house.
-
-"Mrs. Straker awoke at seven in the morning, to find that her husband
-had not yet returned. She dressed herself hastily, called the maid, and
-set off for the stables. The door was open; inside, huddled together
-upon a chair, Hunter was sunk in a state of absolute stupor, the
-favorite's stall was empty, and there were no signs of his trainer.
-
-"The two lads who slept in the chaff-cutting loft above the harness-room
-were quickly aroused. They had heard nothing during the night, for they
-are both sound sleepers. Hunter was obviously under the influence of
-some powerful drug, and as no sense could be got out of him, he was left
-to sleep it off while the two lads and the two women ran out in search
-of the absentees. They still had hopes that the trainer had for some
-reason taken out the horse for early exercise, but on ascending the
-knoll near the house, from which all the neighboring moors were visible,
-they not only could see no signs of the missing favorite, but they
-perceived something which warned them that they were in the presence of
-a tragedy.
-
-"About a quarter of a mile from the stables John Straker's overcoat was
-flapping from a furze-bush. Immediately beyond there was a bowl-shaped
-depression in the moor, and at the bottom of this was found the dead
-body of the unfortunate trainer. His head had been shattered by a savage
-blow from some heavy weapon, and he was wounded on the thigh, where
-there was a long, clean cut, inflicted evidently by some very sharp
-instrument. It was clear, however, that Straker had defended himself
-vigorously against his assailants, for in his right hand he held a small
-knife, which was clotted with blood up to the handle, while in his left
-he clasped a red and black silk cravat, which was recognized by the maid
-as having been worn on the preceding evening by the stranger who had
-visited the stables. Hunter, on recovering from his stupor, was also
-quite positive as to the ownership of the cravat. He was equally certain
-that the same stranger had, while standing at the window, drugged his
-curried mutton, and so deprived the stables of their watchman. As to the
-missing horse, there were abundant proofs in the mud which lay at the
-bottom of the fatal hollow that he had been there at the time of the
-struggle. But from that morning he has disappeared, and although a large
-reward has been offered, and all the gypsies of Dartmoor are on the
-alert, no news has come of him. Finally, an analysis has shown that
-the remains of his supper left by the stable-lad contain an appreciable
-quantity of powdered opium, while the people at the house partook of the
-same dish on the same night without any ill effect.
-
-"Those are the main facts of the case, stripped of all surmise, and
-stated as baldly as possible. I shall now recapitulate what the police
-have done in the matter.
-
-"Inspector Gregory, to whom the case has been committed, is an extremely
-competent officer. Were he but gifted with imagination he might rise to
-great heights in his profession. On his arrival he promptly found and
-arrested the man upon whom suspicion naturally rested. There was little
-difficulty in finding him, for he inhabited one of those villas which I
-have mentioned. His name, it appears, was Fitzroy Simpson. He was a man
-of excellent birth and education, who had squandered a fortune upon the
-turf, and who lived now by doing a little quiet and genteel book-making
-in the sporting clubs of London. An examination of his betting-book
-shows that bets to the amount of five thousand pounds had been
-registered by him against the favorite. On being arrested he volunteered
-that statement that he had come down to Dartmoor in the hope of
-getting some information about the King's Pyland horses, and also about
-Desborough, the second favorite, which was in charge of Silas Brown at
-the Mapleton stables. He did not attempt to deny that he had acted as
-described upon the evening before, but declared that he had no sinister
-designs, and had simply wished to obtain first-hand information. When
-confronted with his cravat, he turned very pale, and was utterly unable
-to account for its presence in the hand of the murdered man. His wet
-clothing showed that he had been out in the storm of the night before,
-and his stick, which was a Penang-lawyer weighted with lead, was just
-such a weapon as might, by repeated blows, have inflicted the terrible
-injuries to which the trainer had succumbed. On the other hand, there
-was no wound upon his person, while the state of Straker's knife would
-show that one at least of his assailants must bear his mark upon him.
-There you have it all in a nutshell, Watson, and if you can give me any
-light I shall be infinitely obliged to you."
-
-I had listened with the greatest interest to the statement which Holmes,
-with characteristic clearness, had laid before me. Though most of the
-facts were familiar to me, I had not sufficiently appreciated their
-relative importance, nor their connection to each other.
-
-"Is it not possible," I suggested, "that the incised wound upon Straker
-may have been caused by his own knife in the convulsive struggles which
-follow any brain injury?"
-
-"It is more than possible; it is probable," said Holmes. "In that case
-one of the main points in favor of the accused disappears."
-
-"And yet," said I, "even now I fail to understand what the theory of the
-police can be."
-
-"I am afraid that whatever theory we state has very grave objections to
-it," returned my companion. "The police imagine, I take it, that this
-Fitzroy Simpson, having drugged the lad, and having in some way obtained
-a duplicate key, opened the stable door and took out the horse, with
-the intention, apparently, of kidnapping him altogether. His bridle is
-missing, so that Simpson must have put this on. Then, having left the
-door open behind him, he was leading the horse away over the moor, when
-he was either met or overtaken by the trainer. A row naturally ensued.
-Simpson beat out the trainer's brains with his heavy stick without
-receiving any injury from the small knife which Straker used in
-self-defence, and then the thief either led the horse on to some secret
-hiding-place, or else it may have bolted during the struggle, and be
-now wandering out on the moors. That is the case as it appears to
-the police, and improbable as it is, all other explanations are more
-improbable still. However, I shall very quickly test the matter when I
-am once upon the spot, and until then I cannot really see how we can get
-much further than our present position."
-
-It was evening before we reached the little town of Tavistock, which
-lies, like the boss of a shield, in the middle of the huge circle of
-Dartmoor. Two gentlemen were awaiting us in the station--the one a tall,
-fair man with lion-like hair and beard and curiously penetrating light
-blue eyes; the other a small, alert person, very neat and dapper, in a
-frock-coat and gaiters, with trim little side-whiskers and an eye-glass.
-The latter was Colonel Ross, the well-known sportsman; the other,
-Inspector Gregory, a man who was rapidly making his name in the English
-detective service.
-
-"I am delighted that you have come down, Mr. Holmes," said the Colonel.
-"The Inspector here has done all that could possibly be suggested, but I
-wish to leave no stone unturned in trying to avenge poor Straker and in
-recovering my horse."
-
-"Have there been any fresh developments?" asked Holmes.
-
-"I am sorry to say that we have made very little progress," said the
-Inspector. "We have an open carriage outside, and as you would no doubt
-like to see the place before the light fails, we might talk it over as
-we drive."
-
-A minute later we were all seated in a comfortable landau, and were
-rattling through the quaint old Devonshire city. Inspector Gregory was
-full of his case, and poured out a stream of remarks, while Holmes threw
-in an occasional question or interjection. Colonel Ross leaned back with
-his arms folded and his hat tilted over his eyes, while I listened with
-interest to the dialogue of the two detectives. Gregory was formulating
-his theory, which was almost exactly what Holmes had foretold in the
-train.
-
-"The net is drawn pretty close round Fitzroy Simpson," he remarked, "and
-I believe myself that he is our man. At the same time I recognize that
-the evidence is purely circumstantial, and that some new development may
-upset it."
-
-"How about Straker's knife?"
-
-"We have quite come to the conclusion that he wounded himself in his
-fall."
-
-"My friend Dr. Watson made that suggestion to me as we came down. If so,
-it would tell against this man Simpson."
-
-"Undoubtedly. He has neither a knife nor any sign of a wound. The
-evidence against him is certainly very strong. He had a great interest
-in the disappearance of the favorite. He lies under suspicion of having
-poisoned the stable-boy, he was undoubtedly out in the storm, he was
-armed with a heavy stick, and his cravat was found in the dead man's
-hand. I really think we have enough to go before a jury."
-
-Holmes shook his head. "A clever counsel would tear it all to rags,"
-said he. "Why should he take the horse out of the stable? If he wished
-to injure it why could he not do it there? Has a duplicate key been
-found in his possession? What chemist sold him the powdered opium? Above
-all, where could he, a stranger to the district, hide a horse, and such
-a horse as this? What is his own explanation as to the paper which he
-wished the maid to give to the stable-boy?"
-
-"He says that it was a ten-pound note. One was found in his purse. But
-your other difficulties are not so formidable as they seem. He is not
-a stranger to the district. He has twice lodged at Tavistock in the
-summer. The opium was probably brought from London. The key, having
-served its purpose, would be hurled away. The horse may be at the bottom
-of one of the pits or old mines upon the moor."
-
-"What does he say about the cravat?"
-
-"He acknowledges that it is his, and declares that he had lost it. But a
-new element has been introduced into the case which may account for his
-leading the horse from the stable."
-
-Holmes pricked up his ears.
-
-"We have found traces which show that a party of gypsies encamped on
-Monday night within a mile of the spot where the murder took place. On
-Tuesday they were gone. Now, presuming that there was some understanding
-between Simpson and these gypsies, might he not have been leading the
-horse to them when he was overtaken, and may they not have him now?"
-
-"It is certainly possible."
-
-"The moor is being scoured for these gypsies. I have also examined every
-stable and out-house in Tavistock, and for a radius of ten miles."
-
-"There is another training-stable quite close, I understand?"
-
-"Yes, and that is a factor which we must certainly not neglect. As
-Desborough, their horse, was second in the betting, they had an interest
-in the disappearance of the favorite. Silas Brown, the trainer, is known
-to have had large bets upon the event, and he was no friend to poor
-Straker. We have, however, examined the stables, and there is nothing to
-connect him with the affair."
-
-"And nothing to connect this man Simpson with the interests of the
-Mapleton stables?"
-
-"Nothing at all."
-
-Holmes leaned back in the carriage, and the conversation ceased. A few
-minutes later our driver pulled up at a neat little red-brick villa with
-overhanging eaves which stood by the road. Some distance off, across a
-paddock, lay a long gray-tiled out-building. In every other direction
-the low curves of the moor, bronze-colored from the fading ferns,
-stretched away to the sky-line, broken only by the steeples of
-Tavistock, and by a cluster of houses away to the westward which marked
-the Mapleton stables. We all sprang out with the exception of Holmes,
-who continued to lean back with his eyes fixed upon the sky in front of
-him, entirely absorbed in his own thoughts. It was only when I touched
-his arm that he roused himself with a violent start and stepped out of
-the carriage.
-
-"Excuse me," said he, turning to Colonel Ross, who had looked at him in
-some surprise. "I was day-dreaming." There was a gleam in his eyes and a
-suppressed excitement in his manner which convinced me, used as I was
-to his ways, that his hand was upon a clue, though I could not imagine
-where he had found it.
-
-"Perhaps you would prefer at once to go on to the scene of the crime,
-Mr. Holmes?" said Gregory.
-
-"I think that I should prefer to stay here a little and go into one or
-two questions of detail. Straker was brought back here, I presume?"
-
-"Yes; he lies upstairs. The inquest is to-morrow."
-
-"He has been in your service some years, Colonel Ross?"
-
-"I have always found him an excellent servant."
-
-"I presume that you made an inventory of what he had in his pockets at
-the time of his death, Inspector?"
-
-"I have the things themselves in the sitting-room, if you would care to
-see them."
-
-"I should be very glad." We all filed into the front room and sat round
-the central table while the Inspector unlocked a square tin box and laid
-a small heap of things before us. There was a box of vestas, two inches
-of tallow candle, an A D P brier-root pipe, a pouch of seal-skin with
-half an ounce of long-cut Cavendish, a silver watch with a gold chain,
-five sovereigns in gold, an aluminum pencil-case, a few papers, and an
-ivory-handled knife with a very delicate, inflexible blade marked Weiss
-& Co., London.
-
-"This is a very singular knife," said Holmes, lifting it up and
-examining it minutely. "I presume, as I see blood-stains upon it, that
-it is the one which was found in the dead man's grasp. Watson, this
-knife is surely in your line?"
-
-"It is what we call a cataract knife," said I.
-
-"I thought so. A very delicate blade devised for very delicate work.
-A strange thing for a man to carry with him upon a rough expedition,
-especially as it would not shut in his pocket."
-
-"The tip was guarded by a disk of cork which we found beside his body,"
-said the Inspector. "His wife tells us that the knife had lain upon the
-dressing-table, and that he had picked it up as he left the room. It was
-a poor weapon, but perhaps the best that he could lay his hands on at
-the moment."
-
-"Very possible. How about these papers?"
-
-"Three of them are receipted hay-dealers' accounts. One of them is a
-letter of instructions from Colonel Ross. This other is a milliner's
-account for thirty-seven pounds fifteen made out by Madame Lesurier,
-of Bond Street, to William Derbyshire. Mrs. Straker tells us that
-Derbyshire was a friend of her husband's and that occasionally his
-letters were addressed here."
-
-"Madam Derbyshire had somewhat expensive tastes," remarked Holmes,
-glancing down the account. "Twenty-two guineas is rather heavy for a
-single costume. However there appears to be nothing more to learn, and
-we may now go down to the scene of the crime."
-
-As we emerged from the sitting-room a woman, who had been waiting in
-the passage, took a step forward and laid her hand upon the Inspector's
-sleeve. Her face was haggard and thin and eager, stamped with the print
-of a recent horror.
-
-"Have you got them? Have you found them?" she panted.
-
-"No, Mrs. Straker. But Mr. Holmes here has come from London to help us,
-and we shall do all that is possible."
-
-"Surely I met you in Plymouth at a garden-party some little time ago,
-Mrs. Straker?" said Holmes.
-
-"No, sir; you are mistaken."
-
-"Dear me! Why, I could have sworn to it. You wore a costume of
-dove-colored silk with ostrich-feather trimming."
-
-"I never had such a dress, sir," answered the lady.
-
-"Ah, that quite settles it," said Holmes. And with an apology he
-followed the Inspector outside. A short walk across the moor took us to
-the hollow in which the body had been found. At the brink of it was the
-furze-bush upon which the coat had been hung.
-
-"There was no wind that night, I understand," said Holmes.
-
-"None; but very heavy rain."
-
-"In that case the overcoat was not blown against the furze-bush, but
-placed there."
-
-"Yes, it was laid across the bush."
-
-"You fill me with interest, I perceive that the ground has been trampled
-up a good deal. No doubt many feet have been here since Monday night."
-
-"A piece of matting has been laid here at the side, and we have all
-stood upon that."
-
-"Excellent."
-
-"In this bag I have one of the boots which Straker wore, one of Fitzroy
-Simpson's shoes, and a cast horseshoe of Silver Blaze."
-
-"My dear Inspector, you surpass yourself!" Holmes took the bag, and,
-descending into the hollow, he pushed the matting into a more central
-position. Then stretching himself upon his face and leaning his chin
-upon his hands, he made a careful study of the trampled mud in front of
-him. "Hullo!" said he, suddenly. "What's this?" It was a wax vesta half
-burned, which was so coated with mud that it looked at first like a
-little chip of wood.
-
-"I cannot think how I came to overlook it," said the Inspector, with an
-expression of annoyance.
-
-"It was invisible, buried in the mud. I only saw it because I was
-looking for it."
-
-"What! You expected to find it?"
-
-"I thought it not unlikely."
-
-He took the boots from the bag, and compared the impressions of each of
-them with marks upon the ground. Then he clambered up to the rim of the
-hollow, and crawled about among the ferns and bushes.
-
-"I am afraid that there are no more tracks," said the Inspector. "I
-have examined the ground very carefully for a hundred yards in each
-direction."
-
-"Indeed!" said Holmes, rising. "I should not have the impertinence to
-do it again after what you say. But I should like to take a little walk
-over the moor before it grows dark, that I may know my ground to-morrow,
-and I think that I shall put this horseshoe into my pocket for luck."
-
-Colonel Ross, who had shown some signs of impatience at my companion's
-quiet and systematic method of work, glanced at his watch. "I wish you
-would come back with me, Inspector," said he. "There are several points
-on which I should like your advice, and especially as to whether we do
-not owe it to the public to remove our horse's name from the entries for
-the Cup."
-
-"Certainly not," cried Holmes, with decision. "I should let the name
-stand."
-
-The Colonel bowed. "I am very glad to have had your opinion, sir," said
-he. "You will find us at poor Straker's house when you have finished
-your walk, and we can drive together into Tavistock."
-
-He turned back with the Inspector, while Holmes and I walked slowly
-across the moor. The sun was beginning to sink behind the stables of
-Mapleton, and the long, sloping plain in front of us was tinged with
-gold, deepening into rich, ruddy browns where the faded ferns and
-brambles caught the evening light. But the glories of the landscape were
-all wasted upon my companion, who was sunk in the deepest thought.
-
-"It's this way, Watson," said he at last. "We may leave the question
-of who killed John Straker for the instant, and confine ourselves to
-finding out what has become of the horse. Now, supposing that he broke
-away during or after the tragedy, where could he have gone to? The horse
-is a very gregarious creature. If left to himself his instincts would
-have been either to return to King's Pyland or go over to Mapleton. Why
-should he run wild upon the moor? He would surely have been seen by now.
-And why should gypsies kidnap him? These people always clear out when
-they hear of trouble, for they do not wish to be pestered by the police.
-They could not hope to sell such a horse. They would run a great risk
-and gain nothing by taking him. Surely that is clear."
-
-"Where is he, then?"
-
-"I have already said that he must have gone to King's Pyland or to
-Mapleton. He is not at King's Pyland. Therefore he is at Mapleton. Let
-us take that as a working hypothesis and see what it leads us to. This
-part of the moor, as the Inspector remarked, is very hard and dry. But
-it falls away towards Mapleton, and you can see from here that there
-is a long hollow over yonder, which must have been very wet on Monday
-night. If our supposition is correct, then the horse must have crossed
-that, and there is the point where we should look for his tracks."
-
-We had been walking briskly during this conversation, and a few more
-minutes brought us to the hollow in question. At Holmes' request I
-walked down the bank to the right, and he to the left, but I had not
-taken fifty paces before I heard him give a shout, and saw him waving
-his hand to me. The track of a horse was plainly outlined in the soft
-earth in front of him, and the shoe which he took from his pocket
-exactly fitted the impression.
-
-"See the value of imagination," said Holmes. "It is the one quality
-which Gregory lacks. We imagined what might have happened, acted upon
-the supposition, and find ourselves justified. Let us proceed."
-
-We crossed the marshy bottom and passed over a quarter of a mile of dry,
-hard turf. Again the ground sloped, and again we came on the tracks.
-Then we lost them for half a mile, but only to pick them up once more
-quite close to Mapleton. It was Holmes who saw them first, and he stood
-pointing with a look of triumph upon his face. A man's track was visible
-beside the horse's.
-
-"The horse was alone before," I cried.
-
-"Quite so. It was alone before. Hullo, what is this?"
-
-The double track turned sharp off and took the direction of King's
-Pyland. Holmes whistled, and we both followed along after it. His eyes
-were on the trail, but I happened to look a little to one side, and
-saw to my surprise the same tracks coming back again in the opposite
-direction.
-
-"One for you, Watson," said Holmes, when I pointed it out. "You have
-saved us a long walk, which would have brought us back on our own
-traces. Let us follow the return track."
-
-We had not to go far. It ended at the paving of asphalt which led up
-to the gates of the Mapleton stables. As we approached, a groom ran out
-from them.
-
-"We don't want any loiterers about here," said he.
-
-"I only wished to ask a question," said Holmes, with his finger and
-thumb in his waistcoat pocket. "Should I be too early to see your
-master, Mr. Silas Brown, if I were to call at five o'clock to-morrow
-morning?"
-
-"Bless you, sir, if any one is about he will be, for he is always
-the first stirring. But here he is, sir, to answer your questions for
-himself. No, sir, no; it is as much as my place is worth to let him see
-me touch your money. Afterwards, if you like."
-
-As Sherlock Holmes replaced the half-crown which he had drawn from his
-pocket, a fierce-looking elderly man strode out from the gate with a
-hunting-crop swinging in his hand.
-
-"What's this, Dawson!" he cried. "No gossiping! Go about your business!
-And you, what the devil do you want here?"
-
-"Ten minutes' talk with you, my good sir," said Holmes in the sweetest
-of voices.
-
-"I've no time to talk to every gadabout. We want no stranger here. Be
-off, or you may find a dog at your heels."
-
-Holmes leaned forward and whispered something in the trainer's ear. He
-started violently and flushed to the temples.
-
-"It's a lie!" he shouted, "an infernal lie!"
-
-"Very good. Shall we argue about it here in public or talk it over in
-your parlor?"
-
-"Oh, come in if you wish to."
-
-Holmes smiled. "I shall not keep you more than a few minutes, Watson,"
-said he. "Now, Mr. Brown, I am quite at your disposal."
-
-It was twenty minutes, and the reds had all faded into grays before
-Holmes and the trainer reappeared. Never have I seen such a change as
-had been brought about in Silas Brown in that short time. His face was
-ashy pale, beads of perspiration shone upon his brow, and his hands
-shook until the hunting-crop wagged like a branch in the wind. His
-bullying, overbearing manner was all gone too, and he cringed along at
-my companion's side like a dog with its master.
-
-"Your instructions will be done. It shall all be done," said he.
-
-"There must be no mistake," said Holmes, looking round at him. The other
-winced as he read the menace in his eyes.
-
-"Oh no, there shall be no mistake. It shall be there. Should I change it
-first or not?"
-
-Holmes thought a little and then burst out laughing. "No, don't," said
-he; "I shall write to you about it. No tricks, now, or--"
-
-"Oh, you can trust me, you can trust me!"
-
-"Yes, I think I can. Well, you shall hear from me to-morrow." He turned
-upon his heel, disregarding the trembling hand which the other held out
-to him, and we set off for King's Pyland.
-
-"A more perfect compound of the bully, coward, and sneak than Master
-Silas Brown I have seldom met with," remarked Holmes as we trudged along
-together.
-
-"He has the horse, then?"
-
-"He tried to bluster out of it, but I described to him so exactly what
-his actions had been upon that morning that he is convinced that I was
-watching him. Of course you observed the peculiarly square toes in the
-impressions, and that his own boots exactly corresponded to them.
-Again, of course no subordinate would have dared to do such a thing.
-I described to him how, when according to his custom he was the first
-down, he perceived a strange horse wandering over the moor. How he went
-out to it, and his astonishment at recognizing, from the white forehead
-which has given the favorite its name, that chance had put in his power
-the only horse which could beat the one upon which he had put his money.
-Then I described how his first impulse had been to lead him back to
-King's Pyland, and how the devil had shown him how he could hide the
-horse until the race was over, and how he had led it back and concealed
-it at Mapleton. When I told him every detail he gave it up and thought
-only of saving his own skin."
-
-"But his stables had been searched?"
-
-"Oh, an old horse-faker like him has many a dodge."
-
-"But are you not afraid to leave the horse in his power now, since he
-has every interest in injuring it?"
-
-"My dear fellow, he will guard it as the apple of his eye. He knows that
-his only hope of mercy is to produce it safe."
-
-"Colonel Ross did not impress me as a man who would be likely to show
-much mercy in any case."
-
-"The matter does not rest with Colonel Ross. I follow my own methods,
-and tell as much or as little as I choose. That is the advantage of
-being unofficial. I don't know whether you observed it, Watson, but the
-Colonel's manner has been just a trifle cavalier to me. I am inclined
-now to have a little amusement at his expense. Say nothing to him about
-the horse."
-
-"Certainly not without your permission."
-
-"And of course this is all quite a minor point compared to the question
-of who killed John Straker."
-
-"And you will devote yourself to that?"
-
-"On the contrary, we both go back to London by the night train."
-
-I was thunderstruck by my friend's words. We had only been a few hours
-in Devonshire, and that he should give up an investigation which he had
-begun so brilliantly was quite incomprehensible to me. Not a word more
-could I draw from him until we were back at the trainer's house. The
-Colonel and the Inspector were awaiting us in the parlor.
-
-"My friend and I return to town by the night-express," said Holmes. "We
-have had a charming little breath of your beautiful Dartmoor air."
-
-The Inspector opened his eyes, and the Colonel's lip curled in a sneer.
-
-"So you despair of arresting the murderer of poor Straker," said he.
-
-Holmes shrugged his shoulders. "There are certainly grave difficulties
-in the way," said he. "I have every hope, however, that your horse
-will start upon Tuesday, and I beg that you will have your jockey in
-readiness. Might I ask for a photograph of Mr. John Straker?"
-
-The Inspector took one from an envelope and handed it to him.
-
-"My dear Gregory, you anticipate all my wants. If I might ask you to
-wait here for an instant, I have a question which I should like to put
-to the maid."
-
-"I must say that I am rather disappointed in our London consultant,"
-said Colonel Ross, bluntly, as my friend left the room. "I do not see
-that we are any further than when he came."
-
-"At least you have his assurance that your horse will run," said I.
-
-"Yes, I have his assurance," said the Colonel, with a shrug of his
-shoulders. "I should prefer to have the horse."
-
-I was about to make some reply in defence of my friend when he entered
-the room again.
-
-"Now, gentlemen," said he, "I am quite ready for Tavistock."
-
-As we stepped into the carriage one of the stable-lads held the door
-open for us. A sudden idea seemed to occur to Holmes, for he leaned
-forward and touched the lad upon the sleeve.
-
-"You have a few sheep in the paddock," he said. "Who attends to them?"
-
-"I do, sir."
-
-"Have you noticed anything amiss with them of late?"
-
-"Well, sir, not of much account; but three of them have gone lame, sir."
-
-I could see that Holmes was extremely pleased, for he chuckled and
-rubbed his hands together.
-
-"A long shot, Watson; a very long shot," said he, pinching my arm.
-"Gregory, let me recommend to your attention this singular epidemic
-among the sheep. Drive on, coachman!"
-
-Colonel Ross still wore an expression which showed the poor opinion
-which he had formed of my companion's ability, but I saw by the
-Inspector's face that his attention had been keenly aroused.
-
-"You consider that to be important?" he asked.
-
-"Exceedingly so."
-
-"Is there any point to which you would wish to draw my attention?"
-
-"To the curious incident of the dog in the night-time."
-
-"The dog did nothing in the night-time."
-
-"That was the curious incident," remarked Sherlock Holmes.
-
-
-Four days later Holmes and I were again in the train, bound for
-Winchester to see the race for the Wessex Cup. Colonel Ross met us by
-appointment outside the station, and we drove in his drag to the course
-beyond the town. His face was grave, and his manner was cold in the
-extreme.
-
-"I have seen nothing of my horse," said he.
-
-"I suppose that you would know him when you saw him?" asked Holmes.
-
-The Colonel was very angry. "I have been on the turf for twenty years,
-and never was asked such a question as that before," said he. "A
-child would know Silver Blaze, with his white forehead and his mottled
-off-foreleg."
-
-"How is the betting?"
-
-"Well, that is the curious part of it. You could have got fifteen to one
-yesterday, but the price has become shorter and shorter, until you can
-hardly get three to one now."
-
-"Hum!" said Holmes. "Somebody knows something, that is clear."
-
-As the drag drew up in the enclosure near the grand stand I glanced at
-the card to see the entries.
-
-Wessex Plate [it ran] 50 sovs each h ft with 1000 sovs added for four
-and five year olds. Second, L300. Third, L200. New course (one mile and
-five furlongs). Mr. Heath Newton's The Negro. Red cap. Cinnamon jacket.
-Colonel Wardlaw's Pugilist. Pink cap. Blue and black jacket. Lord
-Backwater's Desborough. Yellow cap and sleeves. Colonel Ross's Silver
-Blaze. Black cap. Red jacket. Duke of Balmoral's Iris. Yellow and black
-stripes. Lord Singleford's Rasper. Purple cap. Black sleeves.
-
-"We scratched our other one, and put all hopes on your word," said the
-Colonel. "Why, what is that? Silver Blaze favorite?"
-
-"Five to four against Silver Blaze!" roared the ring. "Five to four
-against Silver Blaze! Five to fifteen against Desborough! Five to four
-on the field!"
-
-"There are the numbers up," I cried. "They are all six there."
-
-"All six there? Then my horse is running," cried the Colonel in great
-agitation. "But I don't see him. My colors have not passed."
-
-"Only five have passed. This must be he."
-
-As I spoke a powerful bay horse swept out from the weighing enclosure
-and cantered past us, bearing on its back the well-known black and red
-of the Colonel.
-
-"That's not my horse," cried the owner. "That beast has not a white hair
-upon its body. What is this that you have done, Mr. Holmes?"
-
-"Well, well, let us see how he gets on," said my friend, imperturbably.
-For a few minutes he gazed through my field-glass. "Capital! An
-excellent start!" he cried suddenly. "There they are, coming round the
-curve!"
-
-From our drag we had a superb view as they came up the straight. The six
-horses were so close together that a carpet could have covered them,
-but half way up the yellow of the Mapleton stable showed to the front.
-Before they reached us, however, Desborough's bolt was shot, and the
-Colonel's horse, coming away with a rush, passed the post a good six
-lengths before its rival, the Duke of Balmoral's Iris making a bad
-third.
-
-"It's my race, anyhow," gasped the Colonel, passing his hand over his
-eyes. "I confess that I can make neither head nor tail of it. Don't you
-think that you have kept up your mystery long enough, Mr. Holmes?"
-
-"Certainly, Colonel, you shall know everything. Let us all go round and
-have a look at the horse together. Here he is," he continued, as we made
-our way into the weighing enclosure, where only owners and their friends
-find admittance. "You have only to wash his face and his leg in spirits
-of wine, and you will find that he is the same old Silver Blaze as
-ever."
-
-"You take my breath away!"
-
-"I found him in the hands of a faker, and took the liberty of running
-him just as he was sent over."
-
-"My dear sir, you have done wonders. The horse looks very fit and well.
-It never went better in its life. I owe you a thousand apologies
-for having doubted your ability. You have done me a great service by
-recovering my horse. You would do me a greater still if you could lay
-your hands on the murderer of John Straker."
-
-"I have done so," said Holmes quietly.
-
-The Colonel and I stared at him in amazement. "You have got him! Where
-is he, then?"
-
-"He is here."
-
-"Here! Where?"
-
-"In my company at the present moment."
-
-The Colonel flushed angrily. "I quite recognize that I am under
-obligations to you, Mr. Holmes," said he, "but I must regard what you
-have just said as either a very bad joke or an insult."
-
-Sherlock Holmes laughed. "I assure you that I have not associated
-you with the crime, Colonel," said he. "The real murderer is standing
-immediately behind you." He stepped past and laid his hand upon the
-glossy neck of the thoroughbred.
-
-"The horse!" cried both the Colonel and myself.
-
-"Yes, the horse. And it may lessen his guilt if I say that it was
-done in self-defence, and that John Straker was a man who was entirely
-unworthy of your confidence. But there goes the bell, and as I stand
-to win a little on this next race, I shall defer a lengthy explanation
-until a more fitting time."
-
-
-
-We had the corner of a Pullman car to ourselves that evening as we
-whirled back to London, and I fancy that the journey was a short one
-to Colonel Ross as well as to myself, as we listened to our
-companion's narrative of the events which had occurred at the Dartmoor
-training-stables upon the Monday night, and the means by which he had
-unravelled them.
-
-"I confess," said he, "that any theories which I had formed from
-the newspaper reports were entirely erroneous. And yet there were
-indications there, had they not been overlaid by other details which
-concealed their true import. I went to Devonshire with the conviction
-that Fitzroy Simpson was the true culprit, although, of course, I saw
-that the evidence against him was by no means complete. It was while I
-was in the carriage, just as we reached the trainer's house, that the
-immense significance of the curried mutton occurred to me. You may
-remember that I was distrait, and remained sitting after you had all
-alighted. I was marvelling in my own mind how I could possibly have
-overlooked so obvious a clue."
-
-"I confess," said the Colonel, "that even now I cannot see how it helps
-us."
-
-"It was the first link in my chain of reasoning. Powdered opium is by no
-means tasteless. The flavor is not disagreeable, but it is perceptible.
-Were it mixed with any ordinary dish the eater would undoubtedly detect
-it, and would probably eat no more. A curry was exactly the medium
-which would disguise this taste. By no possible supposition could
-this stranger, Fitzroy Simpson, have caused curry to be served in
-the trainer's family that night, and it is surely too monstrous a
-coincidence to suppose that he happened to come along with powdered
-opium upon the very night when a dish happened to be served which would
-disguise the flavor. That is unthinkable. Therefore Simpson becomes
-eliminated from the case, and our attention centers upon Straker and
-his wife, the only two people who could have chosen curried mutton for
-supper that night. The opium was added after the dish was set aside
-for the stable-boy, for the others had the same for supper with no ill
-effects. Which of them, then, had access to that dish without the maid
-seeing them?
-
-"Before deciding that question I had grasped the significance of the
-silence of the dog, for one true inference invariably suggests others.
-The Simpson incident had shown me that a dog was kept in the stables,
-and yet, though some one had been in and had fetched out a horse, he
-had not barked enough to arouse the two lads in the loft. Obviously the
-midnight visitor was some one whom the dog knew well.
-
-"I was already convinced, or almost convinced, that John Straker went
-down to the stables in the dead of the night and took out Silver Blaze.
-For what purpose? For a dishonest one, obviously, or why should he drug
-his own stable-boy? And yet I was at a loss to know why. There have been
-cases before now where trainers have made sure of great sums of money
-by laying against their own horses, through agents, and then preventing
-them from winning by fraud. Sometimes it is a pulling jockey. Sometimes
-it is some surer and subtler means. What was it here? I hoped that the
-contents of his pockets might help me to form a conclusion.
-
-"And they did so. You cannot have forgotten the singular knife which was
-found in the dead man's hand, a knife which certainly no sane man would
-choose for a weapon. It was, as Dr. Watson told us, a form of knife
-which is used for the most delicate operations known in surgery. And it
-was to be used for a delicate operation that night. You must know, with
-your wide experience of turf matters, Colonel Ross, that it is possible
-to make a slight nick upon the tendons of a horse's ham, and to do it
-subcutaneously, so as to leave absolutely no trace. A horse so treated
-would develop a slight lameness, which would be put down to a strain in
-exercise or a touch of rheumatism, but never to foul play."
-
-"Villain! Scoundrel!" cried the Colonel.
-
-"We have here the explanation of why John Straker wished to take the
-horse out on to the moor. So spirited a creature would have certainly
-roused the soundest of sleepers when it felt the prick of the knife. It
-was absolutely necessary to do it in the open air."
-
-"I have been blind!" cried the Colonel. "Of course that was why he
-needed the candle, and struck the match."
-
-"Undoubtedly. But in examining his belongings I was fortunate enough to
-discover not only the method of the crime, but even its motives. As a
-man of the world, Colonel, you know that men do not carry other people's
-bills about in their pockets. We have most of us quite enough to do to
-settle our own. I at once concluded that Straker was leading a double
-life, and keeping a second establishment. The nature of the bill showed
-that there was a lady in the case, and one who had expensive tastes.
-Liberal as you are with your servants, one can hardly expect that they
-can buy twenty-guinea walking dresses for their ladies. I questioned
-Mrs. Straker as to the dress without her knowing it, and having
-satisfied myself that it had never reached her, I made a note of the
-milliner's address, and felt that by calling there with Straker's
-photograph I could easily dispose of the mythical Derbyshire.
-
-"From that time on all was plain. Straker had led out the horse to a
-hollow where his light would be invisible. Simpson in his flight had
-dropped his cravat, and Straker had picked it up--with some idea,
-perhaps, that he might use it in securing the horse's leg. Once in the
-hollow, he had got behind the horse and had struck a light; but the
-creature frightened at the sudden glare, and with the strange instinct
-of animals feeling that some mischief was intended, had lashed out, and
-the steel shoe had struck Straker full on the forehead. He had already,
-in spite of the rain, taken off his overcoat in order to do his delicate
-task, and so, as he fell, his knife gashed his thigh. Do I make it
-clear?"
-
-"Wonderful!" cried the Colonel. "Wonderful! You might have been there!"
-
-"My final shot was, I confess a very long one. It struck me that so
-astute a man as Straker would not undertake this delicate tendon-nicking
-without a little practice. What could he practice on? My eyes fell upon
-the sheep, and I asked a question which, rather to my surprise, showed
-that my surmise was correct.
-
-"When I returned to London I called upon the milliner, who had
-recognized Straker as an excellent customer of the name of Derbyshire,
-who had a very dashing wife, with a strong partiality for expensive
-dresses. I have no doubt that this woman had plunged him over head and
-ears in debt, and so led him into this miserable plot."
-
-"You have explained all but one thing," cried the Colonel. "Where was
-the horse?"
-
-"Ah, it bolted, and was cared for by one of your neighbors. We must have
-an amnesty in that direction, I think. This is Clapham Junction, if I am
-not mistaken, and we shall be in Victoria in less than ten minutes. If
-you care to smoke a cigar in our rooms, Colonel, I shall be happy to
-give you any other details which might interest you."
-
-
-
-
-Adventure II. The Yellow Face
-
-
-[In publishing these short sketches based upon the numerous cases in
-which my companion's singular gifts have made us the listeners to, and
-eventually the actors in, some strange drama, it is only natural that I
-should dwell rather upon his successes than upon his failures. And this
-not so much for the sake of his reputation--for, indeed, it was when
-he was at his wits' end that his energy and his versatility were most
-admirable--but because where he failed it happened too often that no one
-else succeeded, and that the tale was left forever without a conclusion.
-Now and again, however, it chanced that even when he erred, the truth
-was still discovered. I have noted of some half-dozen cases of the
-kind; the Adventure of the Musgrave Ritual and that which I am about to
-recount are the two which present the strongest features of interest.]
-
-Sherlock Holmes was a man who seldom took exercise for exercise's sake.
-Few men were capable of greater muscular effort, and he was undoubtedly
-one of the finest boxers of his weight that I have ever seen; but he
-looked upon aimless bodily exertion as a waste of energy, and he seldom
-bestirred himself save when there was some professional object to be
-served. Then he was absolutely untiring and indefatigable. That he
-should have kept himself in training under such circumstances is
-remarkable, but his diet was usually of the sparest, and his habits
-were simple to the verge of austerity. Save for the occasional use of
-cocaine, he had no vices, and he only turned to the drug as a protest
-against the monotony of existence when cases were scanty and the papers
-uninteresting.
-
-One day in early spring he had so far relaxed as to go for a walk with
-me in the Park, where the first faint shoots of green were breaking out
-upon the elms, and the sticky spear-heads of the chestnuts were just
-beginning to burst into their five-fold leaves. For two hours we rambled
-about together, in silence for the most part, as befits two men who know
-each other intimately. It was nearly five before we were back in Baker
-Street once more.
-
-"Beg pardon, sir," said our page-boy, as he opened the door. "There's
-been a gentleman here asking for you, sir."
-
-Holmes glanced reproachfully at me. "So much for afternoon walks!" said
-he. "Has this gentleman gone, then?"
-
-"Yes, sir."
-
-"Didn't you ask him in?"
-
-"Yes, sir; he came in."
-
-"How long did he wait?"
-
-"Half an hour, sir. He was a very restless gentleman, sir, a-walkin'
-and a-stampin' all the time he was here. I was waitin' outside the door,
-sir, and I could hear him. At last he outs into the passage, and he
-cries, 'Is that man never goin' to come?' Those were his very words,
-sir. 'You'll only need to wait a little longer,' says I. 'Then I'll wait
-in the open air, for I feel half choked,' says he. 'I'll be back before
-long.' And with that he ups and he outs, and all I could say wouldn't
-hold him back."
-
-"Well, well, you did your best," said Holmes, as we walked into our
-room. "It's very annoying, though, Watson. I was badly in need of
-a case, and this looks, from the man's impatience, as if it were of
-importance. Hullo! That's not your pipe on the table. He must have
-left his behind him. A nice old brier with a good long stem of what the
-tobacconists call amber. I wonder how many real amber mouthpieces there
-are in London? Some people think that a fly in it is a sign. Well, he
-must have been disturbed in his mind to leave a pipe behind him which he
-evidently values highly."
-
-"How do you know that he values it highly?" I asked.
-
-"Well, I should put the original cost of the pipe at seven and sixpence.
-Now it has, you see, been twice mended, once in the wooden stem and once
-in the amber. Each of these mends, done, as you observe, with silver
-bands, must have cost more than the pipe did originally. The man must
-value the pipe highly when he prefers to patch it up rather than buy a
-new one with the same money."
-
-"Anything else?" I asked, for Holmes was turning the pipe about in his
-hand, and staring at it in his peculiar pensive way.
-
-He held it up and tapped on it with his long, thin fore-finger, as a
-professor might who was lecturing on a bone.
-
-"Pipes are occasionally of extraordinary interest," said he. "Nothing
-has more individuality, save perhaps watches and bootlaces. The
-indications here, however, are neither very marked nor very important.
-The owner is obviously a muscular man, left-handed, with an excellent
-set of teeth, careless in his habits, and with no need to practise
-economy."
-
-My friend threw out the information in a very offhand way, but I saw
-that he cocked his eye at me to see if I had followed his reasoning.
-
-"You think a man must be well-to-do if he smokes a seven-shilling pipe,"
-said I.
-
-"This is Grosvenor mixture at eightpence an ounce," Holmes answered,
-knocking a little out on his palm. "As he might get an excellent smoke
-for half the price, he has no need to practise economy."
-
-"And the other points?"
-
-"He has been in the habit of lighting his pipe at lamps and gas-jets.
-You can see that it is quite charred all down one side. Of course a
-match could not have done that. Why should a man hold a match to the
-side of his pipe? But you cannot light it at a lamp without getting the
-bowl charred. And it is all on the right side of the pipe. From that I
-gather that he is a left-handed man. You hold your own pipe to the lamp,
-and see how naturally you, being right-handed, hold the left side to the
-flame. You might do it once the other way, but not as a constancy. This
-has always been held so. Then he has bitten through his amber. It takes
-a muscular, energetic fellow, and one with a good set of teeth, to do
-that. But if I am not mistaken I hear him upon the stair, so we shall
-have something more interesting than his pipe to study."
-
-An instant later our door opened, and a tall young man entered the room.
-He was well but quietly dressed in a dark-gray suit, and carried a brown
-wide-awake in his hand. I should have put him at about thirty, though he
-was really some years older.
-
-"I beg your pardon," said he, with some embarrassment; "I suppose I
-should have knocked. Yes, of course I should have knocked. The fact
-is that I am a little upset, and you must put it all down to that." He
-passed his hand over his forehead like a man who is half dazed, and then
-fell rather than sat down upon a chair.
-
-"I can see that you have not slept for a night or two," said Holmes,
-in his easy, genial way. "That tries a man's nerves more than work, and
-more even than pleasure. May I ask how I can help you?"
-
-"I wanted your advice, sir. I don't know what to do and my whole life
-seems to have gone to pieces."
-
-"You wish to employ me as a consulting detective?"
-
-"Not that only. I want your opinion as a judicious man--as a man of the
-world. I want to know what I ought to do next. I hope to God you'll be
-able to tell me."
-
-He spoke in little, sharp, jerky outbursts, and it seemed to me that to
-speak at all was very painful to him, and that his will all through was
-overriding his inclinations.
-
-"It's a very delicate thing," said he. "One does not like to speak of
-one's domestic affairs to strangers. It seems dreadful to discuss the
-conduct of one's wife with two men whom I have never seen before. It's
-horrible to have to do it. But I've got to the end of my tether, and I
-must have advice."
-
-"My dear Mr. Grant Munro--" began Holmes.
-
-Our visitor sprang from his chair. "What!" he cried, "you know my name?"
-
-"If you wish to preserve your incognito," said Holmes, smiling, "I would
-suggest that you cease to write your name upon the lining of your
-hat, or else that you turn the crown towards the person whom you are
-addressing. I was about to say that my friend and I have listened to a
-good many strange secrets in this room, and that we have had the good
-fortune to bring peace to many troubled souls. I trust that we may do as
-much for you. Might I beg you, as time may prove to be of importance, to
-furnish me with the facts of your case without further delay?"
-
-Our visitor again passed his hand over his forehead, as if he found it
-bitterly hard. From every gesture and expression I could see that he was
-a reserved, self-contained man, with a dash of pride in his nature, more
-likely to hide his wounds than to expose them. Then suddenly, with a
-fierce gesture of his closed hand, like one who throws reserve to the
-winds, he began.
-
-"The facts are these, Mr. Holmes," said he. "I am a married man, and
-have been so for three years. During that time my wife and I have loved
-each other as fondly and lived as happily as any two that ever were
-joined. We have not had a difference, not one, in thought or word or
-deed. And now, since last Monday, there has suddenly sprung up a barrier
-between us, and I find that there is something in her life and in her
-thought of which I know as little as if she were the woman who brushes
-by me in the street. We are estranged, and I want to know why.
-
-"Now there is one thing that I want to impress upon you before I go
-any further, Mr. Holmes. Effie loves me. Don't let there be any mistake
-about that. She loves me with her whole heart and soul, and never more
-than now. I know it. I feel it. I don't want to argue about that. A man
-can tell easily enough when a woman loves him. But there's this secret
-between us, and we can never be the same until it is cleared."
-
-"Kindly let me have the facts, Mr. Munro," said Holmes, with some
-impatience.
-
-"I'll tell you what I know about Effie's history. She was a widow when
-I met her first, though quite young--only twenty-five. Her name then was
-Mrs. Hebron. She went out to America when she was young, and lived in
-the town of Atlanta, where she married this Hebron, who was a lawyer
-with a good practice. They had one child, but the yellow fever broke out
-badly in the place, and both husband and child died of it. I have seen
-his death certificate. This sickened her of America, and she came back
-to live with a maiden aunt at Pinner, in Middlesex. I may mention that
-her husband had left her comfortably off, and that she had a capital of
-about four thousand five hundred pounds, which had been so well invested
-by him that it returned an average of seven per cent. She had only been
-six months at Pinner when I met her; we fell in love with each other,
-and we married a few weeks afterwards.
-
-"I am a hop merchant myself, and as I have an income of seven or
-eight hundred, we found ourselves comfortably off, and took a nice
-eighty-pound-a-year villa at Norbury. Our little place was very
-countrified, considering that it is so close to town. We had an inn and
-two houses a little above us, and a single cottage at the other side of
-the field which faces us, and except those there were no houses until
-you got half way to the station. My business took me into town at
-certain seasons, but in summer I had less to do, and then in our country
-home my wife and I were just as happy as could be wished. I tell you
-that there never was a shadow between us until this accursed affair
-began.
-
-"There's one thing I ought to tell you before I go further. When we
-married, my wife made over all her property to me--rather against my
-will, for I saw how awkward it would be if my business affairs went
-wrong. However, she would have it so, and it was done. Well, about six
-weeks ago she came to me.
-
-"'Jack,' said she, 'when you took my money you said that if ever I
-wanted any I was to ask you for it.'
-
-"'Certainly,' said I. 'It's all your own.'
-
-"'Well,' said she, 'I want a hundred pounds.'
-
-"I was a bit staggered at this, for I had imagined it was simply a new
-dress or something of the kind that she was after.
-
-"'What on earth for?' I asked.
-
-"'Oh,' said she, in her playful way, 'you said that you were only my
-banker, and bankers never ask questions, you know.'
-
-"'If you really mean it, of course you shall have the money,' said I.
-
-"'Oh, yes, I really mean it.'
-
-"'And you won't tell me what you want it for?'
-
-"'Some day, perhaps, but not just at present, Jack.'
-
-"So I had to be content with that, though it was the first time that
-there had ever been any secret between us. I gave her a check, and I
-never thought any more of the matter. It may have nothing to do with
-what came afterwards, but I thought it only right to mention it.
-
-"Well, I told you just now that there is a cottage not far from our
-house. There is just a field between us, but to reach it you have to
-go along the road and then turn down a lane. Just beyond it is a nice
-little grove of Scotch firs, and I used to be very fond of strolling
-down there, for trees are always a neighborly kind of things. The
-cottage had been standing empty this eight months, and it was a pity,
-for it was a pretty two-storied place, with an old-fashioned porch and
-honeysuckle about it. I have stood many a time and thought what a neat
-little homestead it would make.
-
-"Well, last Monday evening I was taking a stroll down that way, when
-I met an empty van coming up the lane, and saw a pile of carpets and
-things lying about on the grass-plot beside the porch. It was clear that
-the cottage had at last been let. I walked past it, and wondered what
-sort of folk they were who had come to live so near us. And as I looked
-I suddenly became aware that a face was watching me out of one of the
-upper windows.
-
-"I don't know what there was about that face, Mr. Holmes, but it seemed
-to send a chill right down my back. I was some little way off, so that
-I could not make out the features, but there was something unnatural and
-inhuman about the face. That was the impression that I had, and I moved
-quickly forwards to get a nearer view of the person who was watching
-me. But as I did so the face suddenly disappeared, so suddenly that it
-seemed to have been plucked away into the darkness of the room. I stood
-for five minutes thinking the business over, and trying to analyze my
-impressions. I could not tell if the face were that of a man or a
-woman. It had been too far from me for that. But its color was what had
-impressed me most. It was of a livid chalky white, and with something
-set and rigid about it which was shockingly unnatural. So disturbed
-was I that I determined to see a little more of the new inmates of
-the cottage. I approached and knocked at the door, which was instantly
-opened by a tall, gaunt woman with a harsh, forbidding face.
-
-"'What may you be wantin'?' she asked, in a Northern accent.
-
-"'I am your neighbor over yonder,' said I, nodding towards my house. 'I
-see that you have only just moved in, so I thought that if I could be of
-any help to you in any--'
-
-"'Ay, we'll just ask ye when we want ye,' said she, and shut the door
-in my face. Annoyed at the churlish rebuff, I turned my back and walked
-home. All evening, though I tried to think of other things, my mind
-would still turn to the apparition at the window and the rudeness of the
-woman. I determined to say nothing about the former to my wife, for
-she is a nervous, highly strung woman, and I had no wish that she would
-share the unpleasant impression which had been produced upon myself. I
-remarked to her, however, before I fell asleep, that the cottage was now
-occupied, to which she returned no reply.
-
-"I am usually an extremely sound sleeper. It has been a standing jest
-in the family that nothing could ever wake me during the night. And yet
-somehow on that particular night, whether it may have been the slight
-excitement produced by my little adventure or not I know not, but
-I slept much more lightly than usual. Half in my dreams I was dimly
-conscious that something was going on in the room, and gradually became
-aware that my wife had dressed herself and was slipping on her mantle
-and her bonnet. My lips were parted to murmur out some sleepy words of
-surprise or remonstrance at this untimely preparation, when suddenly my
-half-opened eyes fell upon her face, illuminated by the candle-light,
-and astonishment held me dumb. She wore an expression such as I had
-never seen before--such as I should have thought her incapable of
-assuming. She was deadly pale and breathing fast, glancing furtively
-towards the bed as she fastened her mantle, to see if she had disturbed
-me. Then, thinking that I was still asleep, she slipped noiselessly from
-the room, and an instant later I heard a sharp creaking which could only
-come from the hinges of the front door. I sat up in bed and rapped my
-knuckles against the rail to make certain that I was truly awake. Then
-I took my watch from under the pillow. It was three in the morning. What
-on this earth could my wife be doing out on the country road at three in
-the morning?
-
-"I had sat for about twenty minutes turning the thing over in my mind
-and trying to find some possible explanation. The more I thought, the
-more extraordinary and inexplicable did it appear. I was still puzzling
-over it when I heard the door gently close again, and her footsteps
-coming up the stairs.
-
-"'Where in the world have you been, Effie?' I asked as she entered.
-
-"She gave a violent start and a kind of gasping cry when I spoke, and
-that cry and start troubled me more than all the rest, for there was
-something indescribably guilty about them. My wife had always been
-a woman of a frank, open nature, and it gave me a chill to see her
-slinking into her own room, and crying out and wincing when her own
-husband spoke to her.
-
-"'You awake, Jack!' she cried, with a nervous laugh. 'Why, I thought
-that nothing could awake you.'
-
-"'Where have you been?' I asked, more sternly.
-
-"'I don't wonder that you are surprised,' said she, and I could see that
-her fingers were trembling as she undid the fastenings of her mantle.
-'Why, I never remember having done such a thing in my life before. The
-fact is that I felt as though I were choking, and had a perfect longing
-for a breath of fresh air. I really think that I should have fainted if
-I had not gone out. I stood at the door for a few minutes, and now I am
-quite myself again.'
-
-"All the time that she was telling me this story she never once looked
-in my direction, and her voice was quite unlike her usual tones. It
-was evident to me that she was saying what was false. I said nothing
-in reply, but turned my face to the wall, sick at heart, with my mind
-filled with a thousand venomous doubts and suspicions. What was it that
-my wife was concealing from me? Where had she been during that strange
-expedition? I felt that I should have no peace until I knew, and yet I
-shrank from asking her again after once she had told me what was false.
-All the rest of the night I tossed and tumbled, framing theory after
-theory, each more unlikely than the last.
-
-"I should have gone to the City that day, but I was too disturbed in my
-mind to be able to pay attention to business matters. My wife seemed
-to be as upset as myself, and I could see from the little questioning
-glances which she kept shooting at me that she understood that I
-disbelieved her statement, and that she was at her wits' end what to do.
-We hardly exchanged a word during breakfast, and immediately afterwards
-I went out for a walk, that I might think the matter out in the fresh
-morning air.
-
-"I went as far as the Crystal Palace, spent an hour in the grounds, and
-was back in Norbury by one o'clock. It happened that my way took me past
-the cottage, and I stopped for an instant to look at the windows, and to
-see if I could catch a glimpse of the strange face which had looked
-out at me on the day before. As I stood there, imagine my surprise, Mr.
-Holmes, when the door suddenly opened and my wife walked out.
-
-"I was struck dumb with astonishment at the sight of her; but my
-emotions were nothing to those which showed themselves upon her face
-when our eyes met. She seemed for an instant to wish to shrink back
-inside the house again; and then, seeing how useless all concealment
-must be, she came forward, with a very white face and frightened eyes
-which belied the smile upon her lips.
-
-"'Ah, Jack,' she said, 'I have just been in to see if I can be of any
-assistance to our new neighbors. Why do you look at me like that, Jack?
-You are not angry with me?'
-
-"'So,' said I, 'this is where you went during the night.'
-
-"'What do you mean?' she cried.
-
-"'You came here. I am sure of it. Who are these people, that you should
-visit them at such an hour?'
-
-"'I have not been here before.'
-
-"'How can you tell me what you know is false?' I cried. 'Your very voice
-changes as you speak. When have I ever had a secret from you? I shall
-enter that cottage, and I shall probe the matter to the bottom.'
-
-"'No, no, Jack, for God's sake!' she gasped, in uncontrollable emotion.
-Then, as I approached the door, she seized my sleeve and pulled me back
-with convulsive strength.
-
-"'I implore you not to do this, Jack,' she cried. 'I swear that I will
-tell you everything some day, but nothing but misery can come of it if
-you enter that cottage.' Then, as I tried to shake her off, she clung to
-me in a frenzy of entreaty.
-
-"'Trust me, Jack!' she cried. 'Trust me only this once. You will never
-have cause to regret it. You know that I would not have a secret from
-you if it were not for your own sake. Our whole lives are at stake in
-this. If you come home with me, all will be well. If you force your way
-into that cottage, all is over between us.'
-
-"There was such earnestness, such despair, in her manner that her words
-arrested me, and I stood irresolute before the door.
-
-"'I will trust you on one condition, and on one condition only,' said I
-at last. 'It is that this mystery comes to an end from now. You are
-at liberty to preserve your secret, but you must promise me that there
-shall be no more nightly visits, no more doings which are kept from my
-knowledge. I am willing to forget those which are passed if you will
-promise that there shall be no more in the future.'
-
-"'I was sure that you would trust me,' she cried, with a great sigh of
-relief. 'It shall be just as you wish. Come away--oh, come away up to
-the house.'
-
-"Still pulling at my sleeve, she led me away from the cottage. As we
-went I glanced back, and there was that yellow livid face watching us
-out of the upper window. What link could there be between that creature
-and my wife? Or how could the coarse, rough woman whom I had seen the
-day before be connected with her? It was a strange puzzle, and yet I
-knew that my mind could never know ease again until I had solved it.
-
-"For two days after this I stayed at home, and my wife appeared to abide
-loyally by our engagement, for, as far as I know, she never stirred out
-of the house. On the third day, however, I had ample evidence that
-her solemn promise was not enough to hold her back from this secret
-influence which drew her away from her husband and her duty.
-
-"I had gone into town on that day, but I returned by the 2.40 instead of
-the 3.36, which is my usual train. As I entered the house the maid ran
-into the hall with a startled face.
-
-"'Where is your mistress?' I asked.
-
-"'I think that she has gone out for a walk,' she answered.
-
-"My mind was instantly filled with suspicion. I rushed upstairs to make
-sure that she was not in the house. As I did so I happened to glance out
-of one of the upper windows, and saw the maid with whom I had just been
-speaking running across the field in the direction of the cottage. Then
-of course I saw exactly what it all meant. My wife had gone over there,
-and had asked the servant to call her if I should return. Tingling with
-anger, I rushed down and hurried across, determined to end the matter
-once and forever. I saw my wife and the maid hurrying back along the
-lane, but I did not stop to speak with them. In the cottage lay the
-secret which was casting a shadow over my life. I vowed that, come what
-might, it should be a secret no longer. I did not even knock when I
-reached it, but turned the handle and rushed into the passage.
-
-"It was all still and quiet upon the ground floor. In the kitchen a
-kettle was singing on the fire, and a large black cat lay coiled up in
-the basket; but there was no sign of the woman whom I had seen before.
-I ran into the other room, but it was equally deserted. Then I rushed up
-the stairs, only to find two other rooms empty and deserted at the top.
-There was no one at all in the whole house. The furniture and pictures
-were of the most common and vulgar description, save in the one chamber
-at the window of which I had seen the strange face. That was comfortable
-and elegant, and all my suspicions rose into a fierce bitter flame when
-I saw that on the mantelpiece stood a copy of a full-length photograph
-of my wife, which had been taken at my request only three months ago.
-
-"I stayed long enough to make certain that the house was absolutely
-empty. Then I left it, feeling a weight at my heart such as I had never
-had before. My wife came out into the hall as I entered my house; but I
-was too hurt and angry to speak with her, and pushing past her, I made
-my way into my study. She followed me, however, before I could close the
-door.
-
-"'I am sorry that I broke my promise, Jack,' said she; 'but if you knew
-all the circumstances I am sure that you would forgive me.'
-
-"'Tell me everything, then,' said I.
-
-"'I cannot, Jack, I cannot,' she cried.
-
-"'Until you tell me who it is that has been living in that cottage, and
-who it is to whom you have given that photograph, there can never be any
-confidence between us,' said I, and breaking away from her, I left the
-house. That was yesterday, Mr. Holmes, and I have not seen her since,
-nor do I know anything more about this strange business. It is the first
-shadow that has come between us, and it has so shaken me that I do not
-know what I should do for the best. Suddenly this morning it occurred to
-me that you were the man to advise me, so I have hurried to you now, and
-I place myself unreservedly in your hands. If there is any point which I
-have not made clear, pray question me about it. But, above all, tell me
-quickly what I am to do, for this misery is more than I can bear."
-
-Holmes and I had listened with the utmost interest to this extraordinary
-statement, which had been delivered in the jerky, broken fashion of a
-man who is under the influence of extreme emotions. My companion sat
-silent for some time, with his chin upon his hand, lost in thought.
-
-"Tell me," said he at last, "could you swear that this was a man's face
-which you saw at the window?"
-
-"Each time that I saw it I was some distance away from it, so that it is
-impossible for me to say."
-
-"You appear, however, to have been disagreeably impressed by it."
-
-"It seemed to be of an unnatural color, and to have a strange rigidity
-about the features. When I approached, it vanished with a jerk."
-
-"How long is it since your wife asked you for a hundred pounds?"
-
-"Nearly two months."
-
-"Have you ever seen a photograph of her first husband?"
-
-"No; there was a great fire at Atlanta very shortly after his death, and
-all her papers were destroyed."
-
-"And yet she had a certificate of death. You say that you saw it."
-
-"Yes; she got a duplicate after the fire."
-
-"Did you ever meet any one who knew her in America?"
-
-"No."
-
-"Did she ever talk of revisiting the place?"
-
-"No."
-
-"Or get letters from it?"
-
-"No."
-
-"Thank you. I should like to think over the matter a little now. If the
-cottage is now permanently deserted we may have some difficulty. If, on
-the other hand, as I fancy is more likely, the inmates were warned of
-your coming, and left before you entered yesterday, then they may be
-back now, and we should clear it all up easily. Let me advise you, then,
-to return to Norbury, and to examine the windows of the cottage again.
-If you have reason to believe that it is inhabited, do not force your
-way in, but send a wire to my friend and me. We shall be with you within
-an hour of receiving it, and we shall then very soon get to the bottom
-of the business."
-
-"And if it is still empty?"
-
-"In that case I shall come out to-morrow and talk it over with you.
-Good-by; and, above all, do not fret until you know that you really have
-a cause for it."
-
-"I am afraid that this is a bad business, Watson," said my companion, as
-he returned after accompanying Mr. Grant Munro to the door. "What do you
-make of it?"
-
-"It had an ugly sound," I answered.
-
-"Yes. There's blackmail in it, or I am much mistaken."
-
-"And who is the blackmailer?"
-
-"Well, it must be the creature who lives in the only comfortable room
-in the place, and has her photograph above his fireplace. Upon my word,
-Watson, there is something very attractive about that livid face at the
-window, and I would not have missed the case for worlds."
-
-"You have a theory?"
-
-"Yes, a provisional one. But I shall be surprised if it does not turn
-out to be correct. This woman's first husband is in that cottage."
-
-"Why do you think so?"
-
-"How else can we explain her frenzied anxiety that her second one should
-not enter it? The facts, as I read them, are something like this:
-This woman was married in America. Her husband developed some hateful
-qualities; or shall we say that he contracted some loathsome disease,
-and became a leper or an imbecile? She flies from him at last, returns
-to England, changes her name, and starts her life, as she thinks,
-afresh. She has been married three years, and believes that her position
-is quite secure, having shown her husband the death certificate of
-some man whose name she has assumed, when suddenly her whereabouts
-is discovered by her first husband; or, we may suppose, by some
-unscrupulous woman who has attached herself to the invalid. They write
-to the wife, and threaten to come and expose her. She asks for a hundred
-pounds, and endeavors to buy them off. They come in spite of it, and
-when the husband mentions casually to the wife that there are new-comers
-in the cottage, she knows in some way that they are her pursuers. She
-waits until her husband is asleep, and then she rushes down to endeavor
-to persuade them to leave her in peace. Having no success, she goes
-again next morning, and her husband meets her, as he has told us, as
-she comes out. She promises him then not to go there again, but two days
-afterwards the hope of getting rid of those dreadful neighbors was too
-strong for her, and she made another attempt, taking down with her the
-photograph which had probably been demanded from her. In the midst of
-this interview the maid rushed in to say that the master had come home,
-on which the wife, knowing that he would come straight down to the
-cottage, hurried the inmates out at the back door, into the grove of
-fir-trees, probably, which was mentioned as standing near. In this way
-he found the place deserted. I shall be very much surprised, however, if
-it is still so when he reconnoitres it this evening. What do you think
-of my theory?"
-
-"It is all surmise."
-
-"But at least it covers all the facts. When new facts come to our
-knowledge which cannot be covered by it, it will be time enough to
-reconsider it. We can do nothing more until we have a message from our
-friend at Norbury."
-
-But we had not a very long time to wait for that. It came just as we had
-finished our tea. "The cottage is still tenanted," it said. "Have seen
-the face again at the window. Will meet the seven o'clock train, and
-will take no steps until you arrive."
-
-
-He was waiting on the platform when we stepped out, and we could see in
-the light of the station lamps that he was very pale, and quivering with
-agitation.
-
-"They are still there, Mr. Holmes," said he, laying his hand hard upon
-my friend's sleeve. "I saw lights in the cottage as I came down. We
-shall settle it now once and for all."
-
-"What is your plan, then?" asked Holmes, as he walked down the dark
-tree-lined road.
-
-"I am going to force my way in and see for myself who is in the house. I
-wish you both to be there as witnesses."
-
-"You are quite determined to do this, in spite of your wife's warning
-that it is better that you should not solve the mystery?"
-
-"Yes, I am determined."
-
-"Well, I think that you are in the right. Any truth is better than
-indefinite doubt. We had better go up at once. Of course, legally, we
-are putting ourselves hopelessly in the wrong; but I think that it is
-worth it."
-
-It was a very dark night, and a thin rain began to fall as we turned
-from the high road into a narrow lane, deeply rutted, with hedges on
-either side. Mr. Grant Munro pushed impatiently forward, however, and we
-stumbled after him as best we could.
-
-"There are the lights of my house," he murmured, pointing to a glimmer
-among the trees. "And here is the cottage which I am going to enter."
-
-We turned a corner in the lane as he spoke, and there was the building
-close beside us. A yellow bar falling across the black foreground showed
-that the door was not quite closed, and one window in the upper story
-was brightly illuminated. As we looked, we saw a dark blur moving across
-the blind.
-
-"There is that creature!" cried Grant Munro. "You can see for yourselves
-that some one is there. Now follow me, and we shall soon know all."
-
-We approached the door; but suddenly a woman appeared out of the shadow
-and stood in the golden track of the lamp-light. I could not see her
-face in the darkness, but her arms were thrown out in an attitude of
-entreaty.
-
-"For God's sake, don't Jack!" she cried. "I had a presentiment that you
-would come this evening. Think better of it, dear! Trust me again, and
-you will never have cause to regret it."
-
-"I have trusted you too long, Effie," he cried, sternly. "Leave go of
-me! I must pass you. My friends and I are going to settle this matter
-once and forever!" He pushed her to one side, and we followed closely
-after him. As he threw the door open an old woman ran out in front of
-him and tried to bar his passage, but he thrust her back, and an instant
-afterwards we were all upon the stairs. Grant Munro rushed into the
-lighted room at the top, and we entered at his heels.
-
-It was a cosey, well-furnished apartment, with two candles burning upon
-the table and two upon the mantelpiece. In the corner, stooping over a
-desk, there sat what appeared to be a little girl. Her face was turned
-away as we entered, but we could see that she was dressed in a red
-frock, and that she had long white gloves on. As she whisked round
-to us, I gave a cry of surprise and horror. The face which she turned
-towards us was of the strangest livid tint, and the features were
-absolutely devoid of any expression. An instant later the mystery was
-explained. Holmes, with a laugh, passed his hand behind the child's
-ear, a mask peeled off from her countenance, and there was a little coal
-black negress, with all her white teeth flashing in amusement at our
-amazed faces. I burst out laughing, out of sympathy with her merriment;
-but Grant Munro stood staring, with his hand clutching his throat.
-
-"My God!" he cried. "What can be the meaning of this?"
-
-"I will tell you the meaning of it," cried the lady, sweeping into
-the room with a proud, set face. "You have forced me, against my own
-judgment, to tell you, and now we must both make the best of it. My
-husband died at Atlanta. My child survived."
-
-"Your child?"
-
-She drew a large silver locket from her bosom. "You have never seen this
-open."
-
-"I understood that it did not open."
-
-She touched a spring, and the front hinged back. There was a portrait
-within of a man strikingly handsome and intelligent-looking, but bearing
-unmistakable signs upon his features of his African descent.
-
-"That is John Hebron, of Atlanta," said the lady, "and a nobler man
-never walked the earth. I cut myself off from my race in order to wed
-him, but never once while he lived did I for an instant regret it. It
-was our misfortune that our only child took after his people rather than
-mine. It is often so in such matches, and little Lucy is darker far than
-ever her father was. But dark or fair, she is my own dear little girlie,
-and her mother's pet." The little creature ran across at the words and
-nestled up against the lady's dress. "When I left her in America," she
-continued, "it was only because her health was weak, and the change
-might have done her harm. She was given to the care of a faithful Scotch
-woman who had once been our servant. Never for an instant did I dream
-of disowning her as my child. But when chance threw you in my way, Jack,
-and I learned to love you, I feared to tell you about my child. God
-forgive me, I feared that I should lose you, and I had not the courage
-to tell you. I had to choose between you, and in my weakness I turned
-away from my own little girl. For three years I have kept her existence
-a secret from you, but I heard from the nurse, and I knew that all was
-well with her. At last, however, there came an overwhelming desire to
-see the child once more. I struggled against it, but in vain. Though I
-knew the danger, I determined to have the child over, if it were but
-for a few weeks. I sent a hundred pounds to the nurse, and I gave her
-instructions about this cottage, so that she might come as a neighbor,
-without my appearing to be in any way connected with her. I pushed my
-precautions so far as to order her to keep the child in the house during
-the daytime, and to cover up her little face and hands so that even
-those who might see her at the window should not gossip about there
-being a black child in the neighborhood. If I had been less cautious
-I might have been more wise, but I was half crazy with fear that you
-should learn the truth.
-
-"It was you who told me first that the cottage was occupied. I should
-have waited for the morning, but I could not sleep for excitement, and
-so at last I slipped out, knowing how difficult it is to awake you. But
-you saw me go, and that was the beginning of my troubles. Next day you
-had my secret at your mercy, but you nobly refrained from pursuing your
-advantage. Three days later, however, the nurse and child only just
-escaped from the back door as you rushed in at the front one. And now
-to-night you at last know all, and I ask you what is to become of us, my
-child and me?" She clasped her hands and waited for an answer.
-
-It was a long ten minutes before Grant Munro broke the silence, and
-when his answer came it was one of which I love to think. He lifted
-the little child, kissed her, and then, still carrying her, he held his
-other hand out to his wife and turned towards the door.
-
-"We can talk it over more comfortably at home," said he. "I am not a
-very good man, Effie, but I think that I am a better one than you have
-given me credit for being."
-
-Holmes and I followed them down the lane, and my friend plucked at my
-sleeve as we came out.
-
-"I think," said he, "that we shall be of more use in London than in
-Norbury."
-
-Not another word did he say of the case until late that night, when he
-was turning away, with his lighted candle, for his bedroom.
-
-"Watson," said he, "if it should ever strike you that I am getting a
-little over-confident in my powers, or giving less pains to a case
-than it deserves, kindly whisper 'Norbury' in my ear, and I shall be
-infinitely obliged to you."
-
-
-
-
-Adventure III. The Stock-Broker's Clerk
-
-
-Shortly after my marriage I had bought a connection in the Paddington
-district. Old Mr. Farquhar, from whom I purchased it, had at one time an
-excellent general practice; but his age, and an affliction of the nature
-of St. Vitus's dance from which he suffered, had very much thinned it.
-The public not unnaturally goes on the principle that he who would heal
-others must himself be whole, and looks askance at the curative powers
-of the man whose own case is beyond the reach of his drugs. Thus as my
-predecessor weakened his practice declined, until when I purchased
-it from him it had sunk from twelve hundred to little more than three
-hundred a year. I had confidence, however, in my own youth and energy,
-and was convinced that in a very few years the concern would be as
-flourishing as ever.
-
-For three months after taking over the practice I was kept very closely
-at work, and saw little of my friend Sherlock Holmes, for I was too busy
-to visit Baker Street, and he seldom went anywhere himself save upon
-professional business. I was surprised, therefore, when, one morning in
-June, as I sat reading the British Medical Journal after breakfast, I
-heard a ring at the bell, followed by the high, somewhat strident tones
-of my old companion's voice.
-
-"Ah, my dear Watson," said he, striding into the room, "I am very
-delighted to see you! I trust that Mrs. Watson has entirely recovered
-from all the little excitements connected with our adventure of the Sign
-of Four."
-
-"Thank you, we are both very well," said I, shaking him warmly by the
-hand.
-
-"And I hope, also," he continued, sitting down in the rocking-chair,
-"that the cares of medical practice have not entirely obliterated the
-interest which you used to take in our little deductive problems."
-
-"On the contrary," I answered, "it was only last night that I was
-looking over my old notes, and classifying some of our past results."
-
-"I trust that you don't consider your collection closed."
-
-"Not at all. I should wish nothing better than to have some more of such
-experiences."
-
-"To-day, for example?"
-
-"Yes, to-day, if you like."
-
-"And as far off as Birmingham?"
-
-"Certainly, if you wish it."
-
-"And the practice?"
-
-"I do my neighbor's when he goes. He is always ready to work off the
-debt."
-
-"Ha! Nothing could be better," said Holmes, leaning back in his chair
-and looking keenly at me from under his half closed lids. "I perceive
-that you have been unwell lately. Summer colds are always a little
-trying."
-
-"I was confined to the house by a severe chill for three days last week.
-I thought, however, that I had cast off every trace of it."
-
-"So you have. You look remarkably robust."
-
-"How, then, did you know of it?"
-
-"My dear fellow, you know my methods."
-
-"You deduced it, then?"
-
-"Certainly."
-
-"And from what?"
-
-"From your slippers."
-
-I glanced down at the new patent leathers which I was wearing. "How on
-earth--" I began, but Holmes answered my question before it was asked.
-
-"Your slippers are new," he said. "You could not have had them more than
-a few weeks. The soles which you are at this moment presenting to me are
-slightly scorched. For a moment I thought they might have got wet and
-been burned in the drying. But near the instep there is a small circular
-wafer of paper with the shopman's hieroglyphics upon it. Damp would of
-course have removed this. You had, then, been sitting with your feet
-outstretched to the fire, which a man would hardly do even in so wet a
-June as this if he were in his full health."
-
-Like all Holmes's reasoning the thing seemed simplicity itself when it
-was once explained. He read the thought upon my features, and his smile
-had a tinge of bitterness.
-
-"I am afraid that I rather give myself away when I explain," said he.
-"Results without causes are much more impressive. You are ready to come
-to Birmingham, then?"
-
-"Certainly. What is the case?"
-
-"You shall hear it all in the train. My client is outside in a
-four-wheeler. Can you come at once?"
-
-"In an instant." I scribbled a note to my neighbor, rushed upstairs to
-explain the matter to my wife, and joined Holmes upon the door-step.
-
-"Your neighbor is a doctor," said he, nodding at the brass plate.
-
-"Yes; he bought a practice as I did."
-
-"An old-established one?"
-
-"Just the same as mine. Both have been ever since the houses were
-built."
-
-"Ah! Then you got hold of the best of the two."
-
-"I think I did. But how do you know?"
-
-"By the steps, my boy. Yours are worn three inches deeper than his. But
-this gentleman in the cab is my client, Mr. Hall Pycroft. Allow me to
-introduce you to him. Whip your horse up, cabby, for we have only just
-time to catch our train."
-
-The man whom I found myself facing was a well built, fresh-complexioned
-young fellow, with a frank, honest face and a slight, crisp, yellow
-mustache. He wore a very shiny top hat and a neat suit of sober black,
-which made him look what he was--a smart young City man, of the class
-who have been labeled cockneys, but who give us our crack volunteer
-regiments, and who turn out more fine athletes and sportsmen than any
-body of men in these islands. His round, ruddy face was naturally full
-of cheeriness, but the corners of his mouth seemed to me to be pulled
-down in a half-comical distress. It was not, however, until we were
-all in a first-class carriage and well started upon our journey to
-Birmingham that I was able to learn what the trouble was which had
-driven him to Sherlock Holmes.
-
-"We have a clear run here of seventy minutes," Holmes remarked. "I
-want you, Mr. Hall Pycroft, to tell my friend your very interesting
-experience exactly as you have told it to me, or with more detail if
-possible. It will be of use to me to hear the succession of events
-again. It is a case, Watson, which may prove to have something in it, or
-may prove to have nothing, but which, at least, presents those unusual
-and outré features which are as dear to you as they are to me. Now, Mr.
-Pycroft, I shall not interrupt you again."
-
-Our young companion looked at me with a twinkle in his eye.
-
-"The worst of the story is," said he, "that I show myself up as such a
-confounded fool. Of course it may work out all right, and I don't see
-that I could have done otherwise; but if I have lost my crib and get
-nothing in exchange I shall feel what a soft Johnnie I have been. I'm
-not very good at telling a story, Dr. Watson, but it is like this with
-me:
-
-"I used to have a billet at Coxon & Woodhouse's, of Draper's Gardens,
-but they were let in early in the spring through the Venezuelan loan,
-as no doubt you remember, and came a nasty cropper. I had been with them
-five years, and old Coxon gave me a ripping good testimonial when
-the smash came, but of course we clerks were all turned adrift, the
-twenty-seven of us. I tried here and tried there, but there were lots of
-other chaps on the same lay as myself, and it was a perfect frost for a
-long time. I had been taking three pounds a week at Coxon's, and I had
-saved about seventy of them, but I soon worked my way through that and
-out at the other end. I was fairly at the end of my tether at last,
-and could hardly find the stamps to answer the advertisements or the
-envelopes to stick them to. I had worn out my boots paddling up office
-stairs, and I seemed just as far from getting a billet as ever.
-
-"At last I saw a vacancy at Mawson & Williams's, the great stock-broking
-firm in Lombard Street. I dare say E. C. Is not much in your line, but
-I can tell you that this is about the richest house in London.
-The advertisement was to be answered by letter only. I sent in my
-testimonial and application, but without the least hope of getting it.
-Back came an answer by return, saying that if I would appear next Monday
-I might take over my new duties at once, provided that my appearance was
-satisfactory. No one knows how these things are worked. Some people say
-that the manager just plunges his hand into the heap and takes the first
-that comes. Anyhow it was my innings that time, and I don't ever wish to
-feel better pleased. The screw was a pound a week rise, and the duties
-just about the same as at Coxon's.
-
-"And now I come to the queer part of the business. I was in diggings out
-Hampstead way, 17 Potter's Terrace. Well, I was sitting doing a smoke
-that very evening after I had been promised the appointment, when up
-came my landlady with a card which had 'Arthur Pinner, Financial Agent,'
-printed upon it. I had never heard the name before and could not imagine
-what he wanted with me; but, of course, I asked her to show him up. In
-he walked, a middle-sized, dark-haired, dark-eyed, black-bearded man,
-with a touch of the Sheeny about his nose. He had a brisk kind of way
-with him and spoke sharply, like a man who knew the value of time."
-
-"'Mr. Hall Pycroft, I believe?'" said he.
-
-"'Yes, sir,' I answered, pushing a chair towards him.
-
-"'Lately engaged at Coxon & Woodhouse's?'
-
-"'Yes, sir.'
-
-"'And now on the staff of Mawson's.'
-
-"'Quite so.'
-
-"'Well,' said he, 'the fact is that I have heard some really
-extraordinary stories about your financial ability. You remember Parker,
-who used to be Coxon's manager? He can never say enough about it.'
-
-"Of course I was pleased to hear this. I had always been pretty sharp in
-the office, but I had never dreamed that I was talked about in the City
-in this fashion.
-
-"'You have a good memory?' said he.
-
-"'Pretty fair,' I answered, modestly.
-
-"'Have you kept in touch with the market while you have been out of
-work?' he asked.
-
-"'Yes. I read the stock exchange list every morning.'
-
-"'Now that shows real application!' he cried. 'That is the way to
-prosper! You won't mind my testing you, will you? Let me see. How are
-Ayrshires?'
-
-"'A hundred and six and a quarter to a hundred and five and
-seven-eighths.'
-
-"'And New Zealand consolidated?'
-
-"'A hundred and four.
-
-"'And British Broken Hills?'
-
-"'Seven to seven-and-six.'
-
-"'Wonderful!' he cried, with his hands up. 'This quite fits in with all
-that I had heard. My boy, my boy, you are very much too good to be a
-clerk at Mawson's!'
-
-"This outburst rather astonished me, as you can think. 'Well,' said I,
-'other people don't think quite so much of me as you seem to do, Mr.
-Pinner. I had a hard enough fight to get this berth, and I am very glad
-to have it.'
-
-"'Pooh, man; you should soar above it. You are not in your true sphere.
-Now, I'll tell you how it stands with me. What I have to offer is little
-enough when measured by your ability, but when compared with Mawson's,
-it's light to dark. Let me see. When do you go to Mawson's?'
-
-"'On Monday.'
-
-"'Ha, ha! I think I would risk a little sporting flutter that you don't
-go there at all.'
-
-"'Not go to Mawson's?'
-
-"'No, sir. By that day you will be the business manager of the
-Franco-Midland Hardware Company, Limited, with a hundred and thirty-four
-branches in the towns and villages of France, not counting one in
-Brussels and one in San Remo.'
-
-"This took my breath away. 'I never heard of it,' said I.
-
-"'Very likely not. It has been kept very quiet, for the capital was all
-privately subscribed, and it's too good a thing to let the public
-into. My brother, Harry Pinner, is promoter, and joins the board after
-allotment as managing director. He knew I was in the swim down here, and
-asked me to pick up a good man cheap. A young, pushing man with plenty
-of snap about him. Parker spoke of you, and that brought me here
-to-night. We can only offer you a beggarly five hundred to start with.'
-
-"'Five hundred a year!' I shouted.
-
-"'Only that at the beginning; but you are to have an overriding
-commission of one per cent on all business done by your agents, and you
-may take my word for it that this will come to more than your salary.'
-
-"'But I know nothing about hardware.'
-
-"'Tut, my boy; you know about figures.'
-
-"My head buzzed, and I could hardly sit still in my chair. But suddenly
-a little chill of doubt came upon me.
-
-"'I must be frank with you,' said I. 'Mawson only gives me two hundred,
-but Mawson is safe. Now, really, I know so little about your company
-that--'
-
-"'Ah, smart, smart!' he cried, in a kind of ecstasy of delight. 'You
-are the very man for us. You are not to be talked over, and quite right,
-too. Now, here's a note for a hundred pounds, and if you think that we
-can do business you may just slip it into your pocket as an advance upon
-your salary.'
-
-"'That is very handsome,' said I. 'When should I take over my new
-duties?'
-
-"'Be in Birmingham to-morrow at one,' said he. 'I have a note in my
-pocket here which you will take to my brother. You will find him at
-126b Corporation Street, where the temporary offices of the company
-are situated. Of course he must confirm your engagement, but between
-ourselves it will be all right.'
-
-"'Really, I hardly know how to express my gratitude, Mr. Pinner,' said
-I.
-
-"'Not at all, my boy. You have only got your deserts. There are one or
-two small things--mere formalities--which I must arrange with you.
-You have a bit of paper beside you there. Kindly write upon it "I am
-perfectly willing to act as business manager to the Franco-Midland
-Hardware Company, Limited, at a minimum salary of L500."'
-
-"I did as he asked, and he put the paper in his pocket.
-
-"'There is one other detail,' said he. 'What do you intend to do about
-Mawson's?'
-
-"I had forgotten all about Mawson's in my joy. 'I'll write and resign,'
-said I.
-
-"'Precisely what I don't want you to do. I had a row over you with
-Mawson's manager. I had gone up to ask him about you, and he was very
-offensive; accused me of coaxing you away from the service of the firm,
-and that sort of thing. At last I fairly lost my temper. "If you want
-good men you should pay them a good price," said I.'
-
-"'He would rather have our small price than your big one,' said he.
-
-"'I'll lay you a fiver,' said I, 'that when he has my offer you'll never
-so much as hear from him again.'
-
-"'Done!' said he. 'We picked him out of the gutter, and he won't leave
-us so easily.' Those were his very words."
-
-"'The impudent scoundrel!' I cried. 'I've never so much as seen him in
-my life. Why should I consider him in any way? I shall certainly not
-write if you would rather I didn't.'
-
-"'Good! That's a promise,' said he, rising from his chair. 'Well, I'm
-delighted to have got so good a man for my brother. Here's your advance
-of a hundred pounds, and here is the letter. Make a note of the address,
-126b Corporation Street, and remember that one o'clock to-morrow is
-your appointment. Good-night; and may you have all the fortune that you
-deserve!'
-
-"That's just about all that passed between us, as near as I can
-remember. You can imagine, Dr. Watson, how pleased I was at such an
-extraordinary bit of good fortune. I sat up half the night hugging
-myself over it, and next day I was off to Birmingham in a train that
-would take me in plenty time for my appointment. I took my things to
-a hotel in New Street, and then I made my way to the address which had
-been given me.
-
-"It was a quarter of an hour before my time, but I thought that would
-make no difference. 126b was a passage between two large shops, which
-led to a winding stone stair, from which there were many flats, let as
-offices to companies or professional men. The names of the occupants
-were painted at the bottom on the wall, but there was no such name as
-the Franco-Midland Hardware Company, Limited. I stood for a few minutes
-with my heart in my boots, wondering whether the whole thing was an
-elaborate hoax or not, when up came a man and addressed me. He was very
-like the chap I had seen the night before, the same figure and voice,
-but he was clean shaven and his hair was lighter.
-
-"'Are you Mr. Hall Pycroft?' he asked.
-
-"'Yes,' said I.
-
-"'Oh! I was expecting you, but you are a trifle before your time. I had
-a note from my brother this morning in which he sang your praises very
-loudly.'
-
-"'I was just looking for the offices when you came.
-
-"'We have not got our name up yet, for we only secured these temporary
-premises last week. Come up with me, and we will talk the matter over.'
-
-"I followed him to the top of a very lofty stair, and there, right under
-the slates, were a couple of empty, dusty little rooms, uncarpeted and
-uncurtained, into which he led me. I had thought of a great office with
-shining tables and rows of clerks, such as I was used to, and I dare say
-I stared rather straight at the two deal chairs and one little table,
-which, with a ledger and a waste paper basket, made up the whole
-furniture.
-
-"'Don't be disheartened, Mr. Pycroft,' said my new acquaintance, seeing
-the length of my face. 'Rome was not built in a day, and we have lots of
-money at our backs, though we don't cut much dash yet in offices. Pray
-sit down, and let me have your letter.'
-
-"I gave it to him, and he read it over very carefully.
-
-"'You seem to have made a vast impression upon my brother Arthur,' said
-he; 'and I know that he is a pretty shrewd judge. He swears by London,
-you know; and I by Birmingham; but this time I shall follow his advice.
-Pray consider yourself definitely engaged."
-
-"'What are my duties?' I asked.
-
-"'You will eventually manage the great depot in Paris, which will pour
-a flood of English crockery into the shops of a hundred and thirty-four
-agents in France. The purchase will be completed in a week, and
-meanwhile you will remain in Birmingham and make yourself useful.'
-
-"'How?'
-
-"For answer, he took a big red book out of a drawer.
-
-"'This is a directory of Paris,' said he, 'with the trades after the
-names of the people. I want you to take it home with you, and to mark
-off all the hardware sellers, with their addresses. It would be of the
-greatest use to me to have them.'
-
-"'Surely there are classified lists?' I suggested.
-
-"'Not reliable ones. Their system is different from ours. Stick at it,
-and let me have the lists by Monday, at twelve. Good-day, Mr. Pycroft.
-If you continue to show zeal and intelligence you will find the company
-a good master.'
-
-"I went back to the hotel with the big book under my arm, and with very
-conflicting feelings in my breast. On the one hand, I was definitely
-engaged and had a hundred pounds in my pocket; on the other, the look
-of the offices, the absence of name on the wall, and other of the points
-which would strike a business man had left a bad impression as to the
-position of my employers. However, come what might, I had my money, so I
-settled down to my task. All Sunday I was kept hard at work, and yet by
-Monday I had only got as far as H. I went round to my employer, found
-him in the same dismantled kind of room, and was told to keep at
-it until Wednesday, and then come again. On Wednesday it was still
-unfinished, so I hammered away until Friday--that is, yesterday. Then I
-brought it round to Mr. Harry Pinner.
-
-"'Thank you very much,' said he; 'I fear that I underrated the
-difficulty of the task. This list will be of very material assistance to
-me.'
-
-"'It took some time,' said I.
-
-"'And now,' said he, 'I want you to make a list of the furniture shops,
-for they all sell crockery.'
-
-"'Very good.'
-
-"'And you can come up to-morrow evening, at seven, and let me know how
-you are getting on. Don't overwork yourself. A couple of hours at Day's
-Music Hall in the evening would do you no harm after your labors.' He
-laughed as he spoke, and I saw with a thrill that his second tooth upon
-the left-hand side had been very badly stuffed with gold."
-
-
-Sherlock Holmes rubbed his hands with delight, and I stared with
-astonishment at our client.
-
-"You may well look surprised, Dr. Watson; but it is this way," said he:
-"When I was speaking to the other chap in London, at the time that he
-laughed at my not going to Mawson's, I happened to notice that his tooth
-was stuffed in this very identical fashion. The glint of the gold in
-each case caught my eye, you see. When I put that with the voice and
-figure being the same, and only those things altered which might be
-changed by a razor or a wig, I could not doubt that it was the same man.
-Of course you expect two brothers to be alike, but not that they should
-have the same tooth stuffed in the same way. He bowed me out, and I
-found myself in the street, hardly knowing whether I was on my head or
-my heels. Back I went to my hotel, put my head in a basin of cold water,
-and tried to think it out. Why had he sent me from London to Birmingham?
-Why had he got there before me? And why had he written a letter from
-himself to himself? It was altogether too much for me, and I could make
-no sense of it. And then suddenly it struck me that what was dark to me
-might be very light to Mr. Sherlock Holmes. I had just time to get up to
-town by the night train to see him this morning, and to bring you both
-back with me to Birmingham."
-
-There was a pause after the stock-broker's clerk had concluded his
-surprising experience. Then Sherlock Holmes cocked his eye at me,
-leaning back on the cushions with a pleased and yet critical face, like
-a connoisseur who has just taken his first sip of a comet vintage.
-
-"Rather fine, Watson, is it not?" said he. "There are points in it which
-please me. I think that you will agree with me that an interview with
-Mr. Arthur Harry Pinner in the temporary offices of the Franco-Midland
-Hardware Company, Limited, would be a rather interesting experience for
-both of us."
-
-"But how can we do it?" I asked.
-
-"Oh, easily enough," said Hall Pycroft, cheerily. "You are two friends
-of mine who are in want of a billet, and what could be more natural than
-that I should bring you both round to the managing director?"
-
-"Quite so, of course," said Holmes. "I should like to have a look at
-the gentleman, and see if I can make anything of his little game.
-What qualities have you, my friend, which would make your services
-so valuable? or is it possible that--" He began biting his nails and
-staring blankly out of the window, and we hardly drew another word from
-him until we were in New Street.
-
-At seven o'clock that evening we were walking, the three of us, down
-Corporation Street to the company's offices.
-
-"It is no use our being at all before our time," said our client. "He
-only comes there to see me, apparently, for the place is deserted up to
-the very hour he names."
-
-"That is suggestive," remarked Holmes.
-
-"By Jove, I told you so!" cried the clerk. "That's he walking ahead of
-us there."
-
-He pointed to a smallish, dark, well-dressed man who was bustling along
-the other side of the road. As we watched him he looked across at a boy
-who was bawling out the latest edition of the evening paper, and running
-over among the cabs and busses, he bought one from him. Then, clutching
-it in his hand, he vanished through a door-way.
-
-"There he goes!" cried Hall Pycroft. "These are the company's offices
-into which he has gone. Come with me, and I'll fix it up as easily as
-possible."
-
-Following his lead, we ascended five stories, until we found ourselves
-outside a half-opened door, at which our client tapped. A voice within
-bade us enter, and we entered a bare, unfurnished room such as Hall
-Pycroft had described. At the single table sat the man whom we had seen
-in the street, with his evening paper spread out in front of him, and as
-he looked up at us it seemed to me that I had never looked upon a face
-which bore such marks of grief, and of something beyond grief--of a
-horror such as comes to few men in a lifetime. His brow glistened with
-perspiration, his cheeks were of the dull, dead white of a fish's belly,
-and his eyes were wild and staring. He looked at his clerk as though he
-failed to recognize him, and I could see by the astonishment depicted
-upon our conductor's face that this was by no means the usual appearance
-of his employer.
-
-"You look ill, Mr. Pinner!" he exclaimed.
-
-"Yes, I am not very well," answered the other, making obvious efforts
-to pull himself together, and licking his dry lips before he spoke. "Who
-are these gentlemen whom you have brought with you?"
-
-"One is Mr. Harris, of Bermondsey, and the other is Mr. Price, of this
-town," said our clerk, glibly. "They are friends of mine and gentlemen
-of experience, but they have been out of a place for some little time,
-and they hoped that perhaps you might find an opening for them in the
-company's employment."
-
-"Very possibly! Very possibly!" cried Mr. Pinner with a ghastly smile.
-"Yes, I have no doubt that we shall be able to do something for you.
-What is your particular line, Mr. Harris?"
-
-"I am an accountant," said Holmes.
-
-"Ah yes, we shall want something of the sort. And you, Mr. Price?"
-
-"A clerk," said I.
-
-"I have every hope that the company may accommodate you. I will let you
-know about it as soon as we come to any conclusion. And now I beg that
-you will go. For God's sake leave me to myself!"
-
-These last words were shot out of him, as though the constraint which
-he was evidently setting upon himself had suddenly and utterly burst
-asunder. Holmes and I glanced at each other, and Hall Pycroft took a
-step towards the table.
-
-"You forget, Mr. Pinner, that I am here by appointment to receive some
-directions from you," said he.
-
-"Certainly, Mr. Pycroft, certainly," the other resumed in a calmer tone.
-"You may wait here a moment; and there is no reason why your friends
-should not wait with you. I will be entirely at your service in three
-minutes, if I might trespass upon your patience so far." He rose with a
-very courteous air, and, bowing to us, he passed out through a door at
-the farther end of the room, which he closed behind him.
-
-"What now?" whispered Holmes. "Is he giving us the slip?"
-
-"Impossible," answered Pycroft.
-
-"Why so?"
-
-"That door leads into an inner room."
-
-"There is no exit?"
-
-"None."
-
-"Is it furnished?"
-
-"It was empty yesterday."
-
-"Then what on earth can he be doing? There is something which I don't
-understand in this manner. If ever a man was three parts mad with
-terror, that man's name is Pinner. What can have put the shivers on
-him?"
-
-"He suspects that we are detectives," I suggested.
-
-"That's it," cried Pycroft.
-
-Holmes shook his head. "He did not turn pale. He was pale when we
-entered the room," said he. "It is just possible that--"
-
-His words were interrupted by a sharp rat-tat from the direction of the
-inner door.
-
-"What the deuce is he knocking at his own door for?" cried the clerk.
-
-Again and much louder came the rat-tat-tat. We all gazed expectantly at
-the closed door. Glancing at Holmes, I saw his face turn rigid, and he
-leaned forward in intense excitement. Then suddenly came a low guggling,
-gargling sound, and a brisk drumming upon woodwork. Holmes sprang
-frantically across the room and pushed at the door. It was fastened on
-the inner side. Following his example, we threw ourselves upon it with
-all our weight. One hinge snapped, then the other, and down came the
-door with a crash. Rushing over it, we found ourselves in the inner
-room. It was empty.
-
-But it was only for a moment that we were at fault. At one corner, the
-corner nearest the room which we had left, there was a second door.
-Holmes sprang to it and pulled it open. A coat and waistcoat were lying
-on the floor, and from a hook behind the door, with his own braces
-round his neck, was hanging the managing director of the Franco-Midland
-Hardware Company. His knees were drawn up, his head hung at a dreadful
-angle to his body, and the clatter of his heels against the door made
-the noise which had broken in upon our conversation. In an instant I
-had caught him round the waist, and held him up while Holmes and Pycroft
-untied the elastic bands which had disappeared between the livid creases
-of skin. Then we carried him into the other room, where he lay with
-a clay-colored face, puffing his purple lips in and out with every
-breath--a dreadful wreck of all that he had been but five minutes
-before.
-
-"What do you think of him, Watson?" asked Holmes.
-
-I stooped over him and examined him. His pulse was feeble and
-intermittent, but his breathing grew longer, and there was a little
-shivering of his eyelids, which showed a thin white slit of ball
-beneath.
-
-"It has been touch and go with him," said I, "but he'll live now. Just
-open that window, and hand me the water carafe." I undid his collar,
-poured the cold water over his face, and raised and sank his arms until
-he drew a long, natural breath. "It's only a question of time now," said
-I, as I turned away from him.
-
-Holmes stood by the table, with his hands deep in his trouser's pockets
-and his chin upon his breast.
-
-"I suppose we ought to call the police in now," said he. "And yet I
-confess that I'd like to give them a complete case when they come."
-
-"It's a blessed mystery to me," cried Pycroft, scratching his head.
-"Whatever they wanted to bring me all the way up here for, and then--"
-
-"Pooh! All that is clear enough," said Holmes impatiently. "It is this
-last sudden move."
-
-"You understand the rest, then?"
-
-"I think that it is fairly obvious. What do you say, Watson?"
-
-I shrugged my shoulders. "I must confess that I am out of my depths,"
-said I.
-
-"Oh surely if you consider the events at first they can only point to
-one conclusion."
-
-"What do you make of them?"
-
-"Well, the whole thing hinges upon two points. The first is the making
-of Pycroft write a declaration by which he entered the service of this
-preposterous company. Do you not see how very suggestive that is?"
-
-"I am afraid I miss the point."
-
-"Well, why did they want him to do it? Not as a business matter, for
-these arrangements are usually verbal, and there was no earthly business
-reason why this should be an exception. Don't you see, my young friend,
-that they were very anxious to obtain a specimen of your handwriting,
-and had no other way of doing it?"
-
-"And why?"
-
-"Quite so. Why? When we answer that we have made some progress with our
-little problem. Why? There can be only one adequate reason. Some one
-wanted to learn to imitate your writing, and had to procure a specimen
-of it first. And now if we pass on to the second point we find that each
-throws light upon the other. That point is the request made by Pinner
-that you should not resign your place, but should leave the manager of
-this important business in the full expectation that a Mr. Hall Pycroft,
-whom he had never seen, was about to enter the office upon the Monday
-morning."
-
-"My God!" cried our client, "what a blind beetle I have been!"
-
-"Now you see the point about the handwriting. Suppose that some one
-turned up in your place who wrote a completely different hand from that
-in which you had applied for the vacancy, of course the game would have
-been up. But in the interval the rogue had learned to imitate you,
-and his position was therefore secure, as I presume that nobody in the
-office had ever set eyes upon you."
-
-"Not a soul," groaned Hall Pycroft.
-
-"Very good. Of course it was of the utmost importance to prevent you
-from thinking better of it, and also to keep you from coming into
-contact with any one who might tell you that your double was at work
-in Mawson's office. Therefore they gave you a handsome advance on your
-salary, and ran you off to the Midlands, where they gave you enough work
-to do to prevent your going to London, where you might have burst their
-little game up. That is all plain enough."
-
-"But why should this man pretend to be his own brother?"
-
-"Well, that is pretty clear also. There are evidently only two of them
-in it. The other is impersonating you at the office. This one acted
-as your engager, and then found that he could not find you an employer
-without admitting a third person into his plot. That he was most
-unwilling to do. He changed his appearance as far as he could, and
-trusted that the likeness, which you could not fail to observe, would be
-put down to a family resemblance. But for the happy chance of the gold
-stuffing, your suspicions would probably never have been aroused."
-
-Hall Pycroft shook his clinched hands in the air. "Good Lord!" he cried,
-"while I have been fooled in this way, what has this other Hall Pycroft
-been doing at Mawson's? What should we do, Mr. Holmes? Tell me what to
-do."
-
-"We must wire to Mawson's."
-
-"They shut at twelve on Saturdays."
-
-"Never mind. There may be some door-keeper or attendant--"
-
-"Ah yes, they keep a permanent guard there on account of the value of
-the securities that they hold. I remember hearing it talked of in the
-City."
-
-"Very good; we shall wire to him, and see if all is well, and if a clerk
-of your name is working there. That is clear enough; but what is not so
-clear is why at sight of us one of the rogues should instantly walk out
-of the room and hang himself."
-
-"The paper!" croaked a voice behind us. The man was sitting up, blanched
-and ghastly, with returning reason in his eyes, and hands which rubbed
-nervously at the broad red band which still encircled his throat.
-
-"The paper! Of course!" yelled Holmes, in a paroxysm of excitement.
-"Idiot that I was! I thought so much of our visit that the paper never
-entered my head for an instant. To be sure, the secret must be there."
-He flattened it out upon the table, and a cry of triumph burst from his
-lips. "Look at this, Watson," he cried. "It is a London paper, an early
-edition of the Evening Standard. Here is what we want. Look at the
-headlines: 'Crime in the City. Murder at Mawson & Williams's. Gigantic
-attempted Robbery. Capture of the Criminal.' Here, Watson, we are all
-equally anxious to hear it, so kindly read it aloud to us."
-
-It appeared from its position in the paper to have been the one event of
-importance in town, and the account of it ran in this way:
-
-"A desperate attempt at robbery, culminating in the death of one man and
-the capture of the criminal, occurred this afternoon in the City. For
-some time back Mawson & Williams, the famous financial house, have been
-the guardians of securities which amount in the aggregate to a sum of
-considerably over a million sterling. So conscious was the manager of
-the responsibility which devolved upon him in consequence of the great
-interests at stake that safes of the very latest construction have
-been employed, and an armed watchman has been left day and night in the
-building. It appears that last week a new clerk named Hall Pycroft was
-engaged by the firm. This person appears to have been none other that
-Beddington, the famous forger and cracksman, who, with his brother, had
-only recently emerged from a five years' spell of penal servitude. By
-some means, which are not yet clear, he succeeded in winning, under a
-false name, this official position in the office, which he utilized in
-order to obtain moulding of various locks, and a thorough knowledge of
-the position of the strong room and the safes.
-
-"It is customary at Mawson's for the clerks to leave at midday on
-Saturday. Sergeant Tuson, of the City Police, was somewhat surprised,
-therefore to see a gentleman with a carpet bag come down the steps at
-twenty minutes past one. His suspicions being aroused, the sergeant
-followed the man, and with the aid of Constable Pollock succeeded, after
-a most desperate resistance, in arresting him. It was at once clear
-that a daring and gigantic robbery had been committed. Nearly a hundred
-thousand pounds' worth of American railway bonds, with a large amount
-of scrip in mines and other companies, was discovered in the bag. On
-examining the premises the body of the unfortunate watchman was found
-doubled up and thrust into the largest of the safes, where it would not
-have been discovered until Monday morning had it not been for the prompt
-action of Sergeant Tuson. The man's skull had been shattered by a
-blow from a poker delivered from behind. There could be no doubt
-that Beddington had obtained entrance by pretending that he had left
-something behind him, and having murdered the watchman, rapidly rifled
-the large safe, and then made off with his booty. His brother, who
-usually works with him, has not appeared in this job as far as can
-at present be ascertained, although the police are making energetic
-inquiries as to his whereabouts."
-
-"Well, we may save the police some little trouble in that direction,"
-said Holmes, glancing at the haggard figure huddled up by the window.
-"Human nature is a strange mixture, Watson. You see that even a villain
-and murderer can inspire such affection that his brother turns to
-suicide when he learns that his neck is forfeited. However, we have
-no choice as to our action. The doctor and I will remain on guard, Mr.
-Pycroft, if you will have the kindness to step out for the police."
-
-
-
-
-Adventure IV. The "_Gloria Scott_"
-
-
-"I have some papers here," said my friend Sherlock Holmes, as we sat
-one winter's night on either side of the fire, "which I really think,
-Watson, that it would be worth your while to glance over. These are the
-documents in the extraordinary case of the Gloria Scott, and this is the
-message which struck Justice of the Peace Trevor dead with horror when
-he read it."
-
-He had picked from a drawer a little tarnished cylinder, and, undoing
-the tape, he handed me a short note scrawled upon a half-sheet of
-slate-gray paper.
-
-"The supply of game for London is going steadily up," it ran.
-"Head-keeper Hudson, we believe, has been now told to receive all orders
-for fly-paper and for preservation of your hen-pheasant's life."
-
-As I glanced up from reading this enigmatical message, I saw Holmes
-chuckling at the expression upon my face.
-
-"You look a little bewildered," said he.
-
-"I cannot see how such a message as this could inspire horror. It seems
-to me to be rather grotesque than otherwise."
-
-"Very likely. Yet the fact remains that the reader, who was a fine,
-robust old man, was knocked clean down by it as if it had been the butt
-end of a pistol."
-
-"You arouse my curiosity," said I. "But why did you say just now that
-there were very particular reasons why I should study this case?"
-
-"Because it was the first in which I was ever engaged."
-
-I had often endeavored to elicit from my companion what had first turned
-his mind in the direction of criminal research, but had never caught him
-before in a communicative humor. Now he sat forward in this arm-chair
-and spread out the documents upon his knees. Then he lit his pipe and
-sat for some time smoking and turning them over.
-
-"You never heard me talk of Victor Trevor?" he asked. "He was the only
-friend I made during the two years I was at college. I was never a very
-sociable fellow, Watson, always rather fond of moping in my rooms and
-working out my own little methods of thought, so that I never mixed
-much with the men of my year. Bar fencing and boxing I had few athletic
-tastes, and then my line of study was quite distinct from that of the
-other fellows, so that we had no points of contact at all. Trevor was
-the only man I knew, and that only through the accident of his bull
-terrier freezing on to my ankle one morning as I went down to chapel.
-
-"It was a prosaic way of forming a friendship, but it was effective.
-I was laid by the heels for ten days, but Trevor used to come in to
-inquire after me. At first it was only a minute's chat, but soon his
-visits lengthened, and before the end of the term we were close friends.
-He was a hearty, full-blooded fellow, full of spirits and energy,
-the very opposite to me in most respects, but we had some subjects
-in common, and it was a bond of union when I found that he was as
-friendless as I. Finally, he invited me down to his father's place at
-Donnithorpe, in Norfolk, and I accepted his hospitality for a month of
-the long vacation.
-
-"Old Trevor was evidently a man of some wealth and consideration, a
-J.P., and a landed proprietor. Donnithorpe is a little hamlet just to
-the north of Langmere, in the country of the Broads. The house was
-an old-fashioned, wide-spread, oak-beamed brick building, with a fine
-lime-lined avenue leading up to it. There was excellent wild-duck
-shooting in the fens, remarkably good fishing, a small but select
-library, taken over, as I understood, from a former occupant, and a
-tolerable cook, so that he would be a fastidious man who could not put
-in a pleasant month there.
-
-"Trevor senior was a widower, and my friend his only son.
-
-"There had been a daughter, I heard, but she had died of diphtheria
-while on a visit to Birmingham. The father interested me extremely.
-He was a man of little culture, but with a considerable amount of rude
-strength, both physically and mentally. He knew hardly any books, but
-he had traveled far, had seen much of the world. And had remembered
-all that he had learned. In person he was a thick-set, burly man with
-a shock of grizzled hair, a brown, weather-beaten face, and blue eyes
-which were keen to the verge of fierceness. Yet he had a reputation for
-kindness and charity on the country-side, and was noted for the leniency
-of his sentences from the bench.
-
-"One evening, shortly after my arrival, we were sitting over a glass of
-port after dinner, when young Trevor began to talk about those habits
-of observation and inference which I had already formed into a system,
-although I had not yet appreciated the part which they were to play in
-my life. The old man evidently thought that his son was exaggerating in
-his description of one or two trivial feats which I had performed.
-
-"'Come, now, Mr. Holmes,' said he, laughing good-humoredly. 'I'm an
-excellent subject, if you can deduce anything from me.'
-
-"'I fear there is not very much,' I answered; 'I might suggest that
-you have gone about in fear of some personal attack within the last
-twelvemonth.'
-
-"The laugh faded from his lips, and he stared at me in great surprise.
-
-"'Well, that's true enough,' said he. 'You know, Victor,' turning to his
-son, 'when we broke up that poaching gang they swore to knife us, and
-Sir Edward Holly has actually been attacked. I've always been on my
-guard since then, though I have no idea how you know it.'
-
-"'You have a very handsome stick,' I answered. 'By the inscription I
-observed that you had not had it more than a year. But you have taken
-some pains to bore the head of it and pour melted lead into the hole so
-as to make it a formidable weapon. I argued that you would not take such
-precautions unless you had some danger to fear.'
-
-"'Anything else?' he asked, smiling.
-
-"'You have boxed a good deal in your youth.'
-
-"'Right again. How did you know it? Is my nose knocked a little out of
-the straight?'
-
-"'No,' said I. 'It is your ears. They have the peculiar flattening and
-thickening which marks the boxing man.'
-
-"'Anything else?'
-
-"'You have done a good deal of digging by your callosities.'
-
-"'Made all my money at the gold fields.'
-
-"'You have been in New Zealand.'
-
-"'Right again.'
-
-"'You have visited Japan.'
-
-"'Quite true.'
-
-"'And you have been most intimately associated with some one whose
-initials were J. A., and whom you afterwards were eager to entirely
-forget.'
-
-"Mr. Trevor stood slowly up, fixed his large blue eyes upon me with a
-strange wild stare, and then pitched forward, with his face among the
-nutshells which strewed the cloth, in a dead faint.
-
-"You can imagine, Watson, how shocked both his son and I were. His
-attack did not last long, however, for when we undid his collar, and
-sprinkled the water from one of the finger-glasses over his face, he
-gave a gasp or two and sat up.
-
-"'Ah, boys,' said he, forcing a smile, 'I hope I haven't frightened you.
-Strong as I look, there is a weak place in my heart, and it does not
-take much to knock me over. I don't know how you manage this, Mr.
-Holmes, but it seems to me that all the detectives of fact and of fancy
-would be children in your hands. That's your line of life, sir, and you
-may take the word of a man who has seen something of the world.'
-
-"And that recommendation, with the exaggerated estimate of my ability
-with which he prefaced it, was, if you will believe me, Watson, the very
-first thing which ever made me feel that a profession might be made
-out of what had up to that time been the merest hobby. At the moment,
-however, I was too much concerned at the sudden illness of my host to
-think of anything else.
-
-"'I hope that I have said nothing to pain you?' said I.
-
-"'Well, you certainly touched upon rather a tender point. Might I ask
-how you know, and how much you know?' He spoke now in a half-jesting
-fashion, but a look of terror still lurked at the back of his eyes.
-
-"'It is simplicity itself,' said I. 'When you bared your arm to draw
-that fish into the boat I saw that J. A. Had been tattooed in the bend
-of the elbow. The letters were still legible, but it was perfectly clear
-from their blurred appearance, and from the staining of the skin round
-them, that efforts had been made to obliterate them. It was obvious,
-then, that those initials had once been very familiar to you, and that
-you had afterwards wished to forget them.'
-
-"What an eye you have!" he cried, with a sigh of relief. 'It is just as
-you say. But we won't talk of it. Of all ghosts the ghosts of our old
-lovers are the worst. Come into the billiard-room and have a quiet
-cigar.'
-
-
-"From that day, amid all his cordiality, there was always a touch of
-suspicion in Mr. Trevor's manner towards me. Even his son remarked it.
-'You've given the governor such a turn,' said he, 'that he'll never be
-sure again of what you know and what you don't know.' He did not mean
-to show it, I am sure, but it was so strongly in his mind that it peeped
-out at every action. At last I became so convinced that I was causing
-him uneasiness that I drew my visit to a close. On the very day,
-however, before I left, and incident occurred which proved in the sequel
-to be of importance.
-
-"We were sitting out upon the lawn on garden chairs, the three of us,
-basking in the sun and admiring the view across the Broads, when a maid
-came out to say that there was a man at the door who wanted to see Mr.
-Trevor.
-
-"'What is his name?' asked my host.
-
-"'He would not give any.'
-
-"'What does he want, then?'
-
-"'He says that you know him, and that he only wants a moment's
-conversation.'
-
-"'Show him round here.' An instant afterwards there appeared a little
-wizened fellow with a cringing manner and a shambling style of
-walking. He wore an open jacket, with a splotch of tar on the sleeve,
-a red-and-black check shirt, dungaree trousers, and heavy boots badly
-worn. His face was thin and brown and crafty, with a perpetual smile
-upon it, which showed an irregular line of yellow teeth, and his
-crinkled hands were half closed in a way that is distinctive of sailors.
-As he came slouching across the lawn I heard Mr. Trevor make a sort of
-hiccoughing noise in his throat, and jumping out of his chair, he ran
-into the house. He was back in a moment, and I smelt a strong reek of
-brandy as he passed me.
-
-"'Well, my man,' said he. 'What can I do for you?'
-
-"The sailor stood looking at him with puckered eyes, and with the same
-loose-lipped smile upon his face.
-
-"'You don't know me?' he asked.
-
-"'Why, dear me, it is surely Hudson,' said Mr. Trevor in a tone of
-surprise.
-
-"'Hudson it is, sir,' said the seaman. 'Why, it's thirty year and more
-since I saw you last. Here you are in your house, and me still picking
-my salt meat out of the harness cask.'
-
-"'Tut, you will find that I have not forgotten old times,' cried Mr.
-Trevor, and, walking towards the sailor, he said something in a low
-voice. 'Go into the kitchen,' he continued out loud, 'and you will get
-food and drink. I have no doubt that I shall find you a situation.'
-
-"'Thank you, sir,' said the seaman, touching his fore-lock. 'I'm just
-off a two-yearer in an eight-knot tramp, short-handed at that, and I
-wants a rest. I thought I'd get it either with Mr. Beddoes or with you.'
-
-"'Ah!' cried Trevor. 'You know where Mr. Beddoes is?'
-
-"'Bless you, sir, I know where all my old friends are,' said the
-fellow with a sinister smile, and he slouched off after the maid to the
-kitchen. Mr. Trevor mumbled something to us about having been shipmate
-with the man when he was going back to the diggings, and then, leaving
-us on the lawn, he went indoors. An hour later, when we entered the
-house, we found him stretched dead drunk upon the dining-room sofa. The
-whole incident left a most ugly impression upon my mind, and I was
-not sorry next day to leave Donnithorpe behind me, for I felt that my
-presence must be a source of embarrassment to my friend.
-
-"All this occurred during the first month of the long vacation. I went
-up to my London rooms, where I spent seven weeks working out a few
-experiments in organic chemistry. One day, however, when the autumn was
-far advanced and the vacation drawing to a close, I received a telegram
-from my friend imploring me to return to Donnithorpe, and saying that
-he was in great need of my advice and assistance. Of course I dropped
-everything and set out for the North once more.
-
-"He met me with the dog-cart at the station, and I saw at a glance that
-the last two months had been very trying ones for him. He had grown thin
-and careworn, and had lost the loud, cheery manner for which he had been
-remarkable.
-
-"'The governor is dying,' were the first words he said.
-
-"'Impossible!' I cried. 'What is the matter?'
-
-"'Apoplexy. Nervous shock, He's been on the verge all day. I doubt if we
-shall find him alive.'
-
-"I was, as you may think, Watson, horrified at this unexpected news.
-
-"'What has caused it?' I asked.
-
-"'Ah, that is the point. Jump in and we can talk it over while we drive.
-You remember that fellow who came upon the evening before you left us?'
-
-"'Perfectly.'
-
-"'Do you know who it was that we let into the house that day?'
-
-"'I have no idea.'
-
-"'It was the devil, Holmes,' he cried.
-
-"I stared at him in astonishment.
-
-"'Yes, it was the devil himself. We have not had a peaceful hour
-since--not one. The governor has never held up his head from that
-evening, and now the life has been crushed out of him and his heart
-broken, all through this accursed Hudson.'
-
-"'What power had he, then?'
-
-"'Ah, that is what I would give so much to know. The kindly, charitable,
-good old governor--how could he have fallen into the clutches of such a
-ruffian! But I am so glad that you have come, Holmes. I trust very much
-to your judgment and discretion, and I know that you will advise me for
-the best.'
-
-"We were dashing along the smooth white country road, with the long
-stretch of the Broads in front of us glimmering in the red light of the
-setting sun. From a grove upon our left I could already see the high
-chimneys and the flag-staff which marked the squire's dwelling.
-
-"'My father made the fellow gardener,' said my companion, 'and then, as
-that did not satisfy him, he was promoted to be butler. The house seemed
-to be at his mercy, and he wandered about and did what he chose in it.
-The maids complained of his drunken habits and his vile language. The
-dad raised their wages all round to recompense them for the annoyance.
-The fellow would take the boat and my father's best gun and treat
-himself to little shooting trips. And all this with such a sneering,
-leering, insolent face that I would have knocked him down twenty times
-over if he had been a man of my own age. I tell you, Holmes, I have
-had to keep a tight hold upon myself all this time; and now I am asking
-myself whether, if I had let myself go a little more, I might not have
-been a wiser man.
-
-"'Well, matters went from bad to worse with us, and this animal Hudson
-became more and more intrusive, until at last, on making some insolent
-reply to my father in my presence one day, I took him by the shoulders
-and turned him out of the room. He slunk away with a livid face and two
-venomous eyes which uttered more threats than his tongue could do. I
-don't know what passed between the poor dad and him after that, but the
-dad came to me next day and asked me whether I would mind apologizing to
-Hudson. I refused, as you can imagine, and asked my father how he
-could allow such a wretch to take such liberties with himself and his
-household.
-
-"'"Ah, my boy," said he, "it is all very well to talk, but you don't
-know how I am placed. But you shall know, Victor. I'll see that you
-shall know, come what may. You wouldn't believe harm of your poor old
-father, would you, lad?" He was very much moved, and shut himself up
-in the study all day, where I could see through the window that he was
-writing busily.
-
-"'That evening there came what seemed to me to be a grand release,
-for Hudson told us that he was going to leave us. He walked into the
-dining-room as we sat after dinner, and announced his intention in the
-thick voice of a half-drunken man.
-
-"'"I've had enough of Norfolk," said he. "I'll run down to Mr. Beddoes
-in Hampshire. He'll be as glad to see me as you were, I dare say."
-
-"'"You're not going away in an unkind spirit, Hudson, I hope," said my
-father, with a tameness which made my blood boil.
-
-"'"I've not had my 'pology," said he sulkily, glancing in my direction.
-
-"'"Victor, you will acknowledge that you have used this worthy fellow
-rather roughly," said the dad, turning to me.
-
-"'"On the contrary, I think that we have both shown extraordinary
-patience towards him," I answered.
-
-"'"Oh, you do, do you?" he snarls. "Very good, mate. We'll see about
-that!"
-
-"'He slouched out of the room, and half an hour afterwards left the
-house, leaving my father in a state of pitiable nervousness. Night after
-night I heard him pacing his room, and it was just as he was recovering
-his confidence that the blow did at last fall.'
-
-"'And how?' I asked eagerly.
-
-"'In a most extraordinary fashion. A letter arrived for my father
-yesterday evening, bearing the Fordingbridge post-mark. My father read
-it, clapped both his hands to his head, and began running round the room
-in little circles like a man who has been driven out of his senses. When
-I at last drew him down on to the sofa, his mouth and eyelids were all
-puckered on one side, and I saw that he had a stroke. Dr. Fordham came
-over at once. We put him to bed; but the paralysis has spread, he has
-shown no sign of returning consciousness, and I think that we shall
-hardly find him alive.'
-
-"'You horrify me, Trevor!' I cried. 'What then could have been in this
-letter to cause so dreadful a result?'
-
-"'Nothing. There lies the inexplicable part of it. The message was
-absurd and trivial. Ah, my God, it is as I feared!'
-
-"As he spoke we came round the curve of the avenue, and saw in the
-fading light that every blind in the house had been drawn down. As
-we dashed up to the door, my friend's face convulsed with grief, a
-gentleman in black emerged from it.
-
-"'When did it happen, doctor?' asked Trevor.
-
-"'Almost immediately after you left.'
-
-"'Did he recover consciousness?'
-
-"'For an instant before the end.'
-
-"'Any message for me.'
-
-"'Only that the papers were in the back drawer of the Japanese cabinet.'
-
-"My friend ascended with the doctor to the chamber of death, while I
-remained in the study, turning the whole matter over and over in my
-head, and feeling as sombre as ever I had done in my life. What was the
-past of this Trevor, pugilist, traveler, and gold-digger, and how had he
-placed himself in the power of this acid-faced seaman? Why, too, should
-he faint at an allusion to the half-effaced initials upon his arm, and
-die of fright when he had a letter from Fordingham? Then I remembered
-that Fordingham was in Hampshire, and that this Mr. Beddoes, whom the
-seaman had gone to visit and presumably to blackmail, had also been
-mentioned as living in Hampshire. The letter, then, might either come
-from Hudson, the seaman, saying that he had betrayed the guilty secret
-which appeared to exist, or it might come from Beddoes, warning an old
-confederate that such a betrayal was imminent. So far it seemed clear
-enough. But then how could this letter be trivial and grotesque, as
-describe by the son? He must have misread it. If so, it must have been
-one of those ingenious secret codes which mean one thing while they seem
-to mean another. I must see this letter. If there were a hidden meaning
-in it, I was confident that I could pluck it forth. For an hour I sat
-pondering over it in the gloom, until at last a weeping maid brought in
-a lamp, and close at her heels came my friend Trevor, pale but composed,
-with these very papers which lie upon my knee held in his grasp. He sat
-down opposite to me, drew the lamp to the edge of the table, and handed
-me a short note scribbled, as you see, upon a single sheet of gray
-paper. 'The supply of game for London is going steadily up,' it ran.
-'Head-keeper Hudson, we believe, has been now told to receive all orders
-for fly-paper and for preservation of your hen-pheasant's life.'
-
-"I dare say my face looked as bewildered as yours did just now when
-first I read this message. Then I reread it very carefully. It was
-evidently as I had thought, and some secret meaning must lie buried
-in this strange combination of words. Or could it be that there was
-a prearranged significance to such phrases as 'fly-paper' and
-'hen-pheasant'? Such a meaning would be arbitrary and could not be
-deduced in any way. And yet I was loath to believe that this was the
-case, and the presence of the word Hudson seemed to show that the
-subject of the message was as I had guessed, and that it was from
-Beddoes rather than the sailor. I tried it backwards, but the
-combination 'life pheasant's hen' was not encouraging. Then I tried
-alternate words, but neither 'the of for' nor 'supply game London'
-promised to throw any light upon it.
-
-"And then in an instant the key of the riddle was in my hands, and I saw
-that every third word, beginning with the first, would give a message
-which might well drive old Trevor to despair.
-
-"It was short and terse, the warning, as I now read it to my companion:
-
-"'The game is up. Hudson has told all. Fly for your life.'
-
-"Victor Trevor sank his face into his shaking hands. 'It must be that,
-I suppose,' said he. "This is worse than death, for it means disgrace
-as well. But what is the meaning of these "head-keepers" and
-"hen-pheasants"?'
-
-"'It means nothing to the message, but it might mean a good deal to us
-if we had no other means of discovering the sender. You see that he has
-begun by writing "The...game...is," and so on. Afterwards he had, to
-fulfill the prearranged cipher, to fill in any two words in each space.
-He would naturally use the first words which came to his mind, and
-if there were so many which referred to sport among them, you may
-be tolerably sure that he is either an ardent shot or interested in
-breeding. Do you know anything of this Beddoes?'
-
-"'Why, now that you mention it,' said he, 'I remember that my poor
-father used to have an invitation from him to shoot over his preserves
-every autumn.'
-
-"'Then it is undoubtedly from him that the note comes,' said I. 'It only
-remains for us to find out what this secret was which the sailor Hudson
-seems to have held over the heads of these two wealthy and respected
-men.'
-
-"'Alas, Holmes, I fear that it is one of sin and shame!' cried my
-friend. 'But from you I shall have no secrets. Here is the statement
-which was drawn up by my father when he knew that the danger from Hudson
-had become imminent. I found it in the Japanese cabinet, as he told the
-doctor. Take it and read it to me, for I have neither the strength nor
-the courage to do it myself.'
-
-"These are the very papers, Watson, which he handed to me, and I will
-read them to you, as I read them in the old study that night to him.
-They are endorsed outside, as you see, 'Some particulars of the voyage
-of the bark _Gloria Scott_, from her leaving Falmouth on the 8th
-October, 1855, to her destruction in N. Lat. 15 degrees 20', W. Long.
-25 degrees 14' on Nov. 6th.' It is in the form of a letter, and runs in
-this way:
-
-"'My dear, dear son, now that approaching disgrace begins to darken the
-closing years of my life, I can write with all truth and honesty that it
-is not the terror of the law, it is not the loss of my position in the
-county, nor is it my fall in the eyes of all who have known me, which
-cuts me to the heart; but it is the thought that you should come to
-blush for me--you who love me and who have seldom, I hope, had reason to
-do other than respect me. But if the blow falls which is forever hanging
-over me, then I should wish you to read this, that you may know straight
-from me how far I have been to blame. On the other hand, if all should
-go well (which may kind God Almighty grant!), then if by any chance this
-paper should be still undestroyed and should fall into your hands, I
-conjure you, by all you hold sacred, by the memory of your dear mother,
-and by the love which had been between us, to hurl it into the fire and
-to never give one thought to it again.
-
-"'If then your eye goes on to read this line, I know that I shall
-already have been exposed and dragged from my home, or as is more
-likely, for you know that my heart is weak, by lying with my tongue
-sealed forever in death. In either case the time for suppression is
-past, and every word which I tell you is the naked truth, and this I
-swear as I hope for mercy.
-
-"'My name, dear lad, is not Trevor. I was James Armitage in my younger
-days, and you can understand now the shock that it was to me a few weeks
-ago when your college friend addressed me in words which seemed to imply
-that he had surprised my secret. As Armitage it was that I entered a
-London banking-house, and as Armitage I was convicted of breaking my
-country's laws, and was sentenced to transportation. Do not think very
-harshly of me, laddie. It was a debt of honor, so called, which I had
-to pay, and I used money which was not my own to do it, in the certainty
-that I could replace it before there could be any possibility of its
-being missed. But the most dreadful ill-luck pursued me. The money which
-I had reckoned upon never came to hand, and a premature examination of
-accounts exposed my deficit. The case might have been dealt leniently
-with, but the laws were more harshly administered thirty years ago than
-now, and on my twenty-third birthday I found myself chained as a felon
-with thirty-seven other convicts in 'tween-decks of the bark _Gloria
-Scott_, bound for Australia.
-
-"'It was the year '55 when the Crimean war was at its height, and the
-old convict ships had been largely used as transports in the Black
-Sea. The government was compelled, therefore, to use smaller and less
-suitable vessels for sending out their prisoners. The Gloria Scott
-had been in the Chinese tea-trade, but she was an old-fashioned,
-heavy-bowed, broad-beamed craft, and the new clippers had cut her
-out. She was a five-hundred-ton boat; and besides her thirty-eight
-jail-birds, she carried twenty-six of a crew, eighteen soldiers, a
-captain, three mates, a doctor, a chaplain, and four warders. Nearly a
-hundred souls were in her, all told, when we set sail from Falmouth.
-
-"'The partitions between the cells of the convicts, instead of being of
-thick oak, as is usual in convict-ships, were quite thin and frail.
-The man next to me, upon the aft side, was one whom I had particularly
-noticed when we were led down the quay. He was a young man with a
-clear, hairless face, a long, thin nose, and rather nut-cracker jaws.
-He carried his head very jauntily in the air, had a swaggering style
-of walking, and was, above all else, remarkable for his extraordinary
-height. I don't think any of our heads would have come up to his
-shoulder, and I am sure that he could not have measured less than six
-and a half feet. It was strange among so many sad and weary faces to see
-one which was full of energy and resolution. The sight of it was to me
-like a fire in a snow-storm. I was glad, then, to find that he was my
-neighbor, and gladder still when, in the dead of the night, I heard a
-whisper close to my ear, and found that he had managed to cut an opening
-in the board which separated us.
-
-"'"Hullo, chummy!" said he, "what's your name, and what are you here
-for?"
-
-"'I answered him, and asked in turn who I was talking with.
-
-"'"I'm Jack Prendergast," said he, "and by God! You'll learn to bless my
-name before you've done with me."
-
-"'I remembered hearing of his case, for it was one which had made an
-immense sensation throughout the country some time before my own arrest.
-He was a man of good family and of great ability, but of incurably
-vicious habits, who had by an ingenious system of fraud obtained huge
-sums of money from the leading London merchants.
-
-"'"Ha, ha! You remember my case!" said he proudly.
-
-"'"Very well, indeed."
-
-"'"Then maybe you remember something queer about it?"
-
-"'"What was that, then?"
-
-"'"I'd had nearly a quarter of a million, hadn't I?"
-
-"'"So it was said."
-
-"'"But none was recovered, eh?"
-
-"'"No."
-
-"'"Well, where d'ye suppose the balance is?" he asked.
-
-"'"I have no idea," said I.
-
-"'"Right between my finger and thumb," he cried. "By God! I've got more
-pounds to my name than you've hairs on your head. And if you've money,
-my son, and know how to handle it and spread it, you can do anything.
-Now, you don't think it likely that a man who could do anything is going
-to wear his breeches out sitting in the stinking hold of a rat-gutted,
-beetle-ridden, mouldy old coffin of a Chin China coaster. No, sir, such
-a man will look after himself and will look after his chums. You may lay
-to that! You hold on to him, and you may kiss the book that he'll haul
-you through."
-
-"'That was his style of talk, and at first I thought it meant nothing;
-but after a while, when he had tested me and sworn me in with all
-possible solemnity, he let me understand that there really was a plot
-to gain command of the vessel. A dozen of the prisoners had hatched it
-before they came aboard, Prendergast was the leader, and his money was
-the motive power.
-
-"'"I'd a partner," said he, "a rare good man, as true as a stock to a
-barrel. He's got the dibbs, he has, and where do you think he is at this
-moment? Why, he's the chaplain of this ship--the chaplain, no less! He
-came aboard with a black coat, and his papers right, and money enough in
-his box to buy the thing right up from keel to main-truck. The crew
-are his, body and soul. He could buy 'em at so much a gross with a cash
-discount, and he did it before ever they signed on. He's got two of the
-warders and Mereer, the second mate, and he'd get the captain himself,
-if he thought him worth it."
-
-"'"What are we to do, then?" I asked.
-
-"'"What do you think?" said he. "We'll make the coats of some of these
-soldiers redder than ever the tailor did."
-
-"'"But they are armed," said I.
-
-"'"And so shall we be, my boy. There's a brace of pistols for every
-mother's son of us, and if we can't carry this ship, with the crew at
-our back, it's time we were all sent to a young misses' boarding-school.
-You speak to your mate upon the left to-night, and see if he is to be
-trusted."
-
-"'I did so, and found my other neighbor to be a young fellow in much
-the same position as myself, whose crime had been forgery. His name was
-Evans, but he afterwards changed it, like myself, and he is now a rich
-and prosperous man in the south of England. He was ready enough to join
-the conspiracy, as the only means of saving ourselves, and before we had
-crossed the Bay there were only two of the prisoners who were not in the
-secret. One of these was of weak mind, and we did not dare to trust him,
-and the other was suffering from jaundice, and could not be of any use
-to us.
-
-"'From the beginning there was really nothing to prevent us from taking
-possession of the ship. The crew were a set of ruffians, specially
-picked for the job. The sham chaplain came into our cells to exhort us,
-carrying a black bag, supposed to be full of tracts, and so often did
-he come that by the third day we had each stowed away at the foot of our
-beds a file, a brace of pistols, a pound of powder, and twenty slugs.
-Two of the warders were agents of Prendergast, and the second mate was
-his right-hand man. The captain, the two mates, two warders Lieutenant
-Martin, his eighteen soldiers, and the doctor were all that we had
-against us. Yet, safe as it was, we determined to neglect no precaution,
-and to make our attack suddenly by night. It came, however, more quickly
-than we expected, and in this way.
-
-"'One evening, about the third week after our start, the doctor had come
-down to see one of the prisoners who was ill, and putting his hand down
-on the bottom of his bunk he felt the outline of the pistols. If he had
-been silent he might have blown the whole thing, but he was a nervous
-little chap, so he gave a cry of surprise and turned so pale that the
-man knew what was up in an instant and seized him. He was gagged before
-he could give the alarm, and tied down upon the bed. He had unlocked
-the door that led to the deck, and we were through it in a rush. The two
-sentries were shot down, and so was a corporal who came running to see
-what was the matter. There were two more soldiers at the door of the
-state-room, and their muskets seemed not to be loaded, for they never
-fired upon us, and they were shot while trying to fix their bayonets.
-Then we rushed on into the captain's cabin, but as we pushed open the
-door there was an explosion from within, and there he lay with his
-brains smeared over the chart of the Atlantic which was pinned upon the
-table, while the chaplain stood with a smoking pistol in his hand at
-his elbow. The two mates had both been seized by the crew, and the whole
-business seemed to be settled.
-
-"'The state-room was next the cabin, and we flocked in there and flopped
-down on the settees, all speaking together, for we were just mad with
-the feeling that we were free once more. There were lockers all round,
-and Wilson, the sham chaplain, knocked one of them in, and pulled out a
-dozen of brown sherry. We cracked off the necks of the bottles, poured
-the stuff out into tumblers, and were just tossing them off, when in an
-instant without warning there came the roar of muskets in our ears, and
-the saloon was so full of smoke that we could not see across the table.
-When it cleared again the place was a shambles. Wilson and eight others
-were wriggling on the top of each other on the floor, and the blood and
-the brown sherry on that table turn me sick now when I think of it. We
-were so cowed by the sight that I think we should have given the job up
-if it had not been for Prendergast. He bellowed like a bull and rushed
-for the door with all that were left alive at his heels. Out we ran,
-and there on the poop were the lieutenant and ten of his men. The swing
-skylights above the saloon table had been a bit open, and they had fired
-on us through the slit. We got on them before they could load, and they
-stood to it like men; but we had the upper hand of them, and in five
-minutes it was all over. My God! Was there ever a slaughter-house
-like that ship! Prendergast was like a raging devil, and he picked the
-soldiers up as if they had been children and threw them overboard alive
-or dead. There was one sergeant that was horribly wounded and yet kept
-on swimming for a surprising time, until some one in mercy blew out his
-brains. When the fighting was over there was no one left of our enemies
-except just the warders the mates, and the doctor.
-
-"'It was over them that the great quarrel arose. There were many of us
-who were glad enough to win back our freedom, and yet who had no wish
-to have murder on our souls. It was one thing to knock the soldiers over
-with their muskets in their hands, and it was another to stand by while
-men were being killed in cold blood. Eight of us, five convicts and
-three sailors, said that we would not see it done. But there was no
-moving Prendergast and those who were with him. Our only chance of
-safety lay in making a clean job of it, said he, and he would not leave
-a tongue with power to wag in a witness-box. It nearly came to our
-sharing the fate of the prisoners, but at last he said that if we wished
-we might take a boat and go. We jumped at the offer, for we were already
-sick of these bloodthirsty doings, and we saw that there would be worse
-before it was done. We were given a suit of sailor togs each, a barrel
-of water, two casks, one of junk and one of biscuits, and a compass.
-Prendergast threw us over a chart, told us that we were shipwrecked
-mariners whose ship had foundered in Lat. 15 degrees and Long 25 degrees
-west, and then cut the painter and let us go.
-
-"'And now I come to the most surprising part of my story, my dear son.
-The seamen had hauled the fore-yard aback during the rising, but now as
-we left them they brought it square again, and as there was a light wind
-from the north and east the bark began to draw slowly away from us. Our
-boat lay, rising and falling, upon the long, smooth rollers, and Evans
-and I, who were the most educated of the party, were sitting in the
-sheets working out our position and planning what coast we should make
-for. It was a nice question, for the Cape de Verdes were about five
-hundred miles to the north of us, and the African coast about seven
-hundred to the east. On the whole, as the wind was coming round to the
-north, we thought that Sierra Leone might be best, and turned our head
-in that direction, the bark being at that time nearly hull down on our
-starboard quarter. Suddenly as we looked at her we saw a dense black
-cloud of smoke shoot up from her, which hung like a monstrous tree upon
-the sky line. A few seconds later a roar like thunder burst upon our
-ears, and as the smoke thinned away there was no sign left of the
-_Gloria Scott_. In an instant we swept the boat's head round again and
-pulled with all our strength for the place where the haze still trailing
-over the water marked the scene of this catastrophe.
-
-"'It was a long hour before we reached it, and at first we feared that
-we had come too late to save any one. A splintered boat and a number of
-crates and fragments of spars rising and falling on the waves showed us
-where the vessel had foundered; but there was no sign of life, and we
-had turned away in despair when we heard a cry for help, and saw at some
-distance a piece of wreckage with a man lying stretched across it. When
-we pulled him aboard the boat he proved to be a young seaman of the
-name of Hudson, who was so burned and exhausted that he could give us no
-account of what had happened until the following morning.
-
-"'It seemed that after we had left, Prendergast and his gang had
-proceeded to put to death the five remaining prisoners. The two warders
-had been shot and thrown overboard, and so also had the third mate.
-Prendergast then descended into the 'tween-decks and with his own hands
-cut the throat of the unfortunate surgeon. There only remained the first
-mate, who was a bold and active man. When he saw the convict approaching
-him with the bloody knife in his hand he kicked off his bonds, which he
-had somehow contrived to loosen, and rushing down the deck he plunged
-into the after-hold. A dozen convicts, who descended with their pistols
-in search of him, found him with a match-box in his hand seated beside
-an open powder-barrel, which was one of a hundred carried on board, and
-swearing that he would blow all hands up if he were in any way molested.
-An instant later the explosion occurred, though Hudson thought it was
-caused by the misdirected bullet of one of the convicts rather than the
-mate's match. Be the cause what it may, it was the end of the _Gloria
-Scott_ and of the rabble who held command of her.
-
-"'Such, in a few words, my dear boy, is the history of this terrible
-business in which I was involved. Next day we were picked up by the brig
-_Hotspur_, bound for Australia, whose captain found no difficulty in
-believing that we were the survivors of a passenger ship which had
-foundered. The transport ship Gloria Scott was set down by the Admiralty
-as being lost at sea, and no word has ever leaked out as to her true
-fate. After an excellent voyage the _Hotspur_ landed us at Sydney, where
-Evans and I changed our names and made our way to the diggings,
-where, among the crowds who were gathered from all nations, we had no
-difficulty in losing our former identities. The rest I need not relate.
-We prospered, we traveled, we came back as rich colonials to England,
-and we bought country estates. For more than twenty years we have
-led peaceful and useful lives, and we hoped that our past was forever
-buried. Imagine, then, my feelings when in the seaman who came to us I
-recognized instantly the man who had been picked off the wreck. He had
-tracked us down somehow, and had set himself to live upon our fears. You
-will understand now how it was that I strove to keep the peace with him,
-and you will in some measure sympathize with me in the fears which fill
-me, now that he has gone from me to his other victim with threats upon
-his tongue.'
-
-"Underneath is written in a hand so shaky as to be hardly legible,
-'Beddoes writes in cipher to say H. Has told all. Sweet Lord, have mercy
-on our souls!'
-
-"That was the narrative which I read that night to young Trevor, and I
-think, Watson, that under the circumstances it was a dramatic one.
-The good fellow was heart-broken at it, and went out to the Terai tea
-planting, where I hear that he is doing well. As to the sailor and
-Beddoes, neither of them was ever heard of again after that day on which
-the letter of warning was written. They both disappeared utterly and
-completely. No complaint had been lodged with the police, so that
-Beddoes had mistaken a threat for a deed. Hudson had been seen lurking
-about, and it was believed by the police that he had done away with
-Beddoes and had fled. For myself I believe that the truth was exactly
-the opposite. I think that it is most probable that Beddoes, pushed to
-desperation and believing himself to have been already betrayed, had
-revenged himself upon Hudson, and had fled from the country with as much
-money as he could lay his hands on. Those are the facts of the case,
-Doctor, and if they are of any use to your collection, I am sure that
-they are very heartily at your service."
-
-
-
-
-Adventure V. The Musgrave Ritual
-
-
-An anomaly which often struck me in the character of my friend Sherlock
-Holmes was that, although in his methods of thought he was the neatest
-and most methodical of mankind, and although also he affected a certain
-quiet primness of dress, he was none the less in his personal habits one
-of the most untidy men that ever drove a fellow-lodger to distraction.
-Not that I am in the least conventional in that respect myself. The
-rough-and-tumble work in Afghanistan, coming on the top of a natural
-Bohemianism of disposition, has made me rather more lax than befits a
-medical man. But with me there is a limit, and when I find a man who
-keeps his cigars in the coal-scuttle, his tobacco in the toe end of
-a Persian slipper, and his unanswered correspondence transfixed by a
-jack-knife into the very centre of his wooden mantelpiece, then I begin
-to give myself virtuous airs. I have always held, too, that pistol
-practice should be distinctly an open-air pastime; and when Holmes, in
-one of his queer humors, would sit in an arm-chair with his hair-trigger
-and a hundred Boxer cartridges, and proceed to adorn the opposite
-wall with a patriotic V. R. done in bullet-pocks, I felt strongly that
-neither the atmosphere nor the appearance of our room was improved by
-it.
-
-Our chambers were always full of chemicals and of criminal relics which
-had a way of wandering into unlikely positions, and of turning up in
-the butter-dish or in even less desirable places. But his papers were
-my great crux. He had a horror of destroying documents, especially those
-which were connected with his past cases, and yet it was only once in
-every year or two that he would muster energy to docket and arrange
-them; for, as I have mentioned somewhere in these incoherent memoirs,
-the outbursts of passionate energy when he performed the remarkable
-feats with which his name is associated were followed by reactions of
-lethargy during which he would lie about with his violin and his books,
-hardly moving save from the sofa to the table. Thus month after month
-his papers accumulated, until every corner of the room was stacked with
-bundles of manuscript which were on no account to be burned, and which
-could not be put away save by their owner. One winter's night, as we
-sat together by the fire, I ventured to suggest to him that, as he had
-finished pasting extracts into his common-place book, he might employ
-the next two hours in making our room a little more habitable. He could
-not deny the justice of my request, so with a rather rueful face he went
-off to his bedroom, from which he returned presently pulling a large tin
-box behind him. This he placed in the middle of the floor and, squatting
-down upon a stool in front of it, he threw back the lid. I could see
-that it was already a third full of bundles of paper tied up with red
-tape into separate packages.
-
-"There are cases enough here, Watson," said he, looking at me with
-mischievous eyes. "I think that if you knew all that I had in this box
-you would ask me to pull some out instead of putting others in."
-
-"These are the records of your early work, then?" I asked. "I have often
-wished that I had notes of those cases."
-
-"Yes, my boy, these were all done prematurely before my biographer
-had come to glorify me." He lifted bundle after bundle in a tender,
-caressing sort of way. "They are not all successes, Watson," said he.
-"But there are some pretty little problems among them. Here's the record
-of the Tarleton murders, and the case of Vamberry, the wine merchant,
-and the adventure of the old Russian woman, and the singular affair
-of the aluminium crutch, as well as a full account of Ricoletti of the
-club-foot, and his abominable wife. And here--ah, now, this really is
-something a little recherché."
-
-He dived his arm down to the bottom of the chest, and brought up a small
-wooden box with a sliding lid, such as children's toys are kept in. From
-within he produced a crumpled piece of paper, and old-fashioned brass
-key, a peg of wood with a ball of string attached to it, and three rusty
-old disks of metal.
-
-"Well, my boy, what do you make of this lot?" he asked, smiling at my
-expression.
-
-"It is a curious collection."
-
-"Very curious, and the story that hangs round it will strike you as
-being more curious still."
-
-"These relics have a history then?"
-
-"So much so that they are history."
-
-"What do you mean by that?"
-
-Sherlock Holmes picked them up one by one, and laid them along the edge
-of the table. Then he reseated himself in his chair and looked them over
-with a gleam of satisfaction in his eyes.
-
-"These," said he, "are all that I have left to remind me of the
-adventure of the Musgrave Ritual."
-
-I had heard him mention the case more than once, though I had never been
-able to gather the details. "I should be so glad," said I, "if you would
-give me an account of it."
-
-"And leave the litter as it is?" he cried, mischievously. "Your tidiness
-won't bear much strain after all, Watson. But I should be glad that you
-should add this case to your annals, for there are points in it which
-make it quite unique in the criminal records of this or, I believe,
-of any other country. A collection of my trifling achievements would
-certainly be incomplete which contained no account of this very singular
-business.
-
-"You may remember how the affair of the _Gloria Scott_, and my
-conversation with the unhappy man whose fate I told you of, first turned
-my attention in the direction of the profession which has become my
-life's work. You see me now when my name has become known far and
-wide, and when I am generally recognized both by the public and by the
-official force as being a final court of appeal in doubtful cases.
-Even when you knew me first, at the time of the affair which you have
-commemorated in 'A Study in Scarlet,' I had already established a
-considerable, though not a very lucrative, connection. You can hardly
-realize, then, how difficult I found it at first, and how long I had to
-wait before I succeeded in making any headway.
-
-"When I first came up to London I had rooms in Montague Street, just
-round the corner from the British Museum, and there I waited, filling in
-my too abundant leisure time by studying all those branches of science
-which might make me more efficient. Now and again cases came in my way,
-principally through the introduction of old fellow-students, for during
-my last years at the University there was a good deal of talk there
-about myself and my methods. The third of these cases was that of the
-Musgrave Ritual, and it is to the interest which was aroused by that
-singular chain of events, and the large issues which proved to be at
-stake, that I trace my first stride towards the position which I now
-hold.
-
-"Reginald Musgrave had been in the same college as myself, and I had
-some slight acquaintance with him. He was not generally popular among
-the undergraduates, though it always seemed to me that what was set down
-as pride was really an attempt to cover extreme natural diffidence.
-In appearance he was a man of exceedingly aristocratic type, thin,
-high-nosed, and large-eyed, with languid and yet courtly manners. He was
-indeed a scion of one of the very oldest families in the kingdom,
-though his branch was a cadet one which had separated from the northern
-Musgraves some time in the sixteenth century, and had established itself
-in western Sussex, where the Manor House of Hurlstone is perhaps the
-oldest inhabited building in the county. Something of his birth place
-seemed to cling to the man, and I never looked at his pale, keen face
-or the poise of his head without associating him with gray archways and
-mullioned windows and all the venerable wreckage of a feudal keep. Once
-or twice we drifted into talk, and I can remember that more than once he
-expressed a keen interest in my methods of observation and inference.
-
-"For four years I had seen nothing of him until one morning he walked
-into my room in Montague Street. He had changed little, was dressed like
-a young man of fashion--he was always a bit of a dandy--and preserved
-the same quiet, suave manner which had formerly distinguished him.
-
-"'How has all gone with you Musgrave?' I asked, after we had cordially
-shaken hands.
-
-"'You probably heard of my poor father's death,' said he; 'he was
-carried off about two years ago. Since then I have of course had the
-Hurlstone estates to manage, and as I am member for my district as well,
-my life has been a busy one. But I understand, Holmes, that you are
-turning to practical ends those powers with which you used to amaze us?'
-
-"'Yes,' said I, 'I have taken to living by my wits.'
-
-"'I am delighted to hear it, for your advice at present would be
-exceedingly valuable to me. We have had some very strange doings at
-Hurlstone, and the police have been able to throw no light upon the
-matter. It is really the most extraordinary and inexplicable business.'
-
-"You can imagine with what eagerness I listened to him, Watson, for
-the very chance for which I had been panting during all those months
-of inaction seemed to have come within my reach. In my inmost heart I
-believed that I could succeed where others failed, and now I had the
-opportunity to test myself.
-
-"'Pray, let me have the details,' I cried.
-
-"Reginald Musgrave sat down opposite to me, and lit the cigarette which
-I had pushed towards him.
-
-"'You must know,' said he, 'that though I am a bachelor, I have to keep
-up a considerable staff of servants at Hurlstone, for it is a rambling
-old place, and takes a good deal of looking after. I preserve, too, and
-in the pheasant months I usually have a house-party, so that it would
-not do to be short-handed. Altogether there are eight maids, the cook,
-the butler, two footmen, and a boy. The garden and the stables of course
-have a separate staff.
-
-"'Of these servants the one who had been longest in our service was
-Brunton the butler. He was a young school-master out of place when he
-was first taken up by my father, but he was a man of great energy and
-character, and he soon became quite invaluable in the household. He was
-a well-grown, handsome man, with a splendid forehead, and though he has
-been with us for twenty years he cannot be more than forty now. With
-his personal advantages and his extraordinary gifts--for he can speak
-several languages and play nearly every musical instrument--it is
-wonderful that he should have been satisfied so long in such a position,
-but I suppose that he was comfortable, and lacked energy to make any
-change. The butler of Hurlstone is always a thing that is remembered by
-all who visit us.
-
-"'But this paragon has one fault. He is a bit of a Don Juan, and you can
-imagine that for a man like him it is not a very difficult part to play
-in a quiet country district. When he was married it was all right, but
-since he has been a widower we have had no end of trouble with him. A
-few months ago we were in hopes that he was about to settle down again
-for he became engaged to Rachel Howells, our second house-maid; but he
-has thrown her over since then and taken up with Janet Tregellis, the
-daughter of the head game-keeper. Rachel--who is a very good girl, but
-of an excitable Welsh temperament--had a sharp touch of brain-fever,
-and goes about the house now--or did until yesterday--like a black-eyed
-shadow of her former self. That was our first drama at Hurlstone; but a
-second one came to drive it from our minds, and it was prefaced by the
-disgrace and dismissal of butler Brunton.
-
-"'This was how it came about. I have said that the man was intelligent,
-and this very intelligence has caused his ruin, for it seems to have
-led to an insatiable curiosity about things which did not in the least
-concern him. I had no idea of the lengths to which this would carry him,
-until the merest accident opened my eyes to it.
-
-"'I have said that the house is a rambling one. One day last week--on
-Thursday night, to be more exact--I found that I could not sleep,
-having foolishly taken a cup of strong café noir after my dinner. After
-struggling against it until two in the morning, I felt that it was quite
-hopeless, so I rose and lit the candle with the intention of continuing
-a novel which I was reading. The book, however, had been left in the
-billiard-room, so I pulled on my dressing-gown and started off to get
-it.
-
-"'In order to reach the billiard-room I had to descend a flight of
-stairs and then to cross the head of a passage which led to the library
-and the gun-room. You can imagine my surprise when, as I looked down
-this corridor, I saw a glimmer of light coming from the open door of the
-library. I had myself extinguished the lamp and closed the door before
-coming to bed. Naturally my first thought was of burglars. The corridors
-at Hurlstone have their walls largely decorated with trophies of old
-weapons. From one of these I picked a battle-axe, and then, leaving my
-candle behind me, I crept on tiptoe down the passage and peeped in at
-the open door.
-
-"'Brunton, the butler, was in the library. He was sitting, fully
-dressed, in an easy-chair, with a slip of paper which looked like a
-map upon his knee, and his forehead sunk forward upon his hand in deep
-thought. I stood dumb with astonishment, watching him from the darkness.
-A small taper on the edge of the table shed a feeble light which
-sufficed to show me that he was fully dressed. Suddenly, as I looked,
-he rose from his chair, and walking over to a bureau at the side, he
-unlocked it and drew out one of the drawers. From this he took a paper,
-and returning to his seat he flattened it out beside the taper on the
-edge of the table, and began to study it with minute attention. My
-indignation at this calm examination of our family documents overcame
-me so far that I took a step forward, and Brunton, looking up, saw me
-standing in the doorway. He sprang to his feet, his face turned livid
-with fear, and he thrust into his breast the chart-like paper which he
-had been originally studying.
-
-"'"So!" said I. "This is how you repay the trust which we have reposed
-in you. You will leave my service to-morrow."
-
-"'He bowed with the look of a man who is utterly crushed, and slunk past
-me without a word. The taper was still on the table, and by its light
-I glanced to see what the paper was which Brunton had taken from the
-bureau. To my surprise it was nothing of any importance at all,
-but simply a copy of the questions and answers in the singular old
-observance called the Musgrave Ritual. It is a sort of ceremony peculiar
-to our family, which each Musgrave for centuries past has gone through
-on his coming of age--a thing of private interest, and perhaps of some
-little importance to the archaeologist, like our own blazonings and
-charges, but of no practical use whatever.'
-
-"'We had better come back to the paper afterwards,' said I.
-
-"'If you think it really necessary,' he answered, with some hesitation.
-'To continue my statement, however: I relocked the bureau, using the key
-which Brunton had left, and I had turned to go when I was surprised to
-find that the butler had returned, and was standing before me.
-
-"'"Mr. Musgrave, sir," he cried, in a voice which was hoarse with
-emotion, "I can't bear disgrace, sir. I've always been proud above my
-station in life, and disgrace would kill me. My blood will be on your
-head, sir--it will, indeed--if you drive me to despair. If you cannot
-keep me after what has passed, then for God's sake let me give you
-notice and leave in a month, as if of my own free will. I could stand
-that, Mr. Musgrave, but not to be cast out before all the folk that I
-know so well."
-
-"'"You don't deserve much consideration, Brunton," I answered. "Your
-conduct has been most infamous. However, as you have been a long time in
-the family, I have no wish to bring public disgrace upon you. A month,
-however is too long. Take yourself away in a week, and give what reason
-you like for going."
-
-"'"Only a week, sir?" he cried, in a despairing voice. "A fortnight--say
-at least a fortnight!"
-
-"'"A week," I repeated, "and you may consider yourself to have been very
-leniently dealt with."
-
-"'He crept away, his face sunk upon his breast, like a broken man, while
-I put out the light and returned to my room.
-
-
-"'"For two days after this Brunton was most assiduous in his attention
-to his duties. I made no allusion to what had passed, and waited with
-some curiosity to see how he would cover his disgrace. On the third
-morning, however he did not appear, as was his custom, after breakfast
-to receive my instructions for the day. As I left the dining-room I
-happened to meet Rachel Howells, the maid. I have told you that she had
-only recently recovered from an illness, and was looking so wretchedly
-pale and wan that I remonstrated with her for being at work.
-
-"'"You should be in bed," I said. "Come back to your duties when you are
-stronger."
-
-"'She looked at me with so strange an expression that I began to suspect
-that her brain was affected.
-
-"'"I am strong enough, Mr. Musgrave," said she.
-
-"'"We will see what the doctor says," I answered. "You must stop work
-now, and when you go downstairs just say that I wish to see Brunton."
-
-"'"The butler is gone," said she.
-
-"'"Gone! Gone where?"
-
-"'"He is gone. No one has seen him. He is not in his room. Oh, yes, he
-is gone, he is gone!" She fell back against the wall with shriek after
-shriek of laughter, while I, horrified at this sudden hysterical attack,
-rushed to the bell to summon help. The girl was taken to her room, still
-screaming and sobbing, while I made inquiries about Brunton. There was
-no doubt about it that he had disappeared. His bed had not been slept
-in, he had been seen by no one since he had retired to his room the
-night before, and yet it was difficult to see how he could have left
-the house, as both windows and doors were found to be fastened in the
-morning. His clothes, his watch, and even his money were in his room,
-but the black suit which he usually wore was missing. His slippers,
-too, were gone, but his boots were left behind. Where then could butler
-Brunton have gone in the night, and what could have become of him now?
-
-"'Of course we searched the house from cellar to garret, but there was
-no trace of him. It is, as I have said, a labyrinth of an old house,
-especially the original wing, which is now practically uninhabited; but
-we ransacked every room and cellar without discovering the least sign
-of the missing man. It was incredible to me that he could have gone away
-leaving all his property behind him, and yet where could he be? I called
-in the local police, but without success. Rain had fallen on the night
-before and we examined the lawn and the paths all round the house, but
-in vain. Matters were in this state, when a new development quite drew
-our attention away from the original mystery.
-
-"'For two days Rachel Howells had been so ill, sometimes delirious,
-sometimes hysterical, that a nurse had been employed to sit up with her
-at night. On the third night after Brunton's disappearance, the nurse,
-finding her patient sleeping nicely, had dropped into a nap in the
-arm-chair, when she woke in the early morning to find the bed empty, the
-window open, and no signs of the invalid. I was instantly aroused, and,
-with the two footmen, started off at once in search of the missing girl.
-It was not difficult to tell the direction which she had taken, for,
-starting from under her window, we could follow her footmarks easily
-across the lawn to the edge of the mere, where they vanished close to
-the gravel path which leads out of the grounds. The lake there is eight
-feet deep, and you can imagine our feelings when we saw that the trail
-of the poor demented girl came to an end at the edge of it.
-
-"'Of course, we had the drags at once, and set to work to recover the
-remains, but no trace of the body could we find. On the other hand, we
-brought to the surface an object of a most unexpected kind. It was a
-linen bag which contained within it a mass of old rusted and discolored
-metal and several dull-colored pieces of pebble or glass. This strange
-find was all that we could get from the mere, and, although we made
-every possible search and inquiry yesterday, we know nothing of the fate
-either of Rachel Howells or of Richard Brunton. The county police are at
-their wits' end, and I have come up to you as a last resource.'
-
-"You can imagine, Watson, with what eagerness I listened to this
-extraordinary sequence of events, and endeavored to piece them together,
-and to devise some common thread upon which they might all hang. The
-butler was gone. The maid was gone. The maid had loved the butler, but
-had afterwards had cause to hate him. She was of Welsh blood, fiery
-and passionate. She had been terribly excited immediately after his
-disappearance. She had flung into the lake a bag containing some
-curious contents. These were all factors which had to be taken into
-consideration, and yet none of them got quite to the heart of the
-matter. What was the starting-point of this chain of events? There lay
-the end of this tangled line.
-
-"'I must see that paper, Musgrave,' said I, 'which this butler of your
-thought it worth his while to consult, even at the risk of the loss of
-his place.'
-
-"'It is rather an absurd business, this ritual of ours,' he answered.
-'But it has at least the saving grace of antiquity to excuse it. I have
-a copy of the questions and answers here if you care to run your eye
-over them.'
-
-"He handed me the very paper which I have here, Watson, and this is the
-strange catechism to which each Musgrave had to submit when he came to
-man's estate. I will read you the questions and answers as they stand.
-
-"'Whose was it?'
-
-"'His who is gone.'
-
-"'Who shall have it?'
-
-"'He who will come.'
-
-"'Where was the sun?'
-
-"'Over the oak.'
-
-"'Where was the shadow?'
-
-"'Under the elm.'
-
-"How was it stepped?'
-
-"'North by ten and by ten, east by five and by five, south by two and by
-two, west by one and by one, and so under.'
-
-"'What shall we give for it?'
-
-"'All that is ours.'
-
-"'Why should we give it?'
-
-"'For the sake of the trust.'
-
-"'The original has no date, but is in the spelling of the middle of the
-seventeenth century,' remarked Musgrave. 'I am afraid, however, that it
-can be of little help to you in solving this mystery.'
-
-"'At least,' said I, 'it gives us another mystery, and one which is even
-more interesting than the first. It may be that the solution of the one
-may prove to be the solution of the other. You will excuse me, Musgrave,
-if I say that your butler appears to me to have been a very clever man,
-and to have had a clearer insight than ten generations of his masters.'
-
-"'I hardly follow you,' said Musgrave. 'The paper seems to me to be of
-no practical importance.'
-
-"'But to me it seems immensely practical, and I fancy that Brunton took
-the same view. He had probably seen it before that night on which you
-caught him.'
-
-"'It is very possible. We took no pains to hide it.'
-
-"'He simply wished, I should imagine, to refresh his memory upon that
-last occasion. He had, as I understand, some sort of map or chart which
-he was comparing with the manuscript, and which he thrust into his
-pocket when you appeared.'
-
-"'That is true. But what could he have to do with this old family custom
-of ours, and what does this rigmarole mean?'
-
-"'I don't think that we should have much difficulty in determining
-that,' said I; 'with your permission we will take the first train down
-to Sussex, and go a little more deeply into the matter upon the spot.'
-
-
-"The same afternoon saw us both at Hurlstone. Possibly you have seen
-pictures and read descriptions of the famous old building, so I will
-confine my account of it to saying that it is built in the shape of
-an L, the long arm being the more modern portion, and the shorter the
-ancient nucleus, from which the other had developed. Over the low,
-heavily-lintelled door, in the centre of this old part, is chiseled the
-date, 1607, but experts are agreed that the beams and stone-work are
-really much older than this. The enormously thick walls and tiny windows
-of this part had in the last century driven the family into building the
-new wing, and the old one was used now as a store-house and a cellar,
-when it was used at all. A splendid park with fine old timber surrounds
-the house, and the lake, to which my client had referred, lay close to
-the avenue, about two hundred yards from the building.
-
-"I was already firmly convinced, Watson, that there were not three
-separate mysteries here, but one only, and that if I could read the
-Musgrave Ritual aright I should hold in my hand the clue which would
-lead me to the truth concerning both the butler Brunton and the maid
-Howells. To that then I turned all my energies. Why should this servant
-be so anxious to master this old formula? Evidently because he saw
-something in it which had escaped all those generations of country
-squires, and from which he expected some personal advantage. What was it
-then, and how had it affected his fate?
-
-"It was perfectly obvious to me, on reading the ritual, that the
-measurements must refer to some spot to which the rest of the document
-alluded, and that if we could find that spot, we should be in a fair way
-towards finding what the secret was which the old Musgraves had thought
-it necessary to embalm in so curious a fashion. There were two guides
-given us to start with, an oak and an elm. As to the oak there could be
-no question at all. Right in front of the house, upon the left-hand
-side of the drive, there stood a patriarch among oaks, one of the most
-magnificent trees that I have ever seen.
-
-"'That was there when your ritual was drawn up,' said I, as we drove
-past it.
-
-"'It was there at the Norman Conquest in all probability,' he answered.
-'It has a girth of twenty-three feet.'
-
-"'Have you any old elms?' I asked.
-
-"'There used to be a very old one over yonder but it was struck by
-lightning ten years ago, and we cut down the stump.'
-
-"'You can see where it used to be?'
-
-"'Oh, yes.'
-
-"'There are no other elms?'
-
-"'No old ones, but plenty of beeches.'
-
-"'I should like to see where it grew.'
-
-"We had driven up in a dog-cart, and my client led me away at once,
-without our entering the house, to the scar on the lawn where the
-elm had stood. It was nearly midway between the oak and the house. My
-investigation seemed to be progressing.
-
-"'I suppose it is impossible to find out how high the elm was?' I asked.
-
-"'I can give you it at once. It was sixty-four feet.'
-
-"'How do you come to know it?' I asked, in surprise.
-
-"'When my old tutor used to give me an exercise in trigonometry, it
-always took the shape of measuring heights. When I was a lad I worked
-out every tree and building in the estate.'
-
-"This was an unexpected piece of luck. My data were coming more quickly
-than I could have reasonably hoped.
-
-"'Tell me,' I asked, 'did your butler ever ask you such a question?'
-
-"Reginald Musgrave looked at me in astonishment. 'Now that you call it
-to my mind,' he answered, 'Brunton did ask me about the height of the
-tree some months ago, in connection with some little argument with the
-groom.'
-
-"This was excellent news, Watson, for it showed me that I was on the
-right road. I looked up at the sun. It was low in the heavens, and I
-calculated that in less than an hour it would lie just above the topmost
-branches of the old oak. One condition mentioned in the Ritual would
-then be fulfilled. And the shadow of the elm must mean the farther end
-of the shadow, otherwise the trunk would have been chosen as the guide.
-I had, then, to find where the far end of the shadow would fall when the
-sun was just clear of the oak."
-
-"That must have been difficult, Holmes, when the elm was no longer
-there."
-
-"Well, at least I knew that if Brunton could do it, I could also.
-Besides, there was no real difficulty. I went with Musgrave to his study
-and whittled myself this peg, to which I tied this long string with a
-knot at each yard. Then I took two lengths of a fishing-rod, which came
-to just six feet, and I went back with my client to where the elm had
-been. The sun was just grazing the top of the oak. I fastened the rod
-on end, marked out the direction of the shadow, and measured it. It was
-nine feet in length.
-
-"Of course the calculation now was a simple one. If a rod of six feet
-threw a shadow of nine, a tree of sixty-four feet would throw one of
-ninety-six, and the line of the one would of course be the line of the
-other. I measured out the distance, which brought me almost to the
-wall of the house, and I thrust a peg into the spot. You can imagine
-my exultation, Watson, when within two inches of my peg I saw a conical
-depression in the ground. I knew that it was the mark made by Brunton in
-his measurements, and that I was still upon his trail.
-
-"From this starting-point I proceeded to step, having first taken the
-cardinal points by my pocket-compass. Ten steps with each foot took me
-along parallel with the wall of the house, and again I marked my spot
-with a peg. Then I carefully paced off five to the east and two to the
-south. It brought me to the very threshold of the old door. Two steps
-to the west meant now that I was to go two paces down the stone-flagged
-passage, and this was the place indicated by the Ritual.
-
-"Never have I felt such a cold chill of disappointment, Watson. For a
-moment is seemed to me that there must be some radical mistake in my
-calculations. The setting sun shone full upon the passage floor, and I
-could see that the old, foot-worn gray stones with which it was paved
-were firmly cemented together, and had certainly not been moved for many
-a long year. Brunton had not been at work here. I tapped upon the floor,
-but it sounded the same all over, and there was no sign of any crack
-or crevice. But, fortunately, Musgrave, who had begun to appreciate the
-meaning of my proceedings, and who was now as excited as myself, took
-out his manuscript to check my calculation.
-
-"'And under,' he cried. 'You have omitted the "and under."'
-
-"I had thought that it meant that we were to dig, but now, of course,
-I saw at once that I was wrong. 'There is a cellar under this then?' I
-cried.
-
-"'Yes, and as old as the house. Down here, through this door.'
-
-"We went down a winding stone stair, and my companion, striking a match,
-lit a large lantern which stood on a barrel in the corner. In an instant
-it was obvious that we had at last come upon the true place, and that we
-had not been the only people to visit the spot recently.
-
-"It had been used for the storage of wood, but the billets, which had
-evidently been littered over the floor, were now piled at the sides, so
-as to leave a clear space in the middle. In this space lay a large and
-heavy flagstone with a rusted iron ring in the centre to which a thick
-shepherd's-check muffler was attached.
-
-"'By Jove!' cried my client. 'That's Brunton's muffler. I have seen it
-on him, and could swear to it. What has the villain been doing here?'
-
-"At my suggestion a couple of the county police were summoned to be
-present, and I then endeavored to raise the stone by pulling on the
-cravat. I could only move it slightly, and it was with the aid of one
-of the constables that I succeeded at last in carrying it to one side.
-A black hole yawned beneath into which we all peered, while Musgrave,
-kneeling at the side, pushed down the lantern.
-
-"A small chamber about seven feet deep and four feet square lay open to
-us. At one side of this was a squat, brass-bound wooden box, the lid of
-which was hinged upwards, with this curious old-fashioned key projecting
-from the lock. It was furred outside by a thick layer of dust, and damp
-and worms had eaten through the wood, so that a crop of livid fungi
-was growing on the inside of it. Several discs of metal, old coins
-apparently, such as I hold here, were scattered over the bottom of the
-box, but it contained nothing else.
-
-"At the moment, however, we had no thought for the old chest, for our
-eyes were riveted upon that which crouched beside it. It was the figure
-of a man, clad in a suit of black, who squatted down upon his hams with
-his forehead sunk upon the edge of the box and his two arms thrown out
-on each side of it. The attitude had drawn all the stagnant blood to
-the face, and no man could have recognized that distorted liver-colored
-countenance; but his height, his dress, and his hair were all sufficient
-to show my client, when we had drawn the body up, that it was indeed his
-missing butler. He had been dead some days, but there was no wound or
-bruise upon his person to show how he had met his dreadful end. When
-his body had been carried from the cellar we found ourselves still
-confronted with a problem which was almost as formidable as that with
-which we had started.
-
-"I confess that so far, Watson, I had been disappointed in my
-investigation. I had reckoned upon solving the matter when once I had
-found the place referred to in the Ritual; but now I was there, and was
-apparently as far as ever from knowing what it was which the family had
-concealed with such elaborate precautions. It is true that I had thrown
-a light upon the fate of Brunton, but now I had to ascertain how that
-fate had come upon him, and what part had been played in the matter by
-the woman who had disappeared. I sat down upon a keg in the corner and
-thought the whole matter carefully over.
-
-"You know my methods in such cases, Watson. I put myself in the man's
-place and, having first gauged his intelligence, I try to imagine how I
-should myself have proceeded under the same circumstances. In this
-case the matter was simplified by Brunton's intelligence being quite
-first-rate, so that it was unnecessary to make any allowance for the
-personal equation, as the astronomers have dubbed it. He knew that
-something valuable was concealed. He had spotted the place. He found
-that the stone which covered it was just too heavy for a man to move
-unaided. What would he do next? He could not get help from outside, even
-if he had some one whom he could trust, without the unbarring of doors
-and considerable risk of detection. It was better, if he could, to have
-his helpmate inside the house. But whom could he ask? This girl had been
-devoted to him. A man always finds it hard to realize that he may have
-finally lost a woman's love, however badly he may have treated her. He
-would try by a few attentions to make his peace with the girl Howells,
-and then would engage her as his accomplice. Together they would come at
-night to the cellar, and their united force would suffice to raise the
-stone. So far I could follow their actions as if I had actually seen
-them.
-
-"But for two of them, and one a woman, it must have been heavy work the
-raising of that stone. A burly Sussex policeman and I had found it no
-light job. What would they do to assist them? Probably what I should
-have done myself. I rose and examined carefully the different billets
-of wood which were scattered round the floor. Almost at once I came
-upon what I expected. One piece, about three feet in length, had a very
-marked indentation at one end, while several were flattened at the sides
-as if they had been compressed by some considerable weight. Evidently,
-as they had dragged the stone up they had thrust the chunks of wood into
-the chink, until at last, when the opening was large enough to crawl
-through, they would hold it open by a billet placed lengthwise, which
-might very well become indented at the lower end, since the whole weight
-of the stone would press it down on to the edge of this other slab. So
-far I was still on safe ground.
-
-"And now how was I to proceed to reconstruct this midnight drama?
-Clearly, only one could fit into the hole, and that one was Brunton. The
-girl must have waited above. Brunton then unlocked the box, handed up
-the contents presumably--since they were not to be found--and then--and
-then what happened?
-
-"What smouldering fire of vengeance had suddenly sprung into flame in
-this passionate Celtic woman's soul when she saw the man who had wronged
-her--wronged her, perhaps, far more than we suspected--in her power?
-Was it a chance that the wood had slipped, and that the stone had shut
-Brunton into what had become his sepulchre? Had she only been guilty of
-silence as to his fate? Or had some sudden blow from her hand dashed the
-support away and sent the slab crashing down into its place? Be that
-as it might, I seemed to see that woman's figure still clutching at her
-treasure trove and flying wildly up the winding stair, with her ears
-ringing perhaps with the muffled screams from behind her and with the
-drumming of frenzied hands against the slab of stone which was choking
-her faithless lover's life out.
-
-"Here was the secret of her blanched face, her shaken nerves, her peals
-of hysterical laughter on the next morning. But what had been in the
-box? What had she done with that? Of course, it must have been the old
-metal and pebbles which my client had dragged from the mere. She had
-thrown them in there at the first opportunity to remove the last trace
-of her crime.
-
-"For twenty minutes I had sat motionless, thinking the matter out.
-Musgrave still stood with a very pale face, swinging his lantern and
-peering down into the hole.
-
-"'These are coins of Charles the First,' said he, holding out the few
-which had been in the box; 'you see we were right in fixing our date for
-the Ritual.'
-
-"'We may find something else of Charles the First,' I cried, as the
-probable meaning of the first two questions of the Ritual broke suddenly
-upon me. 'Let me see the contents of the bag which you fished from the
-mere.'
-
-
-"We ascended to his study, and he laid the debris before me. I could
-understand his regarding it as of small importance when I looked at it,
-for the metal was almost black and the stones lustreless and dull. I
-rubbed one of them on my sleeve, however, and it glowed afterwards like
-a spark in the dark hollow of my hand. The metal work was in the form
-of a double ring, but it had been bent and twisted out of its original
-shape.
-
-"'You must bear in mind,' said I, 'that the royal party made head in
-England even after the death of the king, and that when they at last
-fled they probably left many of their most precious possessions buried
-behind them, with the intention of returning for them in more peaceful
-times.'
-
-"'My ancestor, Sir Ralph Musgrave, was a prominent Cavalier and the
-right-hand man of Charles the Second in his wanderings,' said my friend.
-
-"'Ah, indeed!' I answered. 'Well now, I think that really should give us
-the last link that we wanted. I must congratulate you on coming into
-the possession, though in rather a tragic manner of a relic which is of
-great intrinsic value, but of even greater importance as an historical
-curiosity.'
-
-"'What is it, then?' he gasped in astonishment.
-
-"'It is nothing less than the ancient crown of the kings of England.'
-
-"'The crown!'
-
-"'Precisely. Consider what the Ritual says: How does it run? "Whose was
-it?" "His who is gone." That was after the execution of Charles. Then,
-"Who shall have it?" "He who will come." That was Charles the Second,
-whose advent was already foreseen. There can, I think, be no doubt that
-this battered and shapeless diadem once encircled the brows of the royal
-Stuarts.'
-
-"'And how came it in the pond?'
-
-"'Ah, that is a question that will take some time to answer.' And with
-that I sketched out to him the whole long chain of surmise and of proof
-which I had constructed. The twilight had closed in and the moon was
-shining brightly in the sky before my narrative was finished.
-
-"'And how was it then that Charles did not get his crown when he
-returned?' asked Musgrave, pushing back the relic into its linen bag.
-
-"'Ah, there you lay your finger upon the one point which we shall
-probably never be able to clear up. It is likely that the Musgrave who
-held the secret died in the interval, and by some oversight left this
-guide to his descendant without explaining the meaning of it. From that
-day to this it has been handed down from father to son, until at last
-it came within reach of a man who tore its secret out of it and lost his
-life in the venture.'
-
-
-"And that's the story of the Musgrave Ritual, Watson. They have the
-crown down at Hurlstone--though they had some legal bother and a
-considerable sum to pay before they were allowed to retain it. I am sure
-that if you mentioned my name they would be happy to show it to you. Of
-the woman nothing was ever heard, and the probability is that she got
-away out of England and carried herself and the memory of her crime to
-some land beyond the seas."
-
-
-
-
-Adventure VI. The Reigate Puzzle
-
-
-It was some time before the health of my friend Mr. Sherlock Holmes
-recovered from the strain caused by his immense exertions in the spring
-of '87. The whole question of the Netherland-Sumatra Company and of the
-colossal schemes of Baron Maupertuis are too recent in the minds of the
-public, and are too intimately concerned with politics and finance to be
-fitting subjects for this series of sketches. They led, however, in an
-indirect fashion to a singular and complex problem which gave my friend
-an opportunity of demonstrating the value of a fresh weapon among the
-many with which he waged his life-long battle against crime.
-
-On referring to my notes I see that it was upon the 14th of April that
-I received a telegram from Lyons which informed me that Holmes was
-lying ill in the Hotel Dulong. Within twenty-four hours I was in his
-sick-room, and was relieved to find that there was nothing formidable in
-his symptoms. Even his iron constitution, however, had broken down
-under the strain of an investigation which had extended over two months,
-during which period he had never worked less than fifteen hours a day,
-and had more than once, as he assured me, kept to his task for five days
-at a stretch. Even the triumphant issue of his labors could not save him
-from reaction after so terrible an exertion, and at a time when Europe
-was ringing with his name and when his room was literally ankle-deep
-with congratulatory telegrams I found him a prey to the blackest
-depression. Even the knowledge that he had succeeded where the police of
-three countries had failed, and that he had outmanoeuvred at every point
-the most accomplished swindler in Europe, was insufficient to rouse him
-from his nervous prostration.
-
-Three days later we were back in Baker Street together; but it was
-evident that my friend would be much the better for a change, and the
-thought of a week of spring time in the country was full of attractions
-to me also. My old friend, Colonel Hayter, who had come under my
-professional care in Afghanistan, had now taken a house near Reigate in
-Surrey, and had frequently asked me to come down to him upon a visit. On
-the last occasion he had remarked that if my friend would only come
-with me he would be glad to extend his hospitality to him also. A little
-diplomacy was needed, but when Holmes understood that the establishment
-was a bachelor one, and that he would be allowed the fullest freedom,
-he fell in with my plans and a week after our return from Lyons we were
-under the Colonel's roof. Hayter was a fine old soldier who had seen
-much of the world, and he soon found, as I had expected, that Holmes and
-he had much in common.
-
-On the evening of our arrival we were sitting in the Colonel's gun-room
-after dinner, Holmes stretched upon the sofa, while Hayter and I looked
-over his little armory of Eastern weapons.
-
-"By the way," said he suddenly, "I think I'll take one of these pistols
-upstairs with me in case we have an alarm."
-
-"An alarm!" said I.
-
-"Yes, we've had a scare in this part lately. Old Acton, who is one of
-our county magnates, had his house broken into last Monday. No great
-damage done, but the fellows are still at large."
-
-"No clue?" asked Holmes, cocking his eye at the Colonel.
-
-"None as yet. But the affair is a petty one, one of our little country
-crimes, which must seem too small for your attention, Mr. Holmes, after
-this great international affair."
-
-Holmes waved away the compliment, though his smile showed that it had
-pleased him.
-
-"Was there any feature of interest?"
-
-"I fancy not. The thieves ransacked the library and got very little for
-their pains. The whole place was turned upside down, drawers burst open,
-and presses ransacked, with the result that an odd volume of Pope's
-'Homer,' two plated candlesticks, an ivory letter-weight, a small oak
-barometer, and a ball of twine are all that have vanished."
-
-"What an extraordinary assortment!" I exclaimed.
-
-"Oh, the fellows evidently grabbed hold of everything they could get."
-
-Holmes grunted from the sofa.
-
-"The county police ought to make something of that," said he; "why, it
-is surely obvious that--"
-
-But I held up a warning finger.
-
-"You are here for a rest, my dear fellow. For Heaven's sake don't get
-started on a new problem when your nerves are all in shreds."
-
-Holmes shrugged his shoulders with a glance of comic resignation towards
-the Colonel, and the talk drifted away into less dangerous channels.
-
-It was destined, however, that all my professional caution should be
-wasted, for next morning the problem obtruded itself upon us in such a
-way that it was impossible to ignore it, and our country visit took a
-turn which neither of us could have anticipated. We were at breakfast
-when the Colonel's butler rushed in with all his propriety shaken out of
-him.
-
-"Have you heard the news, sir?" he gasped. "At the Cunningham's sir!"
-
-"Burglary!" cried the Colonel, with his coffee-cup in mid-air.
-
-"Murder!"
-
-The Colonel whistled. "By Jove!" said he. "Who's killed, then? The J.P.
-or his son?"
-
-"Neither, sir. It was William the coachman. Shot through the heart, sir,
-and never spoke again."
-
-"Who shot him, then?"
-
-"The burglar, sir. He was off like a shot and got clean away. He'd just
-broke in at the pantry window when William came on him and met his end
-in saving his master's property."
-
-"What time?"
-
-"It was last night, sir, somewhere about twelve."
-
-"Ah, then, we'll step over afterwards," said the Colonel, coolly
-settling down to his breakfast again. "It's a baddish business," he
-added when the butler had gone; "he's our leading man about here, is old
-Cunningham, and a very decent fellow too. He'll be cut up over this, for
-the man has been in his service for years and was a good servant. It's
-evidently the same villains who broke into Acton's."
-
-"And stole that very singular collection," said Holmes, thoughtfully.
-
-"Precisely."
-
-"Hum! It may prove the simplest matter in the world, but all the same
-at first glance this is just a little curious, is it not? A gang of
-burglars acting in the country might be expected to vary the scene of
-their operations, and not to crack two cribs in the same district within
-a few days. When you spoke last night of taking precautions I remember
-that it passed through my mind that this was probably the last parish
-in England to which the thief or thieves would be likely to turn their
-attention--which shows that I have still much to learn."
-
-"I fancy it's some local practitioner," said the Colonel. "In that case,
-of course, Acton's and Cunningham's are just the places he would go for,
-since they are far the largest about here."
-
-"And richest?"
-
-"Well, they ought to be, but they've had a lawsuit for some years which
-has sucked the blood out of both of them, I fancy. Old Acton has some
-claim on half Cunningham's estate, and the lawyers have been at it with
-both hands."
-
-"If it's a local villain there should not be much difficulty in running
-him down," said Holmes with a yawn. "All right, Watson, I don't intend
-to meddle."
-
-"Inspector Forrester, sir," said the butler, throwing open the door.
-
-The official, a smart, keen-faced young fellow, stepped into the room.
-"Good-morning, Colonel," said he; "I hope I don't intrude, but we hear
-that Mr. Holmes of Baker Street is here."
-
-The Colonel waved his hand towards my friend, and the Inspector bowed.
-
-"We thought that perhaps you would care to step across, Mr. Holmes."
-
-"The fates are against you, Watson," said he, laughing. "We were
-chatting about the matter when you came in, Inspector. Perhaps you
-can let us have a few details." As he leaned back in his chair in the
-familiar attitude I knew that the case was hopeless.
-
-"We had no clue in the Acton affair. But here we have plenty to go on,
-and there's no doubt it is the same party in each case. The man was
-seen."
-
-"Ah!"
-
-"Yes, sir. But he was off like a deer after the shot that killed poor
-William Kirwan was fired. Mr. Cunningham saw him from the bedroom
-window, and Mr. Alec Cunningham saw him from the back passage. It was
-quarter to twelve when the alarm broke out. Mr. Cunningham had just got
-into bed, and Mr. Alec was smoking a pipe in his dressing-gown. They
-both heard William the coachman calling for help, and Mr. Alec ran down
-to see what was the matter. The back door was open, and as he came to
-the foot of the stairs he saw two men wrestling together outside. One of
-them fired a shot, the other dropped, and the murderer rushed across the
-garden and over the hedge. Mr. Cunningham, looking out of his bedroom,
-saw the fellow as he gained the road, but lost sight of him at once. Mr.
-Alec stopped to see if he could help the dying man, and so the villain
-got clean away. Beyond the fact that he was a middle-sized man and
-dressed in some dark stuff, we have no personal clue; but we are making
-energetic inquiries, and if he is a stranger we shall soon find him
-out."
-
-"What was this William doing there? Did he say anything before he died?"
-
-"Not a word. He lives at the lodge with his mother, and as he was a
-very faithful fellow we imagine that he walked up to the house with
-the intention of seeing that all was right there. Of course this Acton
-business has put every one on their guard. The robber must have just
-burst open the door--the lock has been forced--when William came upon
-him."
-
-"Did William say anything to his mother before going out?"
-
-"She is very old and deaf, and we can get no information from her. The
-shock has made her half-witted, but I understand that she was never
-very bright. There is one very important circumstance, however. Look at
-this!"
-
-He took a small piece of torn paper from a note-book and spread it out
-upon his knee.
-
-"This was found between the finger and thumb of the dead man. It appears
-to be a fragment torn from a larger sheet. You will observe that the
-hour mentioned upon it is the very time at which the poor fellow met his
-fate. You see that his murderer might have torn the rest of the sheet
-from him or he might have taken this fragment from the murderer. It
-reads almost as though it were an appointment."
-
-Holmes took up the scrap of paper, a fac-simile of which is here
-reproduced.
-
- d at quarter to twelve learn what maybe
-
-"Presuming that it is an appointment," continued the Inspector, "it is
-of course a conceivable theory that this William Kirwan--though he had
-the reputation of being an honest man, may have been in league with the
-thief. He may have met him there, may even have helped him to break in
-the door, and then they may have fallen out between themselves."
-
-"This writing is of extraordinary interest," said Holmes, who had been
-examining it with intense concentration. "These are much deeper waters
-than I had thought." He sank his head upon his hands, while the Inspector
-smiled at the effect which his case had had upon the famous London
-specialist.
-
-"Your last remark," said Holmes, presently, "as to the possibility of
-there being an understanding between the burglar and the servant, and
-this being a note of appointment from one to the other, is an ingenious
-and not entirely impossible supposition. But this writing opens up--" He
-sank his head into his hands again and remained for some minutes in the
-deepest thought. When he raised his face again, I was surprised to see
-that his cheek was tinged with color, and his eyes as bright as before
-his illness. He sprang to his feet with all his old energy.
-
-"I'll tell you what," said he, "I should like to have a quiet little
-glance into the details of this case. There is something in it which
-fascinates me extremely. If you will permit me, Colonel, I will leave my
-friend Watson and you, and I will step round with the Inspector to test
-the truth of one or two little fancies of mine. I will be with you again
-in half an hour."
-
-An hour and half had elapsed before the Inspector returned alone.
-
-"Mr. Holmes is walking up and down in the field outside," said he. "He
-wants us all four to go up to the house together."
-
-"To Mr. Cunningham's?"
-
-"Yes, sir."
-
-"What for?"
-
-The Inspector shrugged his shoulders. "I don't quite know, sir. Between
-ourselves, I think Mr. Holmes had not quite got over his illness yet.
-He's been behaving very queerly, and he is very much excited."
-
-"I don't think you need alarm yourself," said I. "I have usually found
-that there was method in his madness."
-
-"Some folks might say there was madness in his method," muttered the
-Inspector. "But he's all on fire to start, Colonel, so we had best go
-out if you are ready."
-
-We found Holmes pacing up and down in the field, his chin sunk upon his
-breast, and his hands thrust into his trousers pockets.
-
-"The matter grows in interest," said he. "Watson, your country-trip has
-been a distinct success. I have had a charming morning."
-
-"You have been up to the scene of the crime, I understand," said the
-Colonel.
-
-"Yes; the Inspector and I have made quite a little reconnaissance
-together."
-
-"Any success?"
-
-"Well, we have seen some very interesting things. I'll tell you what we
-did as we walk. First of all, we saw the body of this unfortunate man.
-He certainly died from a revolver wound as reported."
-
-"Had you doubted it, then?"
-
-"Oh, it is as well to test everything. Our inspection was not wasted. We
-then had an interview with Mr. Cunningham and his son, who were able
-to point out the exact spot where the murderer had broken through the
-garden-hedge in his flight. That was of great interest."
-
-"Naturally."
-
-"Then we had a look at this poor fellow's mother. We could get no
-information from her, however, as she is very old and feeble."
-
-"And what is the result of your investigations?"
-
-"The conviction that the crime is a very peculiar one. Perhaps our visit
-now may do something to make it less obscure. I think that we are both
-agreed, Inspector that the fragment of paper in the dead man's hand,
-bearing, as it does, the very hour of his death written upon it, is of
-extreme importance."
-
-"It should give a clue, Mr. Holmes."
-
-"It does give a clue. Whoever wrote that note was the man who brought
-William Kirwan out of his bed at that hour. But where is the rest of
-that sheet of paper?"
-
-"I examined the ground carefully in the hope of finding it," said the
-Inspector.
-
-"It was torn out of the dead man's hand. Why was some one so anxious to
-get possession of it? Because it incriminated him. And what would he do
-with it? Thrust it into his pocket, most likely, never noticing that a
-corner of it had been left in the grip of the corpse. If we could get
-the rest of that sheet it is obvious that we should have gone a long way
-towards solving the mystery."
-
-"Yes, but how can we get at the criminal's pocket before we catch the
-criminal?"
-
-"Well, well, it was worth thinking over. Then there is another obvious
-point. The note was sent to William. The man who wrote it could not have
-taken it; otherwise, of course, he might have delivered his own message
-by word of mouth. Who brought the note, then? Or did it come through the
-post?"
-
-"I have made inquiries," said the Inspector. "William received a letter
-by the afternoon post yesterday. The envelope was destroyed by him."
-
-"Excellent!" cried Holmes, clapping the Inspector on the back. "You've
-seen the postman. It is a pleasure to work with you. Well, here is the
-lodge, and if you will come up, Colonel, I will show you the scene of
-the crime."
-
-We passed the pretty cottage where the murdered man had lived, and
-walked up an oak-lined avenue to the fine old Queen Anne house, which
-bears the date of Malplaquet upon the lintel of the door. Holmes and
-the Inspector led us round it until we came to the side gate, which is
-separated by a stretch of garden from the hedge which lines the road. A
-constable was standing at the kitchen door.
-
-"Throw the door open, officer," said Holmes. "Now, it was on those
-stairs that young Mr. Cunningham stood and saw the two men struggling
-just where we are. Old Mr. Cunningham was at that window--the second on
-the left--and he saw the fellow get away just to the left of that bush.
-Then Mr. Alec ran out and knelt beside the wounded man. The ground is
-very hard, you see, and there are no marks to guide us." As he spoke two
-men came down the garden path, from round the angle of the house. The
-one was an elderly man, with a strong, deep-lined, heavy-eyed face; the
-other a dashing young fellow, whose bright, smiling expression and showy
-dress were in strange contract with the business which had brought us
-there.
-
-"Still at it, then?" said he to Holmes. "I thought you Londoners were
-never at fault. You don't seem to be so very quick, after all."
-
-"Ah, you must give us a little time," said Holmes good-humoredly.
-
-"You'll want it," said young Alec Cunningham. "Why, I don't see that we
-have any clue at all."
-
-"There's only one," answered the Inspector. "We thought that if we could
-only find--Good heavens, Mr. Holmes! What is the matter?"
-
-My poor friend's face had suddenly assumed the most dreadful expression.
-His eyes rolled upwards, his features writhed in agony, and with a
-suppressed groan he dropped on his face upon the ground. Horrified
-at the suddenness and severity of the attack, we carried him into the
-kitchen, where he lay back in a large chair, and breathed heavily for
-some minutes. Finally, with a shamefaced apology for his weakness, he
-rose once more.
-
-"Watson would tell you that I have only just recovered from a severe
-illness," he explained. "I am liable to these sudden nervous attacks."
-
-"Shall I send you home in my trap?" asked old Cunningham.
-
-"Well, since I am here, there is one point on which I should like to
-feel sure. We can very easily verify it."
-
-"What was it?"
-
-"Well, it seems to me that it is just possible that the arrival of
-this poor fellow William was not before, but after, the entrance of
-the burglary into the house. You appear to take it for granted that,
-although the door was forced, the robber never got in."
-
-"I fancy that is quite obvious," said Mr. Cunningham, gravely. "Why, my
-son Alec had not yet gone to bed, and he would certainly have heard any
-one moving about."
-
-"Where was he sitting?"
-
-"I was smoking in my dressing-room."
-
-"Which window is that?"
-
-"The last on the left next my father's."
-
-"Both of your lamps were lit, of course?"
-
-"Undoubtedly."
-
-"There are some very singular points here," said Holmes, smiling. "Is
-it not extraordinary that a burglary--and a burglar who had had some
-previous experience--should deliberately break into a house at a time
-when he could see from the lights that two of the family were still
-afoot?"
-
-"He must have been a cool hand."
-
-"Well, of course, if the case were not an odd one we should not have
-been driven to ask you for an explanation," said young Mr. Alec. "But as
-to your ideas that the man had robbed the house before William tackled
-him, I think it a most absurd notion. Wouldn't we have found the place
-disarranged, and missed the things which he had taken?"
-
-"It depends on what the things were," said Holmes. "You must remember
-that we are dealing with a burglar who is a very peculiar fellow, and
-who appears to work on lines of his own. Look, for example, at the
-queer lot of things which he took from Acton's--what was it?--a ball of
-string, a letter-weight, and I don't know what other odds and ends."
-
-"Well, we are quite in your hands, Mr. Holmes," said old Cunningham.
-"Anything which you or the Inspector may suggest will most certainly be
-done."
-
-"In the first place," said Holmes, "I should like you to offer a
-reward--coming from yourself, for the officials may take a little time
-before they would agree upon the sum, and these things cannot be done
-too promptly. I have jotted down the form here, if you would not mind
-signing it. Fifty pounds was quite enough, I thought."
-
-"I would willingly give five hundred," said the J.P., taking the slip
-of paper and the pencil which Holmes handed to him. "This is not quite
-correct, however," he added, glancing over the document.
-
-"I wrote it rather hurriedly."
-
-"You see you begin, 'Whereas, at about a quarter to one on Tuesday
-morning an attempt was made,' and so on. It was at a quarter to twelve,
-as a matter of fact."
-
-I was pained at the mistake, for I knew how keenly Holmes would feel any
-slip of the kind. It was his specialty to be accurate as to fact, but
-his recent illness had shaken him, and this one little incident was
-enough to show me that he was still far from being himself. He was
-obviously embarrassed for an instant, while the Inspector raised his
-eyebrows, and Alec Cunningham burst into a laugh. The old gentleman
-corrected the mistake, however, and handed the paper back to Holmes.
-
-"Get it printed as soon as possible," he said; "I think your idea is an
-excellent one."
-
-Holmes put the slip of paper carefully away into his pocket-book.
-
-"And now," said he, "it really would be a good thing that we should all
-go over the house together and make certain that this rather erratic
-burglar did not, after all, carry anything away with him."
-
-Before entering, Holmes made an examination of the door which had been
-forced. It was evident that a chisel or strong knife had been thrust
-in, and the lock forced back with it. We could see the marks in the wood
-where it had been pushed in.
-
-"You don't use bars, then?" he asked.
-
-"We have never found it necessary."
-
-"You don't keep a dog?"
-
-"Yes, but he is chained on the other side of the house."
-
-"When do the servants go to bed?"
-
-"About ten."
-
-"I understand that William was usually in bed also at that hour."
-
-"Yes."
-
-"It is singular that on this particular night he should have been up.
-Now, I should be very glad if you would have the kindness to show us
-over the house, Mr. Cunningham."
-
-A stone-flagged passage, with the kitchens branching away from it, led
-by a wooden staircase directly to the first floor of the house. It came
-out upon the landing opposite to a second more ornamental stair which
-came up from the front hall. Out of this landing opened the drawing-room
-and several bedrooms, including those of Mr. Cunningham and his son.
-Holmes walked slowly, taking keen note of the architecture of the house.
-I could tell from his expression that he was on a hot scent, and yet
-I could not in the least imagine in what direction his inferences were
-leading him.
-
-"My good sir," said Mr. Cunningham with some impatience, "this is surely
-very unnecessary. That is my room at the end of the stairs, and my
-son's is the one beyond it. I leave it to your judgment whether it was
-possible for the thief to have come up here without disturbing us."
-
-"You must try round and get on a fresh scent, I fancy," said the son
-with a rather malicious smile.
-
-"Still, I must ask you to humor me a little further. I should like, for
-example, to see how far the windows of the bedrooms command the front.
-This, I understand is your son's room"--he pushed open the door--"and
-that, I presume, is the dressing-room in which he sat smoking when the
-alarm was given. Where does the window of that look out to?" He stepped
-across the bedroom, pushed open the door, and glanced round the other
-chamber.
-
-"I hope that you are satisfied now?" said Mr. Cunningham, tartly.
-
-"Thank you, I think I have seen all that I wished."
-
-"Then if it is really necessary we can go into my room."
-
-"If it is not too much trouble."
-
-The J. P. shrugged his shoulders, and led the way into his own chamber,
-which was a plainly furnished and commonplace room. As we moved across
-it in the direction of the window, Holmes fell back until he and I were
-the last of the group. Near the foot of the bed stood a dish of oranges
-and a carafe of water. As we passed it Holmes, to my unutterable
-astonishment, leaned over in front of me and deliberately knocked the
-whole thing over. The glass smashed into a thousand pieces and the fruit
-rolled about into every corner of the room.
-
-"You've done it now, Watson," said he, coolly. "A pretty mess you've
-made of the carpet."
-
-I stooped in some confusion and began to pick up the fruit,
-understanding for some reason my companion desired me to take the blame
-upon myself. The others did the same, and set the table on its legs
-again.
-
-"Hullo!" cried the Inspector, "where's he got to?"
-
-Holmes had disappeared.
-
-"Wait here an instant," said young Alec Cunningham. "The fellow is off
-his head, in my opinion. Come with me, father, and see where he has got
-to!"
-
-They rushed out of the room, leaving the Inspector, the Colonel, and me
-staring at each other.
-
-"'Pon my word, I am inclined to agree with Master Alec," said the
-official. "It may be the effect of this illness, but it seems to me
-that--"
-
-His words were cut short by a sudden scream of "Help! Help! Murder!"
-With a thrill I recognized the voice of that of my friend. I rushed
-madly from the room on to the landing. The cries, which had sunk down
-into a hoarse, inarticulate shouting, came from the room which we had
-first visited. I dashed in, and on into the dressing-room beyond. The
-two Cunninghams were bending over the prostrate figure of Sherlock
-Holmes, the younger clutching his throat with both hands, while the
-elder seemed to be twisting one of his wrists. In an instant the three
-of us had torn them away from him, and Holmes staggered to his feet,
-very pale and evidently greatly exhausted.
-
-"Arrest these men, Inspector," he gasped.
-
-"On what charge?"
-
-"That of murdering their coachman, William Kirwan."
-
-The Inspector stared about him in bewilderment. "Oh, come now, Mr.
-Holmes," said he at last, "I'm sure you don't really mean to--"
-
-"Tut, man, look at their faces!" cried Holmes, curtly.
-
-Never certainly have I seen a plainer confession of guilt upon human
-countenances. The older man seemed numbed and dazed with a heavy, sullen
-expression upon his strongly-marked face. The son, on the other hand,
-had dropped all that jaunty, dashing style which had characterized him,
-and the ferocity of a dangerous wild beast gleamed in his dark eyes
-and distorted his handsome features. The Inspector said nothing, but,
-stepping to the door, he blew his whistle. Two of his constables came at
-the call.
-
-"I have no alternative, Mr. Cunningham," said he. "I trust that this may
-all prove to be an absurd mistake, but you can see that--Ah, would you?
-Drop it!" He struck out with his hand, and a revolver which the younger
-man was in the act of cocking clattered down upon the floor.
-
-"Keep that," said Holmes, quietly putting his foot upon it; "you will
-find it useful at the trial. But this is what we really wanted." He held
-up a little crumpled piece of paper.
-
-"The remainder of the sheet!" cried the Inspector.
-
-"Precisely."
-
-"And where was it?"
-
-"Where I was sure it must be. I'll make the whole matter clear to you
-presently. I think, Colonel, that you and Watson might return now, and
-I will be with you again in an hour at the furthest. The Inspector and I
-must have a word with the prisoners, but you will certainly see me back
-at luncheon time."
-
-
-Sherlock Holmes was as good as his word, for about one o'clock he
-rejoined us in the Colonel's smoking-room. He was accompanied by a
-little elderly gentleman, who was introduced to me as the Mr. Acton
-whose house had been the scene of the original burglary.
-
-"I wished Mr. Acton to be present while I demonstrated this small matter
-to you," said Holmes, "for it is natural that he should take a keen
-interest in the details. I am afraid, my dear Colonel, that you must
-regret the hour that you took in such a stormy petrel as I am."
-
-"On the contrary," answered the Colonel, warmly, "I consider it the
-greatest privilege to have been permitted to study your methods of
-working. I confess that they quite surpass my expectations, and that I
-am utterly unable to account for your result. I have not yet seen the
-vestige of a clue."
-
-"I am afraid that my explanation may disillusion you but it has always
-been my habit to hide none of my methods, either from my friend Watson
-or from any one who might take an intelligent interest in them. But,
-first, as I am rather shaken by the knocking about which I had in
-the dressing-room, I think that I shall help myself to a dash of your
-brandy, Colonel. My strength had been rather tried of late."
-
-"I trust that you had no more of those nervous attacks."
-
-Sherlock Holmes laughed heartily. "We will come to that in its turn,"
-said he. "I will lay an account of the case before you in its due order,
-showing you the various points which guided me in my decision. Pray
-interrupt me if there is any inference which is not perfectly clear to
-you.
-
-"It is of the highest importance in the art of detection to be able
-to recognize, out of a number of facts, which are incidental and which
-vital. Otherwise your energy and attention must be dissipated instead of
-being concentrated. Now, in this case there was not the slightest doubt
-in my mind from the first that the key of the whole matter must be
-looked for in the scrap of paper in the dead man's hand.
-
-"Before going into this, I would draw your attention to the fact that,
-if Alec Cunningham's narrative was correct, and if the assailant, after
-shooting William Kirwan, had instantly fled, then it obviously could not
-be he who tore the paper from the dead man's hand. But if it was not he,
-it must have been Alec Cunningham himself, for by the time that the old
-man had descended several servants were upon the scene. The point is a
-simple one, but the Inspector had overlooked it because he had started
-with the supposition that these county magnates had had nothing to do
-with the matter. Now, I make a point of never having any prejudices,
-and of following docilely wherever fact may lead me, and so, in the
-very first stage of the investigation, I found myself looking a little
-askance at the part which had been played by Mr. Alec Cunningham.
-
-"And now I made a very careful examination of the corner of paper which
-the Inspector had submitted to us. It was at once clear to me that it
-formed part of a very remarkable document. Here it is. Do you not now
-observe something very suggestive about it?"
-
-"It has a very irregular look," said the Colonel.
-
-"My dear sir," cried Holmes, "there cannot be the least doubt in the
-world that it has been written by two persons doing alternate words.
-When I draw your attention to the strong t's of 'at' and 'to', and ask
-you to compare them with the weak ones of 'quarter' and 'twelve,' you
-will instantly recognize the fact. A very brief analysis of these
-four words would enable you to say with the utmost confidence that the
-'learn' and the 'maybe' are written in the stronger hand, and the 'what'
-in the weaker."
-
-"By Jove, it's as clear as day!" cried the Colonel. "Why on earth should
-two men write a letter in such a fashion?"
-
-"Obviously the business was a bad one, and one of the men who distrusted
-the other was determined that, whatever was done, each should have an
-equal hand in it. Now, of the two men, it is clear that the one who
-wrote the 'at' and 'to' was the ringleader."
-
-"How do you get at that?"
-
-"We might deduce it from the mere character of the one hand as compared
-with the other. But we have more assured reasons than that for supposing
-it. If you examine this scrap with attention you will come to the
-conclusion that the man with the stronger hand wrote all his words
-first, leaving blanks for the other to fill up. These blanks were not
-always sufficient, and you can see that the second man had a squeeze
-to fit his 'quarter' in between the 'at' and the 'to,' showing that the
-latter were already written. The man who wrote all his words first is
-undoubtedly the man who planned the affair."
-
-"Excellent!" cried Mr. Acton.
-
-"But very superficial," said Holmes. "We come now, however, to a point
-which is of importance. You may not be aware that the deduction of a
-man's age from his writing is one which has brought to considerable
-accuracy by experts. In normal cases one can place a man in his true
-decade with tolerable confidence. I say normal cases, because ill-health
-and physical weakness reproduce the signs of old age, even when the
-invalid is a youth. In this case, looking at the bold, strong hand of
-the one, and the rather broken-backed appearance of the other, which
-still retains its legibility although the t's have begun to lose their
-crossing, we can say that the one was a young man and the other was
-advanced in years without being positively decrepit."
-
-"Excellent!" cried Mr. Acton again.
-
-"There is a further point, however, which is subtler and of greater
-interest. There is something in common between these hands. They belong
-to men who are blood-relatives. It may be most obvious to you in the
-Greek e's, but to me there are many small points which indicate the same
-thing. I have no doubt at all that a family mannerism can be traced in
-these two specimens of writing. I am only, of course, giving you
-the leading results now of my examination of the paper. There were
-twenty-three other deductions which would be of more interest to experts
-than to you. They all tend to deepen the impression upon my mind that
-the Cunninghams, father and son, had written this letter.
-
-"Having got so far, my next step was, of course, to examine into the
-details of the crime, and to see how far they would help us. I went up
-to the house with the Inspector, and saw all that was to be seen. The
-wound upon the dead man was, as I was able to determine with absolute
-confidence, fired from a revolver at the distance of something over
-four yards. There was no powder-blackening on the clothes. Evidently,
-therefore, Alec Cunningham had lied when he said that the two men were
-struggling when the shot was fired. Again, both father and son agreed
-as to the place where the man escaped into the road. At that point,
-however, as it happens, there is a broadish ditch, moist at the bottom.
-As there were no indications of bootmarks about this ditch, I was
-absolutely sure not only that the Cunninghams had again lied, but that
-there had never been any unknown man upon the scene at all.
-
-"And now I have to consider the motive of this singular crime. To get
-at this, I endeavored first of all to solve the reason of the original
-burglary at Mr. Acton's. I understood, from something which the Colonel
-told us, that a lawsuit had been going on between you, Mr. Acton, and
-the Cunninghams. Of course, it instantly occurred to me that they had
-broken into your library with the intention of getting at some document
-which might be of importance in the case."
-
-"Precisely so," said Mr. Acton. "There can be no possible doubt as to
-their intentions. I have the clearest claim upon half of their present
-estate, and if they could have found a single paper--which, fortunately,
-was in the strong-box of my solicitors--they would undoubtedly have
-crippled our case."
-
-"There you are," said Holmes, smiling. "It was a dangerous, reckless
-attempt, in which I seem to trace the influence of young Alec. Having
-found nothing they tried to divert suspicion by making it appear to be
-an ordinary burglary, to which end they carried off whatever they could
-lay their hands upon. That is all clear enough, but there was much that
-was still obscure. What I wanted above all was to get the missing part
-of that note. I was certain that Alec had torn it out of the dead man's
-hand, and almost certain that he must have thrust it into the pocket of
-his dressing-gown. Where else could he have put it? The only question
-was whether it was still there. It was worth an effort to find out, and
-for that object we all went up to the house.
-
-"The Cunninghams joined us, as you doubtless remember, outside the
-kitchen door. It was, of course, of the very first importance that they
-should not be reminded of the existence of this paper, otherwise they
-would naturally destroy it without delay. The Inspector was about to
-tell them the importance which we attached to it when, by the luckiest
-chance in the world, I tumbled down in a sort of fit and so changed the
-conversation.
-
-"Good heavens!" cried the Colonel, laughing, "do you mean to say all our
-sympathy was wasted and your fit an imposture?"
-
-"Speaking professionally, it was admirably done," cried I, looking in
-amazement at this man who was forever confounding me with some new phase
-of his astuteness.
-
-"It is an art which is often useful," said he. "When I recovered I
-managed, by a device which had perhaps some little merit of ingenuity,
-to get old Cunningham to write the word 'twelve,' so that I might
-compare it with the 'twelve' upon the paper."
-
-"Oh, what an ass I have been!" I exclaimed.
-
-"I could see that you were commiserating me over my weakness," said
-Holmes, laughing. "I was sorry to cause you the sympathetic pain which
-I know that you felt. We then went upstairs together, and having entered
-the room and seen the dressing-gown hanging up behind the door, I
-contrived, by upsetting a table, to engage their attention for the
-moment, and slipped back to examine the pockets. I had hardly got the
-paper, however--which was, as I had expected, in one of them--when the
-two Cunninghams were on me, and would, I verily believe, have murdered
-me then and there but for your prompt and friendly aid. As it is, I feel
-that young man's grip on my throat now, and the father has twisted my
-wrist round in the effort to get the paper out of my hand. They saw that
-I must know all about it, you see, and the sudden change from absolute
-security to complete despair made them perfectly desperate.
-
-"I had a little talk with old Cunningham afterwards as to the motive of
-the crime. He was tractable enough, though his son was a perfect demon,
-ready to blow out his own or anybody else's brains if he could have got
-to his revolver. When Cunningham saw that the case against him was so
-strong he lost all heart and made a clean breast of everything. It seems
-that William had secretly followed his two masters on the night when
-they made their raid upon Mr. Acton's, and having thus got them into
-his power, proceeded, under threats of exposure, to levy blackmail upon
-them. Mr. Alec, however, was a dangerous man to play games of that
-sort with. It was a stroke of positive genius on his part to see in the
-burglary scare which was convulsing the country side an opportunity of
-plausibly getting rid of the man whom he feared. William was decoyed up
-and shot, and had they only got the whole of the note and paid a little
-more attention to detail in the accessories, it is very possible that
-suspicion might never have been aroused."
-
-"And the note?" I asked.
-
-Sherlock Holmes placed the subjoined paper before us.
-
- If you will only come around to the east gate you it will
- very much surprise you and be of the greatest service to you
- and also to Annie Morrison. But say nothing to anyone upon
- the matter.
-
-"It is very much the sort of thing that I expected," said he. "Of
-course, we do not yet know what the relations may have been between Alec
-Cunningham, William Kirwan, and Annie Morrison. The results shows that
-the trap was skillfully baited. I am sure that you cannot fail to be
-delighted with the traces of heredity shown in the p's and in the tails
-of the g's. The absence of the i-dots in the old man's writing is also
-most characteristic. Watson, I think our quiet rest in the country has
-been a distinct success, and I shall certainly return much invigorated
-to Baker Street to-morrow."
-
-
-
-
-Adventure VII. The Crooked Man
-
-
-One summer night, a few months after my marriage, I was seated by my own
-hearth smoking a last pipe and nodding over a novel, for my day's work
-had been an exhausting one. My wife had already gone upstairs, and the
-sound of the locking of the hall door some time before told me that the
-servants had also retired. I had risen from my seat and was knocking out
-the ashes of my pipe when I suddenly heard the clang of the bell.
-
-I looked at the clock. It was a quarter to twelve. This could not be
-a visitor at so late an hour. A patient, evidently, and possibly an
-all-night sitting. With a wry face I went out into the hall and opened
-the door. To my astonishment it was Sherlock Holmes who stood upon my
-step.
-
-"Ah, Watson," said he, "I hoped that I might not be too late to catch
-you."
-
-"My dear fellow, pray come in."
-
-"You look surprised, and no wonder! Relieved, too, I fancy! Hum! You
-still smoke the Arcadia mixture of your bachelor days then! There's no
-mistaking that fluffy ash upon your coat. It's easy to tell that you
-have been accustomed to wear a uniform, Watson. You'll never pass as
-a pure-bred civilian as long as you keep that habit of carrying your
-handkerchief in your sleeve. Could you put me up to-night?"
-
-"With pleasure."
-
-"You told me that you had bachelor quarters for one, and I see that you
-have no gentleman visitor at present. Your hat-stand proclaims as much."
-
-"I shall be delighted if you will stay."
-
-"Thank you. I'll fill the vacant peg then. Sorry to see that you've had
-the British workman in the house. He's a token of evil. Not the drains,
-I hope?"
-
-"No, the gas."
-
-"Ah! He has left two nail-marks from his boot upon your linoleum
-just where the light strikes it. No, thank you, I had some supper at
-Waterloo, but I'll smoke a pipe with you with pleasure."
-
-I handed him my pouch, and he seated himself opposite to me and smoked
-for some time in silence. I was well aware that nothing but business
-of importance would have brought him to me at such an hour, so I waited
-patiently until he should come round to it.
-
-"I see that you are professionally rather busy just now," said he,
-glancing very keenly across at me.
-
-"Yes, I've had a busy day," I answered. "It may seem very foolish in
-your eyes," I added, "but really I don't know how you deduced it."
-
-Holmes chuckled to himself.
-
-"I have the advantage of knowing your habits, my dear Watson," said he.
-"When your round is a short one you walk, and when it is a long one you
-use a hansom. As I perceive that your boots, although used, are by
-no means dirty, I cannot doubt that you are at present busy enough to
-justify the hansom."
-
-"Excellent!" I cried.
-
-"Elementary," said he. "It is one of those instances where the reasoner
-can produce an effect which seems remarkable to his neighbor, because
-the latter has missed the one little point which is the basis of the
-deduction. The same may be said, my dear fellow, for the effect of
-some of these little sketches of yours, which is entirely meretricious,
-depending as it does upon your retaining in your own hands some factors
-in the problem which are never imparted to the reader. Now, at present
-I am in the position of these same readers, for I hold in this hand
-several threads of one of the strangest cases which ever perplexed a
-man's brain, and yet I lack the one or two which are needful to complete
-my theory. But I'll have them, Watson, I'll have them!" His eyes kindled
-and a slight flush sprang into his thin cheeks. For an instant only.
-When I glanced again his face had resumed that red-Indian composure
-which had made so many regard him as a machine rather than a man.
-
-"The problem presents features of interest," said he. "I may even say
-exceptional features of interest. I have already looked into the matter,
-and have come, as I think, within sight of my solution. If you could
-accompany me in that last step you might be of considerable service to
-me."
-
-"I should be delighted."
-
-"Could you go as far as Aldershot to-morrow?"
-
-"I have no doubt Jackson would take my practice."
-
-"Very good. I want to start by the 11.10 from Waterloo."
-
-"That would give me time."
-
-"Then, if you are not too sleepy, I will give you a sketch of what has
-happened, and of what remains to be done."
-
-"I was sleepy before you came. I am quite wakeful now."
-
-"I will compress the story as far as may be done without omitting
-anything vital to the case. It is conceivable that you may even have
-read some account of the matter. It is the supposed murder of Colonel
-Barclay, of the Royal Munsters, at Aldershot, which I am investigating."
-
-"I have heard nothing of it."
-
-"It has not excited much attention yet, except locally. The facts are
-only two days old. Briefly they are these:
-
-"The Royal Munsters is, as you know, one of the most famous Irish
-regiments in the British army. It did wonders both in the Crimea and the
-Mutiny, and has since that time distinguished itself upon every possible
-occasion. It was commanded up to Monday night by James Barclay,
-a gallant veteran, who started as a full private, was raised to
-commissioned rank for his bravery at the time of the Mutiny, and so
-lived to command the regiment in which he had once carried a musket.
-
-"Colonel Barclay had married at the time when he was a sergeant, and
-his wife, whose maiden name was Miss Nancy Devoy, was the daughter of a
-former color-sergeant in the same corps. There was, therefore, as can
-be imagined, some little social friction when the young couple (for
-they were still young) found themselves in their new surroundings. They
-appear, however, to have quickly adapted themselves, and Mrs. Barclay
-has always, I understand, been as popular with the ladies of the
-regiment as her husband was with his brother officers. I may add that
-she was a woman of great beauty, and that even now, when she has been
-married for upwards of thirty years, she is still of a striking and
-queenly appearance.
-
-"Colonel Barclay's family life appears to have been a uniformly happy
-one. Major Murphy, to whom I owe most of my facts, assures me that he
-has never heard of any misunderstanding between the pair. On the whole,
-he thinks that Barclay's devotion to his wife was greater than his
-wife's to Barclay. He was acutely uneasy if he were absent from her for
-a day. She, on the other hand, though devoted and faithful, was less
-obtrusively affectionate. But they were regarded in the regiment as
-the very model of a middle-aged couple. There was absolutely nothing in
-their mutual relations to prepare people for the tragedy which was to
-follow.
-
-"Colonel Barclay himself seems to have had some singular traits in his
-character. He was a dashing, jovial old soldier in his usual mood,
-but there were occasions on which he seemed to show himself capable
-of considerable violence and vindictiveness. This side of his nature,
-however, appears never to have been turned towards his wife. Another
-fact, which had struck Major Murphy and three out of five of the other
-officers with whom I conversed, was the singular sort of depression
-which came upon him at times. As the major expressed it, the smile had
-often been struck from his mouth, as if by some invisible hand, when he
-has been joining the gayeties and chaff of the mess-table. For days on
-end, when the mood was on him, he has been sunk in the deepest gloom.
-This and a certain tinge of superstition were the only unusual traits
-in his character which his brother officers had observed. The latter
-peculiarity took the form of a dislike to being left alone, especially
-after dark. This puerile feature in a nature which was conspicuously
-manly had often given rise to comment and conjecture.
-
-"The first battalion of the Royal Munsters (which is the old 117th) has
-been stationed at Aldershot for some years. The married officers live
-out of barracks, and the Colonel has during all this time occupied a
-villa called Lachine, about half a mile from the north camp. The house
-stands in its own grounds, but the west side of it is not more than
-thirty yards from the high-road. A coachman and two maids form the
-staff of servants. These with their master and mistress were the sole
-occupants of Lachine, for the Barclays had no children, nor was it usual
-for them to have resident visitors.
-
-"Now for the events at Lachine between nine and ten on the evening of
-last Monday."
-
-"Mrs. Barclay was, it appears, a member of the Roman Catholic Church,
-and had interested herself very much in the establishment of the Guild
-of St. George, which was formed in connection with the Watt Street
-Chapel for the purpose of supplying the poor with cast-off clothing.
-A meeting of the Guild had been held that evening at eight, and Mrs.
-Barclay had hurried over her dinner in order to be present at it. When
-leaving the house she was heard by the coachman to make some commonplace
-remark to her husband, and to assure him that she would be back before
-very long. She then called for Miss Morrison, a young lady who lives
-in the next villa, and the two went off together to their meeting. It
-lasted forty minutes, and at a quarter-past nine Mrs. Barclay returned
-home, having left Miss Morrison at her door as she passed.
-
-"There is a room which is used as a morning-room at Lachine. This faces
-the road and opens by a large glass folding-door on to the lawn. The
-lawn is thirty yards across, and is only divided from the highway by
-a low wall with an iron rail above it. It was into this room that Mrs.
-Barclay went upon her return. The blinds were not down, for the room was
-seldom used in the evening, but Mrs. Barclay herself lit the lamp and
-then rang the bell, asking Jane Stewart, the house-maid, to bring her
-a cup of tea, which was quite contrary to her usual habits. The Colonel
-had been sitting in the dining-room, but hearing that his wife had
-returned he joined her in the morning-room. The coachman saw him cross
-the hall and enter it. He was never seen again alive.
-
-"The tea which had been ordered was brought up at the end of ten
-minutes; but the maid, as she approached the door, was surprised to
-hear the voices of her master and mistress in furious altercation. She
-knocked without receiving any answer, and even turned the handle, but
-only to find that the door was locked upon the inside. Naturally enough
-she ran down to tell the cook, and the two women with the coachman came
-up into the hall and listened to the dispute which was still raging.
-They all agreed that only two voices were to be heard, those of Barclay
-and of his wife. Barclay's remarks were subdued and abrupt, so that none
-of them were audible to the listeners. The lady's, on the other hand,
-were most bitter, and when she raised her voice could be plainly heard.
-'You coward!' she repeated over and over again. 'What can be done now?
-What can be done now? Give me back my life. I will never so much as
-breathe the same air with you again! You coward! You coward!' Those were
-scraps of her conversation, ending in a sudden dreadful cry in the man's
-voice, with a crash, and a piercing scream from the woman. Convinced
-that some tragedy had occurred, the coachman rushed to the door and
-strove to force it, while scream after scream issued from within. He was
-unable, however, to make his way in, and the maids were too distracted
-with fear to be of any assistance to him. A sudden thought struck him,
-however, and he ran through the hall door and round to the lawn upon
-which the long French windows open. One side of the window was open,
-which I understand was quite usual in the summer-time, and he passed
-without difficulty into the room. His mistress had ceased to scream and
-was stretched insensible upon a couch, while with his feet tilted over
-the side of an arm-chair, and his head upon the ground near the corner
-of the fender, was lying the unfortunate soldier stone dead in a pool of
-his own blood.
-
-"Naturally, the coachman's first thought, on finding that he could do
-nothing for his master, was to open the door. But here an unexpected and
-singular difficulty presented itself. The key was not in the inner side
-of the door, nor could he find it anywhere in the room. He went out
-again, therefore, through the window, and having obtained the help of
-a policeman and of a medical man, he returned. The lady, against whom
-naturally the strongest suspicion rested, was removed to her room, still
-in a state of insensibility. The Colonel's body was then placed upon the
-sofa, and a careful examination made of the scene of the tragedy.
-
-"The injury from which the unfortunate veteran was suffering was found
-to be a jagged cut some two inches long at the back part of his head,
-which had evidently been caused by a violent blow from a blunt weapon.
-Nor was it difficult to guess what that weapon may have been. Upon the
-floor, close to the body, was lying a singular club of hard carved wood
-with a bone handle. The Colonel possessed a varied collection of weapons
-brought from the different countries in which he had fought, and it
-is conjectured by the police that his club was among his trophies. The
-servants deny having seen it before, but among the numerous curiosities
-in the house it is possible that it may have been overlooked. Nothing
-else of importance was discovered in the room by the police, save the
-inexplicable fact that neither upon Mrs. Barclay's person nor upon that
-of the victim nor in any part of the room was the missing key to
-be found. The door had eventually to be opened by a locksmith from
-Aldershot.
-
-"That was the state of things, Watson, when upon the Tuesday morning I,
-at the request of Major Murphy, went down to Aldershot to supplement
-the efforts of the police. I think that you will acknowledge that the
-problem was already one of interest, but my observations soon made me
-realize that it was in truth much more extraordinary than would at first
-sight appear.
-
-"Before examining the room I cross-questioned the servants, but only
-succeeded in eliciting the facts which I have already stated. One other
-detail of interest was remembered by Jane Stewart, the housemaid. You
-will remember that on hearing the sound of the quarrel she descended and
-returned with the other servants. On that first occasion, when she was
-alone, she says that the voices of her master and mistress were sunk
-so low that she could hear hardly anything, and judged by their tones
-rather than their words that they had fallen out. On my pressing her,
-however, she remembered that she heard the word David uttered twice by
-the lady. The point is of the utmost importance as guiding us towards
-the reason of the sudden quarrel. The Colonel's name, you remember, was
-James.
-
-"There was one thing in the case which had made the deepest impression
-both upon the servants and the police. This was the contortion of the
-Colonel's face. It had set, according to their account, into the most
-dreadful expression of fear and horror which a human countenance is
-capable of assuming. More than one person fainted at the mere sight
-of him, so terrible was the effect. It was quite certain that he had
-foreseen his fate, and that it had caused him the utmost horror. This,
-of course, fitted in well enough with the police theory, if the Colonel
-could have seen his wife making a murderous attack upon him. Nor was
-the fact of the wound being on the back of his head a fatal objection to
-this, as he might have turned to avoid the blow. No information could
-be got from the lady herself, who was temporarily insane from an acute
-attack of brain-fever.
-
-"From the police I learned that Miss Morrison, who you remember went out
-that evening with Mrs. Barclay, denied having any knowledge of what it
-was which had caused the ill-humor in which her companion had returned.
-
-"Having gathered these facts, Watson, I smoked several pipes over them,
-trying to separate those which were crucial from others which were
-merely incidental. There could be no question that the most distinctive
-and suggestive point in the case was the singular disappearance of the
-door-key. A most careful search had failed to discover it in the room.
-Therefore it must have been taken from it. But neither the Colonel
-nor the Colonel's wife could have taken it. That was perfectly clear.
-Therefore a third person must have entered the room. And that third
-person could only have come in through the window. It seemed to me that
-a careful examination of the room and the lawn might possibly reveal
-some traces of this mysterious individual. You know my methods, Watson.
-There was not one of them which I did not apply to the inquiry. And it
-ended by my discovering traces, but very different ones from those which
-I had expected. There had been a man in the room, and he had crossed
-the lawn coming from the road. I was able to obtain five very clear
-impressions of his foot-marks: one in the roadway itself, at the point
-where he had climbed the low wall, two on the lawn, and two very faint
-ones upon the stained boards near the window where he had entered.
-He had apparently rushed across the lawn, for his toe-marks were much
-deeper than his heels. But it was not the man who surprised me. It was
-his companion."
-
-"His companion!"
-
-Holmes pulled a large sheet of tissue-paper out of his pocket and
-carefully unfolded it upon his knee.
-
-"What do you make of that?" he asked.
-
-The paper was covered with he tracings of the foot-marks of some small
-animal. It had five well-marked foot-pads, an indication of long nails,
-and the whole print might be nearly as large as a dessert-spoon.
-
-"It's a dog," said I.
-
-"Did you ever hear of a dog running up a curtain? I found distinct
-traces that this creature had done so."
-
-"A monkey, then?"
-
-"But it is not the print of a monkey."
-
-"What can it be, then?"
-
-"Neither dog nor cat nor monkey nor any creature that we are familiar
-with. I have tried to reconstruct it from the measurements. Here are
-four prints where the beast has been standing motionless. You see that
-it is no less than fifteen inches from fore-foot to hind. Add to that
-the length of neck and head, and you get a creature not much less than
-two feet long--probably more if there is any tail. But now observe this
-other measurement. The animal has been moving, and we have the length
-of its stride. In each case it is only about three inches. You have an
-indication, you see, of a long body with very short legs attached to it.
-It has not been considerate enough to leave any of its hair behind it.
-But its general shape must be what I have indicated, and it can run up a
-curtain, and it is carnivorous."
-
-"How do you deduce that?"
-
-"Because it ran up the curtain. A canary's cage was hanging in the
-window, and its aim seems to have been to get at the bird."
-
-"Then what was the beast?"
-
-"Ah, if I could give it a name it might go a long way towards solving
-the case. On the whole, it was probably some creature of the weasel and
-stoat tribe--and yet it is larger than any of these that I have seen."
-
-"But what had it to do with the crime?"
-
-"That, also, is still obscure. But we have learned a good deal, you
-perceive. We know that a man stood in the road looking at the quarrel
-between the Barclays--the blinds were up and the room lighted. We know,
-also, that he ran across the lawn, entered the room, accompanied by a
-strange animal, and that he either struck the Colonel or, as is equally
-possible, that the Colonel fell down from sheer fright at the sight of
-him, and cut his head on the corner of the fender. Finally, we have the
-curious fact that the intruder carried away the key with him when he
-left."
-
-"Your discoveries seem to have left the business more obscure that it
-was before," said I.
-
-"Quite so. They undoubtedly showed that the affair was much deeper than
-was at first conjectured. I thought the matter over, and I came to
-the conclusion that I must approach the case from another aspect. But
-really, Watson, I am keeping you up, and I might just as well tell you
-all this on our way to Aldershot to-morrow."
-
-"Thank you, you have gone rather too far to stop."
-
-"It is quite certain that when Mrs. Barclay left the house at half-past
-seven she was on good terms with her husband. She was never, as I think
-I have said, ostentatiously affectionate, but she was heard by the
-coachman chatting with the Colonel in a friendly fashion. Now, it was
-equally certain that, immediately on her return, she had gone to the
-room in which she was least likely to see her husband, had flown to tea
-as an agitated woman will, and finally, on his coming in to her, had
-broken into violent recriminations. Therefore something had occurred
-between seven-thirty and nine o'clock which had completely altered her
-feelings towards him. But Miss Morrison had been with her during the
-whole of that hour and a half. It was absolutely certain, therefore, in
-spite of her denial, that she must know something of the matter.
-
-"My first conjecture was, that possibly there had been some passages
-between this young lady and the old soldier, which the former had now
-confessed to the wife. That would account for the angry return, and
-also for the girl's denial that anything had occurred. Nor would it be
-entirely incompatible with most of the words overhead. But there was the
-reference to David, and there was the known affection of the Colonel for
-his wife, to weigh against it, to say nothing of the tragic intrusion
-of this other man, which might, of course, be entirely disconnected with
-what had gone before. It was not easy to pick one's steps, but, on the
-whole, I was inclined to dismiss the idea that there had been anything
-between the Colonel and Miss Morrison, but more than ever convinced that
-the young lady held the clue as to what it was which had turned Mrs.
-Barclay to hatred of her husband. I took the obvious course, therefore,
-of calling upon Miss M., of explaining to her that I was perfectly
-certain that she held the facts in her possession, and of assuring her
-that her friend, Mrs. Barclay, might find herself in the dock upon a
-capital charge unless the matter were cleared up.
-
-"Miss Morrison is a little ethereal slip of a girl, with timid eyes
-and blond hair, but I found her by no means wanting in shrewdness and
-common-sense. She sat thinking for some time after I had spoken, and
-then, turning to me with a brisk air of resolution, she broke into a
-remarkable statement which I will condense for your benefit.
-
-"'I promised my friend that I would say nothing of the matter, and a
-promise is a promise,' said she; 'but if I can really help her when
-so serious a charge is laid against her, and when her own mouth, poor
-darling, is closed by illness, then I think I am absolved from my
-promise. I will tell you exactly what happened upon Monday evening.
-
-"'We were returning from the Watt Street Mission about a quarter to nine
-o'clock. On our way we had to pass through Hudson Street, which is
-a very quiet thoroughfare. There is only one lamp in it, upon the
-left-hand side, and as we approached this lamp I saw a man coming
-towards us with his back very bent, and something like a box slung over
-one of his shoulders. He appeared to be deformed, for he carried his
-head low and walked with his knees bent. We were passing him when he
-raised his face to look at us in the circle of light thrown by the lamp,
-and as he did so he stopped and screamed out in a dreadful voice, "My
-God, it's Nancy!" Mrs. Barclay turned as white as death, and would have
-fallen down had the dreadful-looking creature not caught hold of her. I
-was going to call for the police, but she, to my surprise, spoke quite
-civilly to the fellow.
-
-"'"I thought you had been dead this thirty years, Henry," said she, in a
-shaking voice.
-
-"'"So I have," said he, and it was awful to hear the tones that he said
-it in. He had a very dark, fearsome face, and a gleam in his eyes that
-comes back to me in my dreams. His hair and whiskers were shot with
-gray, and his face was all crinkled and puckered like a withered apple.
-
-"'"Just walk on a little way, dear," said Mrs. Barclay; "I want to have
-a word with this man. There is nothing to be afraid of." She tried to
-speak boldly, but she was still deadly pale and could hardly get her
-words out for the trembling of her lips.
-
-"'I did as she asked me, and they talked together for a few minutes.
-Then she came down the street with her eyes blazing, and I saw the
-crippled wretch standing by the lamp-post and shaking his clenched fists
-in the air as if he were mad with rage. She never said a word until we
-were at the door here, when she took me by the hand and begged me to
-tell no one what had happened.
-
-"'"It's an old acquaintance of mine who has come down in the world,"
-said she. When I promised her I would say nothing she kissed me, and I
-have never seen her since. I have told you now the whole truth, and if
-I withheld it from the police it is because I did not realize then the
-danger in which my dear friend stood. I know that it can only be to her
-advantage that everything should be known.'
-
-"There was her statement, Watson, and to me, as you can imagine, it was
-like a light on a dark night. Everything which had been disconnected
-before began at once to assume its true place, and I had a shadowy
-presentiment of the whole sequence of events. My next step obviously was
-to find the man who had produced such a remarkable impression upon Mrs.
-Barclay. If he were still in Aldershot it should not be a very difficult
-matter. There are not such a very great number of civilians, and a
-deformed man was sure to have attracted attention. I spent a day in the
-search, and by evening--this very evening, Watson--I had run him down.
-The man's name is Henry Wood, and he lives in lodgings in this same
-street in which the ladies met him. He has only been five days in the
-place. In the character of a registration-agent I had a most interesting
-gossip with his landlady. The man is by trade a conjurer and performer,
-going round the canteens after nightfall, and giving a little
-entertainment at each. He carries some creature about with him in that
-box; about which the landlady seemed to be in considerable trepidation,
-for she had never seen an animal like it. He uses it in some of his
-tricks according to her account. So much the woman was able to tell me,
-and also that it was a wonder the man lived, seeing how twisted he was,
-and that he spoke in a strange tongue sometimes, and that for the last
-two nights she had heard him groaning and weeping in his bedroom. He
-was all right, as far as money went, but in his deposit he had given her
-what looked like a bad florin. She showed it to me, Watson, and it was
-an Indian rupee.
-
-"So now, my dear fellow, you see exactly how we stand and why it is I
-want you. It is perfectly plain that after the ladies parted from this
-man he followed them at a distance, that he saw the quarrel between
-husband and wife through the window, that he rushed in, and that
-the creature which he carried in his box got loose. That is all very
-certain. But he is the only person in this world who can tell us exactly
-what happened in that room."
-
-"And you intend to ask him?"
-
-"Most certainly--but in the presence of a witness."
-
-"And I am the witness?"
-
-"If you will be so good. If he can clear the matter up, well and good.
-If he refuses, we have no alternative but to apply for a warrant."
-
-"But how do you know he'll be there when we return?"
-
-"You may be sure that I took some precautions. I have one of my Baker
-Street boys mounting guard over him who would stick to him like a burr,
-go where he might. We shall find him in Hudson Street to-morrow, Watson,
-and meanwhile I should be the criminal myself if I kept you out of bed
-any longer."
-
-It was midday when we found ourselves at the scene of the tragedy, and,
-under my companion's guidance, we made our way at once to Hudson Street.
-In spite of his capacity for concealing his emotions, I could easily see
-that Holmes was in a state of suppressed excitement, while I was myself
-tingling with that half-sporting, half-intellectual pleasure which
-I invariably experienced when I associated myself with him in his
-investigations.
-
-"This is the street," said he, as we turned into a short thoroughfare
-lined with plain two-storied brick houses. "Ah, here is Simpson to
-report."
-
-"He's in all right, Mr. Holmes," cried a small street Arab, running up
-to us.
-
-"Good, Simpson!" said Holmes, patting him on the head. "Come along,
-Watson. This is the house." He sent in his card with a message that he
-had come on important business, and a moment later we were face to face
-with the man whom we had come to see. In spite of the warm weather he
-was crouching over a fire, and the little room was like an oven. The
-man sat all twisted and huddled in his chair in a way which gave an
-indescribably impression of deformity; but the face which he turned
-towards us, though worn and swarthy, must at some time have been
-remarkable for its beauty. He looked suspiciously at us now out of
-yellow-shot, bilious eyes, and, without speaking or rising, he waved
-towards two chairs.
-
-"Mr. Henry Wood, late of India, I believe," said Holmes, affably. "I've
-come over this little matter of Colonel Barclay's death."
-
-"What should I know about that?"
-
-"That's what I want to ascertain. You know, I suppose, that unless the
-matter is cleared up, Mrs. Barclay, who is an old friend of yours, will
-in all probability be tried for murder."
-
-The man gave a violent start.
-
-"I don't know who you are," he cried, "nor how you come to know what you
-do know, but will you swear that this is true that you tell me?"
-
-"Why, they are only waiting for her to come to her senses to arrest
-her."
-
-"My God! Are you in the police yourself?"
-
-"No."
-
-"What business is it of yours, then?"
-
-"It's every man's business to see justice done."
-
-"You can take my word that she is innocent."
-
-"Then you are guilty."
-
-"No, I am not."
-
-"Who killed Colonel James Barclay, then?"
-
-"It was a just providence that killed him. But, mind you this, that if
-I had knocked his brains out, as it was in my heart to do, he would have
-had no more than his due from my hands. If his own guilty conscience had
-not struck him down it is likely enough that I might have had his blood
-upon my soul. You want me to tell the story. Well, I don't know why I
-shouldn't, for there's no cause for me to be ashamed of it.
-
-"It was in this way, sir. You see me now with my back like a camel and
-my ribs all awry, but there was a time when Corporal Henry Wood was the
-smartest man in the 117th foot. We were in India then, in cantonments,
-at a place we'll call Bhurtee. Barclay, who died the other day, was
-sergeant in the same company as myself, and the belle of the regiment,
-ay, and the finest girl that ever had the breath of life between her
-lips, was Nancy Devoy, the daughter of the color-sergeant. There were
-two men that loved her, and one that she loved, and you'll smile when
-you look at this poor thing huddled before the fire, and hear me say
-that it was for my good looks that she loved me.
-
-"Well, though I had her heart, her father was set upon her marrying
-Barclay. I was a harum-scarum, reckless lad, and he had had an
-education, and was already marked for the sword-belt. But the girl held
-true to me, and it seemed that I would have had her when the Mutiny
-broke out, and all hell was loose in the country.
-
-"We were shut up in Bhurtee, the regiment of us with half a battery of
-artillery, a company of Sikhs, and a lot of civilians and women-folk.
-There were ten thousand rebels round us, and they were as keen as a set
-of terriers round a rat-cage. About the second week of it our water gave
-out, and it was a question whether we could communicate with General
-Neill's column, which was moving up country. It was our only chance, for
-we could not hope to fight our way out with all the women and children,
-so I volunteered to go out and to warn General Neill of our danger. My
-offer was accepted, and I talked it over with Sergeant Barclay, who was
-supposed to know the ground better than any other man, and who drew up
-a route by which I might get through the rebel lines. At ten o'clock the
-same night I started off upon my journey. There were a thousand lives to
-save, but it was of only one that I was thinking when I dropped over the
-wall that night.
-
-"My way ran down a dried-up watercourse, which we hoped would screen
-me from the enemy's sentries; but as I crept round the corner of it
-I walked right into six of them, who were crouching down in the dark
-waiting for me. In an instant I was stunned with a blow and bound hand
-and foot. But the real blow was to my heart and not to my head, for as
-I came to and listened to as much as I could understand of their talk,
-I heard enough to tell me that my comrade, the very man who had arranged
-the way that I was to take, had betrayed me by means of a native servant
-into the hands of the enemy.
-
-"Well, there's no need for me to dwell on that part of it. You know now
-what James Barclay was capable of. Bhurtee was relieved by Neill next
-day, but the rebels took me away with them in their retreat, and it was
-many a long year before ever I saw a white face again. I was tortured
-and tried to get away, and was captured and tortured again. You can see
-for yourselves the state in which I was left. Some of them that fled
-into Nepaul took me with them, and then afterwards I was up past
-Darjeeling. The hill-folk up there murdered the rebels who had me, and
-I became their slave for a time until I escaped; but instead of going
-south I had to go north, until I found myself among the Afghans. There
-I wandered about for many a year, and at last came back to the Punjab,
-where I lived mostly among the natives and picked up a living by the
-conjuring tricks that I had learned. What use was it for me, a wretched
-cripple, to go back to England or to make myself known to my old
-comrades? Even my wish for revenge would not make me do that. I had
-rather that Nancy and my old pals should think of Harry Wood as having
-died with a straight back, than see him living and crawling with a stick
-like a chimpanzee. They never doubted that I was dead, and I meant that
-they never should. I heard that Barclay had married Nancy, and that he
-was rising rapidly in the regiment, but even that did not make me speak.
-
-"But when one gets old one has a longing for home. For years I've been
-dreaming of the bright green fields and the hedges of England. At last I
-determined to see them before I died. I saved enough to bring me across,
-and then I came here where the soldiers are, for I know their ways and
-how to amuse them and so earn enough to keep me."
-
-"Your narrative is most interesting," said Sherlock Holmes. "I have
-already heard of your meeting with Mrs. Barclay, and your mutual
-recognition. You then, as I understand, followed her home and saw
-through the window an altercation between her husband and her, in which
-she doubtless cast his conduct to you in his teeth. Your own feelings
-overcame you, and you ran across the lawn and broke in upon them."
-
-"I did, sir, and at the sight of me he looked as I have never seen a man
-look before, and over he went with his head on the fender. But he was
-dead before he fell. I read death on his face as plain as I can read
-that text over the fire. The bare sight of me was like a bullet through
-his guilty heart."
-
-"And then?"
-
-"Then Nancy fainted, and I caught up the key of the door from her hand,
-intending to unlock it and get help. But as I was doing it it seemed to
-me better to leave it alone and get away, for the thing might look black
-against me, and any way my secret would be out if I were taken. In my
-haste I thrust the key into my pocket, and dropped my stick while I was
-chasing Teddy, who had run up the curtain. When I got him into his box,
-from which he had slipped, I was off as fast as I could run."
-
-"Who's Teddy?" asked Holmes.
-
-The man leaned over and pulled up the front of a kind of hutch in
-the corner. In an instant out there slipped a beautiful reddish-brown
-creature, thin and lithe, with the legs of a stoat, a long, thin nose,
-and a pair of the finest red eyes that ever I saw in an animal's head.
-
-"It's a mongoose," I cried.
-
-"Well, some call them that, and some call them ichneumon," said the
-man. "Snake-catcher is what I call them, and Teddy is amazing quick on
-cobras. I have one here without the fangs, and Teddy catches it every
-night to please the folk in the canteen.
-
-"Any other point, sir?"
-
-"Well, we may have to apply to you again if Mrs. Barclay should prove to
-be in serious trouble."
-
-"In that case, of course, I'd come forward."
-
-"But if not, there is no object in raking up this scandal against a
-dead man, foully as he has acted. You have at least the satisfaction
-of knowing that for thirty years of his life his conscience bitterly
-reproached him for this wicked deed. Ah, there goes Major Murphy on the
-other side of the street. Good-by, Wood. I want to learn if anything has
-happened since yesterday."
-
-We were in time to overtake the major before he reached the corner.
-
-"Ah, Holmes," he said: "I suppose you have heard that all this fuss has
-come to nothing?"
-
-"What then?"
-
-"The inquest is just over. The medical evidence showed conclusively
-that death was due to apoplexy. You see it was quite a simple case after
-all."
-
-"Oh, remarkably superficial," said Holmes, smiling. "Come, Watson, I
-don't think we shall be wanted in Aldershot any more."
-
-"There's one thing," said I, as we walked down to the station. "If the
-husband's name was James, and the other was Henry, what was this talk
-about David?"
-
-"That one word, my dear Watson, should have told me the whole story had
-I been the ideal reasoner which you are so fond of depicting. It was
-evidently a term of reproach."
-
-"Of reproach?"
-
-"Yes; David strayed a little occasionally, you know, and on one occasion
-in the same direction as Sergeant James Barclay. You remember the small
-affair of Uriah and Bathsheba? My biblical knowledge is a trifle rusty,
-I fear, but you will find the story in the first or second of Samuel."
-
-
-
-
-Adventure VIII. The Resident Patient
-
-
-Glancing over the somewhat incoherent series of Memoirs with which I
-have endeavored to illustrate a few of the mental peculiarities of my
-friend Mr. Sherlock Holmes, I have been struck by the difficulty which I
-have experienced in picking out examples which shall in every way answer
-my purpose. For in those cases in which Holmes has performed some tour
-de force of analytical reasoning, and has demonstrated the value of his
-peculiar methods of investigation, the facts themselves have often been
-so slight or so commonplace that I could not feel justified in laying
-them before the public. On the other hand, it has frequently happened
-that he has been concerned in some research where the facts have been of
-the most remarkable and dramatic character, but where the share which he
-has himself taken in determining their causes has been less pronounced
-than I, as his biographer, could wish. The small matter which I have
-chronicled under the heading of "A Study in Scarlet," and that other
-later one connected with the loss of the Gloria Scott, may serve as
-examples of this Scylla and Charybdis which are forever threatening the
-historian. It may be that in the business of which I am now about to
-write the part which my friend played is not sufficiently accentuated;
-and yet the whole train of circumstances is so remarkable that I cannot
-bring myself to omit it entirely from this series.
-
-It had been a close, rainy day in October. Our blinds were half-drawn,
-and Holmes lay curled upon the sofa, reading and re-reading a letter
-which he had received by the morning post. For myself, my term of
-service in India had trained me to stand heat better than cold, and
-a thermometer of 90 was no hardship. But the paper was uninteresting.
-Parliament had risen. Everybody was out of town, and I yearned for the
-glades of the New Forest or the shingle of Southsea. A depleted bank
-account had caused me to postpone my holiday, and as to my companion,
-neither the country nor the sea presented the slightest attraction to
-him. He loved to lie in the very centre of five millions of people, with
-his filaments stretching out and running through them, responsive to
-every little rumor or suspicion of unsolved crime. Appreciation of
-Nature found no place among his many gifts, and his only change was
-when he turned his mind from the evil-doer of the town to track down his
-brother of the country.
-
-Finding that Holmes was too absorbed for conversation, I had tossed
-aside the barren paper, and leaning back in my chair, I fell into a
-brown study. Suddenly my companion's voice broke in upon my thoughts.
-
-"You are right, Watson," said he. "It does seem a very preposterous way
-of settling a dispute."
-
-"Most preposterous!" I exclaimed, and then, suddenly realizing how
-he had echoed the inmost thought of my soul, I sat up in my chair and
-stared at him in blank amazement.
-
-"What is this, Holmes?" I cried. "This is beyond anything which I could
-have imagined."
-
-He laughed heartily at my perplexity.
-
-"You remember," said he, "that some little time ago, when I read you the
-passage in one of Poe's sketches, in which a close reasoner follows the
-unspoken thought of his companion, you were inclined to treat the
-matter as a mere tour de force of the author. On my remarking that I
-was constantly in the habit of doing the same thing you expressed
-incredulity."
-
-"Oh, no!"
-
-"Perhaps not with your tongue, my dear Watson, but certainly with your
-eyebrows. So when I saw you throw down your paper and enter upon a train
-of thought, I was very happy to have the opportunity of reading it
-off, and eventually of breaking into it, as a proof that I had been in
-rapport with you."
-
-But I was still far from satisfied. "In the example which you read to
-me," said I, "the reasoner drew his conclusions from the actions of the
-man whom he observed. If I remember right, he stumbled over a heap
-of stones, looked up at the stars, and so on. But I have been seated
-quietly in my chair, and what clues can I have given you?"
-
-"You do yourself an injustice. The features are given to man as the
-means by which he shall express his emotions, and yours are faithful
-servants."
-
-"Do you mean to say that you read my train of thoughts from my
-features?"
-
-"Your features, and especially your eyes. Perhaps you cannot yourself
-recall how your reverie commenced?"
-
-"No, I cannot."
-
-"Then I will tell you. After throwing down your paper, which was the
-action which drew my attention to you, you sat for half a minute with
-a vacant expression. Then your eyes fixed themselves upon your
-newly-framed picture of General Gordon, and I saw by the alteration in
-your face that a train of thought had been started. But it did not lead
-very far. Your eyes turned across to the unframed portrait of Henry Ward
-Beecher which stands upon the top of your books. You then glanced up at
-the wall, and of course your meaning was obvious. You were thinking
-that if the portrait were framed it would just cover that bare space and
-correspond with Gordon's picture over there."
-
-"You have followed me wonderfully!" I exclaimed.
-
-"So far I could hardly have gone astray. But now your thoughts went
-back to Beecher, and you looked hard across as if you were studying
-the character in his features. Then your eyes ceased to pucker, but
-you continued to look across, and your face was thoughtful. You were
-recalling the incidents of Beecher's career. I was well aware that you
-could not do this without thinking of the mission which he undertook
-on behalf of the North at the time of the Civil War, for I remember
-you expressing your passionate indignation at the way in which he was
-received by the more turbulent of our people. You felt so strongly about
-it that I knew you could not think of Beecher without thinking of that
-also. When a moment later I saw your eyes wander away from the picture,
-I suspected that your mind had now turned to the Civil War, and when
-I observed that your lips set, your eyes sparkled, and your hands
-clinched, I was positive that you were indeed thinking of the gallantry
-which was shown by both sides in that desperate struggle. But then,
-again, your face grew sadder; you shook your head. You were dwelling
-upon the sadness and horror and useless waste of life. Your hand stole
-towards your own old wound, and a smile quivered on your lips,
-which showed me that the ridiculous side of this method of settling
-international questions had forced itself upon your mind. At this point
-I agreed with you that it was preposterous, and was glad to find that
-all my deductions had been correct."
-
-"Absolutely!" said I. "And now that you have explained it, I confess
-that I am as amazed as before."
-
-"It was very superficial, my dear Watson, I assure you. I should not
-have intruded it upon your attention had you not shown some incredulity
-the other day. But the evening has brought a breeze with it. What do you
-say to a ramble through London?"
-
-I was weary of our little sitting-room and gladly acquiesced. For
-three hours we strolled about together, watching the ever-changing
-kaleidoscope of life as it ebbs and flows through Fleet Street and the
-Strand. His characteristic talk, with its keen observance of detail
-and subtle power of inference held me amused and enthralled. It was ten
-o'clock before we reached Baker Street again. A brougham was waiting at
-our door.
-
-"Hum! A doctor's--general practitioner, I perceive," said Holmes. "Not
-been long in practice, but has had a good deal to do. Come to consult
-us, I fancy! Lucky we came back!"
-
-I was sufficiently conversant with Holmes's methods to be able to follow
-his reasoning, and to see that the nature and state of the various
-medical instruments in the wicker basket which hung in the lamplight
-inside the brougham had given him the data for his swift deduction.
-The light in our window above showed that this late visit was indeed
-intended for us. With some curiosity as to what could have sent a
-brother medico to us at such an hour, I followed Holmes into our
-sanctum.
-
-A pale, taper-faced man with sandy whiskers rose up from a chair by the
-fire as we entered. His age may not have been more than three or four
-and thirty, but his haggard expression and unhealthy hue told of a life
-which has sapped his strength and robbed him of his youth. His manner
-was nervous and shy, like that of a sensitive gentleman, and the thin
-white hand which he laid on the mantelpiece as he rose was that of an
-artist rather than of a surgeon. His dress was quiet and sombre--a black
-frock-coat, dark trousers, and a touch of color about his necktie.
-
-"Good-evening, doctor," said Holmes, cheerily. "I am glad to see that
-you have only been waiting a very few minutes."
-
-"You spoke to my coachman, then?"
-
-"No, it was the candle on the side-table that told me. Pray resume your
-seat and let me know how I can serve you."
-
-"My name is Doctor Percy Trevelyan," said our visitor, "and I live at
-403 Brook Street."
-
-"Are you not the author of a monograph upon obscure nervous lesions?" I
-asked.
-
-His pale cheeks flushed with pleasure at hearing that his work was known
-to me.
-
-"I so seldom hear of the work that I thought it was quite dead," said
-he. "My publishers gave me a most discouraging account of its sale. You
-are yourself, I presume, a medical man?"
-
-"A retired army surgeon."
-
-"My own hobby has always been nervous disease. I should wish to make it
-an absolute specialty, but, of course, a man must take what he can get
-at first. This, however, is beside the question, Mr. Sherlock Holmes,
-and I quite appreciate how valuable your time is. The fact is that a
-very singular train of events has occurred recently at my house in Brook
-Street, and to-night they came to such a head that I felt it was quite
-impossible for me to wait another hour before asking for your advice and
-assistance."
-
-Sherlock Holmes sat down and lit his pipe. "You are very welcome
-to both," said he. "Pray let me have a detailed account of what the
-circumstances are which have disturbed you."
-
-"One or two of them are so trivial," said Dr. Trevelyan, "that really
-I am almost ashamed to mention them. But the matter is so inexplicable,
-and the recent turn which it has taken is so elaborate, that I shall
-lay it all before you, and you shall judge what is essential and what is
-not.
-
-"I am compelled, to begin with, to say something of my own college
-career. I am a London University man, you know, and I am sure that your
-will not think that I am unduly singing my own praises if I say that my
-student career was considered by my professors to be a very promising
-one. After I had graduated I continued to devote myself to research,
-occupying a minor position in King's College Hospital, and I was
-fortunate enough to excite considerable interest by my research into the
-pathology of catalepsy, and finally to win the Bruce Pinkerton prize and
-medal by the monograph on nervous lesions to which your friend has
-just alluded. I should not go too far if I were to say that there was a
-general impression at that time that a distinguished career lay before
-me.
-
-"But the one great stumbling-block lay in my want of capital. As you
-will readily understand, a specialist who aims high is compelled to
-start in one of a dozen streets in the Cavendish Square quarter, all
-of which entail enormous rents and furnishing expenses. Besides this
-preliminary outlay, he must be prepared to keep himself for some years,
-and to hire a presentable carriage and horse. To do this was quite
-beyond my power, and I could only hope that by economy I might in ten
-years' time save enough to enable me to put up my plate. Suddenly,
-however, an unexpected incident opened up quite a new prospect to me.
-
-"This was a visit from a gentleman of the name of Blessington, who was a
-complete stranger to me. He came up to my room one morning, and plunged
-into business in an instant.
-
-"'You are the same Percy Trevelyan who has had so distinguished a career
-and won a great prize lately?' said he.
-
-"I bowed.
-
-"'Answer me frankly,' he continued, 'for you will find it to your
-interest to do so. You have all the cleverness which makes a successful
-man. Have you the tact?'
-
-"I could not help smiling at the abruptness of the question.
-
-"'I trust that I have my share,' I said.
-
-"'Any bad habits? Not drawn towards drink, eh?'
-
-"'Really, sir!' I cried.
-
-"'Quite right! That's all right! But I was bound to ask. With all these
-qualities, why are you not in practice?'
-
-"I shrugged my shoulders.
-
-"'Come, come!' said he, in his bustling way. 'It's the old story. More
-in your brains than in your pocket, eh? What would you say if I were to
-start you in Brook Street?'
-
-"I stared at him in astonishment.
-
-"'Oh, it's for my sake, not for yours,' he cried. 'I'll be perfectly
-frank with you, and if it suits you it will suit me very well. I have a
-few thousands to invest, d'ye see, and I think I'll sink them in you.'
-
-"'But why?' I gasped.
-
-"'Well, it's just like any other speculation, and safer than most.'
-
-"'What am I to do, then?'
-
-"'I'll tell you. I'll take the house, furnish it, pay the maids, and run
-the whole place. All you have to do is just to wear out your chair in
-the consulting-room. I'll let you have pocket-money and everything. Then
-you hand over to me three quarters of what you earn, and you keep the
-other quarter for yourself.'
-
-"This was the strange proposal, Mr. Holmes, with which the man
-Blessington approached me. I won't weary you with the account of how
-we bargained and negotiated. It ended in my moving into the house next
-Lady-day, and starting in practice on very much the same conditions as
-he had suggested. He came himself to live with me in the character of a
-resident patient. His heart was weak, it appears, and he needed constant
-medical supervision. He turned the two best rooms of the first floor
-into a sitting-room and bedroom for himself. He was a man of singular
-habits, shunning company and very seldom going out. His life was
-irregular, but in one respect he was regularity itself. Every evening,
-at the same hour, he walked into the consulting-room, examined the
-books, put down five and three-pence for every guinea that I had earned,
-and carried the rest off to the strong-box in his own room.
-
-"I may say with confidence that he never had occasion to regret his
-speculation. From the first it was a success. A few good cases and the
-reputation which I had won in the hospital brought me rapidly to the
-front, and during the last few years I have made him a rich man.
-
-"So much, Mr. Holmes, for my past history and my relations with Mr.
-Blessington. It only remains for me now to tell you what has occurred to
-bring me here to-night.
-
-"Some weeks ago Mr. Blessington came down to me in, as it seemed to me,
-a state of considerable agitation. He spoke of some burglary which, he
-said, had been committed in the West End, and he appeared, I remember,
-to be quite unnecessarily excited about it, declaring that a day should
-not pass before we should add stronger bolts to our windows and doors.
-For a week he continued to be in a peculiar state of restlessness,
-peering continually out of the windows, and ceasing to take the short
-walk which had usually been the prelude to his dinner. From his manner
-it struck me that he was in mortal dread of something or somebody, but
-when I questioned him upon the point he became so offensive that I was
-compelled to drop the subject. Gradually, as time passed, his fears
-appeared to die away, and he had renewed his former habits, when a fresh
-event reduced him to the pitiable state of prostration in which he now
-lies.
-
-"What happened was this. Two days ago I received the letter which I now
-read to you. Neither address nor date is attached to it.
-
-"'A Russian nobleman who is now resident in England,' it runs, 'would
-be glad to avail himself of the professional assistance of Dr. Percy
-Trevelyan. He has been for some years a victim to cataleptic attacks, on
-which, as is well known, Dr. Trevelyan is an authority. He proposes to
-call at about quarter past six to-morrow evening, if Dr. Trevelyan will
-make it convenient to be at home.'
-
-"This letter interested me deeply, because the chief difficulty in the
-study of catalepsy is the rareness of the disease. You may believe,
-then, that I was in my consulting-room when, at the appointed hour, the
-page showed in the patient.
-
-"He was an elderly man, thin, demure, and commonplace--by no means the
-conception one forms of a Russian nobleman. I was much more struck by
-the appearance of his companion. This was a tall young man, surprisingly
-handsome, with a dark, fierce face, and the limbs and chest of a
-Hercules. He had his hand under the other's arm as they entered, and
-helped him to a chair with a tenderness which one would hardly have
-expected from his appearance.
-
-"'You will excuse my coming in, doctor,' said he to me, speaking English
-with a slight lisp. 'This is my father, and his health is a matter of
-the most overwhelming importance to me.'
-
-"I was touched by this filial anxiety. 'You would, perhaps, care to
-remain during the consultation?' said I.
-
-"'Not for the world,' he cried with a gesture of horror. 'It is more
-painful to me than I can express. If I were to see my father in one of
-these dreadful seizures I am convinced that I should never survive
-it. My own nervous system is an exceptionally sensitive one. With your
-permission, I will remain in the waiting-room while you go into my
-father's case.'
-
-"To this, of course, I assented, and the young man withdrew. The patient
-and I then plunged into a discussion of his case, of which I took
-exhaustive notes. He was not remarkable for intelligence, and his
-answers were frequently obscure, which I attributed to his limited
-acquaintance with our language. Suddenly, however, as I sat writing,
-he ceased to give any answer at all to my inquiries, and on my turning
-towards him I was shocked to see that he was sitting bolt upright in his
-chair, staring at me with a perfectly blank and rigid face. He was again
-in the grip of his mysterious malady.
-
-"My first feeling, as I have just said, was one of pity and horror.
-My second, I fear, was rather one of professional satisfaction. I made
-notes of my patient's pulse and temperature, tested the rigidity of his
-muscles, and examined his reflexes. There was nothing markedly abnormal
-in any of these conditions, which harmonized with my former experiences.
-I had obtained good results in such cases by the inhalation of nitrite
-of amyl, and the present seemed an admirable opportunity of testing
-its virtues. The bottle was downstairs in my laboratory, so leaving my
-patient seated in his chair, I ran down to get it. There was some little
-delay in finding it--five minutes, let us say--and then I returned.
-Imagine my amazement to find the room empty and the patient gone.
-
-"Of course, my first act was to run into the waiting-room. The son had
-gone also. The hall door had been closed, but not shut. My page who
-admits patients is a new boy and by no means quick. He waits downstairs,
-and runs up to show patients out when I ring the consulting-room bell.
-He had heard nothing, and the affair remained a complete mystery. Mr.
-Blessington came in from his walk shortly afterwards, but I did not say
-anything to him upon the subject, for, to tell the truth, I have got in
-the way of late of holding as little communication with him as possible.
-
-"Well, I never thought that I should see anything more of the Russian
-and his son, so you can imagine my amazement when, at the very same hour
-this evening, they both came marching into my consulting-room, just as
-they had done before.
-
-"'I feel that I owe you a great many apologies for my abrupt departure
-yesterday, doctor,' said my patient.
-
-"'I confess that I was very much surprised at it,' said I.
-
-"'Well, the fact is,' he remarked, 'that when I recover from these
-attacks my mind is always very clouded as to all that has gone before. I
-woke up in a strange room, as it seemed to me, and made my way out into
-the street in a sort of dazed way when you were absent.'
-
-"'And I,' said the son, 'seeing my father pass the door of the
-waiting-room, naturally thought that the consultation had come to an
-end. It was not until we had reached home that I began to realize the
-true state of affairs.'
-
-"'Well,' said I, laughing, 'there is no harm done except that you
-puzzled me terribly; so if you, sir, would kindly step into the
-waiting-room I shall be happy to continue our consultation which was
-brought to so abrupt an ending.'
-
-"'For half an hour or so I discussed that old gentleman's symptoms with
-him, and then, having prescribed for him, I saw him go off upon the arm
-of his son.
-
-"I have told you that Mr. Blessington generally chose this hour of the
-day for his exercise. He came in shortly afterwards and passed upstairs.
-An instant later I heard him running down, and he burst into my
-consulting-room like a man who is mad with panic.
-
-"'Who has been in my room?' he cried.
-
-"'No one,' said I.
-
-"'It's a lie! He yelled. 'Come up and look!'
-
-"I passed over the grossness of his language, as he seemed half out of
-his mind with fear. When I went upstairs with him he pointed to several
-footprints upon the light carpet.
-
-"'D'you mean to say those are mine?' he cried.
-
-"They were certainly very much larger than any which he could have made,
-and were evidently quite fresh. It rained hard this afternoon, as you
-know, and my patients were the only people who called. It must have been
-the case, then, that the man in the waiting-room had, for some unknown
-reason, while I was busy with the other, ascended to the room of my
-resident patient. Nothing had been touched or taken, but there were the
-footprints to prove that the intrusion was an undoubted fact.
-
-"Mr. Blessington seemed more excited over the matter than I should have
-thought possible, though of course it was enough to disturb anybody's
-peace of mind. He actually sat crying in an arm-chair, and I could
-hardly get him to speak coherently. It was his suggestion that I should
-come round to you, and of course I at once saw the propriety of it,
-for certainly the incident is a very singular one, though he appears to
-completely overrate its importance. If you would only come back with me
-in my brougham, you would at least be able to soothe him, though I
-can hardly hope that you will be able to explain this remarkable
-occurrence."
-
-Sherlock Holmes had listened to this long narrative with an intentness
-which showed me that his interest was keenly aroused. His face was as
-impassive as ever, but his lids had drooped more heavily over his eyes,
-and his smoke had curled up more thickly from his pipe to emphasize each
-curious episode in the doctor's tale. As our visitor concluded, Holmes
-sprang up without a word, handed me my hat, picked his own from the
-table, and followed Dr. Trevelyan to the door. Within a quarter of an
-hour we had been dropped at the door of the physician's residence
-in Brook Street, one of those sombre, flat-faced houses which one
-associates with a West-End practice. A small page admitted us, and we
-began at once to ascend the broad, well-carpeted stair.
-
-But a singular interruption brought us to a standstill. The light at
-the top was suddenly whisked out, and from the darkness came a reedy,
-quivering voice.
-
-"I have a pistol," it cried. "I give you my word that I'll fire if you
-come any nearer."
-
-"This really grows outrageous, Mr. Blessington," cried Dr. Trevelyan.
-
-"Oh, then it is you, doctor," said the voice, with a great heave of
-relief. "But those other gentlemen, are they what they pretend to be?"
-
-We were conscious of a long scrutiny out of the darkness.
-
-"Yes, yes, it's all right," said the voice at last. "You can come up,
-and I am sorry if my precautions have annoyed you."
-
-He relit the stair gas as he spoke, and we saw before us a
-singular-looking man, whose appearance, as well as his voice, testified
-to his jangled nerves. He was very fat, but had apparently at some time
-been much fatter, so that the skin hung about his face in loose pouches,
-like the cheeks of a blood-hound. He was of a sickly color, and his
-thin, sandy hair seemed to bristle up with the intensity of his emotion.
-In his hand he held a pistol, but he thrust it into his pocket as we
-advanced.
-
-"Good-evening, Mr. Holmes," said he. "I am sure I am very much obliged
-to you for coming round. No one ever needed your advice more than I do.
-I suppose that Dr. Trevelyan has told you of this most unwarrantable
-intrusion into my rooms."
-
-"Quite so," said Holmes. "Who are these two men Mr. Blessington, and why
-do they wish to molest you?"
-
-"Well, well," said the resident patient, in a nervous fashion, "of
-course it is hard to say that. You can hardly expect me to answer that,
-Mr. Holmes."
-
-"Do you mean that you don't know?"
-
-"Come in here, if you please. Just have the kindness to step in here."
-
-He led the way into his bedroom, which was large and comfortably
-furnished.
-
-"You see that," said he, pointing to a big black box at the end of his
-bed. "I have never been a very rich man, Mr. Holmes--never made but
-one investment in my life, as Dr. Trevelyan would tell you. But I don't
-believe in bankers. I would never trust a banker, Mr. Holmes. Between
-ourselves, what little I have is in that box, so you can understand what
-it means to me when unknown people force themselves into my rooms."
-
-Holmes looked at Blessington in his questioning way and shook his head.
-
-"I cannot possibly advise you if you try to deceive me," said he.
-
-"But I have told you everything."
-
-Holmes turned on his heel with a gesture of disgust. "Good-night, Dr.
-Trevelyan," said he.
-
-"And no advice for me?" cried Blessington, in a breaking voice.
-
-"My advice to you, sir, is to speak the truth."
-
-A minute later we were in the street and walking for home. We had
-crossed Oxford Street and were half way down Harley Street before I
-could get a word from my companion.
-
-"Sorry to bring you out on such a fool's errand, Watson," he said at
-last. "It is an interesting case, too, at the bottom of it."
-
-"I can make little of it," I confessed.
-
-"Well, it is quite evident that there are two men--more, perhaps, but
-at least two--who are determined for some reason to get at this fellow
-Blessington. I have no doubt in my mind that both on the first and on
-the second occasion that young man penetrated to Blessington's room,
-while his confederate, by an ingenious device, kept the doctor from
-interfering."
-
-"And the catalepsy?"
-
-"A fraudulent imitation, Watson, though I should hardly dare to hint as
-much to our specialist. It is a very easy complaint to imitate. I have
-done it myself."
-
-"And then?"
-
-"By the purest chance Blessington was out on each occasion. Their reason
-for choosing so unusual an hour for a consultation was obviously to
-insure that there should be no other patient in the waiting-room. It
-just happened, however, that this hour coincided with Blessington's
-constitutional, which seems to show that they were not very well
-acquainted with his daily routine. Of course, if they had been merely
-after plunder they would at least have made some attempt to search for
-it. Besides, I can read in a man's eye when it is his own skin that he
-is frightened for. It is inconceivable that this fellow could have made
-two such vindictive enemies as these appear to be without knowing of it.
-I hold it, therefore, to be certain that he does know who these men are,
-and that for reasons of his own he suppresses it. It is just possible
-that to-morrow may find him in a more communicative mood."
-
-"Is there not one alternative," I suggested, "grotesquely improbably,
-no doubt, but still just conceivable? Might the whole story of the
-cataleptic Russian and his son be a concoction of Dr. Trevelyan's, who
-has, for his own purposes, been in Blessington's rooms?"
-
-I saw in the gaslight that Holmes wore an amused smile at this brilliant
-departure of mine.
-
-"My dear fellow," said he, "it was one of the first solutions which
-occurred to me, but I was soon able to corroborate the doctor's tale.
-This young man has left prints upon the stair-carpet which made it quite
-superfluous for me to ask to see those which he had made in the room.
-When I tell you that his shoes were square-toed instead of being pointed
-like Blessington's, and were quite an inch and a third longer than the
-doctor's, you will acknowledge that there can be no doubt as to his
-individuality. But we may sleep on it now, for I shall be surprised if
-we do not hear something further from Brook Street in the morning."
-
-
-Sherlock Holmes's prophecy was soon fulfilled, and in a dramatic
-fashion. At half-past seven next morning, in the first glimmer of
-daylight, I found him standing by my bedside in his dressing-gown.
-
-"There's a brougham waiting for us, Watson," said he.
-
-"What's the matter, then?"
-
-"The Brook Street business."
-
-"Any fresh news?"
-
-"Tragic, but ambiguous," said he, pulling up the blind. "Look at this--a
-sheet from a note-book, with 'For God's sake come at once--P. T.,'
-scrawled upon it in pencil. Our friend, the doctor, was hard put to
-it when he wrote this. Come along, my dear fellow, for it's an urgent
-call."
-
-In a quarter of an hour or so we were back at the physician's house. He
-came running out to meet us with a face of horror.
-
-"Oh, such a business!" he cried, with his hands to his temples.
-
-"What then?"
-
-"Blessington has committed suicide!"
-
-Holmes whistled.
-
-"Yes, he hanged himself during the night."
-
-We had entered, and the doctor had preceded us into what was evidently
-his waiting-room.
-
-"I really hardly know what I am doing," he cried. "The police are
-already upstairs. It has shaken me most dreadfully."
-
-"When did you find it out?"
-
-"He has a cup of tea taken in to him early every morning. When the maid
-entered, about seven, there the unfortunate fellow was hanging in the
-middle of the room. He had tied his cord to the hook on which the heavy
-lamp used to hang, and he had jumped off from the top of the very box
-that he showed us yesterday."
-
-Holmes stood for a moment in deep thought.
-
-"With your permission," said he at last, "I should like to go upstairs
-and look into the matter."
-
-We both ascended, followed by the doctor.
-
-It was a dreadful sight which met us as we entered the bedroom door. I
-have spoken of the impression of flabbiness which this man Blessington
-conveyed. As he dangled from the hook it was exaggerated and intensified
-until he was scarce human in his appearance. The neck was drawn out
-like a plucked chicken's, making the rest of him seem the more obese and
-unnatural by the contrast. He was clad only in his long night-dress, and
-his swollen ankles and ungainly feet protruded starkly from beneath it.
-Beside him stood a smart-looking police-inspector, who was taking notes
-in a pocket-book.
-
-"Ah, Mr. Holmes," said he, heartily, as my friend entered, "I am
-delighted to see you."
-
-"Good-morning, Lanner," answered Holmes; "you won't think me an
-intruder, I am sure. Have you heard of the events which led up to this
-affair?"
-
-"Yes, I heard something of them."
-
-"Have you formed any opinion?"
-
-"As far as I can see, the man has been driven out of his senses by
-fright. The bed has been well slept in, you see. There's his impression
-deep enough. It's about five in the morning, you know, that suicides are
-most common. That would be about his time for hanging himself. It seems
-to have been a very deliberate affair."
-
-"I should say that he has been dead about three hours, judging by the
-rigidity of the muscles," said I.
-
-"Noticed anything peculiar about the room?" asked Holmes.
-
-"Found a screw-driver and some screws on the wash-hand stand. Seems to
-have smoked heavily during the night, too. Here are four cigar-ends that
-I picked out of the fireplace."
-
-"Hum!" said Holmes, "have you got his cigar-holder?"
-
-"No, I have seen none."
-
-"His cigar-case, then?"
-
-"Yes, it was in his coat-pocket."
-
-Holmes opened it and smelled the single cigar which it contained.
-
-"Oh, this is an Havana, and these others are cigars of the peculiar sort
-which are imported by the Dutch from their East Indian colonies. They
-are usually wrapped in straw, you know, and are thinner for their length
-than any other brand." He picked up the four ends and examined them with
-his pocket-lens.
-
-"Two of these have been smoked from a holder and two without," said he.
-"Two have been cut by a not very sharp knife, and two have had the ends
-bitten off by a set of excellent teeth. This is no suicide, Mr. Lanner.
-It is a very deeply planned and cold-blooded murder."
-
-"Impossible!" cried the inspector.
-
-"And why?"
-
-"Why should any one murder a man in so clumsy a fashion as by hanging
-him?"
-
-"That is what we have to find out."
-
-"How could they get in?"
-
-"Through the front door."
-
-"It was barred in the morning."
-
-"Then it was barred after them."
-
-"How do you know?"
-
-"I saw their traces. Excuse me a moment, and I may be able to give you
-some further information about it."
-
-He went over to the door, and turning the lock he examined it in his
-methodical way. Then he took out the key, which was on the inside, and
-inspected that also. The bed, the carpet, the chairs the mantelpiece,
-the dead body, and the rope were each in turn examined, until at last he
-professed himself satisfied, and with my aid and that of the inspector
-cut down the wretched object and laid it reverently under a sheet.
-
-"How about this rope?" he asked.
-
-"It is cut off this," said Dr. Trevelyan, drawing a large coil from
-under the bed. "He was morbidly nervous of fire, and always kept this
-beside him, so that he might escape by the window in case the stairs
-were burning."
-
-"That must have saved them trouble," said Holmes, thoughtfully. "Yes,
-the actual facts are very plain, and I shall be surprised if by the
-afternoon I cannot give you the reasons for them as well. I will take
-this photograph of Blessington, which I see upon the mantelpiece, as it
-may help me in my inquiries."
-
-"But you have told us nothing!" cried the doctor.
-
-"Oh, there can be no doubt as to the sequence of events," said Holmes.
-"There were three of them in it: the young man, the old man, and a
-third, to whose identity I have no clue. The first two, I need hardly
-remark, are the same who masqueraded as the Russian count and his son,
-so we can give a very full description of them. They were admitted by
-a confederate inside the house. If I might offer you a word of advice,
-Inspector, it would be to arrest the page, who, as I understand, has
-only recently come into your service, Doctor."
-
-"The young imp cannot be found," said Dr. Trevelyan; "the maid and the
-cook have just been searching for him."
-
-Holmes shrugged his shoulders.
-
-"He has played a not unimportant part in this drama," said he. "The
-three men having ascended the stairs, which they did on tiptoe, the
-elder man first, the younger man second, and the unknown man in the
-rear--"
-
-"My dear Holmes!" I ejaculated.
-
-"Oh, there could be no question as to the superimposing of the
-footmarks. I had the advantage of learning which was which last night.
-They ascended, then, to Mr. Blessington's room, the door of which they
-found to be locked. With the help of a wire, however, they forced round
-the key. Even without the lens you will perceive, by the scratches on
-this ward, where the pressure was applied.
-
-"On entering the room their first proceeding must have been to gag Mr.
-Blessington. He may have been asleep, or he may have been so paralyzed
-with terror as to have been unable to cry out. These walls are thick,
-and it is conceivable that his shriek, if he had time to utter one, was
-unheard.
-
-"Having secured him, it is evident to me that a consultation of some
-sort was held. Probably it was something in the nature of a judicial
-proceeding. It must have lasted for some time, for it was then that
-these cigars were smoked. The older man sat in that wicker chair; it
-was he who used the cigar-holder. The younger man sat over yonder; he
-knocked his ash off against the chest of drawers. The third fellow paced
-up and down. Blessington, I think, sat upright in the bed, but of that I
-cannot be absolutely certain.
-
-"Well, it ended by their taking Blessington and hanging him. The matter
-was so prearranged that it is my belief that they brought with them
-some sort of block or pulley which might serve as a gallows. That
-screw-driver and those screws were, as I conceive, for fixing it up.
-Seeing the hook, however they naturally saved themselves the trouble.
-Having finished their work they made off, and the door was barred behind
-them by their confederate."
-
-We had all listened with the deepest interest to this sketch of the
-night's doings, which Holmes had deduced from signs so subtle and minute
-that, even when he had pointed them out to us, we could scarcely follow
-him in his reasoning. The inspector hurried away on the instant to make
-inquiries about the page, while Holmes and I returned to Baker Street
-for breakfast.
-
-"I'll be back by three," said he, when we had finished our meal. "Both
-the inspector and the doctor will meet me here at that hour, and I hope
-by that time to have cleared up any little obscurity which the case may
-still present."
-
-
-Our visitors arrived at the appointed time, but it was a quarter to
-four before my friend put in an appearance. From his expression as he
-entered, however, I could see that all had gone well with him.
-
-"Any news, Inspector?"
-
-"We have got the boy, sir."
-
-"Excellent, and I have got the men."
-
-"You have got them!" we cried, all three.
-
-"Well, at least I have got their identity. This so-called Blessington
-is, as I expected, well known at headquarters, and so are his
-assailants. Their names are Biddle, Hayward, and Moffat."
-
-"The Worthingdon bank gang," cried the inspector.
-
-"Precisely," said Holmes.
-
-"Then Blessington must have been Sutton."
-
-"Exactly," said Holmes.
-
-"Why, that makes it as clear as crystal," said the inspector.
-
-But Trevelyan and I looked at each other in bewilderment.
-
-"You must surely remember the great Worthingdon bank business," said
-Holmes. "Five men were in it--these four and a fifth called Cartwright.
-Tobin, the care-taker, was murdered, and the thieves got away with seven
-thousand pounds. This was in 1875. They were all five arrested, but the
-evidence against them was by no means conclusive. This Blessington or
-Sutton, who was the worst of the gang, turned informer. On his evidence
-Cartwright was hanged and the other three got fifteen years apiece. When
-they got out the other day, which was some years before their full term,
-they set themselves, as you perceive, to hunt down the traitor and to
-avenge the death of their comrade upon him. Twice they tried to get at
-him and failed; a third time, you see, it came off. Is there anything
-further which I can explain, Dr. Trevelyan?"
-
-"I think you have made it all remarkable clear," said the doctor. "No
-doubt the day on which he was perturbed was the day when he had seen of
-their release in the newspapers."
-
-"Quite so. His talk about a burglary was the merest blind."
-
-"But why could he not tell you this?"
-
-"Well, my dear sir, knowing the vindictive character of his old
-associates, he was trying to hide his own identity from everybody as
-long as he could. His secret was a shameful one, and he could not bring
-himself to divulge it. However, wretch as he was, he was still living
-under the shield of British law, and I have no doubt, Inspector, that
-you will see that, though that shield may fail to guard, the sword of
-justice is still there to avenge."
-
-
-Such were the singular circumstances in connection with the Resident
-Patient and the Brook Street Doctor. From that night nothing has
-been seen of the three murderers by the police, and it is surmised
-at Scotland Yard that they were among the passengers of the ill-fated
-steamer Norah Creina, which was lost some years ago with all hands
-upon the Portuguese coast, some leagues to the north of Oporto. The
-proceedings against the page broke down for want of evidence, and the
-Brook Street Mystery, as it was called, has never until now been fully
-dealt with in any public print.
-
-
-
-
-Adventure IX. The Greek Interpreter
-
-
-During my long and intimate acquaintance with Mr. Sherlock Holmes I had
-never heard him refer to his relations, and hardly ever to his own early
-life. This reticence upon his part had increased the somewhat inhuman
-effect which he produced upon me, until sometimes I found myself
-regarding him as an isolated phenomenon, a brain without a heart, as
-deficient in human sympathy as he was pre-eminent in intelligence. His
-aversion to women and his disinclination to form new friendships were
-both typical of his unemotional character, but not more so than his
-complete suppression of every reference to his own people. I had come to
-believe that he was an orphan with no relatives living, but one day, to
-my very great surprise, he began to talk to me about his brother.
-
-It was after tea on a summer evening, and the conversation, which had
-roamed in a desultory, spasmodic fashion from golf clubs to the causes
-of the change in the obliquity of the ecliptic, came round at last
-to the question of atavism and hereditary aptitudes. The point under
-discussion was, how far any singular gift in an individual was due to
-his ancestry and how far to his own early training.
-
-"In your own case," said I, "from all that you have told me, it seems
-obvious that your faculty of observation and your peculiar facility for
-deduction are due to your own systematic training."
-
-"To some extent," he answered, thoughtfully. "My ancestors were country
-squires, who appear to have led much the same life as is natural to
-their class. But, none the less, my turn that way is in my veins, and
-may have come with my grandmother, who was the sister of Vernet, the
-French artist. Art in the blood is liable to take the strangest forms."
-
-"But how do you know that it is hereditary?"
-
-"Because my brother Mycroft possesses it in a larger degree than I do."
-
-This was news to me indeed. If there were another man with such singular
-powers in England, how was it that neither police nor public had heard
-of him? I put the question, with a hint that it was my companion's
-modesty which made him acknowledge his brother as his superior. Holmes
-laughed at my suggestion.
-
-"My dear Watson," said he, "I cannot agree with those who rank modesty
-among the virtues. To the logician all things should be seen exactly as
-they are, and to underestimate one's self is as much a departure from
-truth as to exaggerate one's own powers. When I say, therefore, that
-Mycroft has better powers of observation than I, you may take it that I
-am speaking the exact and literal truth."
-
-"Is he your junior?"
-
-"Seven years my senior."
-
-"How comes it that he is unknown?"
-
-"Oh, he is very well known in his own circle."
-
-"Where, then?"
-
-"Well, in the Diogenes Club, for example."
-
-I had never heard of the institution, and my face must have proclaimed
-as much, for Sherlock Holmes pulled out his watch.
-
-"The Diogenes Club is the queerest club in London, and Mycroft one of
-the queerest men. He's always there from quarter to five to twenty to
-eight. It's six now, so if you care for a stroll this beautiful evening
-I shall be very happy to introduce you to two curiosities."
-
-Five minutes later we were in the street, walking towards Regent's
-Circus.
-
-"You wonder," said my companion, "why it is that Mycroft does not use
-his powers for detective work. He is incapable of it."
-
-"But I thought you said--"
-
-"I said that he was my superior in observation and deduction. If the
-art of the detective began and ended in reasoning from an arm-chair, my
-brother would be the greatest criminal agent that ever lived. But he has
-no ambition and no energy. He will not even go out of his way to verify
-his own solutions, and would rather be considered wrong than take the
-trouble to prove himself right. Again and again I have taken a problem
-to him, and have received an explanation which has afterwards proved to
-be the correct one. And yet he was absolutely incapable of working out
-the practical points which must be gone into before a case could be laid
-before a judge or jury."
-
-"It is not his profession, then?"
-
-"By no means. What is to me a means of livelihood is to him the merest
-hobby of a dilettante. He has an extraordinary faculty for figures, and
-audits the books in some of the government departments. Mycroft lodges
-in Pall Mall, and he walks round the corner into Whitehall every morning
-and back every evening. From year's end to year's end he takes no other
-exercise, and is seen nowhere else, except only in the Diogenes Club,
-which is just opposite his rooms."
-
-"I cannot recall the name."
-
-"Very likely not. There are many men in London, you know, who, some from
-shyness, some from misanthropy, have no wish for the company of their
-fellows. Yet they are not averse to comfortable chairs and the latest
-periodicals. It is for the convenience of these that the Diogenes Club
-was started, and it now contains the most unsociable and unclubable men
-in town. No member is permitted to take the least notice of any
-other one. Save in the Stranger's Room, no talking is, under any
-circumstances, allowed, and three offences, if brought to the notice of
-the committee, render the talker liable to expulsion. My brother was one
-of the founders, and I have myself found it a very soothing atmosphere."
-
-We had reached Pall Mall as we talked, and were walking down it from the
-St. James's end. Sherlock Holmes stopped at a door some little distance
-from the Carlton, and, cautioning me not to speak, he led the way into
-the hall. Through the glass paneling I caught a glimpse of a large and
-luxurious room, in which a considerable number of men were sitting about
-and reading papers, each in his own little nook. Holmes showed me into a
-small chamber which looked out into Pall Mall, and then, leaving me for
-a minute, he came back with a companion whom I knew could only be his
-brother.
-
-Mycroft Holmes was a much larger and stouter man than Sherlock. His body
-was absolutely corpulent, but his face, though massive, had preserved
-something of the sharpness of expression which was so remarkable in that
-of his brother. His eyes, which were of a peculiarly light, watery gray,
-seemed to always retain that far-away, introspective look which I had
-only observed in Sherlock's when he was exerting his full powers.
-
-"I am glad to meet you, sir," said he, putting out a broad, fat hand
-like the flipper of a seal. "I hear of Sherlock everywhere since you
-became his chronicler. By the way, Sherlock, I expected to see you round
-last week, to consult me over that Manor House case. I thought you might
-be a little out of your depth."
-
-"No, I solved it," said my friend, smiling.
-
-"It was Adams, of course."
-
-"Yes, it was Adams."
-
-"I was sure of it from the first." The two sat down together in the
-bow-window of the club. "To any one who wishes to study mankind this is
-the spot," said Mycroft. "Look at the magnificent types! Look at these
-two men who are coming towards us, for example."
-
-"The billiard-marker and the other?"
-
-"Precisely. What do you make of the other?"
-
-The two men had stopped opposite the window. Some chalk marks over the
-waistcoat pocket were the only signs of billiards which I could see
-in one of them. The other was a very small, dark fellow, with his hat
-pushed back and several packages under his arm.
-
-"An old soldier, I perceive," said Sherlock.
-
-"And very recently discharged," remarked the brother.
-
-"Served in India, I see."
-
-"And a non-commissioned officer."
-
-"Royal Artillery, I fancy," said Sherlock.
-
-"And a widower."
-
-"But with a child."
-
-"Children, my dear boy, children."
-
-"Come," said I, laughing, "this is a little too much."
-
-"Surely," answered Holmes, "it is not hard to say that a man with that
-bearing, expression of authority, and sunbaked skin, is a soldier, is
-more than a private, and is not long from India."
-
-"That he has not left the service long is shown by his still wearing his
-ammunition boots, as they are called," observed Mycroft.
-
-"He had not the cavalry stride, yet he wore his hat on one side, as
-is shown by the lighter skin of that side of his brow. His weight is
-against his being a sapper. He is in the artillery."
-
-"Then, of course, his complete mourning shows that he has lost some one
-very dear. The fact that he is doing his own shopping looks as though
-it were his wife. He has been buying things for children, you perceive.
-There is a rattle, which shows that one of them is very young. The wife
-probably died in childbed. The fact that he has a picture-book under his
-arm shows that there is another child to be thought of."
-
-I began to understand what my friend meant when he said that his brother
-possessed even keener faculties that he did himself. He glanced across
-at me and smiled. Mycroft took snuff from a tortoise-shell box, and
-brushed away the wandering grains from his coat front with a large, red
-silk handkerchief.
-
-"By the way, Sherlock," said he, "I have had something quite after your
-own heart--a most singular problem--submitted to my judgment. I really
-had not the energy to follow it up save in a very incomplete fashion,
-but it gave me a basis for some pleasing speculation. If you would care
-to hear the facts--"
-
-"My dear Mycroft, I should be delighted."
-
-The brother scribbled a note upon a leaf of his pocket-book, and,
-ringing the bell, he handed it to the waiter.
-
-"I have asked Mr. Melas to step across," said he. "He lodges on the
-floor above me, and I have some slight acquaintance with him, which led
-him to come to me in his perplexity. Mr. Melas is a Greek by extraction,
-as I understand, and he is a remarkable linguist. He earns his living
-partly as interpreter in the law courts and partly by acting as guide to
-any wealthy Orientals who may visit the Northumberland Avenue hotels. I
-think I will leave him to tell his very remarkable experience in his own
-fashion."
-
-A few minutes later we were joined by a short, stout man whose olive
-face and coal-black hair proclaimed his Southern origin, though his
-speech was that of an educated Englishman. He shook hands eagerly
-with Sherlock Holmes, and his dark eyes sparkled with pleasure when he
-understood that the specialist was anxious to hear his story.
-
-"I do not believe that the police credit me--on my word, I do not," said
-he in a wailing voice. "Just because they have never heard of it before,
-they think that such a thing cannot be. But I know that I shall never
-be easy in my mind until I know what has become of my poor man with the
-sticking-plaster upon his face."
-
-"I am all attention," said Sherlock Holmes.
-
-"This is Wednesday evening," said Mr. Melas. "Well then, it was Monday
-night--only two days ago, you understand--that all this happened. I am
-an interpreter, as perhaps my neighbor there has told you. I interpret
-all languages--or nearly all--but as I am a Greek by birth and with a
-Grecian name, it is with that particular tongue that I am principally
-associated. For many years I have been the chief Greek interpreter in
-London, and my name is very well known in the hotels.
-
-"It happens not unfrequently that I am sent for at strange hours by
-foreigners who get into difficulties, or by travelers who arrive late
-and wish my services. I was not surprised, therefore, on Monday night
-when a Mr. Latimer, a very fashionably dressed young man, came up to my
-rooms and asked me to accompany him in a cab which was waiting at the
-door. A Greek friend had come to see him upon business, he said, and
-as he could speak nothing but his own tongue, the services of an
-interpreter were indispensable. He gave me to understand that his house
-was some little distance off, in Kensington, and he seemed to be in a
-great hurry, bustling me rapidly into the cab when we had descended to
-the street.
-
-"I say into the cab, but I soon became doubtful as to whether it was not
-a carriage in which I found myself. It was certainly more roomy than
-the ordinary four-wheeled disgrace to London, and the fittings, though
-frayed, were of rich quality. Mr. Latimer seated himself opposite to me
-and we started off through Charing Cross and up the Shaftesbury Avenue.
-We had come out upon Oxford Street and I had ventured some remark as to
-this being a roundabout way to Kensington, when my words were arrested
-by the extraordinary conduct of my companion.
-
-"He began by drawing a most formidable-looking bludgeon loaded with lead
-from his pocket, and switching it backward and forward several times,
-as if to test its weight and strength. Then he placed it without a word
-upon the seat beside him. Having done this, he drew up the windows on
-each side, and I found to my astonishment that they were covered with
-paper so as to prevent my seeing through them.
-
-"'I am sorry to cut off your view, Mr. Melas,' said he. 'The fact is
-that I have no intention that you should see what the place is to which
-we are driving. It might possibly be inconvenient to me if you could
-find your way there again.'
-
-"As you can imagine, I was utterly taken aback by such an address. My
-companion was a powerful, broad-shouldered young fellow, and, apart from
-the weapon, I should not have had the slightest chance in a struggle
-with him.
-
-"'This is very extraordinary conduct, Mr. Latimer,' I stammered. 'You
-must be aware that what you are doing is quite illegal.'
-
-"'It is somewhat of a liberty, no doubt,' said he, 'but we'll make it
-up to you. I must warn you, however, Mr. Melas, that if at any time
-to-night you attempt to raise an alarm or do anything which is against
-my interests, you will find it a very serious thing. I beg you to
-remember that no one knows where you are, and that, whether you are in
-this carriage or in my house, you are equally in my power.'
-
-"His words were quiet, but he had a rasping way of saying them which
-was very menacing. I sat in silence wondering what on earth could be
-his reason for kidnapping me in this extraordinary fashion. Whatever it
-might be, it was perfectly clear that there was no possible use in my
-resisting, and that I could only wait to see what might befall.
-
-"For nearly two hours we drove without my having the least clue as to
-where we were going. Sometimes the rattle of the stones told of a paved
-causeway, and at others our smooth, silent course suggested asphalt;
-but, save by this variation in sound, there was nothing at all which
-could in the remotest way help me to form a guess as to where we were.
-The paper over each window was impenetrable to light, and a blue curtain
-was drawn across the glass work in front. It was a quarter-past seven
-when we left Pall Mall, and my watch showed me that it was ten minutes
-to nine when we at last came to a standstill. My companion let down
-the window, and I caught a glimpse of a low, arched doorway with a lamp
-burning above it. As I was hurried from the carriage it swung open, and
-I found myself inside the house, with a vague impression of a lawn
-and trees on each side of me as I entered. Whether these were private
-grounds, however, or bona-fide country was more than I could possibly
-venture to say.
-
-"There was a colored gas-lamp inside which was turned so low that I
-could see little save that the hall was of some size and hung with
-pictures. In the dim light I could make out that the person who had
-opened the door was a small, mean-looking, middle-aged man with rounded
-shoulders. As he turned towards us the glint of the light showed me that
-he was wearing glasses.
-
-"'Is this Mr. Melas, Harold?' said he.
-
-"'Yes.'
-
-"'Well done, well done! No ill-will, Mr. Melas, I hope, but we could not
-get on without you. If you deal fair with us you'll not regret it,
-but if you try any tricks, God help you!' He spoke in a nervous, jerky
-fashion, and with little giggling laughs in between, but somehow he
-impressed me with fear more than the other.
-
-"'What do you want with me?' I asked.
-
-"'Only to ask a few questions of a Greek gentleman who is visiting us,
-and to let us have the answers. But say no more than you are told to
-say, or--' here came the nervous giggle again--'you had better never
-have been born.'
-
-"As he spoke he opened a door and showed the way into a room which
-appeared to be very richly furnished, but again the only light was
-afforded by a single lamp half-turned down. The chamber was certainly
-large, and the way in which my feet sank into the carpet as I stepped
-across it told me of its richness. I caught glimpses of velvet chairs, a
-high white marble mantel-piece, and what seemed to be a suit of Japanese
-armor at one side of it. There was a chair just under the lamp, and the
-elderly man motioned that I should sit in it. The younger had left
-us, but he suddenly returned through another door, leading with him
-a gentleman clad in some sort of loose dressing-gown who moved slowly
-towards us. As he came into the circle of dim light which enables me to
-see him more clearly I was thrilled with horror at his appearance. He
-was deadly pale and terribly emaciated, with the protruding, brilliant
-eyes of a man whose spirit was greater than his strength. But what
-shocked me more than any signs of physical weakness was that his face
-was grotesquely criss-crossed with sticking-plaster, and that one large
-pad of it was fastened over his mouth.
-
-"'Have you the slate, Harold?' cried the older man, as this strange
-being fell rather than sat down into a chair. 'Are his hands loose? Now,
-then, give him the pencil. You are to ask the questions, Mr. Melas, and
-he will write the answers. Ask him first of all whether he is prepared
-to sign the papers?'
-
-"The man's eyes flashed fire.
-
-"'Never!' he wrote in Greek upon the slate.
-
-"'On no condition?' I asked, at the bidding of our tyrant.
-
-"'Only if I see her married in my presence by a Greek priest whom I
-know.'
-
-"The man giggled in his venomous way.
-
-"'You know what awaits you, then?'
-
-"'I care nothing for myself.'
-
-"These are samples of the questions and answers which made up our
-strange half-spoken, half-written conversation. Again and again I had to
-ask him whether he would give in and sign the documents. Again and again
-I had the same indignant reply. But soon a happy thought came to me. I
-took to adding on little sentences of my own to each question, innocent
-ones at first, to test whether either of our companions knew anything
-of the matter, and then, as I found that they showed no signs I played a
-more dangerous game. Our conversation ran something like this:
-
-"'You can do no good by this obstinacy. Who are you?'
-
-"'I care not. I am a stranger in London.'
-
-"'Your fate will be upon your own head. How long have you been here?'
-
-"'Let it be so. Three weeks.'
-
-"'The property can never be yours. What ails you?'
-
-"'It shall not go to villains. They are starving me.'
-
-"'You shall go free if you sign. What house is this?'
-
-"'I will never sign. I do not know.'
-
-"'You are not doing her any service. What is your name?'
-
-"'Let me hear her say so. Kratides.'
-
-"'You shall see her if you sign. Where are you from?'
-
-"'Then I shall never see her. Athens.'
-
-"Another five minutes, Mr. Holmes, and I should have wormed out the
-whole story under their very noses. My very next question might have
-cleared the matter up, but at that instant the door opened and a woman
-stepped into the room. I could not see her clearly enough to know more
-than that she was tall and graceful, with black hair, and clad in some
-sort of loose white gown.
-
-"'Harold,' said she, speaking English with a broken accent. 'I could not
-stay away longer. It is so lonely up there with only--Oh, my God, it is
-Paul!'
-
-"These last words were in Greek, and at the same instant the man with
-a convulsive effort tore the plaster from his lips, and screaming out
-'Sophy! Sophy!' rushed into the woman's arms. Their embrace was but for
-an instant, however, for the younger man seized the woman and pushed
-her out of the room, while the elder easily overpowered his emaciated
-victim, and dragged him away through the other door. For a moment I was
-left alone in the room, and I sprang to my feet with some vague idea
-that I might in some way get a clue to what this house was in which I
-found myself. Fortunately, however, I took no steps, for looking up I
-saw that the older man was standing in the door-way with his eyes fixed
-upon me.
-
-"'That will do, Mr. Melas,' said he. 'You perceive that we have taken
-you into our confidence over some very private business. We should not
-have troubled you, only that our friend who speaks Greek and who began
-these negotiations has been forced to return to the East. It was
-quite necessary for us to find some one to take his place, and we were
-fortunate in hearing of your powers.'
-
-"I bowed.
-
-"'There are five sovereigns here,' said he, walking up to me, 'which
-will, I hope, be a sufficient fee. But remember,' he added, tapping me
-lightly on the chest and giggling, 'if you speak to a human soul about
-this--one human soul, mind--well, may God have mercy upon your soul!"
-
-"I cannot tell you the loathing and horror with which this
-insignificant-looking man inspired me. I could see him better now as the
-lamp-light shone upon him. His features were peaky and sallow, and his
-little pointed beard was thready and ill-nourished. He pushed his face
-forward as he spoke and his lips and eyelids were continually twitching
-like a man with St. Vitus's dance. I could not help thinking that his
-strange, catchy little laugh was also a symptom of some nervous malady.
-The terror of his face lay in his eyes, however, steel gray, and
-glistening coldly with a malignant, inexorable cruelty in their depths.
-
-"'We shall know if you speak of this,' said he. 'We have our own means
-of information. Now you will find the carriage waiting, and my friend
-will see you on your way.'
-
-"I was hurried through the hall and into the vehicle, again obtaining
-that momentary glimpse of trees and a garden. Mr. Latimer followed
-closely at my heels, and took his place opposite to me without a word.
-In silence we again drove for an interminable distance with the windows
-raised, until at last, just after midnight, the carriage pulled up.
-
-"'You will get down here, Mr. Melas,' said my companion. 'I am sorry
-to leave you so far from your house, but there is no alternative. Any
-attempt upon your part to follow the carriage can only end in injury to
-yourself.'
-
-"He opened the door as he spoke, and I had hardly time to spring out
-when the coachman lashed the horse and the carriage rattled away. I
-looked around me in astonishment. I was on some sort of a heathy common
-mottled over with dark clumps of furze-bushes. Far away stretched a
-line of houses, with a light here and there in the upper windows. On the
-other side I saw the red signal-lamps of a railway.
-
-"The carriage which had brought me was already out of sight. I stood
-gazing round and wondering where on earth I might be, when I saw some
-one coming towards me in the darkness. As he came up to me I made out
-that he was a railway porter.
-
-"'Can you tell me what place this is?' I asked.
-
-"'Wandsworth Common,' said he.
-
-"'Can I get a train into town?'
-
-"'If you walk on a mile or so to Clapham Junction,' said he, 'you'll
-just be in time for the last to Victoria.'
-
-"So that was the end of my adventure, Mr. Holmes. I do not know where I
-was, nor whom I spoke with, nor anything save what I have told you. But
-I know that there is foul play going on, and I want to help that unhappy
-man if I can. I told the whole story to Mr. Mycroft Holmes next morning,
-and subsequently to the police."
-
-We all sat in silence for some little time after listening to this
-extraordinary narrative. Then Sherlock looked across at his brother.
-
-"Any steps?" he asked.
-
-Mycroft picked up the Daily News, which was lying on the side-table.
-
-"'Anybody supplying any information to the whereabouts of a Greek
-gentleman named Paul Kratides, from Athens, who is unable to speak
-English, will be rewarded. A similar reward paid to any one giving
-information about a Greek lady whose first name is Sophy. X 2473.' That
-was in all the dailies. No answer."
-
-"How about the Greek Legation?"
-
-"I have inquired. They know nothing."
-
-"A wire to the head of the Athens police, then?"
-
-"Sherlock has all the energy of the family," said Mycroft, turning to
-me. "Well, you take the case up by all means, and let me know if you do
-any good."
-
-"Certainly," answered my friend, rising from his chair. "I'll let you
-know, and Mr. Melas also. In the meantime, Mr. Melas, I should certainly
-be on my guard, if I were you, for of course they must know through
-these advertisements that you have betrayed them."
-
-As we walked home together, Holmes stopped at a telegraph office and
-sent off several wires.
-
-"You see, Watson," he remarked, "our evening has been by no means
-wasted. Some of my most interesting cases have come to me in this way
-through Mycroft. The problem which we have just listened to, although
-it can admit of but one explanation, has still some distinguishing
-features."
-
-"You have hopes of solving it?"
-
-"Well, knowing as much as we do, it will be singular indeed if we fail
-to discover the rest. You must yourself have formed some theory which
-will explain the facts to which we have listened."
-
-"In a vague way, yes."
-
-"What was your idea, then?"
-
-"It seemed to me to be obvious that this Greek girl had been carried off
-by the young Englishman named Harold Latimer."
-
-"Carried off from where?"
-
-"Athens, perhaps."
-
-Sherlock Holmes shook his head. "This young man could not talk a word of
-Greek. The lady could talk English fairly well. Inference--that she had
-been in England some little time, but he had not been in Greece."
-
-"Well, then, we will presume that she had come on a visit to England,
-and that this Harold had persuaded her to fly with him."
-
-"That is more probable."
-
-"Then the brother--for that, I fancy, must be the relationship--comes
-over from Greece to interfere. He imprudently puts himself into the
-power of the young man and his older associate. They seize him and use
-violence towards him in order to make him sign some papers to make over
-the girl's fortune--of which he may be trustee--to them. This he refuses
-to do. In order to negotiate with him they have to get an interpreter,
-and they pitch upon this Mr. Melas, having used some other one before.
-The girl is not told of the arrival of her brother, and finds it out by
-the merest accident."
-
-"Excellent, Watson!" cried Holmes. "I really fancy that you are not far
-from the truth. You see that we hold all the cards, and we have only to
-fear some sudden act of violence on their part. If they give us time we
-must have them."
-
-"But how can we find where this house lies?"
-
-"Well, if our conjecture is correct and the girl's name is or was Sophy
-Kratides, we should have no difficulty in tracing her. That must be our
-main hope, for the brother is, of course, a complete stranger. It is
-clear that some time has elapsed since this Harold established these
-relations with the girl--some weeks, at any rate--since the brother in
-Greece has had time to hear of it and come across. If they have been
-living in the same place during this time, it is probable that we shall
-have some answer to Mycroft's advertisement."
-
-We had reached our house in Baker Street while we had been talking.
-Holmes ascended the stair first, and as he opened the door of our room
-he gave a start of surprise. Looking over his shoulder, I was equally
-astonished. His brother Mycroft was sitting smoking in the arm-chair.
-
-"Come in, Sherlock! Come in, sir," said he blandly, smiling at our
-surprised faces. "You don't expect such energy from me, do you,
-Sherlock? But somehow this case attracts me."
-
-"How did you get here?"
-
-"I passed you in a hansom."
-
-"There has been some new development?"
-
-"I had an answer to my advertisement."
-
-"Ah!"
-
-"Yes, it came within a few minutes of your leaving."
-
-"And to what effect?"
-
-Mycroft Holmes took out a sheet of paper.
-
-"Here it is," said he, "written with a J pen on royal cream paper by a
-middle-aged man with a weak constitution. 'Sir,' he says, 'in answer to
-your advertisement of to-day's date, I beg to inform you that I know the
-young lady in question very well. If you should care to call upon me I
-could give you some particulars as to her painful history. She is living
-at present at The Myrtles, Beckenham. Yours faithfully, J. Davenport.'
-
-"He writes from Lower Brixton," said Mycroft Holmes. "Do you not think
-that we might drive to him now, Sherlock, and learn these particulars?"
-
-"My dear Mycroft, the brother's life is more valuable than the sister's
-story. I think we should call at Scotland Yard for Inspector Gregson,
-and go straight out to Beckenham. We know that a man is being done to
-death, and every hour may be vital."
-
-"Better pick up Mr. Melas on our way," I suggested. "We may need an
-interpreter."
-
-"Excellent," said Sherlock Holmes. "Send the boy for a four-wheeler, and
-we shall be off at once." He opened the table-drawer as he spoke, and I
-noticed that he slipped his revolver into his pocket. "Yes," said he, in
-answer to my glance; "I should say from what we have heard, that we are
-dealing with a particularly dangerous gang."
-
-It was almost dark before we found ourselves in Pall Mall, at the rooms
-of Mr. Melas. A gentleman had just called for him, and he was gone.
-
-"Can you tell me where?" asked Mycroft Holmes.
-
-"I don't know, sir," answered the woman who had opened the door; "I only
-know that he drove away with the gentleman in a carriage."
-
-"Did the gentleman give a name?"
-
-"No, sir."
-
-"He wasn't a tall, handsome, dark young man?"
-
-"Oh, no, sir. He was a little gentleman, with glasses, thin in the face,
-but very pleasant in his ways, for he was laughing all the time that he
-was talking."
-
-"Come along!" cried Sherlock Holmes, abruptly. "This grows serious,"
-he observed, as we drove to Scotland Yard. "These men have got hold of
-Melas again. He is a man of no physical courage, as they are well
-aware from their experience the other night. This villain was able to
-terrorize him the instant that he got into his presence. No doubt
-they want his professional services, but, having used him, they may be
-inclined to punish him for what they will regard as his treachery."
-
-Our hope was that, by taking train, we might get to Beckenham as soon
-or sooner than the carriage. On reaching Scotland Yard, however, it was
-more than an hour before we could get Inspector Gregson and comply with
-the legal formalities which would enable us to enter the house. It was a
-quarter to ten before we reached London Bridge, and half past before the
-four of us alighted on the Beckenham platform. A drive of half a mile
-brought us to The Myrtles--a large, dark house standing back from the
-road in its own grounds. Here we dismissed our cab, and made our way up
-the drive together.
-
-"The windows are all dark," remarked the inspector. "The house seems
-deserted."
-
-"Our birds are flown and the nest empty," said Holmes.
-
-"Why do you say so?"
-
-"A carriage heavily loaded with luggage has passed out during the last
-hour."
-
-The inspector laughed. "I saw the wheel-tracks in the light of the
-gate-lamp, but where does the luggage come in?"
-
-"You may have observed the same wheel-tracks going the other way. But
-the outward-bound ones were very much deeper--so much so that we can
-say for a certainty that there was a very considerable weight on the
-carriage."
-
-"You get a trifle beyond me there," said the inspector, shrugging his
-shoulder. "It will not be an easy door to force, but we will try if we
-cannot make some one hear us."
-
-He hammered loudly at the knocker and pulled at the bell, but without
-any success. Holmes had slipped away, but he came back in a few minutes.
-
-"I have a window open," said he.
-
-"It is a mercy that you are on the side of the force, and not against
-it, Mr. Holmes," remarked the inspector, as he noted the clever way in
-which my friend had forced back the catch. "Well, I think that under the
-circumstances we may enter without an invitation."
-
-One after the other we made our way into a large apartment, which was
-evidently that in which Mr. Melas had found himself. The inspector
-had lit his lantern, and by its light we could see the two doors, the
-curtain, the lamp, and the suit of Japanese mail as he had described
-them. On the table lay two glasses, and empty brandy-bottle, and the
-remains of a meal.
-
-"What is that?" asked Holmes, suddenly.
-
-We all stood still and listened. A low moaning sound was coming from
-somewhere over our heads. Holmes rushed to the door and out into the
-hall. The dismal noise came from upstairs. He dashed up, the inspector
-and I at his heels, while his brother Mycroft followed as quickly as his
-great bulk would permit.
-
-Three doors faced up upon the second floor, and it was from the central
-of these that the sinister sounds were issuing, sinking sometimes into a
-dull mumble and rising again into a shrill whine. It was locked, but the
-key had been left on the outside. Holmes flung open the door and rushed
-in, but he was out again in an instant, with his hand to his throat.
-
-"It's charcoal," he cried. "Give it time. It will clear."
-
-Peering in, we could see that the only light in the room came from a
-dull blue flame which flickered from a small brass tripod in the centre.
-It threw a livid, unnatural circle upon the floor, while in the shadows
-beyond we saw the vague loom of two figures which crouched against the
-wall. From the open door there reeked a horrible poisonous exhalation
-which set us gasping and coughing. Holmes rushed to the top of the
-stairs to draw in the fresh air, and then, dashing into the room, he
-threw up the window and hurled the brazen tripod out into the garden.
-
-"We can enter in a minute," he gasped, darting out again. "Where is a
-candle? I doubt if we could strike a match in that atmosphere. Hold the
-light at the door and we shall get them out, Mycroft, now!"
-
-With a rush we got to the poisoned men and dragged them out into the
-well-lit hall. Both of them were blue-lipped and insensible, with
-swollen, congested faces and protruding eyes. Indeed, so distorted were
-their features that, save for his black beard and stout figure, we might
-have failed to recognize in one of them the Greek interpreter who had
-parted from us only a few hours before at the Diogenes Club. His hands
-and feet were securely strapped together, and he bore over one eye
-the marks of a violent blow. The other, who was secured in a similar
-fashion, was a tall man in the last stage of emaciation, with several
-strips of sticking-plaster arranged in a grotesque pattern over his
-face. He had ceased to moan as we laid him down, and a glance showed
-me that for him at least our aid had come too late. Mr. Melas, however,
-still lived, and in less than an hour, with the aid of ammonia and
-brandy I had the satisfaction of seeing him open his eyes, and of
-knowing that my hand had drawn him back from that dark valley in which
-all paths meet.
-
-It was a simple story which he had to tell, and one which did but
-confirm our own deductions. His visitor, on entering his rooms, had
-drawn a life-preserver from his sleeve, and had so impressed him with
-the fear of instant and inevitable death that he had kidnapped him for
-the second time. Indeed, it was almost mesmeric, the effect which this
-giggling ruffian had produced upon the unfortunate linguist, for he
-could not speak of him save with trembling hands and a blanched cheek.
-He had been taken swiftly to Beckenham, and had acted as interpreter in
-a second interview, even more dramatic than the first, in which the two
-Englishmen had menaced their prisoner with instant death if he did not
-comply with their demands. Finally, finding him proof against every
-threat, they had hurled him back into his prison, and after
-reproaching Melas with his treachery, which appeared from the newspaper
-advertisement, they had stunned him with a blow from a stick, and he
-remembered nothing more until he found us bending over him.
-
-And this was the singular case of the Grecian Interpreter, the
-explanation of which is still involved in some mystery. We were able
-to find out, by communicating with the gentleman who had answered the
-advertisement, that the unfortunate young lady came of a wealthy Grecian
-family, and that she had been on a visit to some friends in England.
-While there she had met a young man named Harold Latimer, who had
-acquired an ascendancy over he and had eventually persuaded her to fly
-with him. Her friends, shocked at the event, had contented themselves
-with informing her brother at Athens, and had then washed their hands
-of the matter. The brother, on his arrival in England, had imprudently
-placed himself in the power of Latimer and of his associate, whose name
-was Wilson Kemp--a man of the foulest antecedents. These two, finding
-that through his ignorance of the language he was helpless in their
-hands, had kept him a prisoner, and had endeavored by cruelty and
-starvation to make him sign away his own and his sister's property. They
-had kept him in the house without the girl's knowledge, and the plaster
-over the face had been for the purpose of making recognition difficult
-in case she should ever catch a glimpse of him. Her feminine perception,
-however, had instantly seen through the disguise when, on the occasion
-of the interpreter's visit, she had seen him for the first time. The
-poor girl, however, was herself a prisoner, for there was no one about
-the house except the man who acted as coachman, and his wife, both of
-whom were tools of the conspirators. Finding that their secret was out,
-and that their prisoner was not to be coerced, the two villains with the
-girl had fled away at a few hours' notice from the furnished house which
-they had hired, having first, as they thought, taken vengeance both upon
-the man who had defied and the one who had betrayed them.
-
-Months afterwards a curious newspaper cutting reached us from
-Buda-Pesth. It told how two Englishmen who had been traveling with a
-woman had met with a tragic end. They had each been stabbed, it seems,
-and the Hungarian police were of opinion that they had quarreled and had
-inflicted mortal injuries upon each other. Holmes, however, is, I fancy,
-of a different way of thinking, and holds to this day that, if one could
-find the Grecian girl, one might learn how the wrongs of herself and her
-brother came to be avenged.
-
-
-
-
-Adventure X. The Naval Treaty
-
-
-The July which immediately succeeded my marriage was made memorable
-by three cases of interest, in which I had the privilege of being
-associated with Sherlock Holmes and of studying his methods. I find them
-recorded in my notes under the headings of "The Adventure of the Second
-Stain," "The Adventure of the Naval Treaty," and "The Adventure of the
-Tired Captain." The first of these, however, deals with interest of such
-importance and implicates so many of the first families in the kingdom
-that for many years it will be impossible to make it public. No case,
-however, in which Holmes was engaged has ever illustrated the value
-of his analytical methods so clearly or has impressed those who were
-associated with him so deeply. I still retain an almost verbatim report
-of the interview in which he demonstrated the true facts of the case
-to Monsieur Dubugue of the Paris police, and Fritz von Waldbaum, the
-well-known specialist of Dantzig, both of whom had wasted their energies
-upon what proved to be side-issues. The new century will have come,
-however, before the story can be safely told. Meanwhile I pass on to
-the second on my list, which promised also at one time to be of national
-importance, and was marked by several incidents which give it a quite
-unique character.
-
-During my school-days I had been intimately associated with a lad named
-Percy Phelps, who was of much the same age as myself, though he was two
-classes ahead of me. He was a very brilliant boy, and carried away every
-prize which the school had to offer, finished his exploits by winning
-a scholarship which sent him on to continue his triumphant career at
-Cambridge. He was, I remember, extremely well connected, and even when
-we were all little boys together we knew that his mother's brother
-was Lord Holdhurst, the great conservative politician. This gaudy
-relationship did him little good at school. On the contrary, it seemed
-rather a piquant thing to us to chevy him about the playground and hit
-him over the shins with a wicket. But it was another thing when he
-came out into the world. I heard vaguely that his abilities and the
-influences which he commanded had won him a good position at the Foreign
-Office, and then he passed completely out of my mind until the following
-letter recalled his existence:
-
-
-Briarbrae, Woking. My dear Watson,--I have no doubt that you can
-remember "Tadpole" Phelps, who was in the fifth form when you were in
-the third. It is possible even that you may have heard that through my
-uncle's influence I obtained a good appointment at the Foreign Office,
-and that I was in a situation of trust and honor until a horrible
-misfortune came suddenly to blast my career.
-
-There is no use writing of the details of that dreadful event. In the
-event of your acceding to my request it is probably that I shall have
-to narrate them to you. I have only just recovered from nine weeks of
-brain-fever, and am still exceedingly weak. Do you think that you could
-bring your friend Mr. Holmes down to see me? I should like to have his
-opinion of the case, though the authorities assure me that nothing more
-can be done. Do try to bring him down, and as soon as possible. Every
-minute seems an hour while I live in this state of horrible suspense.
-Assure him that if I have not asked his advice sooner it was not because
-I did not appreciate his talents, but because I have been off my head
-ever since the blow fell. Now I am clear again, though I dare not think
-of it too much for fear of a relapse. I am still so weak that I have to
-write, as you see, by dictating. Do try to bring him.
-
-Your old school-fellow,
-
-Percy Phelps.
-
-
-There was something that touched me as I read this letter, something
-pitiable in the reiterated appeals to bring Holmes. So moved was I
-that even had it been a difficult matter I should have tried it, but
-of course I knew well that Holmes loved his art, so that he was ever
-as ready to bring his aid as his client could be to receive it. My wife
-agreed with me that not a moment should be lost in laying the matter
-before him, and so within an hour of breakfast-time I found myself back
-once more in the old rooms in Baker Street.
-
-Holmes was seated at his side-table clad in his dressing-gown, and
-working hard over a chemical investigation. A large curved retort
-was boiling furiously in the bluish flame of a Bunsen burner, and the
-distilled drops were condensing into a two-litre measure. My friend
-hardly glanced up as I entered, and I, seeing that his investigation
-must be of importance, seated myself in an arm-chair and waited. He
-dipped into this bottle or that, drawing out a few drops of each with
-his glass pipette, and finally brought a test-tube containing a solution
-over to the table. In his right hand he held a slip of litmus-paper.
-
-"You come at a crisis, Watson," said he. "If this paper remains blue,
-all is well. If it turns red, it means a man's life." He dipped it into
-the test-tube and it flushed at once into a dull, dirty crimson. "Hum!
-I thought as much!" he cried. "I will be at your service in an instant,
-Watson. You will find tobacco in the Persian slipper." He turned to his
-desk and scribbled off several telegrams, which were handed over to the
-page-boy. Then he threw himself down into the chair opposite, and drew
-up his knees until his fingers clasped round his long, thin shins.
-
-"A very commonplace little murder," said he. "You've got something
-better, I fancy. You are the stormy petrel of crime, Watson. What is
-it?"
-
-I handed him the letter, which he read with the most concentrated
-attention.
-
-"It does not tell us very much, does it?" he remarked, as he handed it
-back to me.
-
-"Hardly anything."
-
-"And yet the writing is of interest."
-
-"But the writing is not his own."
-
-"Precisely. It is a woman's."
-
-"A man's surely," I cried.
-
-"No, a woman's, and a woman of rare character. You see, at the
-commencement of an investigation it is something to know that your
-client is in close contact with some one who, for good or evil, has an
-exceptional nature. My interest is already awakened in the case. If you
-are ready we will start at once for Woking, and see this diplomatist who
-is in such evil case, and the lady to whom he dictates his letters."
-
-We were fortunate enough to catch an early train at Waterloo, and in
-a little under an hour we found ourselves among the fir-woods and
-the heather of Woking. Briarbrae proved to be a large detached house
-standing in extensive grounds within a few minutes' walk of the station.
-On sending in our cards we were shown into an elegantly appointed
-drawing-room, where we were joined in a few minutes by a rather stout
-man who received us with much hospitality. His age may have been nearer
-forty than thirty, but his cheeks were so ruddy and his eyes so merry
-that he still conveyed the impression of a plump and mischievous boy.
-
-"I am so glad that you have come," said he, shaking our hands with
-effusion. "Percy has been inquiring for you all morning. Ah, poor old
-chap, he clings to any straw! His father and his mother asked me to see
-you, for the mere mention of the subject is very painful to them."
-
-"We have had no details yet," observed Holmes. "I perceive that you are
-not yourself a member of the family."
-
-Our acquaintance looked surprised, and then, glancing down, he began to
-laugh.
-
-"Of course you saw the J H monogram on my locket," said he. "For a
-moment I thought you had done something clever. Joseph Harrison is my
-name, and as Percy is to marry my sister Annie I shall at least be a
-relation by marriage. You will find my sister in his room, for she has
-nursed him hand-and-foot this two months back. Perhaps we'd better go in
-at once, for I know how impatient he is."
-
-The chamber in which we were shown was on the same floor as the
-drawing-room. It was furnished partly as a sitting and partly as a
-bedroom, with flowers arranged daintily in every nook and corner. A
-young man, very pale and worn, was lying upon a sofa near the open
-window, through which came the rich scent of the garden and the balmy
-summer air. A woman was sitting beside him, who rose as we entered.
-
-"Shall I leave, Percy?" she asked.
-
-He clutched her hand to detain her. "How are you, Watson?" said he,
-cordially. "I should never have known you under that moustache, and I
-dare say you would not be prepared to swear to me. This I presume is
-your celebrated friend, Mr. Sherlock Holmes?"
-
-I introduced him in a few words, and we both sat down. The stout young
-man had left us, but his sister still remained with her hand in that of
-the invalid. She was a striking-looking woman, a little short and
-thick for symmetry, but with a beautiful olive complexion, large, dark,
-Italian eyes, and a wealth of deep black hair. Her rich tints made the
-white face of her companion the more worn and haggard by the contrast.
-
-"I won't waste your time," said he, raising himself upon the sofa.
-"I'll plunge into the matter without further preamble. I was a happy
-and successful man, Mr. Holmes, and on the eve of being married, when a
-sudden and dreadful misfortune wrecked all my prospects in life.
-
-"I was, as Watson may have told you, in the Foreign Office, and
-through the influences of my uncle, Lord Holdhurst, I rose rapidly to
-a responsible position. When my uncle became foreign minister in this
-administration he gave me several missions of trust, and as I always
-brought them to a successful conclusion, he came at last to have the
-utmost confidence in my ability and tact.
-
-"Nearly ten weeks ago--to be more accurate, on the 23d of May--he called
-me into his private room, and, after complimenting me on the good work
-which I had done, he informed me that he had a new commission of trust
-for me to execute.
-
-"'This,' said he, taking a gray roll of paper from his bureau, 'is the
-original of that secret treaty between England and Italy of which, I
-regret to say, some rumors have already got into the public press. It is
-of enormous importance that nothing further should leak out. The French
-or the Russian embassy would pay an immense sum to learn the contents
-of these papers. They should not leave my bureau were it not that it
-is absolutely necessary to have them copied. You have a desk in your
-office?"
-
-"'Yes, sir.'
-
-"'Then take the treaty and lock it up there. I shall give directions
-that you may remain behind when the others go, so that you may copy
-it at your leisure without fear of being overlooked. When you have
-finished, relock both the original and the draft in the desk, and hand
-them over to me personally to-morrow morning.'
-
-"I took the papers and--"
-
-"Excuse me an instant," said Holmes. "Were you alone during this
-conversation?"
-
-"Absolutely."
-
-"In a large room?"
-
-"Thirty feet each way."
-
-"In the centre?"
-
-"Yes, about it."
-
-"And speaking low?"
-
-"My uncle's voice is always remarkably low. I hardly spoke at all."
-
-"Thank you," said Holmes, shutting his eyes; "pray go on."
-
-"I did exactly what he indicated, and waited until the other clerks had
-departed. One of them in my room, Charles Gorot, had some arrears
-of work to make up, so I left him there and went out to dine. When I
-returned he was gone. I was anxious to hurry my work, for I knew that
-Joseph--the Mr. Harrison whom you saw just now--was in town, and that he
-would travel down to Woking by the eleven-o'clock train, and I wanted if
-possible to catch it.
-
-"When I came to examine the treaty I saw at once that it was of such
-importance that my uncle had been guilty of no exaggeration in what
-he had said. Without going into details, I may say that it defined the
-position of Great Britain towards the Triple Alliance, and fore-shadowed
-the policy which this country would pursue in the event of the
-French fleet gaining a complete ascendancy over that of Italy in the
-Mediterranean. The questions treated in it were purely naval. At the end
-were the signatures of the high dignitaries who had signed it. I glanced
-my eyes over it, and then settled down to my task of copying.
-
-"It was a long document, written in the French language, and containing
-twenty-six separate articles. I copied as quickly as I could, but at
-nine o'clock I had only done nine articles, and it seemed hopeless for
-me to attempt to catch my train. I was feeling drowsy and stupid, partly
-from my dinner and also from the effects of a long day's work. A cup of
-coffee would clear my brain. A commissionnaire remains all night in a
-little lodge at the foot of the stairs, and is in the habit of making
-coffee at his spirit-lamp for any of the officials who may be working
-over time. I rang the bell, therefore, to summon him.
-
-"To my surprise, it was a woman who answered the summons, a large,
-coarse-faced, elderly woman, in an apron. She explained that she was the
-commissionnaire's wife, who did the charing, and I gave her the order
-for the coffee.
-
-"I wrote two more articles and then, feeling more drowsy than ever, I
-rose and walked up and down the room to stretch my legs. My coffee had
-not yet come, and I wondered what was the cause of the delay could be.
-Opening the door, I started down the corridor to find out. There was a
-straight passage, dimly lighted, which led from the room in which I
-had been working, and was the only exit from it. It ended in a curving
-staircase, with the commissionnaire's lodge in the passage at the
-bottom. Half way down this staircase is a small landing, with another
-passage running into it at right angles. This second one leads by means
-of a second small stair to a side door, used by servants, and also as
-a short cut by clerks when coming from Charles Street. Here is a rough
-chart of the place."
-
-"Thank you. I think that I quite follow you," said Sherlock Holmes.
-
-"It is of the utmost importance that you should notice this point.
-I went down the stairs and into the hall, where I found the
-commissionnaire fast asleep in his box, with the kettle boiling
-furiously upon the spirit-lamp. I took off the kettle and blew out the
-lamp, for the water was spurting over the floor. Then I put out my hand
-and was about to shake the man, who was still sleeping soundly, when a
-bell over his head rang loudly, and he woke with a start.
-
-"'Mr. Phelps, sir!' said he, looking at me in bewilderment.
-
-"'I came down to see if my coffee was ready.'
-
-"'I was boiling the kettle when I fell asleep, sir.' He looked at me and
-then up at the still quivering bell with an ever-growing astonishment
-upon his face.
-
-"'If you was here, sir, then who rang the bell?' he asked.
-
-"'The bell!' I cried. 'What bell is it?'
-
-"'It's the bell of the room you were working in.'
-
-"A cold hand seemed to close round my heart. Some one, then, was in that
-room where my precious treaty lay upon the table. I ran frantically up
-the stair and along the passage. There was no one in the corridors, Mr.
-Holmes. There was no one in the room. All was exactly as I left it, save
-only that the papers which had been committed to my care had been taken
-from the desk on which they lay. The copy was there, and the original
-was gone."
-
-Holmes sat up in his chair and rubbed his hands. I could see that the
-problem was entirely to his heart. "Pray, what did you do then?" he
-murmured.
-
-"I recognized in an instant that the thief must have come up the stairs
-from the side door. Of course I must have met him if he had come the
-other way."
-
-"You were satisfied that he could not have been concealed in the room
-all the time, or in the corridor which you have just described as dimly
-lighted?"
-
-"It is absolutely impossible. A rat could not conceal himself either in
-the room or the corridor. There is no cover at all."
-
-"Thank you. Pray proceed."
-
-"The commissionnaire, seeing by my pale face that something was to be
-feared, had followed me upstairs. Now we both rushed along the corridor
-and down the steep steps which led to Charles Street. The door at the
-bottom was closed, but unlocked. We flung it open and rushed out. I can
-distinctly remember that as we did so there came three chimes from a
-neighboring clock. It was quarter to ten."
-
-"That is of enormous importance," said Holmes, making a note upon his
-shirt-cuff.
-
-"The night was very dark, and a thin, warm rain was falling. There was
-no one in Charles Street, but a great traffic was going on, as usual, in
-Whitehall, at the extremity. We rushed along the pavement, bare-headed
-as we were, and at the far corner we found a policeman standing.
-
-"'A robbery has been committed,' I gasped. 'A document of immense value
-has been stolen from the Foreign Office. Has any one passed this way?'
-
-"'I have been standing here for a quarter of an hour, sir,' said he;
-'only one person has passed during that time--a woman, tall and elderly,
-with a Paisley shawl.'
-
-"'Ah, that is only my wife,' cried the commissionnaire; 'has no one else
-passed?'
-
-"'No one.'
-
-"'Then it must be the other way that the thief took,' cried the fellow,
-tugging at my sleeve.
-
-"'But I was not satisfied, and the attempts which he made to draw me
-away increased my suspicions.
-
-"'Which way did the woman go?' I cried.
-
-"'I don't know, sir. I noticed her pass, but I had no special reason for
-watching her. She seemed to be in a hurry.'
-
-"'How long ago was it?'
-
-"'Oh, not very many minutes.'
-
-"'Within the last five?'
-
-"'Well, it could not be more than five.'
-
-"'You're only wasting your time, sir, and every minute now is of
-importance,' cried the commissionnaire; 'take my word for it that my old
-woman has nothing to do with it, and come down to the other end of the
-street. Well, if you won't, I will.' And with that he rushed off in the
-other direction.
-
-"But I was after him in an instant and caught him by the sleeve.
-
-"'Where do you live?' said I.
-
-"'16 Ivy Lane, Brixton,' he answered. 'But don't let yourself be drawn
-away upon a false scent, Mr. Phelps. Come to the other end of the street
-and let us see if we can hear of anything.'
-
-"Nothing was to be lost by following his advice. With the policeman we
-both hurried down, but only to find the street full of traffic, many
-people coming and going, but all only too eager to get to a place of
-safety upon so wet a night. There was no lounger who could tell us who
-had passed.
-
-"Then we returned to the office, and searched the stairs and the passage
-without result. The corridor which led to the room was laid down with
-a kind of creamy linoleum which shows an impression very easily. We
-examined it very carefully, but found no outline of any footmark."
-
-"Had it been raining all evening?"
-
-"Since about seven."
-
-"How is it, then, that the woman who came into the room about nine left
-no traces with her muddy boots?"
-
-"I am glad you raised the point. It occurred to me at the time.
-The charwomen are in the habit of taking off their boots at the
-commissionnaire's office, and putting on list slippers."
-
-"That is very clear. There were no marks, then, though the night was a
-wet one? The chain of events is certainly one of extraordinary interest.
-What did you do next?
-
-"We examined the room also. There is no possibility of a secret door,
-and the windows are quite thirty feet from the ground. Both of them
-were fastened on the inside. The carpet prevents any possibility of a
-trap-door, and the ceiling is of the ordinary whitewashed kind. I will
-pledge my life that whoever stole my papers could only have come through
-the door."
-
-"How about the fireplace?"
-
-"They use none. There is a stove. The bell-rope hangs from the wire just
-to the right of my desk. Whoever rang it must have come right up to the
-desk to do it. But why should any criminal wish to ring the bell? It is
-a most insoluble mystery."
-
-"Certainly the incident was unusual. What were your next steps? You
-examined the room, I presume, to see if the intruder had left any
-traces--any cigar-end or dropped glove or hairpin or other trifle?"
-
-"There was nothing of the sort."
-
-"No smell?"
-
-"Well, we never thought of that."
-
-"Ah, a scent of tobacco would have been worth a great deal to us in such
-an investigation."
-
-"I never smoke myself, so I think I should have observed it if there had
-been any smell of tobacco. There was absolutely no clue of any kind. The
-only tangible fact was that the commissionnaire's wife--Mrs. Tangey was
-the name--had hurried out of the place. He could give no explanation
-save that it was about the time when the woman always went home. The
-policeman and I agreed that our best plan would be to seize the woman
-before she could get rid of the papers, presuming that she had them.
-
-"The alarm had reached Scotland Yard by this time, and Mr. Forbes, the
-detective, came round at once and took up the case with a great deal of
-energy. We hired a hansom, and in half an hour we were at the address
-which had been given to us. A young woman opened the door, who proved to
-be Mrs. Tangey's eldest daughter. Her mother had not come back yet, and
-we were shown into the front room to wait.
-
-"About ten minutes later a knock came at the door, and here we made the
-one serious mistake for which I blame myself. Instead of opening the
-door ourselves, we allowed the girl to do so. We heard her say, 'Mother,
-there are two men in the house waiting to see you,' and an instant
-afterwards we heard the patter of feet rushing down the passage. Forbes
-flung open the door, and we both ran into the back room or kitchen, but
-the woman had got there before us. She stared at us with defiant
-eyes, and then, suddenly recognizing me, an expression of absolute
-astonishment came over her face.
-
-"'Why, if it isn't Mr. Phelps, of the office!' she cried.
-
-"'Come, come, who did you think we were when you ran away from us?'
-asked my companion.
-
-"'I thought you were the brokers,' said she, 'we have had some trouble
-with a tradesman.'
-
-"'That's not quite good enough,' answered Forbes. 'We have reason to
-believe that you have taken a paper of importance from the Foreign
-Office, and that you ran in here to dispose of it. You must come back
-with us to Scotland Yard to be searched.'
-
-"It was in vain that she protested and resisted. A four-wheeler was
-brought, and we all three drove back in it. We had first made an
-examination of the kitchen, and especially of the kitchen fire, to see
-whether she might have made away with the papers during the instant that
-she was alone. There were no signs, however, of any ashes or scraps.
-When we reached Scotland Yard she was handed over at once to the female
-searcher. I waited in an agony of suspense until she came back with her
-report. There were no signs of the papers.
-
-"Then for the first time the horror of my situation came in its full
-force. Hitherto I had been acting, and action had numbed thought. I had
-been so confident of regaining the treaty at once that I had not dared
-to think of what would be the consequence if I failed to do so. But
-now there was nothing more to be done, and I had leisure to realize
-my position. It was horrible. Watson there would tell you that I was a
-nervous, sensitive boy at school. It is my nature. I thought of my uncle
-and of his colleagues in the Cabinet, of the shame which I had brought
-upon him, upon myself, upon every one connected with me. What though I
-was the victim of an extraordinary accident? No allowance is made
-for accidents where diplomatic interests are at stake. I was ruined,
-shamefully, hopelessly ruined. I don't know what I did. I fancy I must
-have made a scene. I have a dim recollection of a group of officials who
-crowded round me, endeavoring to soothe me. One of them drove down with
-me to Waterloo, and saw me into the Woking train. I believe that he
-would have come all the way had it not been that Dr. Ferrier, who lives
-near me, was going down by that very train. The doctor most kindly took
-charge of me, and it was well he did so, for I had a fit in the station,
-and before we reached home I was practically a raving maniac.
-
-"You can imagine the state of things here when they were roused from
-their beds by the doctor's ringing and found me in this condition. Poor
-Annie here and my mother were broken-hearted. Dr. Ferrier had just heard
-enough from the detective at the station to be able to give an idea of
-what had happened, and his story did not mend matters. It was evident to
-all that I was in for a long illness, so Joseph was bundled out of this
-cheery bedroom, and it was turned into a sick-room for me. Here I have
-lain, Mr. Holmes, for over nine weeks, unconscious, and raving with
-brain-fever. If it had not been for Miss Harrison here and for the
-doctor's care I should not be speaking to you now. She has nursed me by
-day and a hired nurse has looked after me by night, for in my mad fits
-I was capable of anything. Slowly my reason has cleared, but it is only
-during the last three days that my memory has quite returned. Sometimes
-I wish that it never had. The first thing that I did was to wire to
-Mr. Forbes, who had the case in hand. He came out, and assures me that,
-though everything has been done, no trace of a clue has been discovered.
-The commissionnaire and his wife have been examined in every way without
-any light being thrown upon the matter. The suspicions of the police
-then rested upon young Gorot, who, as you may remember, stayed over time
-in the office that night. His remaining behind and his French name were
-really the only two points which could suggest suspicion; but, as a
-matter of fact, I did not begin work until he had gone, and his people
-are of Huguenot extraction, but as English in sympathy and tradition as
-you and I are. Nothing was found to implicate him in any way, and there
-the matter dropped. I turn to you, Mr. Holmes, as absolutely my last
-hope. If you fail me, then my honor as well as my position are forever
-forfeited."
-
-The invalid sank back upon his cushions, tired out by this long recital,
-while his nurse poured him out a glass of some stimulating medicine.
-Holmes sat silently, with his head thrown back and his eyes closed, in
-an attitude which might seem listless to a stranger, but which I knew
-betokened the most intense self-absorption.
-
-"You statement has been so explicit," said he at last, "that you have
-really left me very few questions to ask. There is one of the very
-utmost importance, however. Did you tell any one that you had this
-special task to perform?"
-
-"No one."
-
-"Not Miss Harrison here, for example?"
-
-"No. I had not been back to Woking between getting the order and
-executing the commission."
-
-"And none of your people had by chance been to see you?"
-
-"None."
-
-"Did any of them know their way about in the office?"
-
-"Oh, yes, all of them had been shown over it."
-
-"Still, of course, if you said nothing to any one about the treaty these
-inquiries are irrelevant."
-
-"I said nothing."
-
-"Do you know anything of the commissionnaire?"
-
-"Nothing except that he is an old soldier."
-
-"What regiment?"
-
-"Oh, I have heard--Coldstream Guards."
-
-"Thank you. I have no doubt I can get details from Forbes. The
-authorities are excellent at amassing facts, though they do not always
-use them to advantage. What a lovely thing a rose is!"
-
-He walked past the couch to the open window, and held up the drooping
-stalk of a moss-rose, looking down at the dainty blend of crimson and
-green. It was a new phase of his character to me, for I had never before
-seen him show any keen interest in natural objects.
-
-"There is nothing in which deduction is so necessary as in religion,"
-said he, leaning with his back against the shutters. "It can be built
-up as an exact science by the reasoner. Our highest assurance of the
-goodness of Providence seems to me to rest in the flowers. All other
-things, our powers our desires, our food, are all really necessary for
-our existence in the first instance. But this rose is an extra. Its
-smell and its color are an embellishment of life, not a condition of it.
-It is only goodness which gives extras, and so I say again that we have
-much to hope from the flowers."
-
-Percy Phelps and his nurse looked at Holmes during this demonstration
-with surprise and a good deal of disappointment written upon their
-faces. He had fallen into a reverie, with the moss-rose between his
-fingers. It had lasted some minutes before the young lady broke in upon
-it.
-
-"Do you see any prospect of solving this mystery, Mr. Holmes?" she
-asked, with a touch of asperity in her voice.
-
-"Oh, the mystery!" he answered, coming back with a start to the
-realities of life. "Well, it would be absurd to deny that the case is
-a very abstruse and complicated one, but I can promise you that I will
-look into the matter and let you know any points which may strike me."
-
-"Do you see any clue?"
-
-"You have furnished me with seven, but, of course, I must test them
-before I can pronounce upon their value."
-
-"You suspect some one?"
-
-"I suspect myself."
-
-"What!"
-
-"Of coming to conclusions too rapidly."
-
-"Then go to London and test your conclusions."
-
-"Your advice is very excellent, Miss Harrison," said Holmes, rising. "I
-think, Watson, we cannot do better. Do not allow yourself to indulge in
-false hopes, Mr. Phelps. The affair is a very tangled one."
-
-"I shall be in a fever until I see you again," cried the diplomatist.
-
-"Well, I'll come out by the same train to-morrow, though it's more than
-likely that my report will be a negative one."
-
-"God bless you for promising to come," cried our client. "It gives me
-fresh life to know that something is being done. By the way, I have had
-a letter from Lord Holdhurst."
-
-"Ha! What did he say?"
-
-"He was cold, but not harsh. I dare say my severe illness prevented
-him from being that. He repeated that the matter was of the utmost
-importance, and added that no steps would be taken about my future--by
-which he means, of course, my dismissal--until my health was restored
-and I had an opportunity of repairing my misfortune."
-
-"Well, that was reasonable and considerate," said Holmes. "Come, Watson,
-for we have a good day's work before us in town."
-
-Mr. Joseph Harrison drove us down to the station, and we were soon
-whirling up in a Portsmouth train. Holmes was sunk in profound thought,
-and hardly opened his mouth until we had passed Clapham Junction.
-
-"It's a very cheery thing to come into London by any of these lines
-which run high, and allow you to look down upon the houses like this."
-
-I thought he was joking, for the view was sordid enough, but he soon
-explained himself.
-
-"Look at those big, isolated clumps of building rising up above the
-slates, like brick islands in a lead-colored sea."
-
-"The board-schools."
-
-"Light-houses, my boy! Beacons of the future! Capsules with hundreds of
-bright little seeds in each, out of which will spring the wise, better
-England of the future. I suppose that man Phelps does not drink?"
-
-"I should not think so."
-
-"Nor should I, but we are bound to take every possibility into account.
-The poor devil has certainly got himself into very deep water, and it's
-a question whether we shall ever be able to get him ashore. What did you
-think of Miss Harrison?"
-
-"A girl of strong character."
-
-"Yes, but she is a good sort, or I am mistaken. She and her brother are
-the only children of an iron-master somewhere up Northumberland way. He
-got engaged to her when traveling last winter, and she came down to
-be introduced to his people, with her brother as escort. Then came
-the smash, and she stayed on to nurse her lover, while brother Joseph,
-finding himself pretty snug, stayed on too. I've been making a few
-independent inquiries, you see. But to-day must be a day of inquiries."
-
-"My practice--" I began.
-
-"Oh, if you find your own cases more interesting than mine--" said
-Holmes, with some asperity.
-
-"I was going to say that my practice could get along very well for a day
-or two, since it is the slackest time in the year."
-
-"Excellent," said he, recovering his good-humor. "Then we'll look into
-this matter together. I think that we should begin by seeing Forbes.
-He can probably tell us all the details we want until we know from what
-side the case is to be approached."
-
-"You said you had a clue?"
-
-"Well, we have several, but we can only test their value by further
-inquiry. The most difficult crime to track is the one which is
-purposeless. Now this is not purposeless. Who is it who profits by it?
-There is the French ambassador, there is the Russian, there is whoever
-might sell it to either of these, and there is Lord Holdhurst."
-
-"Lord Holdhurst!"
-
-"Well, it is just conceivable that a statesman might find himself in
-a position where he was not sorry to have such a document accidentally
-destroyed."
-
-"Not a statesman with the honorable record of Lord Holdhurst?"
-
-"It is a possibility and we cannot afford to disregard it. We shall see
-the noble lord to-day and find out if he can tell us anything. Meanwhile
-I have already set inquiries on foot."
-
-"Already?"
-
-"Yes, I sent wires from Woking station to every evening paper in London.
-This advertisement will appear in each of them."
-
-He handed over a sheet torn from a note-book. On it was scribbled in
-pencil: "L10 reward. The number of the cab which dropped a fare at or
-about the door of the Foreign Office in Charles Street at quarter to ten
-in the evening of May 23d. Apply 221 B, Baker Street."
-
-"You are confident that the thief came in a cab?"
-
-"If not, there is no harm done. But if Mr. Phelps is correct in stating
-that there is no hiding-place either in the room or the corridors, then
-the person must have come from outside. If he came from outside on so
-wet a night, and yet left no trace of damp upon the linoleum, which
-was examined within a few minutes of his passing, then it is exceeding
-probable that he came in a cab. Yes, I think that we may safely deduce a
-cab."
-
-"It sounds plausible."
-
-"That is one of the clues of which I spoke. It may lead us to something.
-And then, of course, there is the bell--which is the most distinctive
-feature of the case. Why should the bell ring? Was it the thief who did
-it out of bravado? Or was it some one who was with the thief who did it
-in order to prevent the crime? Or was it an accident? Or was it--?" He
-sank back into the state of intense and silent thought from which he
-had emerged; but it seemed to me, accustomed as I was to his every mood,
-that some new possibility had dawned suddenly upon him.
-
-It was twenty past three when we reached our terminus, and after a hasty
-luncheon at the buffet we pushed on at once to Scotland Yard. Holmes
-had already wired to Forbes, and we found him waiting to receive us--a
-small, foxy man with a sharp but by no means amiable expression. He
-was decidedly frigid in his manner to us, especially when he heard the
-errand upon which we had come.
-
-"I've heard of your methods before now, Mr. Holmes," said he, tartly.
-"You are ready enough to use all the information that the police can lay
-at your disposal, and then you try to finish the case yourself and bring
-discredit on them."
-
-"On the contrary," said Holmes, "out of my last fifty-three cases my
-name has only appeared in four, and the police have had all the credit
-in forty-nine. I don't blame you for not knowing this, for you are young
-and inexperienced, but if you wish to get on in your new duties you will
-work with me and not against me."
-
-"I'd be very glad of a hint or two," said the detective, changing his
-manner. "I've certainly had no credit from the case so far."
-
-"What steps have you taken?"
-
-"Tangey, the commissionnaire, has been shadowed. He left the Guards with
-a good character and we can find nothing against him. His wife is a bad
-lot, though. I fancy she knows more about this than appears."
-
-"Have you shadowed her?"
-
-"We have set one of our women on to her. Mrs. Tangey drinks, and our
-woman has been with her twice when she was well on, but she could get
-nothing out of her."
-
-"I understand that they have had brokers in the house?"
-
-"Yes, but they were paid off."
-
-"Where did the money come from?"
-
-"That was all right. His pension was due. They have not shown any sign
-of being in funds."
-
-"What explanation did she give of having answered the bell when Mr.
-Phelps rang for the coffee?"
-
-"She said that he husband was very tired and she wished to relieve him."
-
-"Well, certainly that would agree with his being found a little later
-asleep in his chair. There is nothing against them then but the woman's
-character. Did you ask her why she hurried away that night? Her haste
-attracted the attention of the police constable."
-
-"She was later than usual and wanted to get home."
-
-"Did you point out to her that you and Mr. Phelps, who started at least
-twenty minutes after her, got home before her?"
-
-"She explains that by the difference between a 'bus and a hansom."
-
-"Did she make it clear why, on reaching her house, she ran into the back
-kitchen?"
-
-"Because she had the money there with which to pay off the brokers."
-
-"She has at least an answer for everything. Did you ask her whether in
-leaving she met any one or saw any one loitering about Charles Street?"
-
-"She saw no one but the constable."
-
-"Well, you seem to have cross-examined her pretty thoroughly. What else
-have you done?"
-
-"The clerk Gorot has been shadowed all these nine weeks, but without
-result. We can show nothing against him."
-
-"Anything else?"
-
-"Well, we have nothing else to go upon--no evidence of any kind."
-
-"Have you formed a theory about how that bell rang?"
-
-"Well, I must confess that it beats me. It was a cool hand, whoever it
-was, to go and give the alarm like that."
-
-"Yes, it was queer thing to do. Many thanks to you for what you have
-told me. If I can put the man into your hands you shall hear from me.
-Come along, Watson."
-
-"Where are we going to now?" I asked, as we left the office.
-
-"We are now going to interview Lord Holdhurst, the cabinet minister and
-future premier of England."
-
-We were fortunate in finding that Lord Holdhurst was still in his
-chambers in Downing Street, and on Holmes sending in his card we were
-instantly shown up. The statesman received us with that old-fashioned
-courtesy for which he is remarkable, and seated us on the two luxuriant
-lounges on either side of the fireplace. Standing on the rug between us,
-with his slight, tall figure, his sharp features, thoughtful face, and
-curling hair prematurely tinged with gray, he seemed to represent that
-not too common type, a nobleman who is in truth noble.
-
-"Your name is very familiar to me, Mr. Holmes," said he, smiling. "And,
-of course, I cannot pretend to be ignorant of the object of your visit.
-There has only been one occurrence in these offices which could call for
-your attention. In whose interest are you acting, may I ask?"
-
-"In that of Mr. Percy Phelps," answered Holmes.
-
-"Ah, my unfortunate nephew! You can understand that our kinship makes
-it the more impossible for me to screen him in any way. I fear that the
-incident must have a very prejudicial effect upon his career."
-
-"But if the document is found?"
-
-"Ah, that, of course, would be different."
-
-"I had one or two questions which I wished to ask you, Lord Holdhurst."
-
-"I shall be happy to give you any information in my power."
-
-"Was it in this room that you gave your instructions as to the copying
-of the document?"
-
-"It was."
-
-"Then you could hardly have been overheard?"
-
-"It is out of the question."
-
-"Did you ever mention to any one that it was your intention to give any
-one the treaty to be copied?"
-
-"Never."
-
-"You are certain of that?"
-
-"Absolutely."
-
-"Well, since you never said so, and Mr. Phelps never said so, and nobody
-else knew anything of the matter, then the thief's presence in the room
-was purely accidental. He saw his chance and he took it."
-
-The statesman smiled. "You take me out of my province there," said he.
-
-Holmes considered for a moment. "There is another very important
-point which I wish to discuss with you," said he. "You feared, as I
-understand, that very grave results might follow from the details of
-this treaty becoming known."
-
-A shadow passed over the expressive face of the statesman. "Very grave
-results indeed."
-
-"Any have they occurred?"
-
-"Not yet."
-
-"If the treaty had reached, let us say, the French or Russian Foreign
-Office, you would expect to hear of it?"
-
-"I should," said Lord Holdhurst, with a wry face.
-
-"Since nearly ten weeks have elapsed, then, and nothing has been heard,
-it is not unfair to suppose that for some reason the treaty has not
-reached them."
-
-Lord Holdhurst shrugged his shoulders.
-
-"We can hardly suppose, Mr. Holmes, that the thief took the treaty in
-order to frame it and hang it up."
-
-"Perhaps he is waiting for a better price."
-
-"If he waits a little longer he will get no price at all. The treaty
-will cease to be secret in a few months."
-
-"That is most important," said Holmes. "Of course, it is a possible
-supposition that the thief has had a sudden illness--"
-
-"An attack of brain-fever, for example?" asked the statesman, flashing a
-swift glance at him.
-
-"I did not say so," said Holmes, imperturbably. "And now, Lord
-Holdhurst, we have already taken up too much of your valuable time, and
-we shall wish you good-day."
-
-"Every success to your investigation, be the criminal who it may,"
-answered the nobleman, as he bowed us out the door.
-
-"He's a fine fellow," said Holmes, as we came out into Whitehall. "But
-he has a struggle to keep up his position. He is far from rich and has
-many calls. You noticed, of course, that his boots had been resoled.
-Now, Watson, I won't detain you from your legitimate work any longer.
-I shall do nothing more to-day, unless I have an answer to my cab
-advertisement. But I should be extremely obliged to you if you would
-come down with me to Woking to-morrow, by the same train which we took
-yesterday."
-
-
-I met him accordingly next morning and we traveled down to Woking
-together. He had had no answer to his advertisement, he said, and no
-fresh light had been thrown upon the case. He had, when he so willed
-it, the utter immobility of countenance of a red Indian, and I could
-not gather from his appearance whether he was satisfied or not with
-the position of the case. His conversation, I remember, was about the
-Bertillon system of measurements, and he expressed his enthusiastic
-admiration of the French savant.
-
-We found our client still under the charge of his devoted nurse, but
-looking considerably better than before. He rose from the sofa and
-greeted us without difficulty when we entered.
-
-"Any news?" he asked, eagerly.
-
-"My report, as I expected, is a negative one," said Holmes. "I have seen
-Forbes, and I have seen your uncle, and I have set one or two trains of
-inquiry upon foot which may lead to something."
-
-"You have not lost heart, then?"
-
-"By no means."
-
-"God bless you for saying that!" cried Miss Harrison. "If we keep our
-courage and our patience the truth must come out."
-
-"We have more to tell you than you have for us," said Phelps, reseating
-himself upon the couch.
-
-"I hoped you might have something."
-
-"Yes, we have had an adventure during the night, and one which might
-have proved to be a serious one." His expression grew very grave as he
-spoke, and a look of something akin to fear sprang up in his eyes. "Do
-you know," said he, "that I begin to believe that I am the unconscious
-centre of some monstrous conspiracy, and that my life is aimed at as
-well as my honor?"
-
-"Ah!" cried Holmes.
-
-"It sounds incredible, for I have not, as far as I know, an enemy in
-the world. Yet from last night's experience I can come to no other
-conclusion."
-
-"Pray let me hear it."
-
-"You must know that last night was the very first night that I have ever
-slept without a nurse in the room. I was so much better that I thought
-I could dispense with one. I had a night-light burning, however. Well,
-about two in the morning I had sunk into a light sleep when I was
-suddenly aroused by a slight noise. It was like the sound which a mouse
-makes when it is gnawing a plank, and I lay listening to it for some
-time under the impression that it must come from that cause. Then it
-grew louder, and suddenly there came from the window a sharp metallic
-snick. I sat up in amazement. There could be no doubt what the sounds
-were now. The first ones had been caused by some one forcing an
-instrument through the slit between the sashes, and the second by the
-catch being pressed back.
-
-"There was a pause then for about ten minutes, as if the person were
-waiting to see whether the noise had awakened me. Then I heard a gentle
-creaking as the window was very slowly opened. I could stand it no
-longer, for my nerves are not what they used to be. I sprang out of bed
-and flung open the shutters. A man was crouching at the window. I could
-see little of him, for he was gone like a flash. He was wrapped in some
-sort of cloak which came across the lower part of his face. One thing
-only I am sure of, and that is that he had some weapon in his hand. It
-looked to me like a long knife. I distinctly saw the gleam of it as he
-turned to run."
-
-"This is most interesting," said Holmes. "Pray what did you do then?"
-
-"I should have followed him through the open window if I had been
-stronger. As it was, I rang the bell and roused the house. It took me
-some little time, for the bell rings in the kitchen and the servants all
-sleep upstairs. I shouted, however, and that brought Joseph down, and he
-roused the others. Joseph and the groom found marks on the bed outside
-the window, but the weather has been so dry lately that they found it
-hopeless to follow the trail across the grass. There's a place, however,
-on the wooden fence which skirts the road which shows signs, they tell
-me, as if some one had got over, and had snapped the top of the rail in
-doing so. I have said nothing to the local police yet, for I thought I
-had best have your opinion first."
-
-This tale of our client's appeared to have an extraordinary effect upon
-Sherlock Holmes. He rose from his chair and paced about the room in
-uncontrollable excitement.
-
-"Misfortunes never come single," said Phelps, smiling, though it was
-evident that his adventure had somewhat shaken him.
-
-"You have certainly had your share," said Holmes. "Do you think you
-could walk round the house with me?"
-
-"Oh, yes, I should like a little sunshine. Joseph will come, too."
-
-"And I also," said Miss Harrison.
-
-"I am afraid not," said Holmes, shaking his head. "I think I must ask
-you to remain sitting exactly where you are."
-
-The young lady resumed her seat with an air of displeasure. Her brother,
-however, had joined us and we set off all four together. We passed round
-the lawn to the outside of the young diplomatist's window. There were,
-as he had said, marks upon the bed, but they were hopelessly blurred and
-vague. Holmes stopped over them for an instant, and then rose shrugging
-his shoulders.
-
-"I don't think any one could make much of this," said he. "Let us go
-round the house and see why this particular room was chosen by the
-burglar. I should have thought those larger windows of the drawing-room
-and dining-room would have had more attractions for him."
-
-"They are more visible from the road," suggested Mr. Joseph Harrison.
-
-"Ah, yes, of course. There is a door here which he might have attempted.
-What is it for?"
-
-"It is the side entrance for trades-people. Of course it is locked at
-night."
-
-"Have you ever had an alarm like this before?"
-
-"Never," said our client.
-
-"Do you keep plate in the house, or anything to attract burglars?"
-
-"Nothing of value."
-
-Holmes strolled round the house with his hands in his pockets and a
-negligent air which was unusual with him.
-
-"By the way," said he to Joseph Harrison, "you found some place, I
-understand, where the fellow scaled the fence. Let us have a look at
-that!"
-
-The plump young man led us to a spot where the top of one of the wooden
-rails had been cracked. A small fragment of the wood was hanging down.
-Holmes pulled it off and examined it critically.
-
-"Do you think that was done last night? It looks rather old, does it
-not?"
-
-"Well, possibly so."
-
-"There are no marks of any one jumping down upon the other side. No, I
-fancy we shall get no help here. Let us go back to the bedroom and talk
-the matter over."
-
-Percy Phelps was walking very slowly, leaning upon the arm of his future
-brother-in-law. Holmes walked swiftly across the lawn, and we were at
-the open window of the bedroom long before the others came up.
-
-"Miss Harrison," said Holmes, speaking with the utmost intensity of
-manner, "you must stay where you are all day. Let nothing prevent you
-from staying where you are all day. It is of the utmost importance."
-
-"Certainly, if you wish it, Mr. Holmes," said the girl in astonishment.
-
-"When you go to bed lock the door of this room on the outside and keep
-the key. Promise to do this."
-
-"But Percy?"
-
-"He will come to London with us."
-
-"And am I to remain here?"
-
-"It is for his sake. You can serve him. Quick! Promise!"
-
-She gave a quick nod of assent just as the other two came up.
-
-"Why do you sit moping there, Annie?" cried her brother. "Come out into
-the sunshine!"
-
-"No, thank you, Joseph. I have a slight headache and this room is
-deliciously cool and soothing."
-
-"What do you propose now, Mr. Holmes?" asked our client.
-
-"Well, in investigating this minor affair we must not lose sight of our
-main inquiry. It would be a very great help to me if you would come up
-to London with us."
-
-"At once?"
-
-"Well, as soon as you conveniently can. Say in an hour."
-
-"I feel quite strong enough, if I can really be of any help."
-
-"The greatest possible."
-
-"Perhaps you would like me to stay there to-night?"
-
-"I was just going to propose it."
-
-"Then, if my friend of the night comes to revisit me, he will find the
-bird flown. We are all in your hands, Mr. Holmes, and you must tell us
-exactly what you would like done. Perhaps you would prefer that Joseph
-came with us so as to look after me?"
-
-"Oh, no; my friend Watson is a medical man, you know, and he'll look
-after you. We'll have our lunch here, if you will permit us, and then we
-shall all three set off for town together."
-
-It was arranged as he suggested, though Miss Harrison excused herself
-from leaving the bedroom, in accordance with Holmes's suggestion. What
-the object of my friend's manoeuvres was I could not conceive, unless it
-were to keep the lady away from Phelps, who, rejoiced by his
-returning health and by the prospect of action, lunched with us in the
-dining-room. Holmes had a still more startling surprise for us, however,
-for, after accompanying us down to the station and seeing us into
-our carriage, he calmly announced that he had no intention of leaving
-Woking.
-
-"There are one or two small points which I should desire to clear up
-before I go," said he. "Your absence, Mr. Phelps, will in some ways
-rather assist me. Watson, when you reach London you would oblige me by
-driving at once to Baker Street with our friend here, and remaining
-with him until I see you again. It is fortunate that you are old
-school-fellows, as you must have much to talk over. Mr. Phelps can
-have the spare bedroom to-night, and I will be with you in time for
-breakfast, for there is a train which will take me into Waterloo at
-eight."
-
-"But how about our investigation in London?" asked Phelps, ruefully.
-
-"We can do that to-morrow. I think that just at present I can be of more
-immediate use here."
-
-"You might tell them at Briarbrae that I hope to be back to-morrow
-night," cried Phelps, as we began to move from the platform.
-
-"I hardly expect to go back to Briarbrae," answered Holmes, and waved
-his hand to us cheerily as we shot out from the station.
-
-Phelps and I talked it over on our journey, but neither of us could
-devise a satisfactory reason for this new development.
-
-"I suppose he wants to find out some clue as to the burglary last night,
-if a burglar it was. For myself, I don't believe it was an ordinary
-thief."
-
-"What is your own idea, then?"
-
-"Upon my word, you may put it down to my weak nerves or not, but I
-believe there is some deep political intrigue going on around me, and
-that for some reason that passes my understanding my life is aimed at
-by the conspirators. It sounds high-flown and absurd, but consider the
-facts! Why should a thief try to break in at a bedroom window, where
-there could be no hope of any plunder, and why should he come with a
-long knife in his hand?"
-
-"You are sure it was not a house-breaker's jimmy?"
-
-"Oh, no, it was a knife. I saw the flash of the blade quite distinctly."
-
-"But why on earth should you be pursued with such animosity?"
-
-"Ah, that is the question."
-
-"Well, if Holmes takes the same view, that would account for his action,
-would it not? Presuming that your theory is correct, if he can lay his
-hands upon the man who threatened you last night he will have gone a
-long way towards finding who took the naval treaty. It is absurd to
-suppose that you have two enemies, one of whom robs you, while the other
-threatens your life."
-
-"But Holmes said that he was not going to Briarbrae."
-
-"I have known him for some time," said I, "but I never knew him do
-anything yet without a very good reason," and with that our conversation
-drifted off on to other topics.
-
-But it was a weary day for me. Phelps was still weak after his long
-illness, and his misfortune made him querulous and nervous. In vain
-I endeavored to interest him in Afghanistan, in India, in social
-questions, in anything which might take his mind out of the groove.
-He would always come back to his lost treaty, wondering, guessing,
-speculating, as to what Holmes was doing, what steps Lord Holdhurst was
-taking, what news we should have in the morning. As the evening wore on
-his excitement became quite painful.
-
-"You have implicit faith in Holmes?" he asked.
-
-"I have seen him do some remarkable things."
-
-"But he never brought light into anything quite so dark as this?"
-
-"Oh, yes; I have known him solve questions which presented fewer clues
-than yours."
-
-"But not where such large interests are at stake?"
-
-"I don't know that. To my certain knowledge he has acted on behalf of
-three of the reigning houses of Europe in very vital matters."
-
-"But you know him well, Watson. He is such an inscrutable fellow that I
-never quite know what to make of him. Do you think he is hopeful? Do you
-think he expects to make a success of it?"
-
-"He has said nothing."
-
-"That is a bad sign."
-
-"On the contrary, I have noticed that when he is off the trail he
-generally says so. It is when he is on a scent and is not quite
-absolutely sure yet that it is the right one that he is most taciturn.
-Now, my dear fellow, we can't help matters by making ourselves nervous
-about them, so let me implore you to go to bed and so be fresh for
-whatever may await us to-morrow."
-
-I was able at last to persuade my companion to take my advice, though I
-knew from his excited manner that there was not much hope of sleep for
-him. Indeed, his mood was infectious, for I lay tossing half the night
-myself, brooding over this strange problem, and inventing a hundred
-theories, each of which was more impossible than the last. Why had
-Holmes remained at Woking? Why had he asked Miss Harrison to remain
-in the sick-room all day? Why had he been so careful not to inform the
-people at Briarbrae that he intended to remain near them? I cudgelled
-my brains until I fell asleep in the endeavor to find some explanation
-which would cover all these facts.
-
-It was seven o'clock when I awoke, and I set off at once for Phelps's
-room, to find him haggard and spent after a sleepless night. His first
-question was whether Holmes had arrived yet.
-
-"He'll be here when he promised," said I, "and not an instant sooner or
-later."
-
-And my words were true, for shortly after eight a hansom dashed up to
-the door and our friend got out of it. Standing in the window we saw
-that his left hand was swathed in a bandage and that his face was very
-grim and pale. He entered the house, but it was some little time before
-he came upstairs.
-
-"He looks like a beaten man," cried Phelps.
-
-I was forced to confess that he was right. "After all," said I, "the
-clue of the matter lies probably here in town."
-
-Phelps gave a groan.
-
-"I don't know how it is," said he, "but I had hoped for so much from his
-return. But surely his hand was not tied up like that yesterday. What
-can be the matter?"
-
-"You are not wounded, Holmes?" I asked, as my friend entered the room.
-
-"Tut, it is only a scratch through my own clumsiness," he answered,
-nodding his good-mornings to us. "This case of yours, Mr. Phelps, is
-certainly one of the darkest which I have ever investigated."
-
-"I feared that you would find it beyond you."
-
-"It has been a most remarkable experience."
-
-"That bandage tells of adventures," said I. "Won't you tell us what has
-happened?"
-
-"After breakfast, my dear Watson. Remember that I have breathed thirty
-miles of Surrey air this morning. I suppose that there has been no
-answer from my cabman advertisement? Well, well, we cannot expect to
-score every time."
-
-The table was all laid, and just as I was about to ring Mrs. Hudson
-entered with the tea and coffee. A few minutes later she brought in
-three covers, and we all drew up to the table, Holmes ravenous, I
-curious, and Phelps in the gloomiest state of depression.
-
-"Mrs. Hudson has risen to the occasion," said Holmes, uncovering a dish
-of curried chicken. "Her cuisine is a little limited, but she has
-as good an idea of breakfast as a Scotch-woman. What have you here,
-Watson?"
-
-"Ham and eggs," I answered.
-
-"Good! What are you going to take, Mr. Phelps--curried fowl or eggs, or
-will you help yourself?"
-
-"Thank you. I can eat nothing," said Phelps.
-
-"Oh, come! Try the dish before you."
-
-"Thank you, I would really rather not."
-
-"Well, then," said Holmes, with a mischievous twinkle, "I suppose that
-you have no objection to helping me?"
-
-Phelps raised the cover, and as he did so he uttered a scream, and sat
-there staring with a face as white as the plate upon which he looked.
-Across the centre of it was lying a little cylinder of blue-gray paper.
-He caught it up, devoured it with his eyes, and then danced madly about
-the room, pressing it to his bosom and shrieking out in his delight.
-Then he fell back into an arm-chair so limp and exhausted with his own
-emotions that we had to pour brandy down his throat to keep him from
-fainting.
-
-"There! there!" said Holmes, soothing, patting him upon the shoulder.
-"It was too bad to spring it on you like this, but Watson here will tell
-you that I never can resist a touch of the dramatic."
-
-Phelps seized his hand and kissed it. "God bless you!" he cried. "You
-have saved my honor."
-
-"Well, my own was at stake, you know," said Holmes. "I assure you it is
-just as hateful to me to fail in a case as it can be to you to blunder
-over a commission."
-
-Phelps thrust away the precious document into the innermost pocket of
-his coat.
-
-"I have not the heart to interrupt your breakfast any further, and yet I
-am dying to know how you got it and where it was."
-
-Sherlock Holmes swallowed a cup of coffee, and turned his attention to
-the ham and eggs. Then he rose, lit his pipe, and settled himself down
-into his chair.
-
-"I'll tell you what I did first, and how I came to do it afterwards,"
-said he. "After leaving you at the station I went for a charming walk
-through some admirable Surrey scenery to a pretty little village called
-Ripley, where I had my tea at an inn, and took the precaution of filling
-my flask and of putting a paper of sandwiches in my pocket. There I
-remained until evening, when I set off for Woking again, and found
-myself in the high-road outside Briarbrae just after sunset.
-
-"Well, I waited until the road was clear--it is never a very frequented
-one at any time, I fancy--and then I clambered over the fence into the
-grounds."
-
-"Surely the gate was open!" ejaculated Phelps.
-
-"Yes, but I have a peculiar taste in these matters. I chose the place
-where the three fir-trees stand, and behind their screen I got over
-without the least chance of any one in the house being able to see me.
-I crouched down among the bushes on the other side, and crawled from one
-to the other--witness the disreputable state of my trouser knees--until
-I had reached the clump of rhododendrons just opposite to your bedroom
-window. There I squatted down and awaited developments.
-
-"The blind was not down in your room, and I could see Miss Harrison
-sitting there reading by the table. It was quarter-past ten when she
-closed her book, fastened the shutters, and retired.
-
-"I heard her shut the door, and felt quite sure that she had turned the
-key in the lock."
-
-"The key!" ejaculated Phelps.
-
-"Yes; I had given Miss Harrison instructions to lock the door on the
-outside and take the key with her when she went to bed. She carried out
-every one of my injunctions to the letter, and certainly without her
-cooperation you would not have that paper in you coat-pocket. She
-departed then and the lights went out, and I was left squatting in the
-rhododendron-bush.
-
-"The night was fine, but still it was a very weary vigil. Of course it
-has the sort of excitement about it that the sportsman feels when he
-lies beside the water-course and waits for the big game. It was very
-long, though--almost as long, Watson, as when you and I waited in that
-deadly room when we looked into the little problem of the Speckled Band.
-There was a church-clock down at Woking which struck the quarters, and I
-thought more than once that it had stopped. At last however about two
-in the morning, I suddenly heard the gentle sound of a bolt being pushed
-back and the creaking of a key. A moment later the servants' door was
-opened, and Mr. Joseph Harrison stepped out into the moonlight."
-
-"Joseph!" ejaculated Phelps.
-
-"He was bare-headed, but he had a black coat thrown over his shoulder so
-that he could conceal his face in an instant if there were any alarm. He
-walked on tiptoe under the shadow of the wall, and when he reached the
-window he worked a long-bladed knife through the sash and pushed back
-the catch. Then he flung open the window, and putting his knife through
-the crack in the shutters, he thrust the bar up and swung them open.
-
-"From where I lay I had a perfect view of the inside of the room and of
-every one of his movements. He lit the two candles which stood upon the
-mantelpiece, and then he proceeded to turn back the corner of the carpet
-in the neighborhood of the door. Presently he stopped and picked out a
-square piece of board, such as is usually left to enable plumbers to get
-at the joints of the gas-pipes. This one covered, as a matter of
-fact, the T joint which gives off the pipe which supplies the kitchen
-underneath. Out of this hiding-place he drew that little cylinder
-of paper, pushed down the board, rearranged the carpet, blew out the
-candles, and walked straight into my arms as I stood waiting for him
-outside the window.
-
-"Well, he has rather more viciousness than I gave him credit for, has
-Master Joseph. He flew at me with his knife, and I had to grasp him
-twice, and got a cut over the knuckles, before I had the upper hand of
-him. He looked murder out of the only eye he could see with when we had
-finished, but he listened to reason and gave up the papers. Having
-got them I let my man go, but I wired full particulars to Forbes this
-morning. If he is quick enough to catch his bird, well and good. But
-if, as I shrewdly suspect, he finds the nest empty before he gets there,
-why, all the better for the government. I fancy that Lord Holdhurst for
-one, and Mr. Percy Phelps for another, would very much rather that the
-affair never got as far as a police-court.
-
-"My God!" gasped our client. "Do you tell me that during these long ten
-weeks of agony the stolen papers were within the very room with me all
-the time?"
-
-"So it was."
-
-"And Joseph! Joseph a villain and a thief!"
-
-"Hum! I am afraid Joseph's character is a rather deeper and more
-dangerous one than one might judge from his appearance. From what I
-have heard from him this morning, I gather that he has lost heavily in
-dabbling with stocks, and that he is ready to do anything on earth to
-better his fortunes. Being an absolutely selfish man, when a chance
-presented itself he did not allow either his sister's happiness or your
-reputation to hold his hand."
-
-Percy Phelps sank back in his chair. "My head whirls," said he. "Your
-words have dazed me."
-
-"The principal difficulty in your case," remarked Holmes, in his
-didactic fashion, "lay in the fact of there being too much evidence.
-What was vital was overlaid and hidden by what was irrelevant. Of all
-the facts which were presented to us we had to pick just those which we
-deemed to be essential, and then piece them together in their order, so
-as to reconstruct this very remarkable chain of events. I had already
-begun to suspect Joseph, from the fact that you had intended to travel
-home with him that night, and that therefore it was a likely enough
-thing that he should call for you, knowing the Foreign Office well, upon
-his way. When I heard that some one had been so anxious to get into the
-bedroom, in which no one but Joseph could have concealed anything--you
-told us in your narrative how you had turned Joseph out when you arrived
-with the doctor--my suspicions all changed to certainties, especially as
-the attempt was made on the first night upon which the nurse was absent,
-showing that the intruder was well acquainted with the ways of the
-house."
-
-"How blind I have been!"
-
-"The facts of the case, as far as I have worked them out, are these:
-this Joseph Harrison entered the office through the Charles Street door,
-and knowing his way he walked straight into your room the instant after
-you left it. Finding no one there he promptly rang the bell, and at
-the instant that he did so his eyes caught the paper upon the table.
-A glance showed him that chance had put in his way a State document of
-immense value, and in an instant he had thrust it into his pocket and
-was gone. A few minutes elapsed, as you remember, before the sleepy
-commissionnaire drew your attention to the bell, and those were just
-enough to give the thief time to make his escape.
-
-"He made his way to Woking by the first train, and having examined his
-booty and assured himself that it really was of immense value, he
-had concealed it in what he thought was a very safe place, with the
-intention of taking it out again in a day or two, and carrying it to the
-French embassy, or wherever he thought that a long price was to be
-had. Then came your sudden return. He, without a moment's warning, was
-bundled out of his room, and from that time onward there were always at
-least two of you there to prevent him from regaining his treasure. The
-situation to him must have been a maddening one. But at last he thought
-he saw his chance. He tried to steal in, but was baffled by your
-wakefulness. You remember that you did not take your usual draught that
-night."
-
-"I remember."
-
-"I fancy that he had taken steps to make that draught efficacious,
-and that he quite relied upon your being unconscious. Of course, I
-understood that he would repeat the attempt whenever it could be done
-with safety. Your leaving the room gave him the chance he wanted. I kept
-Miss Harrison in it all day so that he might not anticipate us. Then,
-having given him the idea that the coast was clear, I kept guard as
-I have described. I already knew that the papers were probably in the
-room, but I had no desire to rip up all the planking and skirting in
-search of them. I let him take them, therefore, from the hiding-place,
-and so saved myself an infinity of trouble. Is there any other point
-which I can make clear?"
-
-"Why did he try the window on the first occasion," I asked, "when he
-might have entered by the door?"
-
-"In reaching the door he would have to pass seven bedrooms. On the other
-hand, he could get out on to the lawn with ease. Anything else?"
-
-"You do not think," asked Phelps, "that he had any murderous intention?
-The knife was only meant as a tool."
-
-"It may be so," answered Holmes, shrugging his shoulders. "I can only
-say for certain that Mr. Joseph Harrison is a gentleman to whose mercy I
-should be extremely unwilling to trust."
-
-
-
-
-Adventure XI. The Final Problem
-
-
-It is with a heavy heart that I take up my pen to write these the last
-words in which I shall ever record the singular gifts by which my friend
-Mr. Sherlock Holmes was distinguished. In an incoherent and, as I deeply
-feel, an entirely inadequate fashion, I have endeavored to give some
-account of my strange experiences in his company from the chance which
-first brought us together at the period of the "Study in Scarlet," up
-to the time of his interference in the matter of the "Naval Treaty"--an
-interference which had the unquestionable effect of preventing a serious
-international complication. It was my intention to have stopped there,
-and to have said nothing of that event which has created a void in my
-life which the lapse of two years has done little to fill. My hand
-has been forced, however, by the recent letters in which Colonel James
-Moriarty defends the memory of his brother, and I have no choice but to
-lay the facts before the public exactly as they occurred. I alone know
-the absolute truth of the matter, and I am satisfied that the time has
-come when no good purpose is to be served by its suppression. As far as
-I know, there have been only three accounts in the public press: that
-in the Journal de Geneve on May 6th, 1891, the Reuter's despatch in the
-English papers on May 7th, and finally the recent letter to which I have
-alluded. Of these the first and second were extremely condensed, while
-the last is, as I shall now show, an absolute perversion of the facts.
-It lies with me to tell for the first time what really took place
-between Professor Moriarty and Mr. Sherlock Holmes.
-
-It may be remembered that after my marriage, and my subsequent start in
-private practice, the very intimate relations which had existed between
-Holmes and myself became to some extent modified. He still came to me
-from time to time when he desired a companion in his investigation, but
-these occasions grew more and more seldom, until I find that in the year
-1890 there were only three cases of which I retain any record. During
-the winter of that year and the early spring of 1891, I saw in the
-papers that he had been engaged by the French government upon a matter
-of supreme importance, and I received two notes from Holmes, dated from
-Narbonne and from Nimes, from which I gathered that his stay in France
-was likely to be a long one. It was with some surprise, therefore, that
-I saw him walk into my consulting-room upon the evening of April 24th.
-It struck me that he was looking even paler and thinner than usual.
-
-"Yes, I have been using myself up rather too freely," he remarked, in
-answer to my look rather than to my words; "I have been a little pressed
-of late. Have you any objection to my closing your shutters?"
-
-The only light in the room came from the lamp upon the table at which I
-had been reading. Holmes edged his way round the wall and flinging the
-shutters together, he bolted them securely.
-
-"You are afraid of something?" I asked.
-
-"Well, I am."
-
-"Of what?"
-
-"Of air-guns."
-
-"My dear Holmes, what do you mean?"
-
-"I think that you know me well enough, Watson, to understand that I am
-by no means a nervous man. At the same time, it is stupidity rather than
-courage to refuse to recognize danger when it is close upon you. Might
-I trouble you for a match?" He drew in the smoke of his cigarette as if
-the soothing influence was grateful to him.
-
-"I must apologize for calling so late," said he, "and I must further beg
-you to be so unconventional as to allow me to leave your house presently
-by scrambling over your back garden wall."
-
-"But what does it all mean?" I asked.
-
-He held out his hand, and I saw in the light of the lamp that two of his
-knuckles were burst and bleeding.
-
-"It is not an airy nothing, you see," said he, smiling. "On the
-contrary, it is solid enough for a man to break his hand over. Is Mrs.
-Watson in?"
-
-"She is away upon a visit."
-
-"Indeed! You are alone?"
-
-"Quite."
-
-"Then it makes it the easier for me to propose that you should come away
-with me for a week to the Continent."
-
-"Where?"
-
-"Oh, anywhere. It's all the same to me."
-
-There was something very strange in all this. It was not Holmes's nature
-to take an aimless holiday, and something about his pale, worn face told
-me that his nerves were at their highest tension. He saw the question in
-my eyes, and, putting his finger-tips together and his elbows upon his
-knees, he explained the situation.
-
-"You have probably never heard of Professor Moriarty?" said he.
-
-"Never."
-
-"Aye, there's the genius and the wonder of the thing!" he cried. "The
-man pervades London, and no one has heard of him. That's what puts
-him on a pinnacle in the records of crime. I tell you, Watson, in all
-seriousness, that if I could beat that man, if I could free society
-of him, I should feel that my own career had reached its summit, and
-I should be prepared to turn to some more placid line in life. Between
-ourselves, the recent cases in which I have been of assistance to the
-royal family of Scandinavia, and to the French republic, have left me in
-such a position that I could continue to live in the quiet fashion
-which is most congenial to me, and to concentrate my attention upon my
-chemical researches. But I could not rest, Watson, I could not sit quiet
-in my chair, if I thought that such a man as Professor Moriarty were
-walking the streets of London unchallenged."
-
-"What has he done, then?"
-
-"His career has been an extraordinary one. He is a man of good birth and
-excellent education, endowed by nature with a phenomenal mathematical
-faculty. At the age of twenty-one he wrote a treatise upon the Binomial
-Theorem, which has had a European vogue. On the strength of it he won
-the Mathematical Chair at one of our smaller universities, and had, to
-all appearances, a most brilliant career before him. But the man had
-hereditary tendencies of the most diabolical kind. A criminal strain
-ran in his blood, which, instead of being modified, was increased and
-rendered infinitely more dangerous by his extraordinary mental powers.
-Dark rumors gathered round him in the university town, and eventually he
-was compelled to resign his chair and to come down to London, where he
-set up as an army coach. So much is known to the world, but what I am
-telling you now is what I have myself discovered.
-
-"As you are aware, Watson, there is no one who knows the higher criminal
-world of London so well as I do. For years past I have continually been
-conscious of some power behind the malefactor, some deep organizing
-power which forever stands in the way of the law, and throws its shield
-over the wrong-doer. Again and again in cases of the most varying
-sorts--forgery cases, robberies, murders--I have felt the presence of
-this force, and I have deduced its action in many of those undiscovered
-crimes in which I have not been personally consulted. For years I have
-endeavored to break through the veil which shrouded it, and at last
-the time came when I seized my thread and followed it, until it led
-me, after a thousand cunning windings, to ex-Professor Moriarty of
-mathematical celebrity.
-
-"He is the Napoleon of crime, Watson. He is the organizer of half that
-is evil and of nearly all that is undetected in this great city. He is a
-genius, a philosopher, an abstract thinker. He has a brain of the first
-order. He sits motionless, like a spider in the center of its web, but
-that web has a thousand radiations, and he knows well every quiver of
-each of them. He does little himself. He only plans. But his agents are
-numerous and splendidly organized. Is there a crime to be done, a
-paper to be abstracted, we will say, a house to be rifled, a man to be
-removed--the word is passed to the Professor, the matter is organized
-and carried out. The agent may be caught. In that case money is found
-for his bail or his defence. But the central power which uses the agent
-is never caught--never so much as suspected. This was the organization
-which I deduced, Watson, and which I devoted my whole energy to exposing
-and breaking up.
-
-"But the Professor was fenced round with safeguards so cunningly devised
-that, do what I would, it seemed impossible to get evidence which would
-convict in a court of law. You know my powers, my dear Watson, and yet
-at the end of three months I was forced to confess that I had at last
-met an antagonist who was my intellectual equal. My horror at his crimes
-was lost in my admiration at his skill. But at last he made a trip--only
-a little, little trip--but it was more than he could afford when I was
-so close upon him. I had my chance, and, starting from that point, I
-have woven my net round him until now it is all ready to close. In three
-days--that is to say, on Monday next--matters will be ripe, and the
-Professor, with all the principal members of his gang, will be in the
-hands of the police. Then will come the greatest criminal trial of the
-century, the clearing up of over forty mysteries, and the rope for all
-of them; but if we move at all prematurely, you understand, they may
-slip out of our hands even at the last moment.
-
-"Now, if I could have done this without the knowledge of Professor
-Moriarty, all would have been well. But he was too wily for that. He saw
-every step which I took to draw my toils round him. Again and again
-he strove to break away, but I as often headed him off. I tell you,
-my friend, that if a detailed account of that silent contest could
-be written, it would take its place as the most brilliant bit of
-thrust-and-parry work in the history of detection. Never have I risen to
-such a height, and never have I been so hard pressed by an opponent. He
-cut deep, and yet I just undercut him. This morning the last steps were
-taken, and three days only were wanted to complete the business. I was
-sitting in my room thinking the matter over, when the door opened and
-Professor Moriarty stood before me.
-
-"My nerves are fairly proof, Watson, but I must confess to a start when
-I saw the very man who had been so much in my thoughts standing there on
-my threshhold. His appearance was quite familiar to me. He is extremely
-tall and thin, his forehead domes out in a white curve, and his two
-eyes are deeply sunken in his head. He is clean-shaven, pale, and
-ascetic-looking, retaining something of the professor in his features.
-His shoulders are rounded from much study, and his face protrudes
-forward, and is forever slowly oscillating from side to side in a
-curiously reptilian fashion. He peered at me with great curiosity in his
-puckered eyes.
-
-"'You have less frontal development than I should have expected,' said
-he, at last. 'It is a dangerous habit to finger loaded firearms in the
-pocket of one's dressing-gown.'
-
-"The fact is that upon his entrance I had instantly recognized the
-extreme personal danger in which I lay. The only conceivable escape for
-him lay in silencing my tongue. In an instant I had slipped the revolver
-from the drawer into my pocket, and was covering him through the cloth.
-At his remark I drew the weapon out and laid it cocked upon the table.
-He still smiled and blinked, but there was something about his eyes
-which made me feel very glad that I had it there.
-
-"'You evidently don't know me,' said he.
-
-"'On the contrary,' I answered, 'I think it is fairly evident that I do.
-Pray take a chair. I can spare you five minutes if you have anything to
-say.'
-
-"'All that I have to say has already crossed your mind,' said he.
-
-"'Then possibly my answer has crossed yours,' I replied.
-
-"'You stand fast?'
-
-"'Absolutely.'
-
-"He clapped his hand into his pocket, and I raised the pistol from
-the table. But he merely drew out a memorandum-book in which he had
-scribbled some dates.
-
-"'You crossed my path on the 4th of January,' said he. 'On the 23d you
-incommoded me; by the middle of February I was seriously inconvenienced
-by you; at the end of March I was absolutely hampered in my plans; and
-now, at the close of April, I find myself placed in such a position
-through your continual persecution that I am in positive danger of
-losing my liberty. The situation is becoming an impossible one.'
-
-"'Have you any suggestion to make?' I asked.
-
-"'You must drop it, Mr. Holmes,' said he, swaying his face about. 'You
-really must, you know.'
-
-"'After Monday,' said I.
-
-"'Tut, tut,' said he. 'I am quite sure that a man of your intelligence
-will see that there can be but one outcome to this affair. It is
-necessary that you should withdraw. You have worked things in such a
-fashion that we have only one resource left. It has been an intellectual
-treat to me to see the way in which you have grappled with this affair,
-and I say, unaffectedly, that it would be a grief to me to be forced
-to take any extreme measure. You smile, sir, but I assure you that it
-really would.'
-
-"'Danger is part of my trade,' I remarked.
-
-"'That is not danger,' said he. 'It is inevitable destruction. You stand
-in the way not merely of an individual, but of a mighty organization,
-the full extent of which you, with all your cleverness, have been unable
-to realize. You must stand clear, Mr. Holmes, or be trodden under foot.'
-
-"'I am afraid,' said I, rising, 'that in the pleasure of this
-conversation I am neglecting business of importance which awaits me
-elsewhere.'
-
-"He rose also and looked at me in silence, shaking his head sadly.
-
-"'Well, well,' said he, at last. 'It seems a pity, but I have done
-what I could. I know every move of your game. You can do nothing before
-Monday. It has been a duel between you and me, Mr. Holmes. You hope to
-place me in the dock. I tell you that I will never stand in the dock.
-You hope to beat me. I tell you that you will never beat me. If you are
-clever enough to bring destruction upon me, rest assured that I shall do
-as much to you.'
-
-"'You have paid me several compliments, Mr. Moriarty,' said I. 'Let me
-pay you one in return when I say that if I were assured of the former
-eventuality I would, in the interests of the public, cheerfully accept
-the latter.'
-
-"'I can promise you the one, but not the other,' he snarled, and so
-turned his rounded back upon me, and went peering and blinking out of
-the room.
-
-"That was my singular interview with Professor Moriarty. I confess that
-it left an unpleasant effect upon my mind. His soft, precise fashion
-of speech leaves a conviction of sincerity which a mere bully could
-not produce. Of course, you will say: 'Why not take police precautions
-against him?' the reason is that I am well convinced that it is from his
-agents the blow will fall. I have the best proofs that it would be so."
-
-"You have already been assaulted?"
-
-"My dear Watson, Professor Moriarty is not a man who lets the grass grow
-under his feet. I went out about mid-day to transact some business in
-Oxford Street. As I passed the corner which leads from Bentinck Street
-on to the Welbeck Street crossing a two-horse van furiously driven
-whizzed round and was on me like a flash. I sprang for the foot-path
-and saved myself by the fraction of a second. The van dashed round by
-Marylebone Lane and was gone in an instant. I kept to the pavement after
-that, Watson, but as I walked down Vere Street a brick came down from
-the roof of one of the houses, and was shattered to fragments at my
-feet. I called the police and had the place examined. There were slates
-and bricks piled up on the roof preparatory to some repairs, and they
-would have me believe that the wind had toppled over one of these. Of
-course I knew better, but I could prove nothing. I took a cab after that
-and reached my brother's rooms in Pall Mall, where I spent the day. Now
-I have come round to you, and on my way I was attacked by a rough with a
-bludgeon. I knocked him down, and the police have him in custody; but
-I can tell you with the most absolute confidence that no possible
-connection will ever be traced between the gentleman upon whose front
-teeth I have barked my knuckles and the retiring mathematical coach, who
-is, I dare say, working out problems upon a black-board ten miles away.
-You will not wonder, Watson, that my first act on entering your rooms
-was to close your shutters, and that I have been compelled to ask your
-permission to leave the house by some less conspicuous exit than the
-front door."
-
-I had often admired my friend's courage, but never more than now, as he
-sat quietly checking off a series of incidents which must have combined
-to make up a day of horror.
-
-"You will spend the night here?" I said.
-
-"No, my friend, you might find me a dangerous guest. I have my plans
-laid, and all will be well. Matters have gone so far now that they can
-move without my help as far as the arrest goes, though my presence is
-necessary for a conviction. It is obvious, therefore, that I cannot do
-better than get away for the few days which remain before the police are
-at liberty to act. It would be a great pleasure to me, therefore, if you
-could come on to the Continent with me."
-
-"The practice is quiet," said I, "and I have an accommodating neighbor.
-I should be glad to come."
-
-"And to start to-morrow morning?"
-
-"If necessary."
-
-"Oh yes, it is most necessary. Then these are your instructions, and I
-beg, my dear Watson, that you will obey them to the letter, for you are
-now playing a double-handed game with me against the cleverest rogue and
-the most powerful syndicate of criminals in Europe. Now listen! You
-will dispatch whatever luggage you intend to take by a trusty messenger
-unaddressed to Victoria to-night. In the morning you will send for a
-hansom, desiring your man to take neither the first nor the second which
-may present itself. Into this hansom you will jump, and you will drive
-to the Strand end of the Lowther Arcade, handing the address to the
-cabman upon a slip of paper, with a request that he will not throw it
-away. Have your fare ready, and the instant that your cab stops,
-dash through the Arcade, timing yourself to reach the other side at a
-quarter-past nine. You will find a small brougham waiting close to the
-curb, driven by a fellow with a heavy black cloak tipped at the collar
-with red. Into this you will step, and you will reach Victoria in time
-for the Continental express."
-
-"Where shall I meet you?"
-
-"At the station. The second first-class carriage from the front will be
-reserved for us."
-
-"The carriage is our rendezvous, then?"
-
-"Yes."
-
-It was in vain that I asked Holmes to remain for the evening. It was
-evident to me that he thought he might bring trouble to the roof he was
-under, and that that was the motive which impelled him to go. With a few
-hurried words as to our plans for the morrow he rose and came out with
-me into the garden, clambering over the wall which leads into Mortimer
-Street, and immediately whistling for a hansom, in which I heard him
-drive away.
-
-In the morning I obeyed Holmes's injunctions to the letter. A hansom was
-procured with such precaution as would prevent its being one which was
-placed ready for us, and I drove immediately after breakfast to the
-Lowther Arcade, through which I hurried at the top of my speed. A
-brougham was waiting with a very massive driver wrapped in a dark cloak,
-who, the instant that I had stepped in, whipped up the horse and rattled
-off to Victoria Station. On my alighting there he turned the carriage,
-and dashed away again without so much as a look in my direction.
-
-So far all had gone admirably. My luggage was waiting for me, and I had
-no difficulty in finding the carriage which Holmes had indicated, the
-less so as it was the only one in the train which was marked "Engaged."
-My only source of anxiety now was the non-appearance of Holmes. The
-station clock marked only seven minutes from the time when we were
-due to start. In vain I searched among the groups of travellers and
-leave-takers for the lithe figure of my friend. There was no sign of
-him. I spent a few minutes in assisting a venerable Italian priest, who
-was endeavoring to make a porter understand, in his broken English,
-that his luggage was to be booked through to Paris. Then, having taken
-another look round, I returned to my carriage, where I found that the
-porter, in spite of the ticket, had given me my decrepit Italian friend
-as a traveling companion. It was useless for me to explain to him that
-his presence was an intrusion, for my Italian was even more limited than
-his English, so I shrugged my shoulders resignedly, and continued to
-look out anxiously for my friend. A chill of fear had come over me, as I
-thought that his absence might mean that some blow had fallen during the
-night. Already the doors had all been shut and the whistle blown, when--
-
-"My dear Watson," said a voice, "you have not even condescended to say
-good-morning."
-
-I turned in uncontrollable astonishment. The aged ecclesiastic had
-turned his face towards me. For an instant the wrinkles were smoothed
-away, the nose drew away from the chin, the lower lip ceased to protrude
-and the mouth to mumble, the dull eyes regained their fire, the drooping
-figure expanded. The next the whole frame collapsed again, and Holmes
-had gone as quickly as he had come.
-
-"Good heavens!" I cried; "how you startled me!"
-
-"Every precaution is still necessary," he whispered. "I have reason to
-think that they are hot upon our trail. Ah, there is Moriarty himself."
-
-The train had already begun to move as Holmes spoke. Glancing back, I
-saw a tall man pushing his way furiously through the crowd, and waving
-his hand as if he desired to have the train stopped. It was too late,
-however, for we were rapidly gathering momentum, and an instant later
-had shot clear of the station.
-
-"With all our precautions, you see that we have cut it rather fine,"
-said Holmes, laughing. He rose, and throwing off the black cassock and
-hat which had formed his disguise, he packed them away in a hand-bag.
-
-"Have you seen the morning paper, Watson?"
-
-"No."
-
-"You haven't' seen about Baker Street, then?"
-
-"Baker Street?"
-
-"They set fire to our rooms last night. No great harm was done."
-
-"Good heavens, Holmes! this is intolerable."
-
-"They must have lost my track completely after their bludgeon-man was
-arrested. Otherwise they could not have imagined that I had returned
-to my rooms. They have evidently taken the precaution of watching you,
-however, and that is what has brought Moriarty to Victoria. You could
-not have made any slip in coming?"
-
-"I did exactly what you advised."
-
-"Did you find your brougham?"
-
-"Yes, it was waiting."
-
-"Did you recognize your coachman?"
-
-"No."
-
-"It was my brother Mycroft. It is an advantage to get about in such a
-case without taking a mercenary into your confidence. But we must plan
-what we are to do about Moriarty now."
-
-"As this is an express, and as the boat runs in connection with it, I
-should think we have shaken him off very effectively."
-
-"My dear Watson, you evidently did not realize my meaning when I said
-that this man may be taken as being quite on the same intellectual plane
-as myself. You do not imagine that if I were the pursuer I should allow
-myself to be baffled by so slight an obstacle. Why, then, should you
-think so meanly of him?"
-
-"What will he do?"
-
-"What I should do?"
-
-"What would you do, then?"
-
-"Engage a special."
-
-"But it must be late."
-
-"By no means. This train stops at Canterbury; and there is always at
-least a quarter of an hour's delay at the boat. He will catch us there."
-
-"One would think that we were the criminals. Let us have him arrested on
-his arrival."
-
-"It would be to ruin the work of three months. We should get the big
-fish, but the smaller would dart right and left out of the net. On
-Monday we should have them all. No, an arrest is inadmissible."
-
-"What then?"
-
-"We shall get out at Canterbury."
-
-"And then?"
-
-"Well, then we must make a cross-country journey to Newhaven, and so
-over to Dieppe. Moriarty will again do what I should do. He will get on
-to Paris, mark down our luggage, and wait for two days at the depot.
-In the meantime we shall treat ourselves to a couple of carpet-bags,
-encourage the manufactures of the countries through which we travel, and
-make our way at our leisure into Switzerland, via Luxembourg and Basle."
-
-At Canterbury, therefore, we alighted, only to find that we should have
-to wait an hour before we could get a train to Newhaven.
-
-I was still looking rather ruefully after the rapidly disappearing
-luggage-van which contained my wardrobe, when Holmes pulled my sleeve
-and pointed up the line.
-
-"Already, you see," said he.
-
-Far away, from among the Kentish woods there rose a thin spray of smoke.
-A minute later a carriage and engine could be seen flying along the open
-curve which leads to the station. We had hardly time to take our place
-behind a pile of luggage when it passed with a rattle and a roar,
-beating a blast of hot air into our faces.
-
-"There he goes," said Holmes, as we watched the carriage swing and
-rock over the points. "There are limits, you see, to our friend's
-intelligence. It would have been a coup-de-maitre had he deduced what I
-would deduce and acted accordingly."
-
-"And what would he have done had he overtaken us?"
-
-"There cannot be the least doubt that he would have made a murderous
-attack upon me. It is, however, a game at which two may play. The
-question now is whether we should take a premature lunch here, or run
-our chance of starving before we reach the buffet at Newhaven."
-
-
-We made our way to Brussels that night and spent two days there, moving
-on upon the third day as far as Strasburg. On the Monday morning Holmes
-had telegraphed to the London police, and in the evening we found a
-reply waiting for us at our hotel. Holmes tore it open, and then with a
-bitter curse hurled it into the grate.
-
-"I might have known it!" he groaned. "He has escaped!"
-
-"Moriarty?"
-
-"They have secured the whole gang with the exception of him. He has
-given them the slip. Of course, when I had left the country there was no
-one to cope with him. But I did think that I had put the game in their
-hands. I think that you had better return to England, Watson."
-
-"Why?"
-
-"Because you will find me a dangerous companion now. This man's
-occupation is gone. He is lost if he returns to London. If I read his
-character right he will devote his whole energies to revenging himself
-upon me. He said as much in our short interview, and I fancy that he
-meant it. I should certainly recommend you to return to your practice."
-
-It was hardly an appeal to be successful with one who was an
-old campaigner as well as an old friend. We sat in the Strasburg
-salle-à-manger arguing the question for half an hour, but the same night
-we had resumed our journey and were well on our way to Geneva.
-
-For a charming week we wandered up the Valley of the Rhone, and then,
-branching off at Leuk, we made our way over the Gemmi Pass, still deep
-in snow, and so, by way of Interlaken, to Meiringen. It was a lovely
-trip, the dainty green of the spring below, the virgin white of the
-winter above; but it was clear to me that never for one instant did
-Holmes forget the shadow which lay across him. In the homely Alpine
-villages or in the lonely mountain passes, I could tell by his quick
-glancing eyes and his sharp scrutiny of every face that passed us,
-that he was well convinced that, walk where we would, we could not walk
-ourselves clear of the danger which was dogging our footsteps.
-
-Once, I remember, as we passed over the Gemmi, and walked along
-the border of the melancholy Daubensee, a large rock which had been
-dislodged from the ridge upon our right clattered down and roared into
-the lake behind us. In an instant Holmes had raced up on to the ridge,
-and, standing upon a lofty pinnacle, craned his neck in every direction.
-It was in vain that our guide assured him that a fall of stones was a
-common chance in the spring-time at that spot. He said nothing, but
-he smiled at me with the air of a man who sees the fulfillment of that
-which he had expected.
-
-And yet for all his watchfulness he was never depressed. On the
-contrary, I can never recollect having seen him in such exuberant
-spirits. Again and again he recurred to the fact that if he could
-be assured that society was freed from Professor Moriarty he would
-cheerfully bring his own career to a conclusion.
-
-"I think that I may go so far as to say, Watson, that I have not lived
-wholly in vain," he remarked. "If my record were closed to-night I could
-still survey it with equanimity. The air of London is the sweeter for my
-presence. In over a thousand cases I am not aware that I have ever used
-my powers upon the wrong side. Of late I have been tempted to look into
-the problems furnished by nature rather than those more superficial ones
-for which our artificial state of society is responsible. Your memoirs
-will draw to an end, Watson, upon the day that I crown my career by
-the capture or extinction of the most dangerous and capable criminal in
-Europe."
-
-I shall be brief, and yet exact, in the little which remains for me to
-tell. It is not a subject on which I would willingly dwell, and yet I am
-conscious that a duty devolves upon me to omit no detail.
-
-It was on the 3d of May that we reached the little village of Meiringen,
-where we put up at the Englischer Hof, then kept by Peter Steiler the
-elder. Our landlord was an intelligent man, and spoke excellent English,
-having served for three years as waiter at the Grosvenor Hotel in
-London. At his advice, on the afternoon of the 4th we set off together,
-with the intention of crossing the hills and spending the night at the
-hamlet of Rosenlaui. We had strict injunctions, however, on no account
-to pass the falls of Reichenbach, which are about half-way up the hill,
-without making a small detour to see them.
-
-It is indeed, a fearful place. The torrent, swollen by the melting snow,
-plunges into a tremendous abyss, from which the spray rolls up like the
-smoke from a burning house. The shaft into which the river hurls itself
-is an immense chasm, lined by glistening coal-black rock, and narrowing
-into a creaming, boiling pit of incalculable depth, which brims over and
-shoots the stream onward over its jagged lip. The long sweep of green
-water roaring forever down, and the thick flickering curtain of spray
-hissing forever upward, turn a man giddy with their constant whirl and
-clamor. We stood near the edge peering down at the gleam of the breaking
-water far below us against the black rocks, and listening to the
-half-human shout which came booming up with the spray out of the abyss.
-
-The path has been cut half-way round the fall to afford a complete view,
-but it ends abruptly, and the traveler has to return as he came. We had
-turned to do so, when we saw a Swiss lad come running along it with
-a letter in his hand. It bore the mark of the hotel which we had just
-left, and was addressed to me by the landlord. It appeared that within a
-very few minutes of our leaving, an English lady had arrived who was in
-the last stage of consumption. She had wintered at Davos Platz, and was
-journeying now to join her friends at Lucerne, when a sudden hemorrhage
-had overtaken her. It was thought that she could hardly live a few
-hours, but it would be a great consolation to her to see an English
-doctor, and, if I would only return, etc. The good Steiler assured me
-in a postscript that he would himself look upon my compliance as a very
-great favor, since the lady absolutely refused to see a Swiss physician,
-and he could not but feel that he was incurring a great responsibility.
-
-The appeal was one which could not be ignored. It was impossible to
-refuse the request of a fellow-countrywoman dying in a strange land. Yet
-I had my scruples about leaving Holmes. It was finally agreed, however,
-that he should retain the young Swiss messenger with him as guide and
-companion while I returned to Meiringen. My friend would stay some
-little time at the fall, he said, and would then walk slowly over the
-hill to Rosenlaui, where I was to rejoin him in the evening. As I turned
-away I saw Holmes, with his back against a rock and his arms folded,
-gazing down at the rush of the waters. It was the last that I was ever
-destined to see of him in this world.
-
-When I was near the bottom of the descent I looked back. It was
-impossible, from that position, to see the fall, but I could see the
-curving path which winds over the shoulder of the hill and leads to it.
-Along this a man was, I remember, walking very rapidly.
-
-I could see his black figure clearly outlined against the green behind
-him. I noted him, and the energy with which he walked but he passed from
-my mind again as I hurried on upon my errand.
-
-It may have been a little over an hour before I reached Meiringen. Old
-Steiler was standing at the porch of his hotel.
-
-"Well," said I, as I came hurrying up, "I trust that she is no worse?"
-
-A look of surprise passed over his face, and at the first quiver of his
-eyebrows my heart turned to lead in my breast.
-
-"You did not write this?" I said, pulling the letter from my pocket.
-"There is no sick Englishwoman in the hotel?"
-
-"Certainly not!" he cried. "But it has the hotel mark upon it! Ha, it
-must have been written by that tall Englishman who came in after you had
-gone. He said--"
-
-But I waited for none of the landlord's explanations. In a tingle of
-fear I was already running down the village street, and making for the
-path which I had so lately descended. It had taken me an hour to come
-down. For all my efforts two more had passed before I found myself at
-the fall of Reichenbach once more. There was Holmes's Alpine-stock still
-leaning against the rock by which I had left him. But there was no sign
-of him, and it was in vain that I shouted. My only answer was my own
-voice reverberating in a rolling echo from the cliffs around me.
-
-It was the sight of that Alpine-stock which turned me cold and sick.
-He had not gone to Rosenlaui, then. He had remained on that three-foot
-path, with sheer wall on one side and sheer drop on the other, until his
-enemy had overtaken him. The young Swiss had gone too. He had probably
-been in the pay of Moriarty, and had left the two men together. And then
-what had happened? Who was to tell us what had happened then?
-
-I stood for a minute or two to collect myself, for I was dazed with the
-horror of the thing. Then I began to think of Holmes's own methods and
-to try to practise them in reading this tragedy. It was, alas, only too
-easy to do. During our conversation we had not gone to the end of the
-path, and the Alpine-stock marked the place where we had stood. The
-blackish soil is kept forever soft by the incessant drift of spray,
-and a bird would leave its tread upon it. Two lines of footmarks were
-clearly marked along the farther end of the path, both leading away from
-me. There were none returning. A few yards from the end the soil was
-all ploughed up into a patch of mud, and the branches and ferns which
-fringed the chasm were torn and bedraggled. I lay upon my face and
-peered over with the spray spouting up all around me. It had darkened
-since I left, and now I could only see here and there the glistening of
-moisture upon the black walls, and far away down at the end of the shaft
-the gleam of the broken water. I shouted; but only the same half-human
-cry of the fall was borne back to my ears.
-
-But it was destined that I should after all have a last word of greeting
-from my friend and comrade. I have said that his Alpine-stock had been
-left leaning against a rock which jutted on to the path. From the top of
-this bowlder the gleam of something bright caught my eye, and, raising
-my hand, I found that it came from the silver cigarette-case which he
-used to carry. As I took it up a small square of paper upon which it
-had lain fluttered down on to the ground. Unfolding it, I found that it
-consisted of three pages torn from his note-book and addressed to me. It
-was characteristic of the man that the direction was a precise, and the
-writing as firm and clear, as though it had been written in his study.
-
-My dear Watson [it said], I write these few lines through the courtesy
-of Mr. Moriarty, who awaits my convenience for the final discussion of
-those questions which lie between us. He has been giving me a sketch
-of the methods by which he avoided the English police and kept himself
-informed of our movements. They certainly confirm the very high opinion
-which I had formed of his abilities. I am pleased to think that I shall
-be able to free society from any further effects of his presence, though
-I fear that it is at a cost which will give pain to my friends, and
-especially, my dear Watson, to you. I have already explained to you,
-however, that my career had in any case reached its crisis, and that
-no possible conclusion to it could be more congenial to me than this.
-Indeed, if I may make a full confession to you, I was quite convinced
-that the letter from Meiringen was a hoax, and I allowed you to depart
-on that errand under the persuasion that some development of this sort
-would follow. Tell Inspector Patterson that the papers which he needs
-to convict the gang are in pigeonhole M., done up in a blue envelope
-and inscribed "Moriarty." I made every disposition of my property before
-leaving England, and handed it to my brother Mycroft. Pray give my
-greetings to Mrs. Watson, and believe me to be, my dear fellow,
-
-Very sincerely yours,
-
-Sherlock Holmes
-
-
-A few words may suffice to tell the little that remains. An examination
-by experts leaves little doubt that a personal contest between the two
-men ended, as it could hardly fail to end in such a situation, in their
-reeling over, locked in each other's arms. Any attempt at recovering the
-bodies was absolutely hopeless, and there, deep down in that dreadful
-caldron of swirling water and seething foam, will lie for all time the
-most dangerous criminal and the foremost champion of the law of their
-generation. The Swiss youth was never found again, and there can be no
-doubt that he was one of the numerous agents whom Moriarty kept in this
-employ. As to the gang, it will be within the memory of the public
-how completely the evidence which Holmes had accumulated exposed their
-organization, and how heavily the hand of the dead man weighed
-upon them. Of their terrible chief few details came out during the
-proceedings, and if I have now been compelled to make a clear statement
-of his career it is due to those injudicious champions who have
-endeavored to clear his memory by attacks upon him whom I shall ever
-regard as the best and the wisest man whom I have ever known.
-
-
-
-
-
-End of the Project Gutenberg EBook of Memoirs of Sherlock Holmes, by
-Sir Arthur Conan Doyle
-
-*** END OF THIS PROJECT GUTENBERG EBOOK MEMOIRS OF SHERLOCK HOLMES ***
-
-***** This file should be named 834-8.txt or 834-8.zip *****
-This and all associated files of various formats will be found in:
- http://www.gutenberg.org/8/3/834/
-
-Produced by Angela M. Cable
-
-Updated editions will replace the previous one--the old editions
-will be renamed.
-
-Creating the works from public domain print editions means that no
-one owns a United States copyright in these works, so the Foundation
-(and you!) can copy and distribute it in the United States without
-permission and without paying copyright royalties. Special rules,
-set forth in the General Terms of Use part of this license, apply to
-copying and distributing Project Gutenberg-tm electronic works to
-protect the PROJECT GUTENBERG-tm concept and trademark. Project
-Gutenberg is a registered trademark, and may not be used if you
-charge for the eBooks, unless you receive specific permission. If you
-do not charge anything for copies of this eBook, complying with the
-rules is very easy. You may use this eBook for nearly any purpose
-such as creation of derivative works, reports, performances and
-research. They may be modified and printed and given away--you may do
-practically ANYTHING with public domain eBooks. Redistribution is
-subject to the trademark license, especially commercial
-redistribution.
-
-
-
-*** START: FULL LICENSE ***
-
-THE FULL PROJECT GUTENBERG LICENSE
-PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
-
-To protect the Project Gutenberg-tm mission of promoting the free
-distribution of electronic works, by using or distributing this work
-(or any other work associated in any way with the phrase "Project
-Gutenberg"), you agree to comply with all the terms of the Full Project
-Gutenberg-tm License (available with this file or online at
-http://gutenberg.org/license).
-
-
-Section 1. General Terms of Use and Redistributing Project Gutenberg-tm
-electronic works
-
-1.A. By reading or using any part of this Project Gutenberg-tm
-electronic work, you indicate that you have read, understand, agree to
-and accept all the terms of this license and intellectual property
-(trademark/copyright) agreement. If you do not agree to abide by all
-the terms of this agreement, you must cease using and return or destroy
-all copies of Project Gutenberg-tm electronic works in your possession.
-If you paid a fee for obtaining a copy of or access to a Project
-Gutenberg-tm electronic work and you do not agree to be bound by the
-terms of this agreement, you may obtain a refund from the person or
-entity to whom you paid the fee as set forth in paragraph 1.E.8.
-
-1.B. "Project Gutenberg" is a registered trademark. It may only be
-used on or associated in any way with an electronic work by people who
-agree to be bound by the terms of this agreement. There are a few
-things that you can do with most Project Gutenberg-tm electronic works
-even without complying with the full terms of this agreement. See
-paragraph 1.C below. There are a lot of things you can do with Project
-Gutenberg-tm electronic works if you follow the terms of this agreement
-and help preserve free future access to Project Gutenberg-tm electronic
-works. See paragraph 1.E below.
-
-1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation"
-or PGLAF), owns a compilation copyright in the collection of Project
-Gutenberg-tm electronic works. Nearly all the individual works in the
-collection are in the public domain in the United States. If an
-individual work is in the public domain in the United States and you are
-located in the United States, we do not claim a right to prevent you from
-copying, distributing, performing, displaying or creating derivative
-works based on the work as long as all references to Project Gutenberg
-are removed. Of course, we hope that you will support the Project
-Gutenberg-tm mission of promoting free access to electronic works by
-freely sharing Project Gutenberg-tm works in compliance with the terms of
-this agreement for keeping the Project Gutenberg-tm name associated with
-the work. You can easily comply with the terms of this agreement by
-keeping this work in the same format with its attached full Project
-Gutenberg-tm License when you share it without charge with others.
-
-1.D. The copyright laws of the place where you are located also govern
-what you can do with this work. Copyright laws in most countries are in
-a constant state of change. If you are outside the United States, check
-the laws of your country in addition to the terms of this agreement
-before downloading, copying, displaying, performing, distributing or
-creating derivative works based on this work or any other Project
-Gutenberg-tm work. The Foundation makes no representations concerning
-the copyright status of any work in any country outside the United
-States.
-
-1.E. Unless you have removed all references to Project Gutenberg:
-
-1.E.1. The following sentence, with active links to, or other immediate
-access to, the full Project Gutenberg-tm License must appear prominently
-whenever any copy of a Project Gutenberg-tm work (any work on which the
-phrase "Project Gutenberg" appears, or with which the phrase "Project
-Gutenberg" is associated) is accessed, displayed, performed, viewed,
-copied or distributed:
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.org
-
-1.E.2. If an individual Project Gutenberg-tm electronic work is derived
-from the public domain (does not contain a notice indicating that it is
-posted with permission of the copyright holder), the work can be copied
-and distributed to anyone in the United States without paying any fees
-or charges. If you are redistributing or providing access to a work
-with the phrase "Project Gutenberg" associated with or appearing on the
-work, you must comply either with the requirements of paragraphs 1.E.1
-through 1.E.7 or obtain permission for the use of the work and the
-Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or
-1.E.9.
-
-1.E.3. If an individual Project Gutenberg-tm electronic work is posted
-with the permission of the copyright holder, your use and distribution
-must comply with both paragraphs 1.E.1 through 1.E.7 and any additional
-terms imposed by the copyright holder. Additional terms will be linked
-to the Project Gutenberg-tm License for all works posted with the
-permission of the copyright holder found at the beginning of this work.
-
-1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm
-License terms from this work, or any files containing a part of this
-work or any other work associated with Project Gutenberg-tm.
-
-1.E.5. Do not copy, display, perform, distribute or redistribute this
-electronic work, or any part of this electronic work, without
-prominently displaying the sentence set forth in paragraph 1.E.1 with
-active links or immediate access to the full terms of the Project
-Gutenberg-tm License.
-
-1.E.6. You may convert to and distribute this work in any binary,
-compressed, marked up, nonproprietary or proprietary form, including any
-word processing or hypertext form. However, if you provide access to or
-distribute copies of a Project Gutenberg-tm work in a format other than
-"Plain Vanilla ASCII" or other format used in the official version
-posted on the official Project Gutenberg-tm web site (www.gutenberg.org),
-you must, at no additional cost, fee or expense to the user, provide a
-copy, a means of exporting a copy, or a means of obtaining a copy upon
-request, of the work in its original "Plain Vanilla ASCII" or other
-form. Any alternate format must include the full Project Gutenberg-tm
-License as specified in paragraph 1.E.1.
-
-1.E.7. Do not charge a fee for access to, viewing, displaying,
-performing, copying or distributing any Project Gutenberg-tm works
-unless you comply with paragraph 1.E.8 or 1.E.9.
-
-1.E.8. You may charge a reasonable fee for copies of or providing
-access to or distributing Project Gutenberg-tm electronic works provided
-that
-
-- You pay a royalty fee of 20% of the gross profits you derive from
- the use of Project Gutenberg-tm works calculated using the method
- you already use to calculate your applicable taxes. The fee is
- owed to the owner of the Project Gutenberg-tm trademark, but he
- has agreed to donate royalties under this paragraph to the
- Project Gutenberg Literary Archive Foundation. Royalty payments
- must be paid within 60 days following each date on which you
- prepare (or are legally required to prepare) your periodic tax
- returns. Royalty payments should be clearly marked as such and
- sent to the Project Gutenberg Literary Archive Foundation at the
- address specified in Section 4, "Information about donations to
- the Project Gutenberg Literary Archive Foundation."
-
-- You provide a full refund of any money paid by a user who notifies
- you in writing (or by e-mail) within 30 days of receipt that s/he
- does not agree to the terms of the full Project Gutenberg-tm
- License. You must require such a user to return or
- destroy all copies of the works possessed in a physical medium
- and discontinue all use of and all access to other copies of
- Project Gutenberg-tm works.
-
-- You provide, in accordance with paragraph 1.F.3, a full refund of any
- money paid for a work or a replacement copy, if a defect in the
- electronic work is discovered and reported to you within 90 days
- of receipt of the work.
-
-- You comply with all other terms of this agreement for free
- distribution of Project Gutenberg-tm works.
-
-1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm
-electronic work or group of works on different terms than are set
-forth in this agreement, you must obtain permission in writing from
-both the Project Gutenberg Literary Archive Foundation and Michael
-Hart, the owner of the Project Gutenberg-tm trademark. Contact the
-Foundation as set forth in Section 3 below.
-
-1.F.
-
-1.F.1. Project Gutenberg volunteers and employees expend considerable
-effort to identify, do copyright research on, transcribe and proofread
-public domain works in creating the Project Gutenberg-tm
-collection. Despite these efforts, Project Gutenberg-tm electronic
-works, and the medium on which they may be stored, may contain
-"Defects," such as, but not limited to, incomplete, inaccurate or
-corrupt data, transcription errors, a copyright or other intellectual
-property infringement, a defective or damaged disk or other medium, a
-computer virus, or computer codes that damage or cannot be read by
-your equipment.
-
-1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right
-of Replacement or Refund" described in paragraph 1.F.3, the Project
-Gutenberg Literary Archive Foundation, the owner of the Project
-Gutenberg-tm trademark, and any other party distributing a Project
-Gutenberg-tm electronic work under this agreement, disclaim all
-liability to you for damages, costs and expenses, including legal
-fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
-LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE
-PROVIDED IN PARAGRAPH F3. YOU AGREE THAT THE FOUNDATION, THE
-TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE
-LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
-INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a
-defect in this electronic work within 90 days of receiving it, you can
-receive a refund of the money (if any) you paid for it by sending a
-written explanation to the person you received the work from. If you
-received the work on a physical medium, you must return the medium with
-your written explanation. The person or entity that provided you with
-the defective work may elect to provide a replacement copy in lieu of a
-refund. If you received the work electronically, the person or entity
-providing it to you may choose to give you a second opportunity to
-receive the work electronically in lieu of a refund. If the second copy
-is also defective, you may demand a refund in writing without further
-opportunities to fix the problem.
-
-1.F.4. Except for the limited right of replacement or refund set forth
-in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER
-WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE.
-
-1.F.5. Some states do not allow disclaimers of certain implied
-warranties or the exclusion or limitation of certain types of damages.
-If any disclaimer or limitation set forth in this agreement violates the
-law of the state applicable to this agreement, the agreement shall be
-interpreted to make the maximum disclaimer or limitation permitted by
-the applicable state law. The invalidity or unenforceability of any
-provision of this agreement shall not void the remaining provisions.
-
-1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the
-trademark owner, any agent or employee of the Foundation, anyone
-providing copies of Project Gutenberg-tm electronic works in accordance
-with this agreement, and any volunteers associated with the production,
-promotion and distribution of Project Gutenberg-tm electronic works,
-harmless from all liability, costs and expenses, including legal fees,
-that arise directly or indirectly from any of the following which you do
-or cause to occur: (a) distribution of this or any Project Gutenberg-tm
-work, (b) alteration, modification, or additions or deletions to any
-Project Gutenberg-tm work, and (c) any Defect you cause.
-
-
-Section 2. Information about the Mission of Project Gutenberg-tm
-
-Project Gutenberg-tm is synonymous with the free distribution of
-electronic works in formats readable by the widest variety of computers
-including obsolete, old, middle-aged and new computers. It exists
-because of the efforts of hundreds of volunteers and donations from
-people in all walks of life.
-
-Volunteers and financial support to provide volunteers with the
-assistance they need, is critical to reaching Project Gutenberg-tm's
-goals and ensuring that the Project Gutenberg-tm collection will
-remain freely available for generations to come. In 2001, the Project
-Gutenberg Literary Archive Foundation was created to provide a secure
-and permanent future for Project Gutenberg-tm and future generations.
-To learn more about the Project Gutenberg Literary Archive Foundation
-and how your efforts and donations can help, see Sections 3 and 4
-and the Foundation web page at http://www.pglaf.org.
-
-
-Section 3. Information about the Project Gutenberg Literary Archive
-Foundation
-
-The Project Gutenberg Literary Archive Foundation is a non profit
-501(c)(3) educational corporation organized under the laws of the
-state of Mississippi and granted tax exempt status by the Internal
-Revenue Service. The Foundation's EIN or federal tax identification
-number is 64-6221541. Its 501(c)(3) letter is posted at
-http://pglaf.org/fundraising. Contributions to the Project Gutenberg
-Literary Archive Foundation are tax deductible to the full extent
-permitted by U.S. federal laws and your state's laws.
-
-The Foundation's principal office is located at 4557 Melan Dr. S.
-Fairbanks, AK, 99712., but its volunteers and employees are scattered
-throughout numerous locations. Its business office is located at
-809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email
-business@pglaf.org. Email contact links and up to date contact
-information can be found at the Foundation's web site and official
-page at http://pglaf.org
-
-For additional contact information:
- Dr. Gregory B. Newby
- Chief Executive and Director
- gbnewby@pglaf.org
-
-
-Section 4. Information about Donations to the Project Gutenberg
-Literary Archive Foundation
-
-Project Gutenberg-tm depends upon and cannot survive without wide
-spread public support and donations to carry out its mission of
-increasing the number of public domain and licensed works that can be
-freely distributed in machine readable form accessible by the widest
-array of equipment including outdated equipment. Many small donations
-($1 to $5,000) are particularly important to maintaining tax exempt
-status with the IRS.
-
-The Foundation is committed to complying with the laws regulating
-charities and charitable donations in all 50 states of the United
-States. Compliance requirements are not uniform and it takes a
-considerable effort, much paperwork and many fees to meet and keep up
-with these requirements. We do not solicit donations in locations
-where we have not received written confirmation of compliance. To
-SEND DONATIONS or determine the status of compliance for any
-particular state visit http://pglaf.org
-
-While we cannot and do not solicit contributions from states where we
-have not met the solicitation requirements, we know of no prohibition
-against accepting unsolicited donations from donors in such states who
-approach us with offers to donate.
-
-International donations are gratefully accepted, but we cannot make
-any statements concerning tax treatment of donations received from
-outside the United States. U.S. laws alone swamp our small staff.
-
-Please check the Project Gutenberg Web pages for current donation
-methods and addresses. Donations are accepted in a number of other
-ways including checks, online payments and credit card donations.
-To donate, please visit: http://pglaf.org/donate
-
-
-Section 5. General Information About Project Gutenberg-tm electronic
-works.
-
-Professor Michael S. Hart is the originator of the Project Gutenberg-tm
-concept of a library of electronic works that could be freely shared
-with anyone. For thirty years, he produced and distributed Project
-Gutenberg-tm eBooks with only a loose network of volunteer support.
-
-
-Project Gutenberg-tm eBooks are often created from several printed
-editions, all of which are confirmed as Public Domain in the U.S.
-unless a copyright notice is included. Thus, we do not necessarily
-keep eBooks in compliance with any particular paper edition.
-
-
-Most people start at our Web site which has the main PG search facility:
-
- http://www.gutenberg.org
-
-This Web site includes information about Project Gutenberg-tm,
-including how to make donations to the Project Gutenberg Literary
-Archive Foundation, how to help produce our new eBooks, and how to
-subscribe to our email newsletter to hear about new eBooks.
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/job/wordcount/wordcount.job b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/job/wordcount/wordcount.job
deleted file mode 100644
index 1a008c2..0000000
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/job/wordcount/wordcount.job
+++ /dev/null
@@ -1,12 +0,0 @@
-mapred.input.dir=data/file1.txt
-mapred.output.dir=output
-mapred.job.name=wordcount(static)
-mapred.mapper.class=edu.uci.ics.hyracks.examples.wordcount.WordCount$Map
-mapred.combiner.class=edu.uci.ics.hyracks.examples.wordcount.WordCount$Reduce
-mapred.reducer.class=edu.uci.ics.hyracks.examples.wordcount.WordCount$Reduce
-mapred.input.format.class=org.apache.hadoop.mapred.TextInputFormat
-mapred.output.format.class=org.apache.hadoop.mapred.TextOutputFormat
-mapred.mapoutput.key.class=org.apache.hadoop.io.Text
-mapred.mapoutput.value.class=org.apache.hadoop.io.IntWritable
-mapred.output.key.class=org.apache.hadoop.io.Text
-mapred.output.value.class=org.apache.hadoop.io.IntWritable
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/pom.xml b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/pom.xml
deleted file mode 100644
index b1c0d41..0000000
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/pom.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>edu.uci.ics.hyracks.examples.compat</groupId>
- <artifactId>hadoopcompatapp</artifactId>
- <name>hadoopcompatapp</name>
-
- <parent>
- <groupId>edu.uci.ics.hyracks.examples</groupId>
- <artifactId>hadoop-compat-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- </parent>
-
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <versionRange>[1.0.0,)</versionRange>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore />
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>target/application/lib</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
- <executions>
- <execution>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/app-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hyracks-virtualcluster-maven-plugin</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <configuration>
- <hyracksServerHome>${basedir}/../../../hyracks-server/target/hyracks-server-${project.version}-binary-assembly</hyracksServerHome>
- <hyracksCLIHome>${basedir}/../../../hyracks-cli/target/hyracks-cli-${project.version}-binary-assembly</hyracksCLIHome>
- <jvmOptions>${jvm.extraargs}</jvmOptions>
- </configuration>
- <executions>
- <execution>
- <id>hyracks-cc-start</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-cc</goal>
- </goals>
- <configuration>
- <workingDir>${project.build.directory}</workingDir>
- </configuration>
- </execution>
- <execution>
- <id>hyracks-nc1-start</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-nc</goal>
- </goals>
- <configuration>
- <nodeId>NC1</nodeId>
- <dataIpAddress>127.0.0.1</dataIpAddress>
- <ccHost>localhost</ccHost>
- <workingDir>${project.build.directory}</workingDir>
- </configuration>
- </execution>
- <execution>
- <id>hyracks-nc2-start</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-nc</goal>
- </goals>
- <configuration>
- <nodeId>NC2</nodeId>
- <dataIpAddress>127.0.0.1</dataIpAddress>
- <ccHost>localhost</ccHost>
- <workingDir>${project.build.directory}</workingDir>
- </configuration>
- </execution>
- <execution>
- <id>deploy-app</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>deploy-app</goal>
- </goals>
- <configuration>
- <ccHost>localhost</ccHost>
- <appName>compat</appName>
- <harFile>${project.build.directory}/hadoopcompatapp-${project.version}-app-assembly.zip</harFile>
- </configuration>
- </execution>
- <execution>
- <id>stop-services</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>stop-services</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <fork>true</fork>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <version>2.8.1</version>
- <executions>
- <execution>
- <id>it</id>
- <phase>integration-test</phase>
- <goals>
- <goal>integration-test</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>edu.uci.ics.hyracks.examples.compat</groupId>
- <artifactId>hadoopcompathelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks.examples.compat</groupId>
- <artifactId>hadoopcompatclient</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <type>jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.2</version>
- <type>jar</type>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/src/main/assembly/app-assembly.xml b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/src/main/assembly/app-assembly.xml
deleted file mode 100644
index 43ace6c..0000000
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/src/main/assembly/app-assembly.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<assembly>
- <id>app-assembly</id>
- <formats>
- <format>zip</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/application/lib</directory>
- <outputDirectory>lib</outputDirectory>
- </fileSet>
- </fileSets>
-</assembly>
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/src/test/java/edu/uci/ics/hyracks/examples/compat/test/WordCountCompatibilityIT.java b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/src/test/java/edu/uci/ics/hyracks/examples/compat/test/WordCountCompatibilityIT.java
deleted file mode 100644
index a2a8994..0000000
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatapp/src/test/java/edu/uci/ics/hyracks/examples/compat/test/WordCountCompatibilityIT.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hyracks.examples.compat.test;
-
-import java.io.File;
-
-import org.junit.Test;
-
-import edu.uci.ics.hyracks.examples.compat.client.WordCountCompatibility;
-
-public class WordCountCompatibilityIT {
- @Test
- public void runWordCount() throws Exception {
- WordCountCompatibility.main(new String[] { "-cluster", getClusterConf(), "-jobFiles", getWordCountJobFile(),
- "-applicationName", "compat" });
- }
-
- private String getClusterConf() {
- return new File("conf/local_cluster.conf").getAbsolutePath();
- }
-
- private String getWordCountJobFile() {
- return new File("job/wordcount/wordcount.job").getAbsolutePath();
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatclient/pom.xml b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatclient/pom.xml
index 054f97d..31809c7 100644
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatclient/pom.xml
+++ b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatclient/pom.xml
@@ -7,20 +7,20 @@
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>hadoop-compat-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks.examples.compat</groupId>
<artifactId>hadoopcompathelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -32,8 +32,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
<plugin>
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompathelper/pom.xml b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompathelper/pom.xml
index d4b9abb..e8a9a1b 100644
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompathelper/pom.xml
+++ b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompathelper/pom.xml
@@ -7,20 +7,20 @@
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>hadoop-compat-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
@@ -31,8 +31,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml
index b538db5..36d612b 100644
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml
+++ b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks.examples.compat</groupId>
<artifactId>hadoopcompatserver</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hadoopcompatserver</name>
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>hadoop-compat-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -60,7 +60,7 @@
<plugin>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-virtualcluster-maven-plugin</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<configuration>
<hyracksServerHome>${basedir}/target/hadoopcompatserver-${project.version}-binary-assembly</hyracksServerHome>
<jvmOptions>${jvm.extraargs}</jvmOptions>
@@ -135,27 +135,27 @@
<dependency>
<groupId>edu.uci.ics.hyracks.examples.compat</groupId>
<artifactId>hadoopcompathelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks.examples.compat</groupId>
<artifactId>hadoopcompatclient</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>test</scope>
</dependency>
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/pom.xml b/hyracks/hyracks-examples/hadoop-compat-example/pom.xml
index 103d762..b4ba2a3 100644
--- a/hyracks/hyracks-examples/hadoop-compat-example/pom.xml
+++ b/hyracks/hyracks-examples/hadoop-compat-example/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-examples</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
@@ -29,7 +29,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hadoop-compat</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-examples/hyracks-integration-tests/pom.xml b/hyracks/hyracks-examples/hyracks-integration-tests/pom.xml
index 26d6e32..f019b44 100644
--- a/hyracks/hyracks-examples/hyracks-integration-tests/pom.xml
+++ b/hyracks/hyracks-examples/hyracks-integration-tests/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-examples</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -16,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -34,63 +34,63 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-client</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-invertedindex</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-rtree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-test-support</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/hyracks/hyracks-examples/pom.xml b/hyracks/hyracks-examples/pom.xml
index 551e2be..541220a 100644
--- a/hyracks/hyracks-examples/pom.xml
+++ b/hyracks/hyracks-examples/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-examples/text-example/pom.xml b/hyracks/hyracks-examples/text-example/pom.xml
index 469fd0e..a4b0311 100644
--- a/hyracks/hyracks-examples/text-example/pom.xml
+++ b/hyracks/hyracks-examples/text-example/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-examples</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-examples/text-example/textapp/data/file1.txt b/hyracks/hyracks-examples/text-example/textapp/data/file1.txt
deleted file mode 100644
index c4c3130..0000000
--- a/hyracks/hyracks-examples/text-example/textapp/data/file1.txt
+++ /dev/null
@@ -1,13052 +0,0 @@
-Project Gutenberg's The Adventures of Sherlock Holmes, by Arthur Conan Doyle
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.net
-
-
-Title: The Adventures of Sherlock Holmes
-
-Author: Arthur Conan Doyle
-
-Posting Date: April 18, 2011 [EBook #1661]
-First Posted: November 29, 2002
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK THE ADVENTURES OF SHERLOCK HOLMES ***
-
-
-
-
-Produced by an anonymous Project Gutenberg volunteer and Jose Menendez
-
-
-
-
-
-
-
-
-
-THE ADVENTURES OF SHERLOCK HOLMES
-
-by
-
-SIR ARTHUR CONAN DOYLE
-
-
-
- I. A Scandal in Bohemia
- II. The Red-headed League
- III. A Case of Identity
- IV. The Boscombe Valley Mystery
- V. The Five Orange Pips
- VI. The Man with the Twisted Lip
- VII. The Adventure of the Blue Carbuncle
-VIII. The Adventure of the Speckled Band
- IX. The Adventure of the Engineer's Thumb
- X. The Adventure of the Noble Bachelor
- XI. The Adventure of the Beryl Coronet
- XII. The Adventure of the Copper Beeches
-
-
-
-
-ADVENTURE I. A SCANDAL IN BOHEMIA
-
-I.
-
-To Sherlock Holmes she is always THE woman. I have seldom heard
-him mention her under any other name. In his eyes she eclipses
-and predominates the whole of her sex. It was not that he felt
-any emotion akin to love for Irene Adler. All emotions, and that
-one particularly, were abhorrent to his cold, precise but
-admirably balanced mind. He was, I take it, the most perfect
-reasoning and observing machine that the world has seen, but as a
-lover he would have placed himself in a false position. He never
-spoke of the softer passions, save with a gibe and a sneer. They
-were admirable things for the observer--excellent for drawing the
-veil from men's motives and actions. But for the trained reasoner
-to admit such intrusions into his own delicate and finely
-adjusted temperament was to introduce a distracting factor which
-might throw a doubt upon all his mental results. Grit in a
-sensitive instrument, or a crack in one of his own high-power
-lenses, would not be more disturbing than a strong emotion in a
-nature such as his. And yet there was but one woman to him, and
-that woman was the late Irene Adler, of dubious and questionable
-memory.
-
-I had seen little of Holmes lately. My marriage had drifted us
-away from each other. My own complete happiness, and the
-home-centred interests which rise up around the man who first
-finds himself master of his own establishment, were sufficient to
-absorb all my attention, while Holmes, who loathed every form of
-society with his whole Bohemian soul, remained in our lodgings in
-Baker Street, buried among his old books, and alternating from
-week to week between cocaine and ambition, the drowsiness of the
-drug, and the fierce energy of his own keen nature. He was still,
-as ever, deeply attracted by the study of crime, and occupied his
-immense faculties and extraordinary powers of observation in
-following out those clues, and clearing up those mysteries which
-had been abandoned as hopeless by the official police. From time
-to time I heard some vague account of his doings: of his summons
-to Odessa in the case of the Trepoff murder, of his clearing up
-of the singular tragedy of the Atkinson brothers at Trincomalee,
-and finally of the mission which he had accomplished so
-delicately and successfully for the reigning family of Holland.
-Beyond these signs of his activity, however, which I merely
-shared with all the readers of the daily press, I knew little of
-my former friend and companion.
-
-One night--it was on the twentieth of March, 1888--I was
-returning from a journey to a patient (for I had now returned to
-civil practice), when my way led me through Baker Street. As I
-passed the well-remembered door, which must always be associated
-in my mind with my wooing, and with the dark incidents of the
-Study in Scarlet, I was seized with a keen desire to see Holmes
-again, and to know how he was employing his extraordinary powers.
-His rooms were brilliantly lit, and, even as I looked up, I saw
-his tall, spare figure pass twice in a dark silhouette against
-the blind. He was pacing the room swiftly, eagerly, with his head
-sunk upon his chest and his hands clasped behind him. To me, who
-knew his every mood and habit, his attitude and manner told their
-own story. He was at work again. He had risen out of his
-drug-created dreams and was hot upon the scent of some new
-problem. I rang the bell and was shown up to the chamber which
-had formerly been in part my own.
-
-His manner was not effusive. It seldom was; but he was glad, I
-think, to see me. With hardly a word spoken, but with a kindly
-eye, he waved me to an armchair, threw across his case of cigars,
-and indicated a spirit case and a gasogene in the corner. Then he
-stood before the fire and looked me over in his singular
-introspective fashion.
-
-"Wedlock suits you," he remarked. "I think, Watson, that you have
-put on seven and a half pounds since I saw you."
-
-"Seven!" I answered.
-
-"Indeed, I should have thought a little more. Just a trifle more,
-I fancy, Watson. And in practice again, I observe. You did not
-tell me that you intended to go into harness."
-
-"Then, how do you know?"
-
-"I see it, I deduce it. How do I know that you have been getting
-yourself very wet lately, and that you have a most clumsy and
-careless servant girl?"
-
-"My dear Holmes," said I, "this is too much. You would certainly
-have been burned, had you lived a few centuries ago. It is true
-that I had a country walk on Thursday and came home in a dreadful
-mess, but as I have changed my clothes I can't imagine how you
-deduce it. As to Mary Jane, she is incorrigible, and my wife has
-given her notice, but there, again, I fail to see how you work it
-out."
-
-He chuckled to himself and rubbed his long, nervous hands
-together.
-
-"It is simplicity itself," said he; "my eyes tell me that on the
-inside of your left shoe, just where the firelight strikes it,
-the leather is scored by six almost parallel cuts. Obviously they
-have been caused by someone who has very carelessly scraped round
-the edges of the sole in order to remove crusted mud from it.
-Hence, you see, my double deduction that you had been out in vile
-weather, and that you had a particularly malignant boot-slitting
-specimen of the London slavey. As to your practice, if a
-gentleman walks into my rooms smelling of iodoform, with a black
-mark of nitrate of silver upon his right forefinger, and a bulge
-on the right side of his top-hat to show where he has secreted
-his stethoscope, I must be dull, indeed, if I do not pronounce
-him to be an active member of the medical profession."
-
-I could not help laughing at the ease with which he explained his
-process of deduction. "When I hear you give your reasons," I
-remarked, "the thing always appears to me to be so ridiculously
-simple that I could easily do it myself, though at each
-successive instance of your reasoning I am baffled until you
-explain your process. And yet I believe that my eyes are as good
-as yours."
-
-"Quite so," he answered, lighting a cigarette, and throwing
-himself down into an armchair. "You see, but you do not observe.
-The distinction is clear. For example, you have frequently seen
-the steps which lead up from the hall to this room."
-
-"Frequently."
-
-"How often?"
-
-"Well, some hundreds of times."
-
-"Then how many are there?"
-
-"How many? I don't know."
-
-"Quite so! You have not observed. And yet you have seen. That is
-just my point. Now, I know that there are seventeen steps,
-because I have both seen and observed. By-the-way, since you are
-interested in these little problems, and since you are good
-enough to chronicle one or two of my trifling experiences, you
-may be interested in this." He threw over a sheet of thick,
-pink-tinted note-paper which had been lying open upon the table.
-"It came by the last post," said he. "Read it aloud."
-
-The note was undated, and without either signature or address.
-
-"There will call upon you to-night, at a quarter to eight
-o'clock," it said, "a gentleman who desires to consult you upon a
-matter of the very deepest moment. Your recent services to one of
-the royal houses of Europe have shown that you are one who may
-safely be trusted with matters which are of an importance which
-can hardly be exaggerated. This account of you we have from all
-quarters received. Be in your chamber then at that hour, and do
-not take it amiss if your visitor wear a mask."
-
-"This is indeed a mystery," I remarked. "What do you imagine that
-it means?"
-
-"I have no data yet. It is a capital mistake to theorize before
-one has data. Insensibly one begins to twist facts to suit
-theories, instead of theories to suit facts. But the note itself.
-What do you deduce from it?"
-
-I carefully examined the writing, and the paper upon which it was
-written.
-
-"The man who wrote it was presumably well to do," I remarked,
-endeavouring to imitate my companion's processes. "Such paper
-could not be bought under half a crown a packet. It is peculiarly
-strong and stiff."
-
-"Peculiar--that is the very word," said Holmes. "It is not an
-English paper at all. Hold it up to the light."
-
-I did so, and saw a large "E" with a small "g," a "P," and a
-large "G" with a small "t" woven into the texture of the paper.
-
-"What do you make of that?" asked Holmes.
-
-"The name of the maker, no doubt; or his monogram, rather."
-
-"Not at all. The 'G' with the small 't' stands for
-'Gesellschaft,' which is the German for 'Company.' It is a
-customary contraction like our 'Co.' 'P,' of course, stands for
-'Papier.' Now for the 'Eg.' Let us glance at our Continental
-Gazetteer." He took down a heavy brown volume from his shelves.
-"Eglow, Eglonitz--here we are, Egria. It is in a German-speaking
-country--in Bohemia, not far from Carlsbad. 'Remarkable as being
-the scene of the death of Wallenstein, and for its numerous
-glass-factories and paper-mills.' Ha, ha, my boy, what do you
-make of that?" His eyes sparkled, and he sent up a great blue
-triumphant cloud from his cigarette.
-
-"The paper was made in Bohemia," I said.
-
-"Precisely. And the man who wrote the note is a German. Do you
-note the peculiar construction of the sentence--'This account of
-you we have from all quarters received.' A Frenchman or Russian
-could not have written that. It is the German who is so
-uncourteous to his verbs. It only remains, therefore, to discover
-what is wanted by this German who writes upon Bohemian paper and
-prefers wearing a mask to showing his face. And here he comes, if
-I am not mistaken, to resolve all our doubts."
-
-As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.
-
-"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There's money in
-this case, Watson, if there is nothing else."
-
-"I think that I had better go, Holmes."
-
-"Not a bit, Doctor. Stay where you are. I am lost without my
-Boswell. And this promises to be interesting. It would be a pity
-to miss it."
-
-"But your client--"
-
-"Never mind him. I may want your help, and so may he. Here he
-comes. Sit down in that armchair, Doctor, and give us your best
-attention."
-
-A slow and heavy step, which had been heard upon the stairs and
-in the passage, paused immediately outside the door. Then there
-was a loud and authoritative tap.
-
-"Come in!" said Holmes.
-
-A man entered who could hardly have been less than six feet six
-inches in height, with the chest and limbs of a Hercules. His
-dress was rich with a richness which would, in England, be looked
-upon as akin to bad taste. Heavy bands of astrakhan were slashed
-across the sleeves and fronts of his double-breasted coat, while
-the deep blue cloak which was thrown over his shoulders was lined
-with flame-coloured silk and secured at the neck with a brooch
-which consisted of a single flaming beryl. Boots which extended
-halfway up his calves, and which were trimmed at the tops with
-rich brown fur, completed the impression of barbaric opulence
-which was suggested by his whole appearance. He carried a
-broad-brimmed hat in his hand, while he wore across the upper
-part of his face, extending down past the cheekbones, a black
-vizard mask, which he had apparently adjusted that very moment,
-for his hand was still raised to it as he entered. From the lower
-part of the face he appeared to be a man of strong character,
-with a thick, hanging lip, and a long, straight chin suggestive
-of resolution pushed to the length of obstinacy.
-
-"You had my note?" he asked with a deep harsh voice and a
-strongly marked German accent. "I told you that I would call." He
-looked from one to the other of us, as if uncertain which to
-address.
-
-"Pray take a seat," said Holmes. "This is my friend and
-colleague, Dr. Watson, who is occasionally good enough to help me
-in my cases. Whom have I the honour to address?"
-
-"You may address me as the Count Von Kramm, a Bohemian nobleman.
-I understand that this gentleman, your friend, is a man of honour
-and discretion, whom I may trust with a matter of the most
-extreme importance. If not, I should much prefer to communicate
-with you alone."
-
-I rose to go, but Holmes caught me by the wrist and pushed me
-back into my chair. "It is both, or none," said he. "You may say
-before this gentleman anything which you may say to me."
-
-The Count shrugged his broad shoulders. "Then I must begin," said
-he, "by binding you both to absolute secrecy for two years; at
-the end of that time the matter will be of no importance. At
-present it is not too much to say that it is of such weight it
-may have an influence upon European history."
-
-"I promise," said Holmes.
-
-"And I."
-
-"You will excuse this mask," continued our strange visitor. "The
-august person who employs me wishes his agent to be unknown to
-you, and I may confess at once that the title by which I have
-just called myself is not exactly my own."
-
-"I was aware of it," said Holmes dryly.
-
-"The circumstances are of great delicacy, and every precaution
-has to be taken to quench what might grow to be an immense
-scandal and seriously compromise one of the reigning families of
-Europe. To speak plainly, the matter implicates the great House
-of Ormstein, hereditary kings of Bohemia."
-
-"I was also aware of that," murmured Holmes, settling himself
-down in his armchair and closing his eyes.
-
-Our visitor glanced with some apparent surprise at the languid,
-lounging figure of the man who had been no doubt depicted to him
-as the most incisive reasoner and most energetic agent in Europe.
-Holmes slowly reopened his eyes and looked impatiently at his
-gigantic client.
-
-"If your Majesty would condescend to state your case," he
-remarked, "I should be better able to advise you."
-
-The man sprang from his chair and paced up and down the room in
-uncontrollable agitation. Then, with a gesture of desperation, he
-tore the mask from his face and hurled it upon the ground. "You
-are right," he cried; "I am the King. Why should I attempt to
-conceal it?"
-
-"Why, indeed?" murmured Holmes. "Your Majesty had not spoken
-before I was aware that I was addressing Wilhelm Gottsreich
-Sigismond von Ormstein, Grand Duke of Cassel-Felstein, and
-hereditary King of Bohemia."
-
-"But you can understand," said our strange visitor, sitting down
-once more and passing his hand over his high white forehead, "you
-can understand that I am not accustomed to doing such business in
-my own person. Yet the matter was so delicate that I could not
-confide it to an agent without putting myself in his power. I
-have come incognito from Prague for the purpose of consulting
-you."
-
-"Then, pray consult," said Holmes, shutting his eyes once more.
-
-"The facts are briefly these: Some five years ago, during a
-lengthy visit to Warsaw, I made the acquaintance of the well-known
-adventuress, Irene Adler. The name is no doubt familiar to you."
-
-"Kindly look her up in my index, Doctor," murmured Holmes without
-opening his eyes. For many years he had adopted a system of
-docketing all paragraphs concerning men and things, so that it
-was difficult to name a subject or a person on which he could not
-at once furnish information. In this case I found her biography
-sandwiched in between that of a Hebrew rabbi and that of a
-staff-commander who had written a monograph upon the deep-sea
-fishes.
-
-"Let me see!" said Holmes. "Hum! Born in New Jersey in the year
-1858. Contralto--hum! La Scala, hum! Prima donna Imperial Opera
-of Warsaw--yes! Retired from operatic stage--ha! Living in
-London--quite so! Your Majesty, as I understand, became entangled
-with this young person, wrote her some compromising letters, and
-is now desirous of getting those letters back."
-
-"Precisely so. But how--"
-
-"Was there a secret marriage?"
-
-"None."
-
-"No legal papers or certificates?"
-
-"None."
-
-"Then I fail to follow your Majesty. If this young person should
-produce her letters for blackmailing or other purposes, how is
-she to prove their authenticity?"
-
-"There is the writing."
-
-"Pooh, pooh! Forgery."
-
-"My private note-paper."
-
-"Stolen."
-
-"My own seal."
-
-"Imitated."
-
-"My photograph."
-
-"Bought."
-
-"We were both in the photograph."
-
-"Oh, dear! That is very bad! Your Majesty has indeed committed an
-indiscretion."
-
-"I was mad--insane."
-
-"You have compromised yourself seriously."
-
-"I was only Crown Prince then. I was young. I am but thirty now."
-
-"It must be recovered."
-
-"We have tried and failed."
-
-"Your Majesty must pay. It must be bought."
-
-"She will not sell."
-
-"Stolen, then."
-
-"Five attempts have been made. Twice burglars in my pay ransacked
-her house. Once we diverted her luggage when she travelled. Twice
-she has been waylaid. There has been no result."
-
-"No sign of it?"
-
-"Absolutely none."
-
-Holmes laughed. "It is quite a pretty little problem," said he.
-
-"But a very serious one to me," returned the King reproachfully.
-
-"Very, indeed. And what does she propose to do with the
-photograph?"
-
-"To ruin me."
-
-"But how?"
-
-"I am about to be married."
-
-"So I have heard."
-
-"To Clotilde Lothman von Saxe-Meningen, second daughter of the
-King of Scandinavia. You may know the strict principles of her
-family. She is herself the very soul of delicacy. A shadow of a
-doubt as to my conduct would bring the matter to an end."
-
-"And Irene Adler?"
-
-"Threatens to send them the photograph. And she will do it. I
-know that she will do it. You do not know her, but she has a soul
-of steel. She has the face of the most beautiful of women, and
-the mind of the most resolute of men. Rather than I should marry
-another woman, there are no lengths to which she would not
-go--none."
-
-"You are sure that she has not sent it yet?"
-
-"I am sure."
-
-"And why?"
-
-"Because she has said that she would send it on the day when the
-betrothal was publicly proclaimed. That will be next Monday."
-
-"Oh, then we have three days yet," said Holmes with a yawn. "That
-is very fortunate, as I have one or two matters of importance to
-look into just at present. Your Majesty will, of course, stay in
-London for the present?"
-
-"Certainly. You will find me at the Langham under the name of the
-Count Von Kramm."
-
-"Then I shall drop you a line to let you know how we progress."
-
-"Pray do so. I shall be all anxiety."
-
-"Then, as to money?"
-
-"You have carte blanche."
-
-"Absolutely?"
-
-"I tell you that I would give one of the provinces of my kingdom
-to have that photograph."
-
-"And for present expenses?"
-
-The King took a heavy chamois leather bag from under his cloak
-and laid it on the table.
-
-"There are three hundred pounds in gold and seven hundred in
-notes," he said.
-
-Holmes scribbled a receipt upon a sheet of his note-book and
-handed it to him.
-
-"And Mademoiselle's address?" he asked.
-
-"Is Briony Lodge, Serpentine Avenue, St. John's Wood."
-
-Holmes took a note of it. "One other question," said he. "Was the
-photograph a cabinet?"
-
-"It was."
-
-"Then, good-night, your Majesty, and I trust that we shall soon
-have some good news for you. And good-night, Watson," he added,
-as the wheels of the royal brougham rolled down the street. "If
-you will be good enough to call to-morrow afternoon at three
-o'clock I should like to chat this little matter over with you."
-
-
-II.
-
-At three o'clock precisely I was at Baker Street, but Holmes had
-not yet returned. The landlady informed me that he had left the
-house shortly after eight o'clock in the morning. I sat down
-beside the fire, however, with the intention of awaiting him,
-however long he might be. I was already deeply interested in his
-inquiry, for, though it was surrounded by none of the grim and
-strange features which were associated with the two crimes which
-I have already recorded, still, the nature of the case and the
-exalted station of his client gave it a character of its own.
-Indeed, apart from the nature of the investigation which my
-friend had on hand, there was something in his masterly grasp of
-a situation, and his keen, incisive reasoning, which made it a
-pleasure to me to study his system of work, and to follow the
-quick, subtle methods by which he disentangled the most
-inextricable mysteries. So accustomed was I to his invariable
-success that the very possibility of his failing had ceased to
-enter into my head.
-
-It was close upon four before the door opened, and a
-drunken-looking groom, ill-kempt and side-whiskered, with an
-inflamed face and disreputable clothes, walked into the room.
-Accustomed as I was to my friend's amazing powers in the use of
-disguises, I had to look three times before I was certain that it
-was indeed he. With a nod he vanished into the bedroom, whence he
-emerged in five minutes tweed-suited and respectable, as of old.
-Putting his hands into his pockets, he stretched out his legs in
-front of the fire and laughed heartily for some minutes.
-
-"Well, really!" he cried, and then he choked and laughed again
-until he was obliged to lie back, limp and helpless, in the
-chair.
-
-"What is it?"
-
-"It's quite too funny. I am sure you could never guess how I
-employed my morning, or what I ended by doing."
-
-"I can't imagine. I suppose that you have been watching the
-habits, and perhaps the house, of Miss Irene Adler."
-
-"Quite so; but the sequel was rather unusual. I will tell you,
-however. I left the house a little after eight o'clock this
-morning in the character of a groom out of work. There is a
-wonderful sympathy and freemasonry among horsey men. Be one of
-them, and you will know all that there is to know. I soon found
-Briony Lodge. It is a bijou villa, with a garden at the back, but
-built out in front right up to the road, two stories. Chubb lock
-to the door. Large sitting-room on the right side, well
-furnished, with long windows almost to the floor, and those
-preposterous English window fasteners which a child could open.
-Behind there was nothing remarkable, save that the passage window
-could be reached from the top of the coach-house. I walked round
-it and examined it closely from every point of view, but without
-noting anything else of interest.
-
-"I then lounged down the street and found, as I expected, that
-there was a mews in a lane which runs down by one wall of the
-garden. I lent the ostlers a hand in rubbing down their horses,
-and received in exchange twopence, a glass of half and half, two
-fills of shag tobacco, and as much information as I could desire
-about Miss Adler, to say nothing of half a dozen other people in
-the neighbourhood in whom I was not in the least interested, but
-whose biographies I was compelled to listen to."
-
-"And what of Irene Adler?" I asked.
-
-"Oh, she has turned all the men's heads down in that part. She is
-the daintiest thing under a bonnet on this planet. So say the
-Serpentine-mews, to a man. She lives quietly, sings at concerts,
-drives out at five every day, and returns at seven sharp for
-dinner. Seldom goes out at other times, except when she sings.
-Has only one male visitor, but a good deal of him. He is dark,
-handsome, and dashing, never calls less than once a day, and
-often twice. He is a Mr. Godfrey Norton, of the Inner Temple. See
-the advantages of a cabman as a confidant. They had driven him
-home a dozen times from Serpentine-mews, and knew all about him.
-When I had listened to all they had to tell, I began to walk up
-and down near Briony Lodge once more, and to think over my plan
-of campaign.
-
-"This Godfrey Norton was evidently an important factor in the
-matter. He was a lawyer. That sounded ominous. What was the
-relation between them, and what the object of his repeated
-visits? Was she his client, his friend, or his mistress? If the
-former, she had probably transferred the photograph to his
-keeping. If the latter, it was less likely. On the issue of this
-question depended whether I should continue my work at Briony
-Lodge, or turn my attention to the gentleman's chambers in the
-Temple. It was a delicate point, and it widened the field of my
-inquiry. I fear that I bore you with these details, but I have to
-let you see my little difficulties, if you are to understand the
-situation."
-
-"I am following you closely," I answered.
-
-"I was still balancing the matter in my mind when a hansom cab
-drove up to Briony Lodge, and a gentleman sprang out. He was a
-remarkably handsome man, dark, aquiline, and moustached--evidently
-the man of whom I had heard. He appeared to be in a
-great hurry, shouted to the cabman to wait, and brushed past the
-maid who opened the door with the air of a man who was thoroughly
-at home.
-
-"He was in the house about half an hour, and I could catch
-glimpses of him in the windows of the sitting-room, pacing up and
-down, talking excitedly, and waving his arms. Of her I could see
-nothing. Presently he emerged, looking even more flurried than
-before. As he stepped up to the cab, he pulled a gold watch from
-his pocket and looked at it earnestly, 'Drive like the devil,' he
-shouted, 'first to Gross & Hankey's in Regent Street, and then to
-the Church of St. Monica in the Edgeware Road. Half a guinea if
-you do it in twenty minutes!'
-
-"Away they went, and I was just wondering whether I should not do
-well to follow them when up the lane came a neat little landau,
-the coachman with his coat only half-buttoned, and his tie under
-his ear, while all the tags of his harness were sticking out of
-the buckles. It hadn't pulled up before she shot out of the hall
-door and into it. I only caught a glimpse of her at the moment,
-but she was a lovely woman, with a face that a man might die for.
-
-"'The Church of St. Monica, John,' she cried, 'and half a
-sovereign if you reach it in twenty minutes.'
-
-"This was quite too good to lose, Watson. I was just balancing
-whether I should run for it, or whether I should perch behind her
-landau when a cab came through the street. The driver looked
-twice at such a shabby fare, but I jumped in before he could
-object. 'The Church of St. Monica,' said I, 'and half a sovereign
-if you reach it in twenty minutes.' It was twenty-five minutes to
-twelve, and of course it was clear enough what was in the wind.
-
-"My cabby drove fast. I don't think I ever drove faster, but the
-others were there before us. The cab and the landau with their
-steaming horses were in front of the door when I arrived. I paid
-the man and hurried into the church. There was not a soul there
-save the two whom I had followed and a surpliced clergyman, who
-seemed to be expostulating with them. They were all three
-standing in a knot in front of the altar. I lounged up the side
-aisle like any other idler who has dropped into a church.
-Suddenly, to my surprise, the three at the altar faced round to
-me, and Godfrey Norton came running as hard as he could towards
-me.
-
-"'Thank God,' he cried. 'You'll do. Come! Come!'
-
-"'What then?' I asked.
-
-"'Come, man, come, only three minutes, or it won't be legal.'
-
-"I was half-dragged up to the altar, and before I knew where I was
-I found myself mumbling responses which were whispered in my ear,
-and vouching for things of which I knew nothing, and generally
-assisting in the secure tying up of Irene Adler, spinster, to
-Godfrey Norton, bachelor. It was all done in an instant, and
-there was the gentleman thanking me on the one side and the lady
-on the other, while the clergyman beamed on me in front. It was
-the most preposterous position in which I ever found myself in my
-life, and it was the thought of it that started me laughing just
-now. It seems that there had been some informality about their
-license, that the clergyman absolutely refused to marry them
-without a witness of some sort, and that my lucky appearance
-saved the bridegroom from having to sally out into the streets in
-search of a best man. The bride gave me a sovereign, and I mean
-to wear it on my watch-chain in memory of the occasion."
-
-"This is a very unexpected turn of affairs," said I; "and what
-then?"
-
-"Well, I found my plans very seriously menaced. It looked as if
-the pair might take an immediate departure, and so necessitate
-very prompt and energetic measures on my part. At the church
-door, however, they separated, he driving back to the Temple, and
-she to her own house. 'I shall drive out in the park at five as
-usual,' she said as she left him. I heard no more. They drove
-away in different directions, and I went off to make my own
-arrangements."
-
-"Which are?"
-
-"Some cold beef and a glass of beer," he answered, ringing the
-bell. "I have been too busy to think of food, and I am likely to
-be busier still this evening. By the way, Doctor, I shall want
-your co-operation."
-
-"I shall be delighted."
-
-"You don't mind breaking the law?"
-
-"Not in the least."
-
-"Nor running a chance of arrest?"
-
-"Not in a good cause."
-
-"Oh, the cause is excellent!"
-
-"Then I am your man."
-
-"I was sure that I might rely on you."
-
-"But what is it you wish?"
-
-"When Mrs. Turner has brought in the tray I will make it clear to
-you. Now," he said as he turned hungrily on the simple fare that
-our landlady had provided, "I must discuss it while I eat, for I
-have not much time. It is nearly five now. In two hours we must
-be on the scene of action. Miss Irene, or Madame, rather, returns
-from her drive at seven. We must be at Briony Lodge to meet her."
-
-"And what then?"
-
-"You must leave that to me. I have already arranged what is to
-occur. There is only one point on which I must insist. You must
-not interfere, come what may. You understand?"
-
-"I am to be neutral?"
-
-"To do nothing whatever. There will probably be some small
-unpleasantness. Do not join in it. It will end in my being
-conveyed into the house. Four or five minutes afterwards the
-sitting-room window will open. You are to station yourself close
-to that open window."
-
-"Yes."
-
-"You are to watch me, for I will be visible to you."
-
-"Yes."
-
-"And when I raise my hand--so--you will throw into the room what
-I give you to throw, and will, at the same time, raise the cry of
-fire. You quite follow me?"
-
-"Entirely."
-
-"It is nothing very formidable," he said, taking a long cigar-shaped
-roll from his pocket. "It is an ordinary plumber's smoke-rocket,
-fitted with a cap at either end to make it self-lighting.
-Your task is confined to that. When you raise your cry of fire,
-it will be taken up by quite a number of people. You may then
-walk to the end of the street, and I will rejoin you in ten
-minutes. I hope that I have made myself clear?"
-
-"I am to remain neutral, to get near the window, to watch you,
-and at the signal to throw in this object, then to raise the cry
-of fire, and to wait you at the corner of the street."
-
-"Precisely."
-
-"Then you may entirely rely on me."
-
-"That is excellent. I think, perhaps, it is almost time that I
-prepare for the new role I have to play."
-
-He disappeared into his bedroom and returned in a few minutes in
-the character of an amiable and simple-minded Nonconformist
-clergyman. His broad black hat, his baggy trousers, his white
-tie, his sympathetic smile, and general look of peering and
-benevolent curiosity were such as Mr. John Hare alone could have
-equalled. It was not merely that Holmes changed his costume. His
-expression, his manner, his very soul seemed to vary with every
-fresh part that he assumed. The stage lost a fine actor, even as
-science lost an acute reasoner, when he became a specialist in
-crime.
-
-It was a quarter past six when we left Baker Street, and it still
-wanted ten minutes to the hour when we found ourselves in
-Serpentine Avenue. It was already dusk, and the lamps were just
-being lighted as we paced up and down in front of Briony Lodge,
-waiting for the coming of its occupant. The house was just such
-as I had pictured it from Sherlock Holmes' succinct description,
-but the locality appeared to be less private than I expected. On
-the contrary, for a small street in a quiet neighbourhood, it was
-remarkably animated. There was a group of shabbily dressed men
-smoking and laughing in a corner, a scissors-grinder with his
-wheel, two guardsmen who were flirting with a nurse-girl, and
-several well-dressed young men who were lounging up and down with
-cigars in their mouths.
-
-"You see," remarked Holmes, as we paced to and fro in front of
-the house, "this marriage rather simplifies matters. The
-photograph becomes a double-edged weapon now. The chances are
-that she would be as averse to its being seen by Mr. Godfrey
-Norton, as our client is to its coming to the eyes of his
-princess. Now the question is, Where are we to find the
-photograph?"
-
-"Where, indeed?"
-
-"It is most unlikely that she carries it about with her. It is
-cabinet size. Too large for easy concealment about a woman's
-dress. She knows that the King is capable of having her waylaid
-and searched. Two attempts of the sort have already been made. We
-may take it, then, that she does not carry it about with her."
-
-"Where, then?"
-
-"Her banker or her lawyer. There is that double possibility. But
-I am inclined to think neither. Women are naturally secretive,
-and they like to do their own secreting. Why should she hand it
-over to anyone else? She could trust her own guardianship, but
-she could not tell what indirect or political influence might be
-brought to bear upon a business man. Besides, remember that she
-had resolved to use it within a few days. It must be where she
-can lay her hands upon it. It must be in her own house."
-
-"But it has twice been burgled."
-
-"Pshaw! They did not know how to look."
-
-"But how will you look?"
-
-"I will not look."
-
-"What then?"
-
-"I will get her to show me."
-
-"But she will refuse."
-
-"She will not be able to. But I hear the rumble of wheels. It is
-her carriage. Now carry out my orders to the letter."
-
-As he spoke the gleam of the side-lights of a carriage came round
-the curve of the avenue. It was a smart little landau which
-rattled up to the door of Briony Lodge. As it pulled up, one of
-the loafing men at the corner dashed forward to open the door in
-the hope of earning a copper, but was elbowed away by another
-loafer, who had rushed up with the same intention. A fierce
-quarrel broke out, which was increased by the two guardsmen, who
-took sides with one of the loungers, and by the scissors-grinder,
-who was equally hot upon the other side. A blow was struck, and
-in an instant the lady, who had stepped from her carriage, was
-the centre of a little knot of flushed and struggling men, who
-struck savagely at each other with their fists and sticks. Holmes
-dashed into the crowd to protect the lady; but just as he reached
-her he gave a cry and dropped to the ground, with the blood
-running freely down his face. At his fall the guardsmen took to
-their heels in one direction and the loungers in the other, while
-a number of better-dressed people, who had watched the scuffle
-without taking part in it, crowded in to help the lady and to
-attend to the injured man. Irene Adler, as I will still call her,
-had hurried up the steps; but she stood at the top with her
-superb figure outlined against the lights of the hall, looking
-back into the street.
-
-"Is the poor gentleman much hurt?" she asked.
-
-"He is dead," cried several voices.
-
-"No, no, there's life in him!" shouted another. "But he'll be
-gone before you can get him to hospital."
-
-"He's a brave fellow," said a woman. "They would have had the
-lady's purse and watch if it hadn't been for him. They were a
-gang, and a rough one, too. Ah, he's breathing now."
-
-"He can't lie in the street. May we bring him in, marm?"
-
-"Surely. Bring him into the sitting-room. There is a comfortable
-sofa. This way, please!"
-
-Slowly and solemnly he was borne into Briony Lodge and laid out
-in the principal room, while I still observed the proceedings
-from my post by the window. The lamps had been lit, but the
-blinds had not been drawn, so that I could see Holmes as he lay
-upon the couch. I do not know whether he was seized with
-compunction at that moment for the part he was playing, but I
-know that I never felt more heartily ashamed of myself in my life
-than when I saw the beautiful creature against whom I was
-conspiring, or the grace and kindliness with which she waited
-upon the injured man. And yet it would be the blackest treachery
-to Holmes to draw back now from the part which he had intrusted
-to me. I hardened my heart, and took the smoke-rocket from under
-my ulster. After all, I thought, we are not injuring her. We are
-but preventing her from injuring another.
-
-Holmes had sat up upon the couch, and I saw him motion like a man
-who is in need of air. A maid rushed across and threw open the
-window. At the same instant I saw him raise his hand and at the
-signal I tossed my rocket into the room with a cry of "Fire!" The
-word was no sooner out of my mouth than the whole crowd of
-spectators, well dressed and ill--gentlemen, ostlers, and
-servant-maids--joined in a general shriek of "Fire!" Thick clouds
-of smoke curled through the room and out at the open window. I
-caught a glimpse of rushing figures, and a moment later the voice
-of Holmes from within assuring them that it was a false alarm.
-Slipping through the shouting crowd I made my way to the corner
-of the street, and in ten minutes was rejoiced to find my
-friend's arm in mine, and to get away from the scene of uproar.
-He walked swiftly and in silence for some few minutes until we
-had turned down one of the quiet streets which lead towards the
-Edgeware Road.
-
-"You did it very nicely, Doctor," he remarked. "Nothing could
-have been better. It is all right."
-
-"You have the photograph?"
-
-"I know where it is."
-
-"And how did you find out?"
-
-"She showed me, as I told you she would."
-
-"I am still in the dark."
-
-"I do not wish to make a mystery," said he, laughing. "The matter
-was perfectly simple. You, of course, saw that everyone in the
-street was an accomplice. They were all engaged for the evening."
-
-"I guessed as much."
-
-"Then, when the row broke out, I had a little moist red paint in
-the palm of my hand. I rushed forward, fell down, clapped my hand
-to my face, and became a piteous spectacle. It is an old trick."
-
-"That also I could fathom."
-
-"Then they carried me in. She was bound to have me in. What else
-could she do? And into her sitting-room, which was the very room
-which I suspected. It lay between that and her bedroom, and I was
-determined to see which. They laid me on a couch, I motioned for
-air, they were compelled to open the window, and you had your
-chance."
-
-"How did that help you?"
-
-"It was all-important. When a woman thinks that her house is on
-fire, her instinct is at once to rush to the thing which she
-values most. It is a perfectly overpowering impulse, and I have
-more than once taken advantage of it. In the case of the
-Darlington substitution scandal it was of use to me, and also in
-the Arnsworth Castle business. A married woman grabs at her baby;
-an unmarried one reaches for her jewel-box. Now it was clear to
-me that our lady of to-day had nothing in the house more precious
-to her than what we are in quest of. She would rush to secure it.
-The alarm of fire was admirably done. The smoke and shouting were
-enough to shake nerves of steel. She responded beautifully. The
-photograph is in a recess behind a sliding panel just above the
-right bell-pull. She was there in an instant, and I caught a
-glimpse of it as she half-drew it out. When I cried out that it
-was a false alarm, she replaced it, glanced at the rocket, rushed
-from the room, and I have not seen her since. I rose, and, making
-my excuses, escaped from the house. I hesitated whether to
-attempt to secure the photograph at once; but the coachman had
-come in, and as he was watching me narrowly it seemed safer to
-wait. A little over-precipitance may ruin all."
-
-"And now?" I asked.
-
-"Our quest is practically finished. I shall call with the King
-to-morrow, and with you, if you care to come with us. We will be
-shown into the sitting-room to wait for the lady, but it is
-probable that when she comes she may find neither us nor the
-photograph. It might be a satisfaction to his Majesty to regain
-it with his own hands."
-
-"And when will you call?"
-
-"At eight in the morning. She will not be up, so that we shall
-have a clear field. Besides, we must be prompt, for this marriage
-may mean a complete change in her life and habits. I must wire to
-the King without delay."
-
-We had reached Baker Street and had stopped at the door. He was
-searching his pockets for the key when someone passing said:
-
-"Good-night, Mister Sherlock Holmes."
-
-There were several people on the pavement at the time, but the
-greeting appeared to come from a slim youth in an ulster who had
-hurried by.
-
-"I've heard that voice before," said Holmes, staring down the
-dimly lit street. "Now, I wonder who the deuce that could have
-been."
-
-
-III.
-
-I slept at Baker Street that night, and we were engaged upon our
-toast and coffee in the morning when the King of Bohemia rushed
-into the room.
-
-"You have really got it!" he cried, grasping Sherlock Holmes by
-either shoulder and looking eagerly into his face.
-
-"Not yet."
-
-"But you have hopes?"
-
-"I have hopes."
-
-"Then, come. I am all impatience to be gone."
-
-"We must have a cab."
-
-"No, my brougham is waiting."
-
-"Then that will simplify matters." We descended and started off
-once more for Briony Lodge.
-
-"Irene Adler is married," remarked Holmes.
-
-"Married! When?"
-
-"Yesterday."
-
-"But to whom?"
-
-"To an English lawyer named Norton."
-
-"But she could not love him."
-
-"I am in hopes that she does."
-
-"And why in hopes?"
-
-"Because it would spare your Majesty all fear of future
-annoyance. If the lady loves her husband, she does not love your
-Majesty. If she does not love your Majesty, there is no reason
-why she should interfere with your Majesty's plan."
-
-"It is true. And yet--Well! I wish she had been of my own
-station! What a queen she would have made!" He relapsed into a
-moody silence, which was not broken until we drew up in
-Serpentine Avenue.
-
-The door of Briony Lodge was open, and an elderly woman stood
-upon the steps. She watched us with a sardonic eye as we stepped
-from the brougham.
-
-"Mr. Sherlock Holmes, I believe?" said she.
-
-"I am Mr. Holmes," answered my companion, looking at her with a
-questioning and rather startled gaze.
-
-"Indeed! My mistress told me that you were likely to call. She
-left this morning with her husband by the 5:15 train from Charing
-Cross for the Continent."
-
-"What!" Sherlock Holmes staggered back, white with chagrin and
-surprise. "Do you mean that she has left England?"
-
-"Never to return."
-
-"And the papers?" asked the King hoarsely. "All is lost."
-
-"We shall see." He pushed past the servant and rushed into the
-drawing-room, followed by the King and myself. The furniture was
-scattered about in every direction, with dismantled shelves and
-open drawers, as if the lady had hurriedly ransacked them before
-her flight. Holmes rushed at the bell-pull, tore back a small
-sliding shutter, and, plunging in his hand, pulled out a
-photograph and a letter. The photograph was of Irene Adler
-herself in evening dress, the letter was superscribed to
-"Sherlock Holmes, Esq. To be left till called for." My friend
-tore it open and we all three read it together. It was dated at
-midnight of the preceding night and ran in this way:
-
-"MY DEAR MR. SHERLOCK HOLMES,--You really did it very well. You
-took me in completely. Until after the alarm of fire, I had not a
-suspicion. But then, when I found how I had betrayed myself, I
-began to think. I had been warned against you months ago. I had
-been told that if the King employed an agent it would certainly
-be you. And your address had been given me. Yet, with all this,
-you made me reveal what you wanted to know. Even after I became
-suspicious, I found it hard to think evil of such a dear, kind
-old clergyman. But, you know, I have been trained as an actress
-myself. Male costume is nothing new to me. I often take advantage
-of the freedom which it gives. I sent John, the coachman, to
-watch you, ran up stairs, got into my walking-clothes, as I call
-them, and came down just as you departed.
-
-"Well, I followed you to your door, and so made sure that I was
-really an object of interest to the celebrated Mr. Sherlock
-Holmes. Then I, rather imprudently, wished you good-night, and
-started for the Temple to see my husband.
-
-"We both thought the best resource was flight, when pursued by
-so formidable an antagonist; so you will find the nest empty when
-you call to-morrow. As to the photograph, your client may rest in
-peace. I love and am loved by a better man than he. The King may
-do what he will without hindrance from one whom he has cruelly
-wronged. I keep it only to safeguard myself, and to preserve a
-weapon which will always secure me from any steps which he might
-take in the future. I leave a photograph which he might care to
-possess; and I remain, dear Mr. Sherlock Holmes,
-
- "Very truly yours,
- "IRENE NORTON, née ADLER."
-
-"What a woman--oh, what a woman!" cried the King of Bohemia, when
-we had all three read this epistle. "Did I not tell you how quick
-and resolute she was? Would she not have made an admirable queen?
-Is it not a pity that she was not on my level?"
-
-"From what I have seen of the lady she seems indeed to be on a
-very different level to your Majesty," said Holmes coldly. "I am
-sorry that I have not been able to bring your Majesty's business
-to a more successful conclusion."
-
-"On the contrary, my dear sir," cried the King; "nothing could be
-more successful. I know that her word is inviolate. The
-photograph is now as safe as if it were in the fire."
-
-"I am glad to hear your Majesty say so."
-
-"I am immensely indebted to you. Pray tell me in what way I can
-reward you. This ring--" He slipped an emerald snake ring from
-his finger and held it out upon the palm of his hand.
-
-"Your Majesty has something which I should value even more
-highly," said Holmes.
-
-"You have but to name it."
-
-"This photograph!"
-
-The King stared at him in amazement.
-
-"Irene's photograph!" he cried. "Certainly, if you wish it."
-
-"I thank your Majesty. Then there is no more to be done in the
-matter. I have the honour to wish you a very good-morning." He
-bowed, and, turning away without observing the hand which the
-King had stretched out to him, he set off in my company for his
-chambers.
-
-And that was how a great scandal threatened to affect the kingdom
-of Bohemia, and how the best plans of Mr. Sherlock Holmes were
-beaten by a woman's wit. He used to make merry over the
-cleverness of women, but I have not heard him do it of late. And
-when he speaks of Irene Adler, or when he refers to her
-photograph, it is always under the honourable title of the woman.
-
-
-
-ADVENTURE II. THE RED-HEADED LEAGUE
-
-I had called upon my friend, Mr. Sherlock Holmes, one day in the
-autumn of last year and found him in deep conversation with a
-very stout, florid-faced, elderly gentleman with fiery red hair.
-With an apology for my intrusion, I was about to withdraw when
-Holmes pulled me abruptly into the room and closed the door
-behind me.
-
-"You could not possibly have come at a better time, my dear
-Watson," he said cordially.
-
-"I was afraid that you were engaged."
-
-"So I am. Very much so."
-
-"Then I can wait in the next room."
-
-"Not at all. This gentleman, Mr. Wilson, has been my partner and
-helper in many of my most successful cases, and I have no
-doubt that he will be of the utmost use to me in yours also."
-
-The stout gentleman half rose from his chair and gave a bob of
-greeting, with a quick little questioning glance from his small
-fat-encircled eyes.
-
-"Try the settee," said Holmes, relapsing into his armchair and
-putting his fingertips together, as was his custom when in
-judicial moods. "I know, my dear Watson, that you share my love
-of all that is bizarre and outside the conventions and humdrum
-routine of everyday life. You have shown your relish for it by
-the enthusiasm which has prompted you to chronicle, and, if you
-will excuse my saying so, somewhat to embellish so many of my own
-little adventures."
-
-"Your cases have indeed been of the greatest interest to me," I
-observed.
-
-"You will remember that I remarked the other day, just before we
-went into the very simple problem presented by Miss Mary
-Sutherland, that for strange effects and extraordinary
-combinations we must go to life itself, which is always far more
-daring than any effort of the imagination."
-
-"A proposition which I took the liberty of doubting."
-
-"You did, Doctor, but none the less you must come round to my
-view, for otherwise I shall keep on piling fact upon fact on you
-until your reason breaks down under them and acknowledges me to
-be right. Now, Mr. Jabez Wilson here has been good enough to call
-upon me this morning, and to begin a narrative which promises to
-be one of the most singular which I have listened to for some
-time. You have heard me remark that the strangest and most unique
-things are very often connected not with the larger but with the
-smaller crimes, and occasionally, indeed, where there is room for
-doubt whether any positive crime has been committed. As far as I
-have heard it is impossible for me to say whether the present
-case is an instance of crime or not, but the course of events is
-certainly among the most singular that I have ever listened to.
-Perhaps, Mr. Wilson, you would have the great kindness to
-recommence your narrative. I ask you not merely because my friend
-Dr. Watson has not heard the opening part but also because the
-peculiar nature of the story makes me anxious to have every
-possible detail from your lips. As a rule, when I have heard some
-slight indication of the course of events, I am able to guide
-myself by the thousands of other similar cases which occur to my
-memory. In the present instance I am forced to admit that the
-facts are, to the best of my belief, unique."
-
-The portly client puffed out his chest with an appearance of some
-little pride and pulled a dirty and wrinkled newspaper from the
-inside pocket of his greatcoat. As he glanced down the
-advertisement column, with his head thrust forward and the paper
-flattened out upon his knee, I took a good look at the man and
-endeavoured, after the fashion of my companion, to read the
-indications which might be presented by his dress or appearance.
-
-I did not gain very much, however, by my inspection. Our visitor
-bore every mark of being an average commonplace British
-tradesman, obese, pompous, and slow. He wore rather baggy grey
-shepherd's check trousers, a not over-clean black frock-coat,
-unbuttoned in the front, and a drab waistcoat with a heavy brassy
-Albert chain, and a square pierced bit of metal dangling down as
-an ornament. A frayed top-hat and a faded brown overcoat with a
-wrinkled velvet collar lay upon a chair beside him. Altogether,
-look as I would, there was nothing remarkable about the man save
-his blazing red head, and the expression of extreme chagrin and
-discontent upon his features.
-
-Sherlock Holmes' quick eye took in my occupation, and he shook
-his head with a smile as he noticed my questioning glances.
-"Beyond the obvious facts that he has at some time done manual
-labour, that he takes snuff, that he is a Freemason, that he has
-been in China, and that he has done a considerable amount of
-writing lately, I can deduce nothing else."
-
-Mr. Jabez Wilson started up in his chair, with his forefinger
-upon the paper, but his eyes upon my companion.
-
-"How, in the name of good-fortune, did you know all that, Mr.
-Holmes?" he asked. "How did you know, for example, that I did
-manual labour. It's as true as gospel, for I began as a ship's
-carpenter."
-
-"Your hands, my dear sir. Your right hand is quite a size larger
-than your left. You have worked with it, and the muscles are more
-developed."
-
-"Well, the snuff, then, and the Freemasonry?"
-
-"I won't insult your intelligence by telling you how I read that,
-especially as, rather against the strict rules of your order, you
-use an arc-and-compass breastpin."
-
-"Ah, of course, I forgot that. But the writing?"
-
-"What else can be indicated by that right cuff so very shiny for
-five inches, and the left one with the smooth patch near the
-elbow where you rest it upon the desk?"
-
-"Well, but China?"
-
-"The fish that you have tattooed immediately above your right
-wrist could only have been done in China. I have made a small
-study of tattoo marks and have even contributed to the literature
-of the subject. That trick of staining the fishes' scales of a
-delicate pink is quite peculiar to China. When, in addition, I
-see a Chinese coin hanging from your watch-chain, the matter
-becomes even more simple."
-
-Mr. Jabez Wilson laughed heavily. "Well, I never!" said he. "I
-thought at first that you had done something clever, but I see
-that there was nothing in it, after all."
-
-"I begin to think, Watson," said Holmes, "that I make a mistake
-in explaining. 'Omne ignotum pro magnifico,' you know, and my
-poor little reputation, such as it is, will suffer shipwreck if I
-am so candid. Can you not find the advertisement, Mr. Wilson?"
-
-"Yes, I have got it now," he answered with his thick red finger
-planted halfway down the column. "Here it is. This is what began
-it all. You just read it for yourself, sir."
-
-I took the paper from him and read as follows:
-
-"TO THE RED-HEADED LEAGUE: On account of the bequest of the late
-Ezekiah Hopkins, of Lebanon, Pennsylvania, U. S. A., there is now
-another vacancy open which entitles a member of the League to a
-salary of 4 pounds a week for purely nominal services. All
-red-headed men who are sound in body and mind and above the age
-of twenty-one years, are eligible. Apply in person on Monday, at
-eleven o'clock, to Duncan Ross, at the offices of the League, 7
-Pope's Court, Fleet Street."
-
-"What on earth does this mean?" I ejaculated after I had twice
-read over the extraordinary announcement.
-
-Holmes chuckled and wriggled in his chair, as was his habit when
-in high spirits. "It is a little off the beaten track, isn't it?"
-said he. "And now, Mr. Wilson, off you go at scratch and tell us
-all about yourself, your household, and the effect which this
-advertisement had upon your fortunes. You will first make a note,
-Doctor, of the paper and the date."
-
-"It is The Morning Chronicle of April 27, 1890. Just two months
-ago."
-
-"Very good. Now, Mr. Wilson?"
-
-"Well, it is just as I have been telling you, Mr. Sherlock
-Holmes," said Jabez Wilson, mopping his forehead; "I have a small
-pawnbroker's business at Coburg Square, near the City. It's not a
-very large affair, and of late years it has not done more than
-just give me a living. I used to be able to keep two assistants,
-but now I only keep one; and I would have a job to pay him but
-that he is willing to come for half wages so as to learn the
-business."
-
-"What is the name of this obliging youth?" asked Sherlock Holmes.
-
-"His name is Vincent Spaulding, and he's not such a youth,
-either. It's hard to say his age. I should not wish a smarter
-assistant, Mr. Holmes; and I know very well that he could better
-himself and earn twice what I am able to give him. But, after
-all, if he is satisfied, why should I put ideas in his head?"
-
-"Why, indeed? You seem most fortunate in having an employé who
-comes under the full market price. It is not a common experience
-among employers in this age. I don't know that your assistant is
-not as remarkable as your advertisement."
-
-"Oh, he has his faults, too," said Mr. Wilson. "Never was such a
-fellow for photography. Snapping away with a camera when he ought
-to be improving his mind, and then diving down into the cellar
-like a rabbit into its hole to develop his pictures. That is his
-main fault, but on the whole he's a good worker. There's no vice
-in him."
-
-"He is still with you, I presume?"
-
-"Yes, sir. He and a girl of fourteen, who does a bit of simple
-cooking and keeps the place clean--that's all I have in the
-house, for I am a widower and never had any family. We live very
-quietly, sir, the three of us; and we keep a roof over our heads
-and pay our debts, if we do nothing more.
-
-"The first thing that put us out was that advertisement.
-Spaulding, he came down into the office just this day eight
-weeks, with this very paper in his hand, and he says:
-
-"'I wish to the Lord, Mr. Wilson, that I was a red-headed man.'
-
-"'Why that?' I asks.
-
-"'Why,' says he, 'here's another vacancy on the League of the
-Red-headed Men. It's worth quite a little fortune to any man who
-gets it, and I understand that there are more vacancies than
-there are men, so that the trustees are at their wits' end what
-to do with the money. If my hair would only change colour, here's
-a nice little crib all ready for me to step into.'
-
-"'Why, what is it, then?' I asked. You see, Mr. Holmes, I am a
-very stay-at-home man, and as my business came to me instead of
-my having to go to it, I was often weeks on end without putting
-my foot over the door-mat. In that way I didn't know much of what
-was going on outside, and I was always glad of a bit of news.
-
-"'Have you never heard of the League of the Red-headed Men?' he
-asked with his eyes open.
-
-"'Never.'
-
-"'Why, I wonder at that, for you are eligible yourself for one
-of the vacancies.'
-
-"'And what are they worth?' I asked.
-
-"'Oh, merely a couple of hundred a year, but the work is slight,
-and it need not interfere very much with one's other
-occupations.'
-
-"Well, you can easily think that that made me prick up my ears,
-for the business has not been over-good for some years, and an
-extra couple of hundred would have been very handy.
-
-"'Tell me all about it,' said I.
-
-"'Well,' said he, showing me the advertisement, 'you can see for
-yourself that the League has a vacancy, and there is the address
-where you should apply for particulars. As far as I can make out,
-the League was founded by an American millionaire, Ezekiah
-Hopkins, who was very peculiar in his ways. He was himself
-red-headed, and he had a great sympathy for all red-headed men;
-so when he died it was found that he had left his enormous
-fortune in the hands of trustees, with instructions to apply the
-interest to the providing of easy berths to men whose hair is of
-that colour. From all I hear it is splendid pay and very little to
-do.'
-
-"'But,' said I, 'there would be millions of red-headed men who
-would apply.'
-
-"'Not so many as you might think,' he answered. 'You see it is
-really confined to Londoners, and to grown men. This American had
-started from London when he was young, and he wanted to do the
-old town a good turn. Then, again, I have heard it is no use your
-applying if your hair is light red, or dark red, or anything but
-real bright, blazing, fiery red. Now, if you cared to apply, Mr.
-Wilson, you would just walk in; but perhaps it would hardly be
-worth your while to put yourself out of the way for the sake of a
-few hundred pounds.'
-
-"Now, it is a fact, gentlemen, as you may see for yourselves,
-that my hair is of a very full and rich tint, so that it seemed
-to me that if there was to be any competition in the matter I
-stood as good a chance as any man that I had ever met. Vincent
-Spaulding seemed to know so much about it that I thought he might
-prove useful, so I just ordered him to put up the shutters for
-the day and to come right away with me. He was very willing to
-have a holiday, so we shut the business up and started off for
-the address that was given us in the advertisement.
-
-"I never hope to see such a sight as that again, Mr. Holmes. From
-north, south, east, and west every man who had a shade of red in
-his hair had tramped into the city to answer the advertisement.
-Fleet Street was choked with red-headed folk, and Pope's Court
-looked like a coster's orange barrow. I should not have thought
-there were so many in the whole country as were brought together
-by that single advertisement. Every shade of colour they
-were--straw, lemon, orange, brick, Irish-setter, liver, clay;
-but, as Spaulding said, there were not many who had the real
-vivid flame-coloured tint. When I saw how many were waiting, I
-would have given it up in despair; but Spaulding would not hear
-of it. How he did it I could not imagine, but he pushed and
-pulled and butted until he got me through the crowd, and right up
-to the steps which led to the office. There was a double stream
-upon the stair, some going up in hope, and some coming back
-dejected; but we wedged in as well as we could and soon found
-ourselves in the office."
-
-"Your experience has been a most entertaining one," remarked
-Holmes as his client paused and refreshed his memory with a huge
-pinch of snuff. "Pray continue your very interesting statement."
-
-"There was nothing in the office but a couple of wooden chairs
-and a deal table, behind which sat a small man with a head that
-was even redder than mine. He said a few words to each candidate
-as he came up, and then he always managed to find some fault in
-them which would disqualify them. Getting a vacancy did not seem
-to be such a very easy matter, after all. However, when our turn
-came the little man was much more favourable to me than to any of
-the others, and he closed the door as we entered, so that he
-might have a private word with us.
-
-"'This is Mr. Jabez Wilson,' said my assistant, 'and he is
-willing to fill a vacancy in the League.'
-
-"'And he is admirably suited for it,' the other answered. 'He has
-every requirement. I cannot recall when I have seen anything so
-fine.' He took a step backward, cocked his head on one side, and
-gazed at my hair until I felt quite bashful. Then suddenly he
-plunged forward, wrung my hand, and congratulated me warmly on my
-success.
-
-"'It would be injustice to hesitate,' said he. 'You will,
-however, I am sure, excuse me for taking an obvious precaution.'
-With that he seized my hair in both his hands, and tugged until I
-yelled with the pain. 'There is water in your eyes,' said he as
-he released me. 'I perceive that all is as it should be. But we
-have to be careful, for we have twice been deceived by wigs and
-once by paint. I could tell you tales of cobbler's wax which
-would disgust you with human nature.' He stepped over to the
-window and shouted through it at the top of his voice that the
-vacancy was filled. A groan of disappointment came up from below,
-and the folk all trooped away in different directions until there
-was not a red-head to be seen except my own and that of the
-manager.
-
-"'My name,' said he, 'is Mr. Duncan Ross, and I am myself one of
-the pensioners upon the fund left by our noble benefactor. Are
-you a married man, Mr. Wilson? Have you a family?'
-
-"I answered that I had not.
-
-"His face fell immediately.
-
-"'Dear me!' he said gravely, 'that is very serious indeed! I am
-sorry to hear you say that. The fund was, of course, for the
-propagation and spread of the red-heads as well as for their
-maintenance. It is exceedingly unfortunate that you should be a
-bachelor.'
-
-"My face lengthened at this, Mr. Holmes, for I thought that I was
-not to have the vacancy after all; but after thinking it over for
-a few minutes he said that it would be all right.
-
-"'In the case of another,' said he, 'the objection might be
-fatal, but we must stretch a point in favour of a man with such a
-head of hair as yours. When shall you be able to enter upon your
-new duties?'
-
-"'Well, it is a little awkward, for I have a business already,'
-said I.
-
-"'Oh, never mind about that, Mr. Wilson!' said Vincent Spaulding.
-'I should be able to look after that for you.'
-
-"'What would be the hours?' I asked.
-
-"'Ten to two.'
-
-"Now a pawnbroker's business is mostly done of an evening, Mr.
-Holmes, especially Thursday and Friday evening, which is just
-before pay-day; so it would suit me very well to earn a little in
-the mornings. Besides, I knew that my assistant was a good man,
-and that he would see to anything that turned up.
-
-"'That would suit me very well,' said I. 'And the pay?'
-
-"'Is 4 pounds a week.'
-
-"'And the work?'
-
-"'Is purely nominal.'
-
-"'What do you call purely nominal?'
-
-"'Well, you have to be in the office, or at least in the
-building, the whole time. If you leave, you forfeit your whole
-position forever. The will is very clear upon that point. You
-don't comply with the conditions if you budge from the office
-during that time.'
-
-"'It's only four hours a day, and I should not think of leaving,'
-said I.
-
-"'No excuse will avail,' said Mr. Duncan Ross; 'neither sickness
-nor business nor anything else. There you must stay, or you lose
-your billet.'
-
-"'And the work?'
-
-"'Is to copy out the "Encyclopaedia Britannica." There is the first
-volume of it in that press. You must find your own ink, pens, and
-blotting-paper, but we provide this table and chair. Will you be
-ready to-morrow?'
-
-"'Certainly,' I answered.
-
-"'Then, good-bye, Mr. Jabez Wilson, and let me congratulate you
-once more on the important position which you have been fortunate
-enough to gain.' He bowed me out of the room and I went home with
-my assistant, hardly knowing what to say or do, I was so pleased
-at my own good fortune.
-
-"Well, I thought over the matter all day, and by evening I was in
-low spirits again; for I had quite persuaded myself that the
-whole affair must be some great hoax or fraud, though what its
-object might be I could not imagine. It seemed altogether past
-belief that anyone could make such a will, or that they would pay
-such a sum for doing anything so simple as copying out the
-'Encyclopaedia Britannica.' Vincent Spaulding did what he could to
-cheer me up, but by bedtime I had reasoned myself out of the
-whole thing. However, in the morning I determined to have a look
-at it anyhow, so I bought a penny bottle of ink, and with a
-quill-pen, and seven sheets of foolscap paper, I started off for
-Pope's Court.
-
-"Well, to my surprise and delight, everything was as right as
-possible. The table was set out ready for me, and Mr. Duncan Ross
-was there to see that I got fairly to work. He started me off
-upon the letter A, and then he left me; but he would drop in from
-time to time to see that all was right with me. At two o'clock he
-bade me good-day, complimented me upon the amount that I had
-written, and locked the door of the office after me.
-
-"This went on day after day, Mr. Holmes, and on Saturday the
-manager came in and planked down four golden sovereigns for my
-week's work. It was the same next week, and the same the week
-after. Every morning I was there at ten, and every afternoon I
-left at two. By degrees Mr. Duncan Ross took to coming in only
-once of a morning, and then, after a time, he did not come in at
-all. Still, of course, I never dared to leave the room for an
-instant, for I was not sure when he might come, and the billet
-was such a good one, and suited me so well, that I would not risk
-the loss of it.
-
-"Eight weeks passed away like this, and I had written about
-Abbots and Archery and Armour and Architecture and Attica, and
-hoped with diligence that I might get on to the B's before very
-long. It cost me something in foolscap, and I had pretty nearly
-filled a shelf with my writings. And then suddenly the whole
-business came to an end."
-
-"To an end?"
-
-"Yes, sir. And no later than this morning. I went to my work as
-usual at ten o'clock, but the door was shut and locked, with a
-little square of cardboard hammered on to the middle of the
-panel with a tack. Here it is, and you can read for yourself."
-
-He held up a piece of white cardboard about the size of a sheet
-of note-paper. It read in this fashion:
-
- THE RED-HEADED LEAGUE
-
- IS
-
- DISSOLVED.
-
- October 9, 1890.
-
-Sherlock Holmes and I surveyed this curt announcement and the
-rueful face behind it, until the comical side of the affair so
-completely overtopped every other consideration that we both
-burst out into a roar of laughter.
-
-"I cannot see that there is anything very funny," cried our
-client, flushing up to the roots of his flaming head. "If you can
-do nothing better than laugh at me, I can go elsewhere."
-
-"No, no," cried Holmes, shoving him back into the chair from
-which he had half risen. "I really wouldn't miss your case for
-the world. It is most refreshingly unusual. But there is, if you
-will excuse my saying so, something just a little funny about it.
-Pray what steps did you take when you found the card upon the
-door?"
-
-"I was staggered, sir. I did not know what to do. Then I called
-at the offices round, but none of them seemed to know anything
-about it. Finally, I went to the landlord, who is an accountant
-living on the ground-floor, and I asked him if he could tell me
-what had become of the Red-headed League. He said that he had
-never heard of any such body. Then I asked him who Mr. Duncan
-Ross was. He answered that the name was new to him.
-
-"'Well,' said I, 'the gentleman at No. 4.'
-
-"'What, the red-headed man?'
-
-"'Yes.'
-
-"'Oh,' said he, 'his name was William Morris. He was a solicitor
-and was using my room as a temporary convenience until his new
-premises were ready. He moved out yesterday.'
-
-"'Where could I find him?'
-
-"'Oh, at his new offices. He did tell me the address. Yes, 17
-King Edward Street, near St. Paul's.'
-
-"I started off, Mr. Holmes, but when I got to that address it was
-a manufactory of artificial knee-caps, and no one in it had ever
-heard of either Mr. William Morris or Mr. Duncan Ross."
-
-"And what did you do then?" asked Holmes.
-
-"I went home to Saxe-Coburg Square, and I took the advice of my
-assistant. But he could not help me in any way. He could only say
-that if I waited I should hear by post. But that was not quite
-good enough, Mr. Holmes. I did not wish to lose such a place
-without a struggle, so, as I had heard that you were good enough
-to give advice to poor folk who were in need of it, I came right
-away to you."
-
-"And you did very wisely," said Holmes. "Your case is an
-exceedingly remarkable one, and I shall be happy to look into it.
-From what you have told me I think that it is possible that
-graver issues hang from it than might at first sight appear."
-
-"Grave enough!" said Mr. Jabez Wilson. "Why, I have lost four
-pound a week."
-
-"As far as you are personally concerned," remarked Holmes, "I do
-not see that you have any grievance against this extraordinary
-league. On the contrary, you are, as I understand, richer by some
-30 pounds, to say nothing of the minute knowledge which you have
-gained on every subject which comes under the letter A. You have
-lost nothing by them."
-
-"No, sir. But I want to find out about them, and who they are,
-and what their object was in playing this prank--if it was a
-prank--upon me. It was a pretty expensive joke for them, for it
-cost them two and thirty pounds."
-
-"We shall endeavour to clear up these points for you. And, first,
-one or two questions, Mr. Wilson. This assistant of yours who
-first called your attention to the advertisement--how long had he
-been with you?"
-
-"About a month then."
-
-"How did he come?"
-
-"In answer to an advertisement."
-
-"Was he the only applicant?"
-
-"No, I had a dozen."
-
-"Why did you pick him?"
-
-"Because he was handy and would come cheap."
-
-"At half-wages, in fact."
-
-"Yes."
-
-"What is he like, this Vincent Spaulding?"
-
-"Small, stout-built, very quick in his ways, no hair on his face,
-though he's not short of thirty. Has a white splash of acid upon
-his forehead."
-
-Holmes sat up in his chair in considerable excitement. "I thought
-as much," said he. "Have you ever observed that his ears are
-pierced for earrings?"
-
-"Yes, sir. He told me that a gipsy had done it for him when he
-was a lad."
-
-"Hum!" said Holmes, sinking back in deep thought. "He is still
-with you?"
-
-"Oh, yes, sir; I have only just left him."
-
-"And has your business been attended to in your absence?"
-
-"Nothing to complain of, sir. There's never very much to do of a
-morning."
-
-"That will do, Mr. Wilson. I shall be happy to give you an
-opinion upon the subject in the course of a day or two. To-day is
-Saturday, and I hope that by Monday we may come to a conclusion."
-
-"Well, Watson," said Holmes when our visitor had left us, "what
-do you make of it all?"
-
-"I make nothing of it," I answered frankly. "It is a most
-mysterious business."
-
-"As a rule," said Holmes, "the more bizarre a thing is the less
-mysterious it proves to be. It is your commonplace, featureless
-crimes which are really puzzling, just as a commonplace face is
-the most difficult to identify. But I must be prompt over this
-matter."
-
-"What are you going to do, then?" I asked.
-
-"To smoke," he answered. "It is quite a three pipe problem, and I
-beg that you won't speak to me for fifty minutes." He curled
-himself up in his chair, with his thin knees drawn up to his
-hawk-like nose, and there he sat with his eyes closed and his
-black clay pipe thrusting out like the bill of some strange bird.
-I had come to the conclusion that he had dropped asleep, and
-indeed was nodding myself, when he suddenly sprang out of his
-chair with the gesture of a man who has made up his mind and put
-his pipe down upon the mantelpiece.
-
-"Sarasate plays at the St. James's Hall this afternoon," he
-remarked. "What do you think, Watson? Could your patients spare
-you for a few hours?"
-
-"I have nothing to do to-day. My practice is never very
-absorbing."
-
-"Then put on your hat and come. I am going through the City
-first, and we can have some lunch on the way. I observe that
-there is a good deal of German music on the programme, which is
-rather more to my taste than Italian or French. It is
-introspective, and I want to introspect. Come along!"
-
-We travelled by the Underground as far as Aldersgate; and a short
-walk took us to Saxe-Coburg Square, the scene of the singular
-story which we had listened to in the morning. It was a poky,
-little, shabby-genteel place, where four lines of dingy
-two-storied brick houses looked out into a small railed-in
-enclosure, where a lawn of weedy grass and a few clumps of faded
-laurel-bushes made a hard fight against a smoke-laden and
-uncongenial atmosphere. Three gilt balls and a brown board with
-"JABEZ WILSON" in white letters, upon a corner house, announced
-the place where our red-headed client carried on his business.
-Sherlock Holmes stopped in front of it with his head on one side
-and looked it all over, with his eyes shining brightly between
-puckered lids. Then he walked slowly up the street, and then down
-again to the corner, still looking keenly at the houses. Finally
-he returned to the pawnbroker's, and, having thumped vigorously
-upon the pavement with his stick two or three times, he went up
-to the door and knocked. It was instantly opened by a
-bright-looking, clean-shaven young fellow, who asked him to step
-in.
-
-"Thank you," said Holmes, "I only wished to ask you how you would
-go from here to the Strand."
-
-"Third right, fourth left," answered the assistant promptly,
-closing the door.
-
-"Smart fellow, that," observed Holmes as we walked away. "He is,
-in my judgment, the fourth smartest man in London, and for daring
-I am not sure that he has not a claim to be third. I have known
-something of him before."
-
-"Evidently," said I, "Mr. Wilson's assistant counts for a good
-deal in this mystery of the Red-headed League. I am sure that you
-inquired your way merely in order that you might see him."
-
-"Not him."
-
-"What then?"
-
-"The knees of his trousers."
-
-"And what did you see?"
-
-"What I expected to see."
-
-"Why did you beat the pavement?"
-
-"My dear doctor, this is a time for observation, not for talk. We
-are spies in an enemy's country. We know something of Saxe-Coburg
-Square. Let us now explore the parts which lie behind it."
-
-The road in which we found ourselves as we turned round the
-corner from the retired Saxe-Coburg Square presented as great a
-contrast to it as the front of a picture does to the back. It was
-one of the main arteries which conveyed the traffic of the City
-to the north and west. The roadway was blocked with the immense
-stream of commerce flowing in a double tide inward and outward,
-while the footpaths were black with the hurrying swarm of
-pedestrians. It was difficult to realise as we looked at the line
-of fine shops and stately business premises that they really
-abutted on the other side upon the faded and stagnant square
-which we had just quitted.
-
-"Let me see," said Holmes, standing at the corner and glancing
-along the line, "I should like just to remember the order of the
-houses here. It is a hobby of mine to have an exact knowledge of
-London. There is Mortimer's, the tobacconist, the little
-newspaper shop, the Coburg branch of the City and Suburban Bank,
-the Vegetarian Restaurant, and McFarlane's carriage-building
-depot. That carries us right on to the other block. And now,
-Doctor, we've done our work, so it's time we had some play. A
-sandwich and a cup of coffee, and then off to violin-land, where
-all is sweetness and delicacy and harmony, and there are no
-red-headed clients to vex us with their conundrums."
-
-My friend was an enthusiastic musician, being himself not only a
-very capable performer but a composer of no ordinary merit. All
-the afternoon he sat in the stalls wrapped in the most perfect
-happiness, gently waving his long, thin fingers in time to the
-music, while his gently smiling face and his languid, dreamy eyes
-were as unlike those of Holmes the sleuth-hound, Holmes the
-relentless, keen-witted, ready-handed criminal agent, as it was
-possible to conceive. In his singular character the dual nature
-alternately asserted itself, and his extreme exactness and
-astuteness represented, as I have often thought, the reaction
-against the poetic and contemplative mood which occasionally
-predominated in him. The swing of his nature took him from
-extreme languor to devouring energy; and, as I knew well, he was
-never so truly formidable as when, for days on end, he had been
-lounging in his armchair amid his improvisations and his
-black-letter editions. Then it was that the lust of the chase
-would suddenly come upon him, and that his brilliant reasoning
-power would rise to the level of intuition, until those who were
-unacquainted with his methods would look askance at him as on a
-man whose knowledge was not that of other mortals. When I saw him
-that afternoon so enwrapped in the music at St. James's Hall I
-felt that an evil time might be coming upon those whom he had set
-himself to hunt down.
-
-"You want to go home, no doubt, Doctor," he remarked as we
-emerged.
-
-"Yes, it would be as well."
-
-"And I have some business to do which will take some hours. This
-business at Coburg Square is serious."
-
-"Why serious?"
-
-"A considerable crime is in contemplation. I have every reason to
-believe that we shall be in time to stop it. But to-day being
-Saturday rather complicates matters. I shall want your help
-to-night."
-
-"At what time?"
-
-"Ten will be early enough."
-
-"I shall be at Baker Street at ten."
-
-"Very well. And, I say, Doctor, there may be some little danger,
-so kindly put your army revolver in your pocket." He waved his
-hand, turned on his heel, and disappeared in an instant among the
-crowd.
-
-I trust that I am not more dense than my neighbours, but I was
-always oppressed with a sense of my own stupidity in my dealings
-with Sherlock Holmes. Here I had heard what he had heard, I had
-seen what he had seen, and yet from his words it was evident that
-he saw clearly not only what had happened but what was about to
-happen, while to me the whole business was still confused and
-grotesque. As I drove home to my house in Kensington I thought
-over it all, from the extraordinary story of the red-headed
-copier of the "Encyclopaedia" down to the visit to Saxe-Coburg
-Square, and the ominous words with which he had parted from me.
-What was this nocturnal expedition, and why should I go armed?
-Where were we going, and what were we to do? I had the hint from
-Holmes that this smooth-faced pawnbroker's assistant was a
-formidable man--a man who might play a deep game. I tried to
-puzzle it out, but gave it up in despair and set the matter aside
-until night should bring an explanation.
-
-It was a quarter-past nine when I started from home and made my
-way across the Park, and so through Oxford Street to Baker
-Street. Two hansoms were standing at the door, and as I entered
-the passage I heard the sound of voices from above. On entering
-his room I found Holmes in animated conversation with two men,
-one of whom I recognised as Peter Jones, the official police
-agent, while the other was a long, thin, sad-faced man, with a
-very shiny hat and oppressively respectable frock-coat.
-
-"Ha! Our party is complete," said Holmes, buttoning up his
-pea-jacket and taking his heavy hunting crop from the rack.
-"Watson, I think you know Mr. Jones, of Scotland Yard? Let me
-introduce you to Mr. Merryweather, who is to be our companion in
-to-night's adventure."
-
-"We're hunting in couples again, Doctor, you see," said Jones in
-his consequential way. "Our friend here is a wonderful man for
-starting a chase. All he wants is an old dog to help him to do
-the running down."
-
-"I hope a wild goose may not prove to be the end of our chase,"
-observed Mr. Merryweather gloomily.
-
-"You may place considerable confidence in Mr. Holmes, sir," said
-the police agent loftily. "He has his own little methods, which
-are, if he won't mind my saying so, just a little too theoretical
-and fantastic, but he has the makings of a detective in him. It
-is not too much to say that once or twice, as in that business of
-the Sholto murder and the Agra treasure, he has been more nearly
-correct than the official force."
-
-"Oh, if you say so, Mr. Jones, it is all right," said the
-stranger with deference. "Still, I confess that I miss my rubber.
-It is the first Saturday night for seven-and-twenty years that I
-have not had my rubber."
-
-"I think you will find," said Sherlock Holmes, "that you will
-play for a higher stake to-night than you have ever done yet, and
-that the play will be more exciting. For you, Mr. Merryweather,
-the stake will be some 30,000 pounds; and for you, Jones, it will
-be the man upon whom you wish to lay your hands."
-
-"John Clay, the murderer, thief, smasher, and forger. He's a
-young man, Mr. Merryweather, but he is at the head of his
-profession, and I would rather have my bracelets on him than on
-any criminal in London. He's a remarkable man, is young John
-Clay. His grandfather was a royal duke, and he himself has been
-to Eton and Oxford. His brain is as cunning as his fingers, and
-though we meet signs of him at every turn, we never know where to
-find the man himself. He'll crack a crib in Scotland one week,
-and be raising money to build an orphanage in Cornwall the next.
-I've been on his track for years and have never set eyes on him
-yet."
-
-"I hope that I may have the pleasure of introducing you to-night.
-I've had one or two little turns also with Mr. John Clay, and I
-agree with you that he is at the head of his profession. It is
-past ten, however, and quite time that we started. If you two
-will take the first hansom, Watson and I will follow in the
-second."
-
-Sherlock Holmes was not very communicative during the long drive
-and lay back in the cab humming the tunes which he had heard in
-the afternoon. We rattled through an endless labyrinth of gas-lit
-streets until we emerged into Farrington Street.
-
-"We are close there now," my friend remarked. "This fellow
-Merryweather is a bank director, and personally interested in the
-matter. I thought it as well to have Jones with us also. He is
-not a bad fellow, though an absolute imbecile in his profession.
-He has one positive virtue. He is as brave as a bulldog and as
-tenacious as a lobster if he gets his claws upon anyone. Here we
-are, and they are waiting for us."
-
-We had reached the same crowded thoroughfare in which we had
-found ourselves in the morning. Our cabs were dismissed, and,
-following the guidance of Mr. Merryweather, we passed down a
-narrow passage and through a side door, which he opened for us.
-Within there was a small corridor, which ended in a very massive
-iron gate. This also was opened, and led down a flight of winding
-stone steps, which terminated at another formidable gate. Mr.
-Merryweather stopped to light a lantern, and then conducted us
-down a dark, earth-smelling passage, and so, after opening a
-third door, into a huge vault or cellar, which was piled all
-round with crates and massive boxes.
-
-"You are not very vulnerable from above," Holmes remarked as he
-held up the lantern and gazed about him.
-
-"Nor from below," said Mr. Merryweather, striking his stick upon
-the flags which lined the floor. "Why, dear me, it sounds quite
-hollow!" he remarked, looking up in surprise.
-
-"I must really ask you to be a little more quiet!" said Holmes
-severely. "You have already imperilled the whole success of our
-expedition. Might I beg that you would have the goodness to sit
-down upon one of those boxes, and not to interfere?"
-
-The solemn Mr. Merryweather perched himself upon a crate, with a
-very injured expression upon his face, while Holmes fell upon his
-knees upon the floor and, with the lantern and a magnifying lens,
-began to examine minutely the cracks between the stones. A few
-seconds sufficed to satisfy him, for he sprang to his feet again
-and put his glass in his pocket.
-
-"We have at least an hour before us," he remarked, "for they can
-hardly take any steps until the good pawnbroker is safely in bed.
-Then they will not lose a minute, for the sooner they do their
-work the longer time they will have for their escape. We are at
-present, Doctor--as no doubt you have divined--in the cellar of
-the City branch of one of the principal London banks. Mr.
-Merryweather is the chairman of directors, and he will explain to
-you that there are reasons why the more daring criminals of
-London should take a considerable interest in this cellar at
-present."
-
-"It is our French gold," whispered the director. "We have had
-several warnings that an attempt might be made upon it."
-
-"Your French gold?"
-
-"Yes. We had occasion some months ago to strengthen our resources
-and borrowed for that purpose 30,000 napoleons from the Bank of
-France. It has become known that we have never had occasion to
-unpack the money, and that it is still lying in our cellar. The
-crate upon which I sit contains 2,000 napoleons packed between
-layers of lead foil. Our reserve of bullion is much larger at
-present than is usually kept in a single branch office, and the
-directors have had misgivings upon the subject."
-
-"Which were very well justified," observed Holmes. "And now it is
-time that we arranged our little plans. I expect that within an
-hour matters will come to a head. In the meantime Mr.
-Merryweather, we must put the screen over that dark lantern."
-
-"And sit in the dark?"
-
-"I am afraid so. I had brought a pack of cards in my pocket, and
-I thought that, as we were a partie carrée, you might have your
-rubber after all. But I see that the enemy's preparations have
-gone so far that we cannot risk the presence of a light. And,
-first of all, we must choose our positions. These are daring men,
-and though we shall take them at a disadvantage, they may do us
-some harm unless we are careful. I shall stand behind this crate,
-and do you conceal yourselves behind those. Then, when I flash a
-light upon them, close in swiftly. If they fire, Watson, have no
-compunction about shooting them down."
-
-I placed my revolver, cocked, upon the top of the wooden case
-behind which I crouched. Holmes shot the slide across the front
-of his lantern and left us in pitch darkness--such an absolute
-darkness as I have never before experienced. The smell of hot
-metal remained to assure us that the light was still there, ready
-to flash out at a moment's notice. To me, with my nerves worked
-up to a pitch of expectancy, there was something depressing and
-subduing in the sudden gloom, and in the cold dank air of the
-vault.
-
-"They have but one retreat," whispered Holmes. "That is back
-through the house into Saxe-Coburg Square. I hope that you have
-done what I asked you, Jones?"
-
-"I have an inspector and two officers waiting at the front door."
-
-"Then we have stopped all the holes. And now we must be silent
-and wait."
-
-What a time it seemed! From comparing notes afterwards it was but
-an hour and a quarter, yet it appeared to me that the night must
-have almost gone and the dawn be breaking above us. My limbs
-were weary and stiff, for I feared to change my position; yet my
-nerves were worked up to the highest pitch of tension, and my
-hearing was so acute that I could not only hear the gentle
-breathing of my companions, but I could distinguish the deeper,
-heavier in-breath of the bulky Jones from the thin, sighing note
-of the bank director. From my position I could look over the case
-in the direction of the floor. Suddenly my eyes caught the glint
-of a light.
-
-At first it was but a lurid spark upon the stone pavement. Then
-it lengthened out until it became a yellow line, and then,
-without any warning or sound, a gash seemed to open and a hand
-appeared, a white, almost womanly hand, which felt about in the
-centre of the little area of light. For a minute or more the
-hand, with its writhing fingers, protruded out of the floor. Then
-it was withdrawn as suddenly as it appeared, and all was dark
-again save the single lurid spark which marked a chink between
-the stones.
-
-Its disappearance, however, was but momentary. With a rending,
-tearing sound, one of the broad, white stones turned over upon
-its side and left a square, gaping hole, through which streamed
-the light of a lantern. Over the edge there peeped a clean-cut,
-boyish face, which looked keenly about it, and then, with a hand
-on either side of the aperture, drew itself shoulder-high and
-waist-high, until one knee rested upon the edge. In another
-instant he stood at the side of the hole and was hauling after
-him a companion, lithe and small like himself, with a pale face
-and a shock of very red hair.
-
-"It's all clear," he whispered. "Have you the chisel and the
-bags? Great Scott! Jump, Archie, jump, and I'll swing for it!"
-
-Sherlock Holmes had sprung out and seized the intruder by the
-collar. The other dived down the hole, and I heard the sound of
-rending cloth as Jones clutched at his skirts. The light flashed
-upon the barrel of a revolver, but Holmes' hunting crop came
-down on the man's wrist, and the pistol clinked upon the stone
-floor.
-
-"It's no use, John Clay," said Holmes blandly. "You have no
-chance at all."
-
-"So I see," the other answered with the utmost coolness. "I fancy
-that my pal is all right, though I see you have got his
-coat-tails."
-
-"There are three men waiting for him at the door," said Holmes.
-
-"Oh, indeed! You seem to have done the thing very completely. I
-must compliment you."
-
-"And I you," Holmes answered. "Your red-headed idea was very new
-and effective."
-
-"You'll see your pal again presently," said Jones. "He's quicker
-at climbing down holes than I am. Just hold out while I fix the
-derbies."
-
-"I beg that you will not touch me with your filthy hands,"
-remarked our prisoner as the handcuffs clattered upon his wrists.
-"You may not be aware that I have royal blood in my veins. Have
-the goodness, also, when you address me always to say 'sir' and
-'please.'"
-
-"All right," said Jones with a stare and a snigger. "Well, would
-you please, sir, march upstairs, where we can get a cab to carry
-your Highness to the police-station?"
-
-"That is better," said John Clay serenely. He made a sweeping bow
-to the three of us and walked quietly off in the custody of the
-detective.
-
-"Really, Mr. Holmes," said Mr. Merryweather as we followed them
-from the cellar, "I do not know how the bank can thank you or
-repay you. There is no doubt that you have detected and defeated
-in the most complete manner one of the most determined attempts
-at bank robbery that have ever come within my experience."
-
-"I have had one or two little scores of my own to settle with Mr.
-John Clay," said Holmes. "I have been at some small expense over
-this matter, which I shall expect the bank to refund, but beyond
-that I am amply repaid by having had an experience which is in
-many ways unique, and by hearing the very remarkable narrative of
-the Red-headed League."
-
-
-"You see, Watson," he explained in the early hours of the morning
-as we sat over a glass of whisky and soda in Baker Street, "it
-was perfectly obvious from the first that the only possible
-object of this rather fantastic business of the advertisement of
-the League, and the copying of the 'Encyclopaedia,' must be to get
-this not over-bright pawnbroker out of the way for a number of
-hours every day. It was a curious way of managing it, but,
-really, it would be difficult to suggest a better. The method was
-no doubt suggested to Clay's ingenious mind by the colour of his
-accomplice's hair. The 4 pounds a week was a lure which must draw
-him, and what was it to them, who were playing for thousands?
-They put in the advertisement, one rogue has the temporary
-office, the other rogue incites the man to apply for it, and
-together they manage to secure his absence every morning in the
-week. From the time that I heard of the assistant having come for
-half wages, it was obvious to me that he had some strong motive
-for securing the situation."
-
-"But how could you guess what the motive was?"
-
-"Had there been women in the house, I should have suspected a
-mere vulgar intrigue. That, however, was out of the question. The
-man's business was a small one, and there was nothing in his
-house which could account for such elaborate preparations, and
-such an expenditure as they were at. It must, then, be something
-out of the house. What could it be? I thought of the assistant's
-fondness for photography, and his trick of vanishing into the
-cellar. The cellar! There was the end of this tangled clue. Then
-I made inquiries as to this mysterious assistant and found that I
-had to deal with one of the coolest and most daring criminals in
-London. He was doing something in the cellar--something which
-took many hours a day for months on end. What could it be, once
-more? I could think of nothing save that he was running a tunnel
-to some other building.
-
-"So far I had got when we went to visit the scene of action. I
-surprised you by beating upon the pavement with my stick. I was
-ascertaining whether the cellar stretched out in front or behind.
-It was not in front. Then I rang the bell, and, as I hoped, the
-assistant answered it. We have had some skirmishes, but we had
-never set eyes upon each other before. I hardly looked at his
-face. His knees were what I wished to see. You must yourself have
-remarked how worn, wrinkled, and stained they were. They spoke of
-those hours of burrowing. The only remaining point was what they
-were burrowing for. I walked round the corner, saw the City and
-Suburban Bank abutted on our friend's premises, and felt that I
-had solved my problem. When you drove home after the concert I
-called upon Scotland Yard and upon the chairman of the bank
-directors, with the result that you have seen."
-
-"And how could you tell that they would make their attempt
-to-night?" I asked.
-
-"Well, when they closed their League offices that was a sign that
-they cared no longer about Mr. Jabez Wilson's presence--in other
-words, that they had completed their tunnel. But it was essential
-that they should use it soon, as it might be discovered, or the
-bullion might be removed. Saturday would suit them better than
-any other day, as it would give them two days for their escape.
-For all these reasons I expected them to come to-night."
-
-"You reasoned it out beautifully," I exclaimed in unfeigned
-admiration. "It is so long a chain, and yet every link rings
-true."
-
-"It saved me from ennui," he answered, yawning. "Alas! I already
-feel it closing in upon me. My life is spent in one long effort
-to escape from the commonplaces of existence. These little
-problems help me to do so."
-
-"And you are a benefactor of the race," said I.
-
-He shrugged his shoulders. "Well, perhaps, after all, it is of
-some little use," he remarked. "'L'homme c'est rien--l'oeuvre
-c'est tout,' as Gustave Flaubert wrote to George Sand."
-
-
-
-ADVENTURE III. A CASE OF IDENTITY
-
-"My dear fellow," said Sherlock Holmes as we sat on either side
-of the fire in his lodgings at Baker Street, "life is infinitely
-stranger than anything which the mind of man could invent. We
-would not dare to conceive the things which are really mere
-commonplaces of existence. If we could fly out of that window
-hand in hand, hover over this great city, gently remove the
-roofs, and peep in at the queer things which are going on, the
-strange coincidences, the plannings, the cross-purposes, the
-wonderful chains of events, working through generations, and
-leading to the most outré results, it would make all fiction with
-its conventionalities and foreseen conclusions most stale and
-unprofitable."
-
-"And yet I am not convinced of it," I answered. "The cases which
-come to light in the papers are, as a rule, bald enough, and
-vulgar enough. We have in our police reports realism pushed to
-its extreme limits, and yet the result is, it must be confessed,
-neither fascinating nor artistic."
-
-"A certain selection and discretion must be used in producing a
-realistic effect," remarked Holmes. "This is wanting in the
-police report, where more stress is laid, perhaps, upon the
-platitudes of the magistrate than upon the details, which to an
-observer contain the vital essence of the whole matter. Depend
-upon it, there is nothing so unnatural as the commonplace."
-
-I smiled and shook my head. "I can quite understand your thinking
-so," I said. "Of course, in your position of unofficial adviser
-and helper to everybody who is absolutely puzzled, throughout
-three continents, you are brought in contact with all that is
-strange and bizarre. But here"--I picked up the morning paper
-from the ground--"let us put it to a practical test. Here is the
-first heading upon which I come. 'A husband's cruelty to his
-wife.' There is half a column of print, but I know without
-reading it that it is all perfectly familiar to me. There is, of
-course, the other woman, the drink, the push, the blow, the
-bruise, the sympathetic sister or landlady. The crudest of
-writers could invent nothing more crude."
-
-"Indeed, your example is an unfortunate one for your argument,"
-said Holmes, taking the paper and glancing his eye down it. "This
-is the Dundas separation case, and, as it happens, I was engaged
-in clearing up some small points in connection with it. The
-husband was a teetotaler, there was no other woman, and the
-conduct complained of was that he had drifted into the habit of
-winding up every meal by taking out his false teeth and hurling
-them at his wife, which, you will allow, is not an action likely
-to occur to the imagination of the average story-teller. Take a
-pinch of snuff, Doctor, and acknowledge that I have scored over
-you in your example."
-
-He held out his snuffbox of old gold, with a great amethyst in
-the centre of the lid. Its splendour was in such contrast to his
-homely ways and simple life that I could not help commenting upon
-it.
-
-"Ah," said he, "I forgot that I had not seen you for some weeks.
-It is a little souvenir from the King of Bohemia in return for my
-assistance in the case of the Irene Adler papers."
-
-"And the ring?" I asked, glancing at a remarkable brilliant which
-sparkled upon his finger.
-
-"It was from the reigning family of Holland, though the matter in
-which I served them was of such delicacy that I cannot confide it
-even to you, who have been good enough to chronicle one or two of
-my little problems."
-
-"And have you any on hand just now?" I asked with interest.
-
-"Some ten or twelve, but none which present any feature of
-interest. They are important, you understand, without being
-interesting. Indeed, I have found that it is usually in
-unimportant matters that there is a field for the observation,
-and for the quick analysis of cause and effect which gives the
-charm to an investigation. The larger crimes are apt to be the
-simpler, for the bigger the crime the more obvious, as a rule, is
-the motive. In these cases, save for one rather intricate matter
-which has been referred to me from Marseilles, there is nothing
-which presents any features of interest. It is possible, however,
-that I may have something better before very many minutes are
-over, for this is one of my clients, or I am much mistaken."
-
-He had risen from his chair and was standing between the parted
-blinds gazing down into the dull neutral-tinted London street.
-Looking over his shoulder, I saw that on the pavement opposite
-there stood a large woman with a heavy fur boa round her neck,
-and a large curling red feather in a broad-brimmed hat which was
-tilted in a coquettish Duchess of Devonshire fashion over her
-ear. From under this great panoply she peeped up in a nervous,
-hesitating fashion at our windows, while her body oscillated
-backward and forward, and her fingers fidgeted with her glove
-buttons. Suddenly, with a plunge, as of the swimmer who leaves
-the bank, she hurried across the road, and we heard the sharp
-clang of the bell.
-
-"I have seen those symptoms before," said Holmes, throwing his
-cigarette into the fire. "Oscillation upon the pavement always
-means an affaire de coeur. She would like advice, but is not sure
-that the matter is not too delicate for communication. And yet
-even here we may discriminate. When a woman has been seriously
-wronged by a man she no longer oscillates, and the usual symptom
-is a broken bell wire. Here we may take it that there is a love
-matter, but that the maiden is not so much angry as perplexed, or
-grieved. But here she comes in person to resolve our doubts."
-
-As he spoke there was a tap at the door, and the boy in buttons
-entered to announce Miss Mary Sutherland, while the lady herself
-loomed behind his small black figure like a full-sailed
-merchant-man behind a tiny pilot boat. Sherlock Holmes welcomed
-her with the easy courtesy for which he was remarkable, and,
-having closed the door and bowed her into an armchair, he looked
-her over in the minute and yet abstracted fashion which was
-peculiar to him.
-
-"Do you not find," he said, "that with your short sight it is a
-little trying to do so much typewriting?"
-
-"I did at first," she answered, "but now I know where the letters
-are without looking." Then, suddenly realising the full purport
-of his words, she gave a violent start and looked up, with fear
-and astonishment upon her broad, good-humoured face. "You've
-heard about me, Mr. Holmes," she cried, "else how could you know
-all that?"
-
-"Never mind," said Holmes, laughing; "it is my business to know
-things. Perhaps I have trained myself to see what others
-overlook. If not, why should you come to consult me?"
-
-"I came to you, sir, because I heard of you from Mrs. Etherege,
-whose husband you found so easy when the police and everyone had
-given him up for dead. Oh, Mr. Holmes, I wish you would do as
-much for me. I'm not rich, but still I have a hundred a year in
-my own right, besides the little that I make by the machine, and
-I would give it all to know what has become of Mr. Hosmer Angel."
-
-"Why did you come away to consult me in such a hurry?" asked
-Sherlock Holmes, with his finger-tips together and his eyes to
-the ceiling.
-
-Again a startled look came over the somewhat vacuous face of Miss
-Mary Sutherland. "Yes, I did bang out of the house," she said,
-"for it made me angry to see the easy way in which Mr.
-Windibank--that is, my father--took it all. He would not go to
-the police, and he would not go to you, and so at last, as he
-would do nothing and kept on saying that there was no harm done,
-it made me mad, and I just on with my things and came right away
-to you."
-
-"Your father," said Holmes, "your stepfather, surely, since the
-name is different."
-
-"Yes, my stepfather. I call him father, though it sounds funny,
-too, for he is only five years and two months older than myself."
-
-"And your mother is alive?"
-
-"Oh, yes, mother is alive and well. I wasn't best pleased, Mr.
-Holmes, when she married again so soon after father's death, and
-a man who was nearly fifteen years younger than herself. Father
-was a plumber in the Tottenham Court Road, and he left a tidy
-business behind him, which mother carried on with Mr. Hardy, the
-foreman; but when Mr. Windibank came he made her sell the
-business, for he was very superior, being a traveller in wines.
-They got 4700 pounds for the goodwill and interest, which wasn't
-near as much as father could have got if he had been alive."
-
-I had expected to see Sherlock Holmes impatient under this
-rambling and inconsequential narrative, but, on the contrary, he
-had listened with the greatest concentration of attention.
-
-"Your own little income," he asked, "does it come out of the
-business?"
-
-"Oh, no, sir. It is quite separate and was left me by my uncle
-Ned in Auckland. It is in New Zealand stock, paying 4 1/2 per
-cent. Two thousand five hundred pounds was the amount, but I can
-only touch the interest."
-
-"You interest me extremely," said Holmes. "And since you draw so
-large a sum as a hundred a year, with what you earn into the
-bargain, you no doubt travel a little and indulge yourself in
-every way. I believe that a single lady can get on very nicely
-upon an income of about 60 pounds."
-
-"I could do with much less than that, Mr. Holmes, but you
-understand that as long as I live at home I don't wish to be a
-burden to them, and so they have the use of the money just while
-I am staying with them. Of course, that is only just for the
-time. Mr. Windibank draws my interest every quarter and pays it
-over to mother, and I find that I can do pretty well with what I
-earn at typewriting. It brings me twopence a sheet, and I can
-often do from fifteen to twenty sheets in a day."
-
-"You have made your position very clear to me," said Holmes.
-"This is my friend, Dr. Watson, before whom you can speak as
-freely as before myself. Kindly tell us now all about your
-connection with Mr. Hosmer Angel."
-
-A flush stole over Miss Sutherland's face, and she picked
-nervously at the fringe of her jacket. "I met him first at the
-gasfitters' ball," she said. "They used to send father tickets
-when he was alive, and then afterwards they remembered us, and
-sent them to mother. Mr. Windibank did not wish us to go. He
-never did wish us to go anywhere. He would get quite mad if I
-wanted so much as to join a Sunday-school treat. But this time I
-was set on going, and I would go; for what right had he to
-prevent? He said the folk were not fit for us to know, when all
-father's friends were to be there. And he said that I had nothing
-fit to wear, when I had my purple plush that I had never so much
-as taken out of the drawer. At last, when nothing else would do,
-he went off to France upon the business of the firm, but we went,
-mother and I, with Mr. Hardy, who used to be our foreman, and it
-was there I met Mr. Hosmer Angel."
-
-"I suppose," said Holmes, "that when Mr. Windibank came back from
-France he was very annoyed at your having gone to the ball."
-
-"Oh, well, he was very good about it. He laughed, I remember, and
-shrugged his shoulders, and said there was no use denying
-anything to a woman, for she would have her way."
-
-"I see. Then at the gasfitters' ball you met, as I understand, a
-gentleman called Mr. Hosmer Angel."
-
-"Yes, sir. I met him that night, and he called next day to ask if
-we had got home all safe, and after that we met him--that is to
-say, Mr. Holmes, I met him twice for walks, but after that father
-came back again, and Mr. Hosmer Angel could not come to the house
-any more."
-
-"No?"
-
-"Well, you know father didn't like anything of the sort. He
-wouldn't have any visitors if he could help it, and he used to
-say that a woman should be happy in her own family circle. But
-then, as I used to say to mother, a woman wants her own circle to
-begin with, and I had not got mine yet."
-
-"But how about Mr. Hosmer Angel? Did he make no attempt to see
-you?"
-
-"Well, father was going off to France again in a week, and Hosmer
-wrote and said that it would be safer and better not to see each
-other until he had gone. We could write in the meantime, and he
-used to write every day. I took the letters in in the morning, so
-there was no need for father to know."
-
-"Were you engaged to the gentleman at this time?"
-
-"Oh, yes, Mr. Holmes. We were engaged after the first walk that
-we took. Hosmer--Mr. Angel--was a cashier in an office in
-Leadenhall Street--and--"
-
-"What office?"
-
-"That's the worst of it, Mr. Holmes, I don't know."
-
-"Where did he live, then?"
-
-"He slept on the premises."
-
-"And you don't know his address?"
-
-"No--except that it was Leadenhall Street."
-
-"Where did you address your letters, then?"
-
-"To the Leadenhall Street Post Office, to be left till called
-for. He said that if they were sent to the office he would be
-chaffed by all the other clerks about having letters from a lady,
-so I offered to typewrite them, like he did his, but he wouldn't
-have that, for he said that when I wrote them they seemed to come
-from me, but when they were typewritten he always felt that the
-machine had come between us. That will just show you how fond he
-was of me, Mr. Holmes, and the little things that he would think
-of."
-
-"It was most suggestive," said Holmes. "It has long been an axiom
-of mine that the little things are infinitely the most important.
-Can you remember any other little things about Mr. Hosmer Angel?"
-
-"He was a very shy man, Mr. Holmes. He would rather walk with me
-in the evening than in the daylight, for he said that he hated to
-be conspicuous. Very retiring and gentlemanly he was. Even his
-voice was gentle. He'd had the quinsy and swollen glands when he
-was young, he told me, and it had left him with a weak throat,
-and a hesitating, whispering fashion of speech. He was always
-well dressed, very neat and plain, but his eyes were weak, just
-as mine are, and he wore tinted glasses against the glare."
-
-"Well, and what happened when Mr. Windibank, your stepfather,
-returned to France?"
-
-"Mr. Hosmer Angel came to the house again and proposed that we
-should marry before father came back. He was in dreadful earnest
-and made me swear, with my hands on the Testament, that whatever
-happened I would always be true to him. Mother said he was quite
-right to make me swear, and that it was a sign of his passion.
-Mother was all in his favour from the first and was even fonder
-of him than I was. Then, when they talked of marrying within the
-week, I began to ask about father; but they both said never to
-mind about father, but just to tell him afterwards, and mother
-said she would make it all right with him. I didn't quite like
-that, Mr. Holmes. It seemed funny that I should ask his leave, as
-he was only a few years older than me; but I didn't want to do
-anything on the sly, so I wrote to father at Bordeaux, where the
-company has its French offices, but the letter came back to me on
-the very morning of the wedding."
-
-"It missed him, then?"
-
-"Yes, sir; for he had started to England just before it arrived."
-
-"Ha! that was unfortunate. Your wedding was arranged, then, for
-the Friday. Was it to be in church?"
-
-"Yes, sir, but very quietly. It was to be at St. Saviour's, near
-King's Cross, and we were to have breakfast afterwards at the St.
-Pancras Hotel. Hosmer came for us in a hansom, but as there were
-two of us he put us both into it and stepped himself into a
-four-wheeler, which happened to be the only other cab in the
-street. We got to the church first, and when the four-wheeler
-drove up we waited for him to step out, but he never did, and
-when the cabman got down from the box and looked there was no one
-there! The cabman said that he could not imagine what had become
-of him, for he had seen him get in with his own eyes. That was
-last Friday, Mr. Holmes, and I have never seen or heard anything
-since then to throw any light upon what became of him."
-
-"It seems to me that you have been very shamefully treated," said
-Holmes.
-
-"Oh, no, sir! He was too good and kind to leave me so. Why, all
-the morning he was saying to me that, whatever happened, I was to
-be true; and that even if something quite unforeseen occurred to
-separate us, I was always to remember that I was pledged to him,
-and that he would claim his pledge sooner or later. It seemed
-strange talk for a wedding-morning, but what has happened since
-gives a meaning to it."
-
-"Most certainly it does. Your own opinion is, then, that some
-unforeseen catastrophe has occurred to him?"
-
-"Yes, sir. I believe that he foresaw some danger, or else he
-would not have talked so. And then I think that what he foresaw
-happened."
-
-"But you have no notion as to what it could have been?"
-
-"None."
-
-"One more question. How did your mother take the matter?"
-
-"She was angry, and said that I was never to speak of the matter
-again."
-
-"And your father? Did you tell him?"
-
-"Yes; and he seemed to think, with me, that something had
-happened, and that I should hear of Hosmer again. As he said,
-what interest could anyone have in bringing me to the doors of
-the church, and then leaving me? Now, if he had borrowed my
-money, or if he had married me and got my money settled on him,
-there might be some reason, but Hosmer was very independent about
-money and never would look at a shilling of mine. And yet, what
-could have happened? And why could he not write? Oh, it drives me
-half-mad to think of it, and I can't sleep a wink at night." She
-pulled a little handkerchief out of her muff and began to sob
-heavily into it.
-
-"I shall glance into the case for you," said Holmes, rising, "and
-I have no doubt that we shall reach some definite result. Let the
-weight of the matter rest upon me now, and do not let your mind
-dwell upon it further. Above all, try to let Mr. Hosmer Angel
-vanish from your memory, as he has done from your life."
-
-"Then you don't think I'll see him again?"
-
-"I fear not."
-
-"Then what has happened to him?"
-
-"You will leave that question in my hands. I should like an
-accurate description of him and any letters of his which you can
-spare."
-
-"I advertised for him in last Saturday's Chronicle," said she.
-"Here is the slip and here are four letters from him."
-
-"Thank you. And your address?"
-
-"No. 31 Lyon Place, Camberwell."
-
-"Mr. Angel's address you never had, I understand. Where is your
-father's place of business?"
-
-"He travels for Westhouse & Marbank, the great claret importers
-of Fenchurch Street."
-
-"Thank you. You have made your statement very clearly. You will
-leave the papers here, and remember the advice which I have given
-you. Let the whole incident be a sealed book, and do not allow it
-to affect your life."
-
-"You are very kind, Mr. Holmes, but I cannot do that. I shall be
-true to Hosmer. He shall find me ready when he comes back."
-
-For all the preposterous hat and the vacuous face, there was
-something noble in the simple faith of our visitor which
-compelled our respect. She laid her little bundle of papers upon
-the table and went her way, with a promise to come again whenever
-she might be summoned.
-
-Sherlock Holmes sat silent for a few minutes with his fingertips
-still pressed together, his legs stretched out in front of him,
-and his gaze directed upward to the ceiling. Then he took down
-from the rack the old and oily clay pipe, which was to him as a
-counsellor, and, having lit it, he leaned back in his chair, with
-the thick blue cloud-wreaths spinning up from him, and a look of
-infinite languor in his face.
-
-"Quite an interesting study, that maiden," he observed. "I found
-her more interesting than her little problem, which, by the way,
-is rather a trite one. You will find parallel cases, if you
-consult my index, in Andover in '77, and there was something of
-the sort at The Hague last year. Old as is the idea, however,
-there were one or two details which were new to me. But the
-maiden herself was most instructive."
-
-"You appeared to read a good deal upon her which was quite
-invisible to me," I remarked.
-
-"Not invisible but unnoticed, Watson. You did not know where to
-look, and so you missed all that was important. I can never bring
-you to realise the importance of sleeves, the suggestiveness of
-thumb-nails, or the great issues that may hang from a boot-lace.
-Now, what did you gather from that woman's appearance? Describe
-it."
-
-"Well, she had a slate-coloured, broad-brimmed straw hat, with a
-feather of a brickish red. Her jacket was black, with black beads
-sewn upon it, and a fringe of little black jet ornaments. Her
-dress was brown, rather darker than coffee colour, with a little
-purple plush at the neck and sleeves. Her gloves were greyish and
-were worn through at the right forefinger. Her boots I didn't
-observe. She had small round, hanging gold earrings, and a
-general air of being fairly well-to-do in a vulgar, comfortable,
-easy-going way."
-
-Sherlock Holmes clapped his hands softly together and chuckled.
-
-"'Pon my word, Watson, you are coming along wonderfully. You have
-really done very well indeed. It is true that you have missed
-everything of importance, but you have hit upon the method, and
-you have a quick eye for colour. Never trust to general
-impressions, my boy, but concentrate yourself upon details. My
-first glance is always at a woman's sleeve. In a man it is
-perhaps better first to take the knee of the trouser. As you
-observe, this woman had plush upon her sleeves, which is a most
-useful material for showing traces. The double line a little
-above the wrist, where the typewritist presses against the table,
-was beautifully defined. The sewing-machine, of the hand type,
-leaves a similar mark, but only on the left arm, and on the side
-of it farthest from the thumb, instead of being right across the
-broadest part, as this was. I then glanced at her face, and,
-observing the dint of a pince-nez at either side of her nose, I
-ventured a remark upon short sight and typewriting, which seemed
-to surprise her."
-
-"It surprised me."
-
-"But, surely, it was obvious. I was then much surprised and
-interested on glancing down to observe that, though the boots
-which she was wearing were not unlike each other, they were
-really odd ones; the one having a slightly decorated toe-cap, and
-the other a plain one. One was buttoned only in the two lower
-buttons out of five, and the other at the first, third, and
-fifth. Now, when you see that a young lady, otherwise neatly
-dressed, has come away from home with odd boots, half-buttoned,
-it is no great deduction to say that she came away in a hurry."
-
-"And what else?" I asked, keenly interested, as I always was, by
-my friend's incisive reasoning.
-
-"I noted, in passing, that she had written a note before leaving
-home but after being fully dressed. You observed that her right
-glove was torn at the forefinger, but you did not apparently see
-that both glove and finger were stained with violet ink. She had
-written in a hurry and dipped her pen too deep. It must have been
-this morning, or the mark would not remain clear upon the finger.
-All this is amusing, though rather elementary, but I must go back
-to business, Watson. Would you mind reading me the advertised
-description of Mr. Hosmer Angel?"
-
-I held the little printed slip to the light.
-
-"Missing," it said, "on the morning of the fourteenth, a gentleman
-named Hosmer Angel. About five ft. seven in. in height;
-strongly built, sallow complexion, black hair, a little bald in
-the centre, bushy, black side-whiskers and moustache; tinted
-glasses, slight infirmity of speech. Was dressed, when last seen,
-in black frock-coat faced with silk, black waistcoat, gold Albert
-chain, and grey Harris tweed trousers, with brown gaiters over
-elastic-sided boots. Known to have been employed in an office in
-Leadenhall Street. Anybody bringing--"
-
-"That will do," said Holmes. "As to the letters," he continued,
-glancing over them, "they are very commonplace. Absolutely no
-clue in them to Mr. Angel, save that he quotes Balzac once. There
-is one remarkable point, however, which will no doubt strike
-you."
-
-"They are typewritten," I remarked.
-
-"Not only that, but the signature is typewritten. Look at the
-neat little 'Hosmer Angel' at the bottom. There is a date, you
-see, but no superscription except Leadenhall Street, which is
-rather vague. The point about the signature is very suggestive--in
-fact, we may call it conclusive."
-
-"Of what?"
-
-"My dear fellow, is it possible you do not see how strongly it
-bears upon the case?"
-
-"I cannot say that I do unless it were that he wished to be able
-to deny his signature if an action for breach of promise were
-instituted."
-
-"No, that was not the point. However, I shall write two letters,
-which should settle the matter. One is to a firm in the City, the
-other is to the young lady's stepfather, Mr. Windibank, asking
-him whether he could meet us here at six o'clock tomorrow
-evening. It is just as well that we should do business with the
-male relatives. And now, Doctor, we can do nothing until the
-answers to those letters come, so we may put our little problem
-upon the shelf for the interim."
-
-I had had so many reasons to believe in my friend's subtle powers
-of reasoning and extraordinary energy in action that I felt that
-he must have some solid grounds for the assured and easy
-demeanour with which he treated the singular mystery which he had
-been called upon to fathom. Once only had I known him to fail, in
-the case of the King of Bohemia and of the Irene Adler
-photograph; but when I looked back to the weird business of the
-Sign of Four, and the extraordinary circumstances connected with
-the Study in Scarlet, I felt that it would be a strange tangle
-indeed which he could not unravel.
-
-I left him then, still puffing at his black clay pipe, with the
-conviction that when I came again on the next evening I would
-find that he held in his hands all the clues which would lead up
-to the identity of the disappearing bridegroom of Miss Mary
-Sutherland.
-
-A professional case of great gravity was engaging my own
-attention at the time, and the whole of next day I was busy at
-the bedside of the sufferer. It was not until close upon six
-o'clock that I found myself free and was able to spring into a
-hansom and drive to Baker Street, half afraid that I might be too
-late to assist at the dénouement of the little mystery. I found
-Sherlock Holmes alone, however, half asleep, with his long, thin
-form curled up in the recesses of his armchair. A formidable
-array of bottles and test-tubes, with the pungent cleanly smell
-of hydrochloric acid, told me that he had spent his day in the
-chemical work which was so dear to him.
-
-"Well, have you solved it?" I asked as I entered.
-
-"Yes. It was the bisulphate of baryta."
-
-"No, no, the mystery!" I cried.
-
-"Oh, that! I thought of the salt that I have been working upon.
-There was never any mystery in the matter, though, as I said
-yesterday, some of the details are of interest. The only drawback
-is that there is no law, I fear, that can touch the scoundrel."
-
-"Who was he, then, and what was his object in deserting Miss
-Sutherland?"
-
-The question was hardly out of my mouth, and Holmes had not yet
-opened his lips to reply, when we heard a heavy footfall in the
-passage and a tap at the door.
-
-"This is the girl's stepfather, Mr. James Windibank," said
-Holmes. "He has written to me to say that he would be here at
-six. Come in!"
-
-The man who entered was a sturdy, middle-sized fellow, some
-thirty years of age, clean-shaven, and sallow-skinned, with a
-bland, insinuating manner, and a pair of wonderfully sharp and
-penetrating grey eyes. He shot a questioning glance at each of
-us, placed his shiny top-hat upon the sideboard, and with a
-slight bow sidled down into the nearest chair.
-
-"Good-evening, Mr. James Windibank," said Holmes. "I think that
-this typewritten letter is from you, in which you made an
-appointment with me for six o'clock?"
-
-"Yes, sir. I am afraid that I am a little late, but I am not
-quite my own master, you know. I am sorry that Miss Sutherland
-has troubled you about this little matter, for I think it is far
-better not to wash linen of the sort in public. It was quite
-against my wishes that she came, but she is a very excitable,
-impulsive girl, as you may have noticed, and she is not easily
-controlled when she has made up her mind on a point. Of course, I
-did not mind you so much, as you are not connected with the
-official police, but it is not pleasant to have a family
-misfortune like this noised abroad. Besides, it is a useless
-expense, for how could you possibly find this Hosmer Angel?"
-
-"On the contrary," said Holmes quietly; "I have every reason to
-believe that I will succeed in discovering Mr. Hosmer Angel."
-
-Mr. Windibank gave a violent start and dropped his gloves. "I am
-delighted to hear it," he said.
-
-"It is a curious thing," remarked Holmes, "that a typewriter has
-really quite as much individuality as a man's handwriting. Unless
-they are quite new, no two of them write exactly alike. Some
-letters get more worn than others, and some wear only on one
-side. Now, you remark in this note of yours, Mr. Windibank, that
-in every case there is some little slurring over of the 'e,' and
-a slight defect in the tail of the 'r.' There are fourteen other
-characteristics, but those are the more obvious."
-
-"We do all our correspondence with this machine at the office,
-and no doubt it is a little worn," our visitor answered, glancing
-keenly at Holmes with his bright little eyes.
-
-"And now I will show you what is really a very interesting study,
-Mr. Windibank," Holmes continued. "I think of writing another
-little monograph some of these days on the typewriter and its
-relation to crime. It is a subject to which I have devoted some
-little attention. I have here four letters which purport to come
-from the missing man. They are all typewritten. In each case, not
-only are the 'e's' slurred and the 'r's' tailless, but you will
-observe, if you care to use my magnifying lens, that the fourteen
-other characteristics to which I have alluded are there as well."
-
-Mr. Windibank sprang out of his chair and picked up his hat. "I
-cannot waste time over this sort of fantastic talk, Mr. Holmes,"
-he said. "If you can catch the man, catch him, and let me know
-when you have done it."
-
-"Certainly," said Holmes, stepping over and turning the key in
-the door. "I let you know, then, that I have caught him!"
-
-"What! where?" shouted Mr. Windibank, turning white to his lips
-and glancing about him like a rat in a trap.
-
-"Oh, it won't do--really it won't," said Holmes suavely. "There
-is no possible getting out of it, Mr. Windibank. It is quite too
-transparent, and it was a very bad compliment when you said that
-it was impossible for me to solve so simple a question. That's
-right! Sit down and let us talk it over."
-
-Our visitor collapsed into a chair, with a ghastly face and a
-glitter of moisture on his brow. "It--it's not actionable," he
-stammered.
-
-"I am very much afraid that it is not. But between ourselves,
-Windibank, it was as cruel and selfish and heartless a trick in a
-petty way as ever came before me. Now, let me just run over the
-course of events, and you will contradict me if I go wrong."
-
-The man sat huddled up in his chair, with his head sunk upon his
-breast, like one who is utterly crushed. Holmes stuck his feet up
-on the corner of the mantelpiece and, leaning back with his hands
-in his pockets, began talking, rather to himself, as it seemed,
-than to us.
-
-"The man married a woman very much older than himself for her
-money," said he, "and he enjoyed the use of the money of the
-daughter as long as she lived with them. It was a considerable
-sum, for people in their position, and the loss of it would have
-made a serious difference. It was worth an effort to preserve it.
-The daughter was of a good, amiable disposition, but affectionate
-and warm-hearted in her ways, so that it was evident that with
-her fair personal advantages, and her little income, she would
-not be allowed to remain single long. Now her marriage would
-mean, of course, the loss of a hundred a year, so what does her
-stepfather do to prevent it? He takes the obvious course of
-keeping her at home and forbidding her to seek the company of
-people of her own age. But soon he found that that would not
-answer forever. She became restive, insisted upon her rights, and
-finally announced her positive intention of going to a certain
-ball. What does her clever stepfather do then? He conceives an
-idea more creditable to his head than to his heart. With the
-connivance and assistance of his wife he disguised himself,
-covered those keen eyes with tinted glasses, masked the face with
-a moustache and a pair of bushy whiskers, sunk that clear voice
-into an insinuating whisper, and doubly secure on account of the
-girl's short sight, he appears as Mr. Hosmer Angel, and keeps off
-other lovers by making love himself."
-
-"It was only a joke at first," groaned our visitor. "We never
-thought that she would have been so carried away."
-
-"Very likely not. However that may be, the young lady was very
-decidedly carried away, and, having quite made up her mind that
-her stepfather was in France, the suspicion of treachery never
-for an instant entered her mind. She was flattered by the
-gentleman's attentions, and the effect was increased by the
-loudly expressed admiration of her mother. Then Mr. Angel began
-to call, for it was obvious that the matter should be pushed as
-far as it would go if a real effect were to be produced. There
-were meetings, and an engagement, which would finally secure the
-girl's affections from turning towards anyone else. But the
-deception could not be kept up forever. These pretended journeys
-to France were rather cumbrous. The thing to do was clearly to
-bring the business to an end in such a dramatic manner that it
-would leave a permanent impression upon the young lady's mind and
-prevent her from looking upon any other suitor for some time to
-come. Hence those vows of fidelity exacted upon a Testament, and
-hence also the allusions to a possibility of something happening
-on the very morning of the wedding. James Windibank wished Miss
-Sutherland to be so bound to Hosmer Angel, and so uncertain as to
-his fate, that for ten years to come, at any rate, she would not
-listen to another man. As far as the church door he brought her,
-and then, as he could go no farther, he conveniently vanished
-away by the old trick of stepping in at one door of a
-four-wheeler and out at the other. I think that was the chain of
-events, Mr. Windibank!"
-
-Our visitor had recovered something of his assurance while Holmes
-had been talking, and he rose from his chair now with a cold
-sneer upon his pale face.
-
-"It may be so, or it may not, Mr. Holmes," said he, "but if you
-are so very sharp you ought to be sharp enough to know that it is
-you who are breaking the law now, and not me. I have done nothing
-actionable from the first, but as long as you keep that door
-locked you lay yourself open to an action for assault and illegal
-constraint."
-
-"The law cannot, as you say, touch you," said Holmes, unlocking
-and throwing open the door, "yet there never was a man who
-deserved punishment more. If the young lady has a brother or a
-friend, he ought to lay a whip across your shoulders. By Jove!"
-he continued, flushing up at the sight of the bitter sneer upon
-the man's face, "it is not part of my duties to my client, but
-here's a hunting crop handy, and I think I shall just treat
-myself to--" He took two swift steps to the whip, but before he
-could grasp it there was a wild clatter of steps upon the stairs,
-the heavy hall door banged, and from the window we could see Mr.
-James Windibank running at the top of his speed down the road.
-
-"There's a cold-blooded scoundrel!" said Holmes, laughing, as he
-threw himself down into his chair once more. "That fellow will
-rise from crime to crime until he does something very bad, and
-ends on a gallows. The case has, in some respects, been not
-entirely devoid of interest."
-
-"I cannot now entirely see all the steps of your reasoning," I
-remarked.
-
-"Well, of course it was obvious from the first that this Mr.
-Hosmer Angel must have some strong object for his curious
-conduct, and it was equally clear that the only man who really
-profited by the incident, as far as we could see, was the
-stepfather. Then the fact that the two men were never together,
-but that the one always appeared when the other was away, was
-suggestive. So were the tinted spectacles and the curious voice,
-which both hinted at a disguise, as did the bushy whiskers. My
-suspicions were all confirmed by his peculiar action in
-typewriting his signature, which, of course, inferred that his
-handwriting was so familiar to her that she would recognise even
-the smallest sample of it. You see all these isolated facts,
-together with many minor ones, all pointed in the same
-direction."
-
-"And how did you verify them?"
-
-"Having once spotted my man, it was easy to get corroboration. I
-knew the firm for which this man worked. Having taken the printed
-description. I eliminated everything from it which could be the
-result of a disguise--the whiskers, the glasses, the voice, and I
-sent it to the firm, with a request that they would inform me
-whether it answered to the description of any of their
-travellers. I had already noticed the peculiarities of the
-typewriter, and I wrote to the man himself at his business
-address asking him if he would come here. As I expected, his
-reply was typewritten and revealed the same trivial but
-characteristic defects. The same post brought me a letter from
-Westhouse & Marbank, of Fenchurch Street, to say that the
-description tallied in every respect with that of their employé,
-James Windibank. Voilà tout!"
-
-"And Miss Sutherland?"
-
-"If I tell her she will not believe me. You may remember the old
-Persian saying, 'There is danger for him who taketh the tiger
-cub, and danger also for whoso snatches a delusion from a woman.'
-There is as much sense in Hafiz as in Horace, and as much
-knowledge of the world."
-
-
-
-ADVENTURE IV. THE BOSCOMBE VALLEY MYSTERY
-
-We were seated at breakfast one morning, my wife and I, when the
-maid brought in a telegram. It was from Sherlock Holmes and ran
-in this way:
-
-"Have you a couple of days to spare? Have just been wired for from
-the west of England in connection with Boscombe Valley tragedy.
-Shall be glad if you will come with me. Air and scenery perfect.
-Leave Paddington by the 11:15."
-
-"What do you say, dear?" said my wife, looking across at me.
-"Will you go?"
-
-"I really don't know what to say. I have a fairly long list at
-present."
-
-"Oh, Anstruther would do your work for you. You have been looking
-a little pale lately. I think that the change would do you good,
-and you are always so interested in Mr. Sherlock Holmes' cases."
-
-"I should be ungrateful if I were not, seeing what I gained
-through one of them," I answered. "But if I am to go, I must pack
-at once, for I have only half an hour."
-
-My experience of camp life in Afghanistan had at least had the
-effect of making me a prompt and ready traveller. My wants were
-few and simple, so that in less than the time stated I was in a
-cab with my valise, rattling away to Paddington Station. Sherlock
-Holmes was pacing up and down the platform, his tall, gaunt
-figure made even gaunter and taller by his long grey
-travelling-cloak and close-fitting cloth cap.
-
-"It is really very good of you to come, Watson," said he. "It
-makes a considerable difference to me, having someone with me on
-whom I can thoroughly rely. Local aid is always either worthless
-or else biassed. If you will keep the two corner seats I shall
-get the tickets."
-
-We had the carriage to ourselves save for an immense litter of
-papers which Holmes had brought with him. Among these he rummaged
-and read, with intervals of note-taking and of meditation, until
-we were past Reading. Then he suddenly rolled them all into a
-gigantic ball and tossed them up onto the rack.
-
-"Have you heard anything of the case?" he asked.
-
-"Not a word. I have not seen a paper for some days."
-
-"The London press has not had very full accounts. I have just
-been looking through all the recent papers in order to master the
-particulars. It seems, from what I gather, to be one of those
-simple cases which are so extremely difficult."
-
-"That sounds a little paradoxical."
-
-"But it is profoundly true. Singularity is almost invariably a
-clue. The more featureless and commonplace a crime is, the more
-difficult it is to bring it home. In this case, however, they
-have established a very serious case against the son of the
-murdered man."
-
-"It is a murder, then?"
-
-"Well, it is conjectured to be so. I shall take nothing for
-granted until I have the opportunity of looking personally into
-it. I will explain the state of things to you, as far as I have
-been able to understand it, in a very few words.
-
-"Boscombe Valley is a country district not very far from Ross, in
-Herefordshire. The largest landed proprietor in that part is a
-Mr. John Turner, who made his money in Australia and returned
-some years ago to the old country. One of the farms which he
-held, that of Hatherley, was let to Mr. Charles McCarthy, who was
-also an ex-Australian. The men had known each other in the
-colonies, so that it was not unnatural that when they came to
-settle down they should do so as near each other as possible.
-Turner was apparently the richer man, so McCarthy became his
-tenant but still remained, it seems, upon terms of perfect
-equality, as they were frequently together. McCarthy had one son,
-a lad of eighteen, and Turner had an only daughter of the same
-age, but neither of them had wives living. They appear to have
-avoided the society of the neighbouring English families and to
-have led retired lives, though both the McCarthys were fond of
-sport and were frequently seen at the race-meetings of the
-neighbourhood. McCarthy kept two servants--a man and a girl.
-Turner had a considerable household, some half-dozen at the
-least. That is as much as I have been able to gather about the
-families. Now for the facts.
-
-"On June 3rd, that is, on Monday last, McCarthy left his house at
-Hatherley about three in the afternoon and walked down to the
-Boscombe Pool, which is a small lake formed by the spreading out
-of the stream which runs down the Boscombe Valley. He had been
-out with his serving-man in the morning at Ross, and he had told
-the man that he must hurry, as he had an appointment of
-importance to keep at three. From that appointment he never came
-back alive.
-
-"From Hatherley Farm-house to the Boscombe Pool is a quarter of a
-mile, and two people saw him as he passed over this ground. One
-was an old woman, whose name is not mentioned, and the other was
-William Crowder, a game-keeper in the employ of Mr. Turner. Both
-these witnesses depose that Mr. McCarthy was walking alone. The
-game-keeper adds that within a few minutes of his seeing Mr.
-McCarthy pass he had seen his son, Mr. James McCarthy, going the
-same way with a gun under his arm. To the best of his belief, the
-father was actually in sight at the time, and the son was
-following him. He thought no more of the matter until he heard in
-the evening of the tragedy that had occurred.
-
-"The two McCarthys were seen after the time when William Crowder,
-the game-keeper, lost sight of them. The Boscombe Pool is thickly
-wooded round, with just a fringe of grass and of reeds round the
-edge. A girl of fourteen, Patience Moran, who is the daughter of
-the lodge-keeper of the Boscombe Valley estate, was in one of the
-woods picking flowers. She states that while she was there she
-saw, at the border of the wood and close by the lake, Mr.
-McCarthy and his son, and that they appeared to be having a
-violent quarrel. She heard Mr. McCarthy the elder using very
-strong language to his son, and she saw the latter raise up his
-hand as if to strike his father. She was so frightened by their
-violence that she ran away and told her mother when she reached
-home that she had left the two McCarthys quarrelling near
-Boscombe Pool, and that she was afraid that they were going to
-fight. She had hardly said the words when young Mr. McCarthy came
-running up to the lodge to say that he had found his father dead
-in the wood, and to ask for the help of the lodge-keeper. He was
-much excited, without either his gun or his hat, and his right
-hand and sleeve were observed to be stained with fresh blood. On
-following him they found the dead body stretched out upon the
-grass beside the pool. The head had been beaten in by repeated
-blows of some heavy and blunt weapon. The injuries were such as
-might very well have been inflicted by the butt-end of his son's
-gun, which was found lying on the grass within a few paces of the
-body. Under these circumstances the young man was instantly
-arrested, and a verdict of 'wilful murder' having been returned
-at the inquest on Tuesday, he was on Wednesday brought before the
-magistrates at Ross, who have referred the case to the next
-Assizes. Those are the main facts of the case as they came out
-before the coroner and the police-court."
-
-"I could hardly imagine a more damning case," I remarked. "If
-ever circumstantial evidence pointed to a criminal it does so
-here."
-
-"Circumstantial evidence is a very tricky thing," answered Holmes
-thoughtfully. "It may seem to point very straight to one thing,
-but if you shift your own point of view a little, you may find it
-pointing in an equally uncompromising manner to something
-entirely different. It must be confessed, however, that the case
-looks exceedingly grave against the young man, and it is very
-possible that he is indeed the culprit. There are several people
-in the neighbourhood, however, and among them Miss Turner, the
-daughter of the neighbouring landowner, who believe in his
-innocence, and who have retained Lestrade, whom you may recollect
-in connection with the Study in Scarlet, to work out the case in
-his interest. Lestrade, being rather puzzled, has referred the
-case to me, and hence it is that two middle-aged gentlemen are
-flying westward at fifty miles an hour instead of quietly
-digesting their breakfasts at home."
-
-"I am afraid," said I, "that the facts are so obvious that you
-will find little credit to be gained out of this case."
-
-"There is nothing more deceptive than an obvious fact," he
-answered, laughing. "Besides, we may chance to hit upon some
-other obvious facts which may have been by no means obvious to
-Mr. Lestrade. You know me too well to think that I am boasting
-when I say that I shall either confirm or destroy his theory by
-means which he is quite incapable of employing, or even of
-understanding. To take the first example to hand, I very clearly
-perceive that in your bedroom the window is upon the right-hand
-side, and yet I question whether Mr. Lestrade would have noted
-even so self-evident a thing as that."
-
-"How on earth--"
-
-"My dear fellow, I know you well. I know the military neatness
-which characterises you. You shave every morning, and in this
-season you shave by the sunlight; but since your shaving is less
-and less complete as we get farther back on the left side, until
-it becomes positively slovenly as we get round the angle of the
-jaw, it is surely very clear that that side is less illuminated
-than the other. I could not imagine a man of your habits looking
-at himself in an equal light and being satisfied with such a
-result. I only quote this as a trivial example of observation and
-inference. Therein lies my métier, and it is just possible that
-it may be of some service in the investigation which lies before
-us. There are one or two minor points which were brought out in
-the inquest, and which are worth considering."
-
-"What are they?"
-
-"It appears that his arrest did not take place at once, but after
-the return to Hatherley Farm. On the inspector of constabulary
-informing him that he was a prisoner, he remarked that he was not
-surprised to hear it, and that it was no more than his deserts.
-This observation of his had the natural effect of removing any
-traces of doubt which might have remained in the minds of the
-coroner's jury."
-
-"It was a confession," I ejaculated.
-
-"No, for it was followed by a protestation of innocence."
-
-"Coming on the top of such a damning series of events, it was at
-least a most suspicious remark."
-
-"On the contrary," said Holmes, "it is the brightest rift which I
-can at present see in the clouds. However innocent he might be,
-he could not be such an absolute imbecile as not to see that the
-circumstances were very black against him. Had he appeared
-surprised at his own arrest, or feigned indignation at it, I
-should have looked upon it as highly suspicious, because such
-surprise or anger would not be natural under the circumstances,
-and yet might appear to be the best policy to a scheming man. His
-frank acceptance of the situation marks him as either an innocent
-man, or else as a man of considerable self-restraint and
-firmness. As to his remark about his deserts, it was also not
-unnatural if you consider that he stood beside the dead body of
-his father, and that there is no doubt that he had that very day
-so far forgotten his filial duty as to bandy words with him, and
-even, according to the little girl whose evidence is so
-important, to raise his hand as if to strike him. The
-self-reproach and contrition which are displayed in his remark
-appear to me to be the signs of a healthy mind rather than of a
-guilty one."
-
-I shook my head. "Many men have been hanged on far slighter
-evidence," I remarked.
-
-"So they have. And many men have been wrongfully hanged."
-
-"What is the young man's own account of the matter?"
-
-"It is, I am afraid, not very encouraging to his supporters,
-though there are one or two points in it which are suggestive.
-You will find it here, and may read it for yourself."
-
-He picked out from his bundle a copy of the local Herefordshire
-paper, and having turned down the sheet he pointed out the
-paragraph in which the unfortunate young man had given his own
-statement of what had occurred. I settled myself down in the
-corner of the carriage and read it very carefully. It ran in this
-way:
-
-"Mr. James McCarthy, the only son of the deceased, was then called
-and gave evidence as follows: 'I had been away from home for
-three days at Bristol, and had only just returned upon the
-morning of last Monday, the 3rd. My father was absent from home at
-the time of my arrival, and I was informed by the maid that he
-had driven over to Ross with John Cobb, the groom. Shortly after
-my return I heard the wheels of his trap in the yard, and,
-looking out of my window, I saw him get out and walk rapidly out
-of the yard, though I was not aware in which direction he was
-going. I then took my gun and strolled out in the direction of
-the Boscombe Pool, with the intention of visiting the rabbit
-warren which is upon the other side. On my way I saw William
-Crowder, the game-keeper, as he had stated in his evidence; but
-he is mistaken in thinking that I was following my father. I had
-no idea that he was in front of me. When about a hundred yards
-from the pool I heard a cry of "Cooee!" which was a usual signal
-between my father and myself. I then hurried forward, and found
-him standing by the pool. He appeared to be much surprised at
-seeing me and asked me rather roughly what I was doing there. A
-conversation ensued which led to high words and almost to blows,
-for my father was a man of a very violent temper. Seeing that his
-passion was becoming ungovernable, I left him and returned
-towards Hatherley Farm. I had not gone more than 150 yards,
-however, when I heard a hideous outcry behind me, which caused me
-to run back again. I found my father expiring upon the ground,
-with his head terribly injured. I dropped my gun and held him in
-my arms, but he almost instantly expired. I knelt beside him for
-some minutes, and then made my way to Mr. Turner's lodge-keeper,
-his house being the nearest, to ask for assistance. I saw no one
-near my father when I returned, and I have no idea how he came by
-his injuries. He was not a popular man, being somewhat cold and
-forbidding in his manners, but he had, as far as I know, no
-active enemies. I know nothing further of the matter.'
-
-"The Coroner: Did your father make any statement to you before
-he died?
-
-"Witness: He mumbled a few words, but I could only catch some
-allusion to a rat.
-
-"The Coroner: What did you understand by that?
-
-"Witness: It conveyed no meaning to me. I thought that he was
-delirious.
-
-"The Coroner: What was the point upon which you and your father
-had this final quarrel?
-
-"Witness: I should prefer not to answer.
-
-"The Coroner: I am afraid that I must press it.
-
-"Witness: It is really impossible for me to tell you. I can
-assure you that it has nothing to do with the sad tragedy which
-followed.
-
-"The Coroner: That is for the court to decide. I need not point
-out to you that your refusal to answer will prejudice your case
-considerably in any future proceedings which may arise.
-
-"Witness: I must still refuse.
-
-"The Coroner: I understand that the cry of 'Cooee' was a common
-signal between you and your father?
-
-"Witness: It was.
-
-"The Coroner: How was it, then, that he uttered it before he saw
-you, and before he even knew that you had returned from Bristol?
-
-"Witness (with considerable confusion): I do not know.
-
-"A Juryman: Did you see nothing which aroused your suspicions
-when you returned on hearing the cry and found your father
-fatally injured?
-
-"Witness: Nothing definite.
-
-"The Coroner: What do you mean?
-
-"Witness: I was so disturbed and excited as I rushed out into
-the open, that I could think of nothing except of my father. Yet
-I have a vague impression that as I ran forward something lay
-upon the ground to the left of me. It seemed to me to be
-something grey in colour, a coat of some sort, or a plaid perhaps.
-When I rose from my father I looked round for it, but it was
-gone.
-
-"'Do you mean that it disappeared before you went for help?'
-
-"'Yes, it was gone.'
-
-"'You cannot say what it was?'
-
-"'No, I had a feeling something was there.'
-
-"'How far from the body?'
-
-"'A dozen yards or so.'
-
-"'And how far from the edge of the wood?'
-
-"'About the same.'
-
-"'Then if it was removed it was while you were within a dozen
-yards of it?'
-
-"'Yes, but with my back towards it.'
-
-"This concluded the examination of the witness."
-
-"I see," said I as I glanced down the column, "that the coroner
-in his concluding remarks was rather severe upon young McCarthy.
-He calls attention, and with reason, to the discrepancy about his
-father having signalled to him before seeing him, also to his
-refusal to give details of his conversation with his father, and
-his singular account of his father's dying words. They are all,
-as he remarks, very much against the son."
-
-Holmes laughed softly to himself and stretched himself out upon
-the cushioned seat. "Both you and the coroner have been at some
-pains," said he, "to single out the very strongest points in the
-young man's favour. Don't you see that you alternately give him
-credit for having too much imagination and too little? Too
-little, if he could not invent a cause of quarrel which would
-give him the sympathy of the jury; too much, if he evolved from
-his own inner consciousness anything so outré as a dying
-reference to a rat, and the incident of the vanishing cloth. No,
-sir, I shall approach this case from the point of view that what
-this young man says is true, and we shall see whither that
-hypothesis will lead us. And now here is my pocket Petrarch, and
-not another word shall I say of this case until we are on the
-scene of action. We lunch at Swindon, and I see that we shall be
-there in twenty minutes."
-
-It was nearly four o'clock when we at last, after passing through
-the beautiful Stroud Valley, and over the broad gleaming Severn,
-found ourselves at the pretty little country-town of Ross. A
-lean, ferret-like man, furtive and sly-looking, was waiting for
-us upon the platform. In spite of the light brown dustcoat and
-leather-leggings which he wore in deference to his rustic
-surroundings, I had no difficulty in recognising Lestrade, of
-Scotland Yard. With him we drove to the Hereford Arms where a
-room had already been engaged for us.
-
-"I have ordered a carriage," said Lestrade as we sat over a cup
-of tea. "I knew your energetic nature, and that you would not be
-happy until you had been on the scene of the crime."
-
-"It was very nice and complimentary of you," Holmes answered. "It
-is entirely a question of barometric pressure."
-
-Lestrade looked startled. "I do not quite follow," he said.
-
-"How is the glass? Twenty-nine, I see. No wind, and not a cloud
-in the sky. I have a caseful of cigarettes here which need
-smoking, and the sofa is very much superior to the usual country
-hotel abomination. I do not think that it is probable that I
-shall use the carriage to-night."
-
-Lestrade laughed indulgently. "You have, no doubt, already formed
-your conclusions from the newspapers," he said. "The case is as
-plain as a pikestaff, and the more one goes into it the plainer
-it becomes. Still, of course, one can't refuse a lady, and such a
-very positive one, too. She has heard of you, and would have your
-opinion, though I repeatedly told her that there was nothing
-which you could do which I had not already done. Why, bless my
-soul! here is her carriage at the door."
-
-He had hardly spoken before there rushed into the room one of the
-most lovely young women that I have ever seen in my life. Her
-violet eyes shining, her lips parted, a pink flush upon her
-cheeks, all thought of her natural reserve lost in her
-overpowering excitement and concern.
-
-"Oh, Mr. Sherlock Holmes!" she cried, glancing from one to the
-other of us, and finally, with a woman's quick intuition,
-fastening upon my companion, "I am so glad that you have come. I
-have driven down to tell you so. I know that James didn't do it.
-I know it, and I want you to start upon your work knowing it,
-too. Never let yourself doubt upon that point. We have known each
-other since we were little children, and I know his faults as no
-one else does; but he is too tender-hearted to hurt a fly. Such a
-charge is absurd to anyone who really knows him."
-
-"I hope we may clear him, Miss Turner," said Sherlock Holmes.
-"You may rely upon my doing all that I can."
-
-"But you have read the evidence. You have formed some conclusion?
-Do you not see some loophole, some flaw? Do you not yourself
-think that he is innocent?"
-
-"I think that it is very probable."
-
-"There, now!" she cried, throwing back her head and looking
-defiantly at Lestrade. "You hear! He gives me hopes."
-
-Lestrade shrugged his shoulders. "I am afraid that my colleague
-has been a little quick in forming his conclusions," he said.
-
-"But he is right. Oh! I know that he is right. James never did
-it. And about his quarrel with his father, I am sure that the
-reason why he would not speak about it to the coroner was because
-I was concerned in it."
-
-"In what way?" asked Holmes.
-
-"It is no time for me to hide anything. James and his father had
-many disagreements about me. Mr. McCarthy was very anxious that
-there should be a marriage between us. James and I have always
-loved each other as brother and sister; but of course he is young
-and has seen very little of life yet, and--and--well, he
-naturally did not wish to do anything like that yet. So there
-were quarrels, and this, I am sure, was one of them."
-
-"And your father?" asked Holmes. "Was he in favour of such a
-union?"
-
-"No, he was averse to it also. No one but Mr. McCarthy was in
-favour of it." A quick blush passed over her fresh young face as
-Holmes shot one of his keen, questioning glances at her.
-
-"Thank you for this information," said he. "May I see your father
-if I call to-morrow?"
-
-"I am afraid the doctor won't allow it."
-
-"The doctor?"
-
-"Yes, have you not heard? Poor father has never been strong for
-years back, but this has broken him down completely. He has taken
-to his bed, and Dr. Willows says that he is a wreck and that his
-nervous system is shattered. Mr. McCarthy was the only man alive
-who had known dad in the old days in Victoria."
-
-"Ha! In Victoria! That is important."
-
-"Yes, at the mines."
-
-"Quite so; at the gold-mines, where, as I understand, Mr. Turner
-made his money."
-
-"Yes, certainly."
-
-"Thank you, Miss Turner. You have been of material assistance to
-me."
-
-"You will tell me if you have any news to-morrow. No doubt you
-will go to the prison to see James. Oh, if you do, Mr. Holmes, do
-tell him that I know him to be innocent."
-
-"I will, Miss Turner."
-
-"I must go home now, for dad is very ill, and he misses me so if
-I leave him. Good-bye, and God help you in your undertaking." She
-hurried from the room as impulsively as she had entered, and we
-heard the wheels of her carriage rattle off down the street.
-
-"I am ashamed of you, Holmes," said Lestrade with dignity after a
-few minutes' silence. "Why should you raise up hopes which you
-are bound to disappoint? I am not over-tender of heart, but I
-call it cruel."
-
-"I think that I see my way to clearing James McCarthy," said
-Holmes. "Have you an order to see him in prison?"
-
-"Yes, but only for you and me."
-
-"Then I shall reconsider my resolution about going out. We have
-still time to take a train to Hereford and see him to-night?"
-
-"Ample."
-
-"Then let us do so. Watson, I fear that you will find it very
-slow, but I shall only be away a couple of hours."
-
-I walked down to the station with them, and then wandered through
-the streets of the little town, finally returning to the hotel,
-where I lay upon the sofa and tried to interest myself in a
-yellow-backed novel. The puny plot of the story was so thin,
-however, when compared to the deep mystery through which we were
-groping, and I found my attention wander so continually from the
-action to the fact, that I at last flung it across the room and
-gave myself up entirely to a consideration of the events of the
-day. Supposing that this unhappy young man's story were
-absolutely true, then what hellish thing, what absolutely
-unforeseen and extraordinary calamity could have occurred between
-the time when he parted from his father, and the moment when,
-drawn back by his screams, he rushed into the glade? It was
-something terrible and deadly. What could it be? Might not the
-nature of the injuries reveal something to my medical instincts?
-I rang the bell and called for the weekly county paper, which
-contained a verbatim account of the inquest. In the surgeon's
-deposition it was stated that the posterior third of the left
-parietal bone and the left half of the occipital bone had been
-shattered by a heavy blow from a blunt weapon. I marked the spot
-upon my own head. Clearly such a blow must have been struck from
-behind. That was to some extent in favour of the accused, as when
-seen quarrelling he was face to face with his father. Still, it
-did not go for very much, for the older man might have turned his
-back before the blow fell. Still, it might be worth while to call
-Holmes' attention to it. Then there was the peculiar dying
-reference to a rat. What could that mean? It could not be
-delirium. A man dying from a sudden blow does not commonly become
-delirious. No, it was more likely to be an attempt to explain how
-he met his fate. But what could it indicate? I cudgelled my
-brains to find some possible explanation. And then the incident
-of the grey cloth seen by young McCarthy. If that were true the
-murderer must have dropped some part of his dress, presumably his
-overcoat, in his flight, and must have had the hardihood to
-return and to carry it away at the instant when the son was
-kneeling with his back turned not a dozen paces off. What a
-tissue of mysteries and improbabilities the whole thing was! I
-did not wonder at Lestrade's opinion, and yet I had so much faith
-in Sherlock Holmes' insight that I could not lose hope as long
-as every fresh fact seemed to strengthen his conviction of young
-McCarthy's innocence.
-
-It was late before Sherlock Holmes returned. He came back alone,
-for Lestrade was staying in lodgings in the town.
-
-"The glass still keeps very high," he remarked as he sat down.
-"It is of importance that it should not rain before we are able
-to go over the ground. On the other hand, a man should be at his
-very best and keenest for such nice work as that, and I did not
-wish to do it when fagged by a long journey. I have seen young
-McCarthy."
-
-"And what did you learn from him?"
-
-"Nothing."
-
-"Could he throw no light?"
-
-"None at all. I was inclined to think at one time that he knew
-who had done it and was screening him or her, but I am convinced
-now that he is as puzzled as everyone else. He is not a very
-quick-witted youth, though comely to look at and, I should think,
-sound at heart."
-
-"I cannot admire his taste," I remarked, "if it is indeed a fact
-that he was averse to a marriage with so charming a young lady as
-this Miss Turner."
-
-"Ah, thereby hangs a rather painful tale. This fellow is madly,
-insanely, in love with her, but some two years ago, when he was
-only a lad, and before he really knew her, for she had been away
-five years at a boarding-school, what does the idiot do but get
-into the clutches of a barmaid in Bristol and marry her at a
-registry office? No one knows a word of the matter, but you can
-imagine how maddening it must be to him to be upbraided for not
-doing what he would give his very eyes to do, but what he knows
-to be absolutely impossible. It was sheer frenzy of this sort
-which made him throw his hands up into the air when his father,
-at their last interview, was goading him on to propose to Miss
-Turner. On the other hand, he had no means of supporting himself,
-and his father, who was by all accounts a very hard man, would
-have thrown him over utterly had he known the truth. It was with
-his barmaid wife that he had spent the last three days in
-Bristol, and his father did not know where he was. Mark that
-point. It is of importance. Good has come out of evil, however,
-for the barmaid, finding from the papers that he is in serious
-trouble and likely to be hanged, has thrown him over utterly and
-has written to him to say that she has a husband already in the
-Bermuda Dockyard, so that there is really no tie between them. I
-think that that bit of news has consoled young McCarthy for all
-that he has suffered."
-
-"But if he is innocent, who has done it?"
-
-"Ah! who? I would call your attention very particularly to two
-points. One is that the murdered man had an appointment with
-someone at the pool, and that the someone could not have been his
-son, for his son was away, and he did not know when he would
-return. The second is that the murdered man was heard to cry
-'Cooee!' before he knew that his son had returned. Those are the
-crucial points upon which the case depends. And now let us talk
-about George Meredith, if you please, and we shall leave all
-minor matters until to-morrow."
-
-There was no rain, as Holmes had foretold, and the morning broke
-bright and cloudless. At nine o'clock Lestrade called for us with
-the carriage, and we set off for Hatherley Farm and the Boscombe
-Pool.
-
-"There is serious news this morning," Lestrade observed. "It is
-said that Mr. Turner, of the Hall, is so ill that his life is
-despaired of."
-
-"An elderly man, I presume?" said Holmes.
-
-"About sixty; but his constitution has been shattered by his life
-abroad, and he has been in failing health for some time. This
-business has had a very bad effect upon him. He was an old friend
-of McCarthy's, and, I may add, a great benefactor to him, for I
-have learned that he gave him Hatherley Farm rent free."
-
-"Indeed! That is interesting," said Holmes.
-
-"Oh, yes! In a hundred other ways he has helped him. Everybody
-about here speaks of his kindness to him."
-
-"Really! Does it not strike you as a little singular that this
-McCarthy, who appears to have had little of his own, and to have
-been under such obligations to Turner, should still talk of
-marrying his son to Turner's daughter, who is, presumably,
-heiress to the estate, and that in such a very cocksure manner,
-as if it were merely a case of a proposal and all else would
-follow? It is the more strange, since we know that Turner himself
-was averse to the idea. The daughter told us as much. Do you not
-deduce something from that?"
-
-"We have got to the deductions and the inferences," said
-Lestrade, winking at me. "I find it hard enough to tackle facts,
-Holmes, without flying away after theories and fancies."
-
-"You are right," said Holmes demurely; "you do find it very hard
-to tackle the facts."
-
-"Anyhow, I have grasped one fact which you seem to find it
-difficult to get hold of," replied Lestrade with some warmth.
-
-"And that is--"
-
-"That McCarthy senior met his death from McCarthy junior and that
-all theories to the contrary are the merest moonshine."
-
-"Well, moonshine is a brighter thing than fog," said Holmes,
-laughing. "But I am very much mistaken if this is not Hatherley
-Farm upon the left."
-
-"Yes, that is it." It was a widespread, comfortable-looking
-building, two-storied, slate-roofed, with great yellow blotches
-of lichen upon the grey walls. The drawn blinds and the smokeless
-chimneys, however, gave it a stricken look, as though the weight
-of this horror still lay heavy upon it. We called at the door,
-when the maid, at Holmes' request, showed us the boots which her
-master wore at the time of his death, and also a pair of the
-son's, though not the pair which he had then had. Having measured
-these very carefully from seven or eight different points, Holmes
-desired to be led to the court-yard, from which we all followed
-the winding track which led to Boscombe Pool.
-
-Sherlock Holmes was transformed when he was hot upon such a scent
-as this. Men who had only known the quiet thinker and logician of
-Baker Street would have failed to recognise him. His face flushed
-and darkened. His brows were drawn into two hard black lines,
-while his eyes shone out from beneath them with a steely glitter.
-His face was bent downward, his shoulders bowed, his lips
-compressed, and the veins stood out like whipcord in his long,
-sinewy neck. His nostrils seemed to dilate with a purely animal
-lust for the chase, and his mind was so absolutely concentrated
-upon the matter before him that a question or remark fell
-unheeded upon his ears, or, at the most, only provoked a quick,
-impatient snarl in reply. Swiftly and silently he made his way
-along the track which ran through the meadows, and so by way of
-the woods to the Boscombe Pool. It was damp, marshy ground, as is
-all that district, and there were marks of many feet, both upon
-the path and amid the short grass which bounded it on either
-side. Sometimes Holmes would hurry on, sometimes stop dead, and
-once he made quite a little detour into the meadow. Lestrade and
-I walked behind him, the detective indifferent and contemptuous,
-while I watched my friend with the interest which sprang from the
-conviction that every one of his actions was directed towards a
-definite end.
-
-The Boscombe Pool, which is a little reed-girt sheet of water
-some fifty yards across, is situated at the boundary between the
-Hatherley Farm and the private park of the wealthy Mr. Turner.
-Above the woods which lined it upon the farther side we could see
-the red, jutting pinnacles which marked the site of the rich
-landowner's dwelling. On the Hatherley side of the pool the woods
-grew very thick, and there was a narrow belt of sodden grass
-twenty paces across between the edge of the trees and the reeds
-which lined the lake. Lestrade showed us the exact spot at which
-the body had been found, and, indeed, so moist was the ground,
-that I could plainly see the traces which had been left by the
-fall of the stricken man. To Holmes, as I could see by his eager
-face and peering eyes, very many other things were to be read
-upon the trampled grass. He ran round, like a dog who is picking
-up a scent, and then turned upon my companion.
-
-"What did you go into the pool for?" he asked.
-
-"I fished about with a rake. I thought there might be some weapon
-or other trace. But how on earth--"
-
-"Oh, tut, tut! I have no time! That left foot of yours with its
-inward twist is all over the place. A mole could trace it, and
-there it vanishes among the reeds. Oh, how simple it would all
-have been had I been here before they came like a herd of buffalo
-and wallowed all over it. Here is where the party with the
-lodge-keeper came, and they have covered all tracks for six or
-eight feet round the body. But here are three separate tracks of
-the same feet." He drew out a lens and lay down upon his
-waterproof to have a better view, talking all the time rather to
-himself than to us. "These are young McCarthy's feet. Twice he
-was walking, and once he ran swiftly, so that the soles are
-deeply marked and the heels hardly visible. That bears out his
-story. He ran when he saw his father on the ground. Then here are
-the father's feet as he paced up and down. What is this, then? It
-is the butt-end of the gun as the son stood listening. And this?
-Ha, ha! What have we here? Tiptoes! tiptoes! Square, too, quite
-unusual boots! They come, they go, they come again--of course
-that was for the cloak. Now where did they come from?" He ran up
-and down, sometimes losing, sometimes finding the track until we
-were well within the edge of the wood and under the shadow of a
-great beech, the largest tree in the neighbourhood. Holmes traced
-his way to the farther side of this and lay down once more upon
-his face with a little cry of satisfaction. For a long time he
-remained there, turning over the leaves and dried sticks,
-gathering up what seemed to me to be dust into an envelope and
-examining with his lens not only the ground but even the bark of
-the tree as far as he could reach. A jagged stone was lying among
-the moss, and this also he carefully examined and retained. Then
-he followed a pathway through the wood until he came to the
-highroad, where all traces were lost.
-
-"It has been a case of considerable interest," he remarked,
-returning to his natural manner. "I fancy that this grey house on
-the right must be the lodge. I think that I will go in and have a
-word with Moran, and perhaps write a little note. Having done
-that, we may drive back to our luncheon. You may walk to the cab,
-and I shall be with you presently."
-
-It was about ten minutes before we regained our cab and drove
-back into Ross, Holmes still carrying with him the stone which he
-had picked up in the wood.
-
-"This may interest you, Lestrade," he remarked, holding it out.
-"The murder was done with it."
-
-"I see no marks."
-
-"There are none."
-
-"How do you know, then?"
-
-"The grass was growing under it. It had only lain there a few
-days. There was no sign of a place whence it had been taken. It
-corresponds with the injuries. There is no sign of any other
-weapon."
-
-"And the murderer?"
-
-"Is a tall man, left-handed, limps with the right leg, wears
-thick-soled shooting-boots and a grey cloak, smokes Indian
-cigars, uses a cigar-holder, and carries a blunt pen-knife in his
-pocket. There are several other indications, but these may be
-enough to aid us in our search."
-
-Lestrade laughed. "I am afraid that I am still a sceptic," he
-said. "Theories are all very well, but we have to deal with a
-hard-headed British jury."
-
-"Nous verrons," answered Holmes calmly. "You work your own
-method, and I shall work mine. I shall be busy this afternoon,
-and shall probably return to London by the evening train."
-
-"And leave your case unfinished?"
-
-"No, finished."
-
-"But the mystery?"
-
-"It is solved."
-
-"Who was the criminal, then?"
-
-"The gentleman I describe."
-
-"But who is he?"
-
-"Surely it would not be difficult to find out. This is not such a
-populous neighbourhood."
-
-Lestrade shrugged his shoulders. "I am a practical man," he said,
-"and I really cannot undertake to go about the country looking
-for a left-handed gentleman with a game leg. I should become the
-laughing-stock of Scotland Yard."
-
-"All right," said Holmes quietly. "I have given you the chance.
-Here are your lodgings. Good-bye. I shall drop you a line before
-I leave."
-
-Having left Lestrade at his rooms, we drove to our hotel, where
-we found lunch upon the table. Holmes was silent and buried in
-thought with a pained expression upon his face, as one who finds
-himself in a perplexing position.
-
-"Look here, Watson," he said when the cloth was cleared "just sit
-down in this chair and let me preach to you for a little. I don't
-know quite what to do, and I should value your advice. Light a
-cigar and let me expound."
-
- "Pray do so."
-
-"Well, now, in considering this case there are two points about
-young McCarthy's narrative which struck us both instantly,
-although they impressed me in his favour and you against him. One
-was the fact that his father should, according to his account,
-cry 'Cooee!' before seeing him. The other was his singular dying
-reference to a rat. He mumbled several words, you understand, but
-that was all that caught the son's ear. Now from this double
-point our research must commence, and we will begin it by
-presuming that what the lad says is absolutely true."
-
-"What of this 'Cooee!' then?"
-
-"Well, obviously it could not have been meant for the son. The
-son, as far as he knew, was in Bristol. It was mere chance that
-he was within earshot. The 'Cooee!' was meant to attract the
-attention of whoever it was that he had the appointment with. But
-'Cooee' is a distinctly Australian cry, and one which is used
-between Australians. There is a strong presumption that the
-person whom McCarthy expected to meet him at Boscombe Pool was
-someone who had been in Australia."
-
-"What of the rat, then?"
-
-Sherlock Holmes took a folded paper from his pocket and flattened
-it out on the table. "This is a map of the Colony of Victoria,"
-he said. "I wired to Bristol for it last night." He put his hand
-over part of the map. "What do you read?"
-
-"ARAT," I read.
-
-"And now?" He raised his hand.
-
-"BALLARAT."
-
-"Quite so. That was the word the man uttered, and of which his
-son only caught the last two syllables. He was trying to utter
-the name of his murderer. So and so, of Ballarat."
-
-"It is wonderful!" I exclaimed.
-
-"It is obvious. And now, you see, I had narrowed the field down
-considerably. The possession of a grey garment was a third point
-which, granting the son's statement to be correct, was a
-certainty. We have come now out of mere vagueness to the definite
-conception of an Australian from Ballarat with a grey cloak."
-
-"Certainly."
-
-"And one who was at home in the district, for the pool can only
-be approached by the farm or by the estate, where strangers could
-hardly wander."
-
-"Quite so."
-
-"Then comes our expedition of to-day. By an examination of the
-ground I gained the trifling details which I gave to that
-imbecile Lestrade, as to the personality of the criminal."
-
-"But how did you gain them?"
-
-"You know my method. It is founded upon the observation of
-trifles."
-
-"His height I know that you might roughly judge from the length
-of his stride. His boots, too, might be told from their traces."
-
-"Yes, they were peculiar boots."
-
-"But his lameness?"
-
-"The impression of his right foot was always less distinct than
-his left. He put less weight upon it. Why? Because he limped--he
-was lame."
-
-"But his left-handedness."
-
-"You were yourself struck by the nature of the injury as recorded
-by the surgeon at the inquest. The blow was struck from
-immediately behind, and yet was upon the left side. Now, how can
-that be unless it were by a left-handed man? He had stood behind
-that tree during the interview between the father and son. He had
-even smoked there. I found the ash of a cigar, which my special
-knowledge of tobacco ashes enables me to pronounce as an Indian
-cigar. I have, as you know, devoted some attention to this, and
-written a little monograph on the ashes of 140 different
-varieties of pipe, cigar, and cigarette tobacco. Having found the
-ash, I then looked round and discovered the stump among the moss
-where he had tossed it. It was an Indian cigar, of the variety
-which are rolled in Rotterdam."
-
-"And the cigar-holder?"
-
-"I could see that the end had not been in his mouth. Therefore he
-used a holder. The tip had been cut off, not bitten off, but the
-cut was not a clean one, so I deduced a blunt pen-knife."
-
-"Holmes," I said, "you have drawn a net round this man from which
-he cannot escape, and you have saved an innocent human life as
-truly as if you had cut the cord which was hanging him. I see the
-direction in which all this points. The culprit is--"
-
-"Mr. John Turner," cried the hotel waiter, opening the door of
-our sitting-room, and ushering in a visitor.
-
-The man who entered was a strange and impressive figure. His
-slow, limping step and bowed shoulders gave the appearance of
-decrepitude, and yet his hard, deep-lined, craggy features, and
-his enormous limbs showed that he was possessed of unusual
-strength of body and of character. His tangled beard, grizzled
-hair, and outstanding, drooping eyebrows combined to give an air
-of dignity and power to his appearance, but his face was of an
-ashen white, while his lips and the corners of his nostrils were
-tinged with a shade of blue. It was clear to me at a glance that
-he was in the grip of some deadly and chronic disease.
-
-"Pray sit down on the sofa," said Holmes gently. "You had my
-note?"
-
-"Yes, the lodge-keeper brought it up. You said that you wished to
-see me here to avoid scandal."
-
-"I thought people would talk if I went to the Hall."
-
-"And why did you wish to see me?" He looked across at my
-companion with despair in his weary eyes, as though his question
-was already answered.
-
-"Yes," said Holmes, answering the look rather than the words. "It
-is so. I know all about McCarthy."
-
-The old man sank his face in his hands. "God help me!" he cried.
-"But I would not have let the young man come to harm. I give you
-my word that I would have spoken out if it went against him at
-the Assizes."
-
-"I am glad to hear you say so," said Holmes gravely.
-
-"I would have spoken now had it not been for my dear girl. It
-would break her heart--it will break her heart when she hears
-that I am arrested."
-
-"It may not come to that," said Holmes.
-
-"What?"
-
-"I am no official agent. I understand that it was your daughter
-who required my presence here, and I am acting in her interests.
-Young McCarthy must be got off, however."
-
-"I am a dying man," said old Turner. "I have had diabetes for
-years. My doctor says it is a question whether I shall live a
-month. Yet I would rather die under my own roof than in a gaol."
-
-Holmes rose and sat down at the table with his pen in his hand
-and a bundle of paper before him. "Just tell us the truth," he
-said. "I shall jot down the facts. You will sign it, and Watson
-here can witness it. Then I could produce your confession at the
-last extremity to save young McCarthy. I promise you that I shall
-not use it unless it is absolutely needed."
-
-"It's as well," said the old man; "it's a question whether I
-shall live to the Assizes, so it matters little to me, but I
-should wish to spare Alice the shock. And now I will make the
-thing clear to you; it has been a long time in the acting, but
-will not take me long to tell.
-
-"You didn't know this dead man, McCarthy. He was a devil
-incarnate. I tell you that. God keep you out of the clutches of
-such a man as he. His grip has been upon me these twenty years,
-and he has blasted my life. I'll tell you first how I came to be
-in his power.
-
-"It was in the early '60's at the diggings. I was a young chap
-then, hot-blooded and reckless, ready to turn my hand at
-anything; I got among bad companions, took to drink, had no luck
-with my claim, took to the bush, and in a word became what you
-would call over here a highway robber. There were six of us, and
-we had a wild, free life of it, sticking up a station from time
-to time, or stopping the wagons on the road to the diggings.
-Black Jack of Ballarat was the name I went under, and our party
-is still remembered in the colony as the Ballarat Gang.
-
-"One day a gold convoy came down from Ballarat to Melbourne, and
-we lay in wait for it and attacked it. There were six troopers
-and six of us, so it was a close thing, but we emptied four of
-their saddles at the first volley. Three of our boys were killed,
-however, before we got the swag. I put my pistol to the head of
-the wagon-driver, who was this very man McCarthy. I wish to the
-Lord that I had shot him then, but I spared him, though I saw his
-wicked little eyes fixed on my face, as though to remember every
-feature. We got away with the gold, became wealthy men, and made
-our way over to England without being suspected. There I parted
-from my old pals and determined to settle down to a quiet and
-respectable life. I bought this estate, which chanced to be in
-the market, and I set myself to do a little good with my money,
-to make up for the way in which I had earned it. I married, too,
-and though my wife died young she left me my dear little Alice.
-Even when she was just a baby her wee hand seemed to lead me down
-the right path as nothing else had ever done. In a word, I turned
-over a new leaf and did my best to make up for the past. All was
-going well when McCarthy laid his grip upon me.
-
-"I had gone up to town about an investment, and I met him in
-Regent Street with hardly a coat to his back or a boot to his
-foot.
-
-"'Here we are, Jack,' says he, touching me on the arm; 'we'll be
-as good as a family to you. There's two of us, me and my son, and
-you can have the keeping of us. If you don't--it's a fine,
-law-abiding country is England, and there's always a policeman
-within hail.'
-
-"Well, down they came to the west country, there was no shaking
-them off, and there they have lived rent free on my best land
-ever since. There was no rest for me, no peace, no forgetfulness;
-turn where I would, there was his cunning, grinning face at my
-elbow. It grew worse as Alice grew up, for he soon saw I was more
-afraid of her knowing my past than of the police. Whatever he
-wanted he must have, and whatever it was I gave him without
-question, land, money, houses, until at last he asked a thing
-which I could not give. He asked for Alice.
-
-"His son, you see, had grown up, and so had my girl, and as I was
-known to be in weak health, it seemed a fine stroke to him that
-his lad should step into the whole property. But there I was
-firm. I would not have his cursed stock mixed with mine; not that
-I had any dislike to the lad, but his blood was in him, and that
-was enough. I stood firm. McCarthy threatened. I braved him to do
-his worst. We were to meet at the pool midway between our houses
-to talk it over.
-
-"When I went down there I found him talking with his son, so I
-smoked a cigar and waited behind a tree until he should be alone.
-But as I listened to his talk all that was black and bitter in
-me seemed to come uppermost. He was urging his son to marry my
-daughter with as little regard for what she might think as if she
-were a slut from off the streets. It drove me mad to think that I
-and all that I held most dear should be in the power of such a
-man as this. Could I not snap the bond? I was already a dying and
-a desperate man. Though clear of mind and fairly strong of limb,
-I knew that my own fate was sealed. But my memory and my girl!
-Both could be saved if I could but silence that foul tongue. I
-did it, Mr. Holmes. I would do it again. Deeply as I have sinned,
-I have led a life of martyrdom to atone for it. But that my girl
-should be entangled in the same meshes which held me was more
-than I could suffer. I struck him down with no more compunction
-than if he had been some foul and venomous beast. His cry brought
-back his son; but I had gained the cover of the wood, though I
-was forced to go back to fetch the cloak which I had dropped in
-my flight. That is the true story, gentlemen, of all that
-occurred."
-
-"Well, it is not for me to judge you," said Holmes as the old man
-signed the statement which had been drawn out. "I pray that we
-may never be exposed to such a temptation."
-
-"I pray not, sir. And what do you intend to do?"
-
-"In view of your health, nothing. You are yourself aware that you
-will soon have to answer for your deed at a higher court than the
-Assizes. I will keep your confession, and if McCarthy is
-condemned I shall be forced to use it. If not, it shall never be
-seen by mortal eye; and your secret, whether you be alive or
-dead, shall be safe with us."
-
-"Farewell, then," said the old man solemnly. "Your own deathbeds,
-when they come, will be the easier for the thought of the peace
-which you have given to mine." Tottering and shaking in all his
-giant frame, he stumbled slowly from the room.
-
-"God help us!" said Holmes after a long silence. "Why does fate
-play such tricks with poor, helpless worms? I never hear of such
-a case as this that I do not think of Baxter's words, and say,
-'There, but for the grace of God, goes Sherlock Holmes.'"
-
-James McCarthy was acquitted at the Assizes on the strength of a
-number of objections which had been drawn out by Holmes and
-submitted to the defending counsel. Old Turner lived for seven
-months after our interview, but he is now dead; and there is
-every prospect that the son and daughter may come to live happily
-together in ignorance of the black cloud which rests upon their
-past.
-
-
-
-ADVENTURE V. THE FIVE ORANGE PIPS
-
-When I glance over my notes and records of the Sherlock Holmes
-cases between the years '82 and '90, I am faced by so many which
-present strange and interesting features that it is no easy
-matter to know which to choose and which to leave. Some, however,
-have already gained publicity through the papers, and others have
-not offered a field for those peculiar qualities which my friend
-possessed in so high a degree, and which it is the object of
-these papers to illustrate. Some, too, have baffled his
-analytical skill, and would be, as narratives, beginnings without
-an ending, while others have been but partially cleared up, and
-have their explanations founded rather upon conjecture and
-surmise than on that absolute logical proof which was so dear to
-him. There is, however, one of these last which was so remarkable
-in its details and so startling in its results that I am tempted
-to give some account of it in spite of the fact that there are
-points in connection with it which never have been, and probably
-never will be, entirely cleared up.
-
-The year '87 furnished us with a long series of cases of greater
-or less interest, of which I retain the records. Among my
-headings under this one twelve months I find an account of the
-adventure of the Paradol Chamber, of the Amateur Mendicant
-Society, who held a luxurious club in the lower vault of a
-furniture warehouse, of the facts connected with the loss of the
-British barque "Sophy Anderson", of the singular adventures of the
-Grice Patersons in the island of Uffa, and finally of the
-Camberwell poisoning case. In the latter, as may be remembered,
-Sherlock Holmes was able, by winding up the dead man's watch, to
-prove that it had been wound up two hours before, and that
-therefore the deceased had gone to bed within that time--a
-deduction which was of the greatest importance in clearing up the
-case. All these I may sketch out at some future date, but none of
-them present such singular features as the strange train of
-circumstances which I have now taken up my pen to describe.
-
-It was in the latter days of September, and the equinoctial gales
-had set in with exceptional violence. All day the wind had
-screamed and the rain had beaten against the windows, so that
-even here in the heart of great, hand-made London we were forced
-to raise our minds for the instant from the routine of life and
-to recognise the presence of those great elemental forces which
-shriek at mankind through the bars of his civilisation, like
-untamed beasts in a cage. As evening drew in, the storm grew
-higher and louder, and the wind cried and sobbed like a child in
-the chimney. Sherlock Holmes sat moodily at one side of the
-fireplace cross-indexing his records of crime, while I at the
-other was deep in one of Clark Russell's fine sea-stories until
-the howl of the gale from without seemed to blend with the text,
-and the splash of the rain to lengthen out into the long swash of
-the sea waves. My wife was on a visit to her mother's, and for a
-few days I was a dweller once more in my old quarters at Baker
-Street.
-
-"Why," said I, glancing up at my companion, "that was surely the
-bell. Who could come to-night? Some friend of yours, perhaps?"
-
-"Except yourself I have none," he answered. "I do not encourage
-visitors."
-
-"A client, then?"
-
-"If so, it is a serious case. Nothing less would bring a man out
-on such a day and at such an hour. But I take it that it is more
-likely to be some crony of the landlady's."
-
-Sherlock Holmes was wrong in his conjecture, however, for there
-came a step in the passage and a tapping at the door. He
-stretched out his long arm to turn the lamp away from himself and
-towards the vacant chair upon which a newcomer must sit.
-
-"Come in!" said he.
-
-The man who entered was young, some two-and-twenty at the
-outside, well-groomed and trimly clad, with something of
-refinement and delicacy in his bearing. The streaming umbrella
-which he held in his hand, and his long shining waterproof told
-of the fierce weather through which he had come. He looked about
-him anxiously in the glare of the lamp, and I could see that his
-face was pale and his eyes heavy, like those of a man who is
-weighed down with some great anxiety.
-
-"I owe you an apology," he said, raising his golden pince-nez to
-his eyes. "I trust that I am not intruding. I fear that I have
-brought some traces of the storm and rain into your snug
-chamber."
-
-"Give me your coat and umbrella," said Holmes. "They may rest
-here on the hook and will be dry presently. You have come up from
-the south-west, I see."
-
-"Yes, from Horsham."
-
-"That clay and chalk mixture which I see upon your toe caps is
-quite distinctive."
-
-"I have come for advice."
-
-"That is easily got."
-
-"And help."
-
-"That is not always so easy."
-
-"I have heard of you, Mr. Holmes. I heard from Major Prendergast
-how you saved him in the Tankerville Club scandal."
-
-"Ah, of course. He was wrongfully accused of cheating at cards."
-
-"He said that you could solve anything."
-
-"He said too much."
-
-"That you are never beaten."
-
-"I have been beaten four times--three times by men, and once by a
-woman."
-
-"But what is that compared with the number of your successes?"
-
-"It is true that I have been generally successful."
-
-"Then you may be so with me."
-
-"I beg that you will draw your chair up to the fire and favour me
-with some details as to your case."
-
-"It is no ordinary one."
-
-"None of those which come to me are. I am the last court of
-appeal."
-
-"And yet I question, sir, whether, in all your experience, you
-have ever listened to a more mysterious and inexplicable chain of
-events than those which have happened in my own family."
-
-"You fill me with interest," said Holmes. "Pray give us the
-essential facts from the commencement, and I can afterwards
-question you as to those details which seem to me to be most
-important."
-
-The young man pulled his chair up and pushed his wet feet out
-towards the blaze.
-
-"My name," said he, "is John Openshaw, but my own affairs have,
-as far as I can understand, little to do with this awful
-business. It is a hereditary matter; so in order to give you an
-idea of the facts, I must go back to the commencement of the
-affair.
-
-"You must know that my grandfather had two sons--my uncle Elias
-and my father Joseph. My father had a small factory at Coventry,
-which he enlarged at the time of the invention of bicycling. He
-was a patentee of the Openshaw unbreakable tire, and his business
-met with such success that he was able to sell it and to retire
-upon a handsome competence.
-
-"My uncle Elias emigrated to America when he was a young man and
-became a planter in Florida, where he was reported to have done
-very well. At the time of the war he fought in Jackson's army,
-and afterwards under Hood, where he rose to be a colonel. When
-Lee laid down his arms my uncle returned to his plantation, where
-he remained for three or four years. About 1869 or 1870 he came
-back to Europe and took a small estate in Sussex, near Horsham.
-He had made a very considerable fortune in the States, and his
-reason for leaving them was his aversion to the negroes, and his
-dislike of the Republican policy in extending the franchise to
-them. He was a singular man, fierce and quick-tempered, very
-foul-mouthed when he was angry, and of a most retiring
-disposition. During all the years that he lived at Horsham, I
-doubt if ever he set foot in the town. He had a garden and two or
-three fields round his house, and there he would take his
-exercise, though very often for weeks on end he would never leave
-his room. He drank a great deal of brandy and smoked very
-heavily, but he would see no society and did not want any
-friends, not even his own brother.
-
-"He didn't mind me; in fact, he took a fancy to me, for at the
-time when he saw me first I was a youngster of twelve or so. This
-would be in the year 1878, after he had been eight or nine years
-in England. He begged my father to let me live with him and he
-was very kind to me in his way. When he was sober he used to be
-fond of playing backgammon and draughts with me, and he would
-make me his representative both with the servants and with the
-tradespeople, so that by the time that I was sixteen I was quite
-master of the house. I kept all the keys and could go where I
-liked and do what I liked, so long as I did not disturb him in
-his privacy. There was one singular exception, however, for he
-had a single room, a lumber-room up among the attics, which was
-invariably locked, and which he would never permit either me or
-anyone else to enter. With a boy's curiosity I have peeped
-through the keyhole, but I was never able to see more than such a
-collection of old trunks and bundles as would be expected in such
-a room.
-
-"One day--it was in March, 1883--a letter with a foreign stamp
-lay upon the table in front of the colonel's plate. It was not a
-common thing for him to receive letters, for his bills were all
-paid in ready money, and he had no friends of any sort. 'From
-India!' said he as he took it up, 'Pondicherry postmark! What can
-this be?' Opening it hurriedly, out there jumped five little
-dried orange pips, which pattered down upon his plate. I began to
-laugh at this, but the laugh was struck from my lips at the sight
-of his face. His lip had fallen, his eyes were protruding, his
-skin the colour of putty, and he glared at the envelope which he
-still held in his trembling hand, 'K. K. K.!' he shrieked, and
-then, 'My God, my God, my sins have overtaken me!'
-
-"'What is it, uncle?' I cried.
-
-"'Death,' said he, and rising from the table he retired to his
-room, leaving me palpitating with horror. I took up the envelope
-and saw scrawled in red ink upon the inner flap, just above the
-gum, the letter K three times repeated. There was nothing else
-save the five dried pips. What could be the reason of his
-overpowering terror? I left the breakfast-table, and as I
-ascended the stair I met him coming down with an old rusty key,
-which must have belonged to the attic, in one hand, and a small
-brass box, like a cashbox, in the other.
-
-"'They may do what they like, but I'll checkmate them still,'
-said he with an oath. 'Tell Mary that I shall want a fire in my
-room to-day, and send down to Fordham, the Horsham lawyer.'
-
-"I did as he ordered, and when the lawyer arrived I was asked to
-step up to the room. The fire was burning brightly, and in the
-grate there was a mass of black, fluffy ashes, as of burned
-paper, while the brass box stood open and empty beside it. As I
-glanced at the box I noticed, with a start, that upon the lid was
-printed the treble K which I had read in the morning upon the
-envelope.
-
-"'I wish you, John,' said my uncle, 'to witness my will. I leave
-my estate, with all its advantages and all its disadvantages, to
-my brother, your father, whence it will, no doubt, descend to
-you. If you can enjoy it in peace, well and good! If you find you
-cannot, take my advice, my boy, and leave it to your deadliest
-enemy. I am sorry to give you such a two-edged thing, but I can't
-say what turn things are going to take. Kindly sign the paper
-where Mr. Fordham shows you.'
-
-"I signed the paper as directed, and the lawyer took it away with
-him. The singular incident made, as you may think, the deepest
-impression upon me, and I pondered over it and turned it every
-way in my mind without being able to make anything of it. Yet I
-could not shake off the vague feeling of dread which it left
-behind, though the sensation grew less keen as the weeks passed
-and nothing happened to disturb the usual routine of our lives. I
-could see a change in my uncle, however. He drank more than ever,
-and he was less inclined for any sort of society. Most of his
-time he would spend in his room, with the door locked upon the
-inside, but sometimes he would emerge in a sort of drunken frenzy
-and would burst out of the house and tear about the garden with a
-revolver in his hand, screaming out that he was afraid of no man,
-and that he was not to be cooped up, like a sheep in a pen, by
-man or devil. When these hot fits were over, however, he would
-rush tumultuously in at the door and lock and bar it behind him,
-like a man who can brazen it out no longer against the terror
-which lies at the roots of his soul. At such times I have seen
-his face, even on a cold day, glisten with moisture, as though it
-were new raised from a basin.
-
-"Well, to come to an end of the matter, Mr. Holmes, and not to
-abuse your patience, there came a night when he made one of those
-drunken sallies from which he never came back. We found him, when
-we went to search for him, face downward in a little
-green-scummed pool, which lay at the foot of the garden. There
-was no sign of any violence, and the water was but two feet deep,
-so that the jury, having regard to his known eccentricity,
-brought in a verdict of 'suicide.' But I, who knew how he winced
-from the very thought of death, had much ado to persuade myself
-that he had gone out of his way to meet it. The matter passed,
-however, and my father entered into possession of the estate, and
-of some 14,000 pounds, which lay to his credit at the bank."
-
-"One moment," Holmes interposed, "your statement is, I foresee,
-one of the most remarkable to which I have ever listened. Let me
-have the date of the reception by your uncle of the letter, and
-the date of his supposed suicide."
-
-"The letter arrived on March 10, 1883. His death was seven weeks
-later, upon the night of May 2nd."
-
-"Thank you. Pray proceed."
-
-"When my father took over the Horsham property, he, at my
-request, made a careful examination of the attic, which had been
-always locked up. We found the brass box there, although its
-contents had been destroyed. On the inside of the cover was a
-paper label, with the initials of K. K. K. repeated upon it, and
-'Letters, memoranda, receipts, and a register' written beneath.
-These, we presume, indicated the nature of the papers which had
-been destroyed by Colonel Openshaw. For the rest, there was
-nothing of much importance in the attic save a great many
-scattered papers and note-books bearing upon my uncle's life in
-America. Some of them were of the war time and showed that he had
-done his duty well and had borne the repute of a brave soldier.
-Others were of a date during the reconstruction of the Southern
-states, and were mostly concerned with politics, for he had
-evidently taken a strong part in opposing the carpet-bag
-politicians who had been sent down from the North.
-
-"Well, it was the beginning of '84 when my father came to live at
-Horsham, and all went as well as possible with us until the
-January of '85. On the fourth day after the new year I heard my
-father give a sharp cry of surprise as we sat together at the
-breakfast-table. There he was, sitting with a newly opened
-envelope in one hand and five dried orange pips in the
-outstretched palm of the other one. He had always laughed at what
-he called my cock-and-bull story about the colonel, but he looked
-very scared and puzzled now that the same thing had come upon
-himself.
-
-"'Why, what on earth does this mean, John?' he stammered.
-
-"My heart had turned to lead. 'It is K. K. K.,' said I.
-
-"He looked inside the envelope. 'So it is,' he cried. 'Here are
-the very letters. But what is this written above them?'
-
-"'Put the papers on the sundial,' I read, peeping over his
-shoulder.
-
-"'What papers? What sundial?' he asked.
-
-"'The sundial in the garden. There is no other,' said I; 'but the
-papers must be those that are destroyed.'
-
-"'Pooh!' said he, gripping hard at his courage. 'We are in a
-civilised land here, and we can't have tomfoolery of this kind.
-Where does the thing come from?'
-
-"'From Dundee,' I answered, glancing at the postmark.
-
-"'Some preposterous practical joke,' said he. 'What have I to do
-with sundials and papers? I shall take no notice of such
-nonsense.'
-
-"'I should certainly speak to the police,' I said.
-
-"'And be laughed at for my pains. Nothing of the sort.'
-
-"'Then let me do so?'
-
-"'No, I forbid you. I won't have a fuss made about such
-nonsense.'
-
-"It was in vain to argue with him, for he was a very obstinate
-man. I went about, however, with a heart which was full of
-forebodings.
-
-"On the third day after the coming of the letter my father went
-from home to visit an old friend of his, Major Freebody, who is
-in command of one of the forts upon Portsdown Hill. I was glad
-that he should go, for it seemed to me that he was farther from
-danger when he was away from home. In that, however, I was in
-error. Upon the second day of his absence I received a telegram
-from the major, imploring me to come at once. My father had
-fallen over one of the deep chalk-pits which abound in the
-neighbourhood, and was lying senseless, with a shattered skull. I
-hurried to him, but he passed away without having ever recovered
-his consciousness. He had, as it appears, been returning from
-Fareham in the twilight, and as the country was unknown to him,
-and the chalk-pit unfenced, the jury had no hesitation in
-bringing in a verdict of 'death from accidental causes.'
-Carefully as I examined every fact connected with his death, I
-was unable to find anything which could suggest the idea of
-murder. There were no signs of violence, no footmarks, no
-robbery, no record of strangers having been seen upon the roads.
-And yet I need not tell you that my mind was far from at ease,
-and that I was well-nigh certain that some foul plot had been
-woven round him.
-
-"In this sinister way I came into my inheritance. You will ask me
-why I did not dispose of it? I answer, because I was well
-convinced that our troubles were in some way dependent upon an
-incident in my uncle's life, and that the danger would be as
-pressing in one house as in another.
-
-"It was in January, '85, that my poor father met his end, and two
-years and eight months have elapsed since then. During that time
-I have lived happily at Horsham, and I had begun to hope that
-this curse had passed away from the family, and that it had ended
-with the last generation. I had begun to take comfort too soon,
-however; yesterday morning the blow fell in the very shape in
-which it had come upon my father."
-
-The young man took from his waistcoat a crumpled envelope, and
-turning to the table he shook out upon it five little dried
-orange pips.
-
-"This is the envelope," he continued. "The postmark is
-London--eastern division. Within are the very words which were
-upon my father's last message: 'K. K. K.'; and then 'Put the
-papers on the sundial.'"
-
-"What have you done?" asked Holmes.
-
-"Nothing."
-
-"Nothing?"
-
-"To tell the truth"--he sank his face into his thin, white
-hands--"I have felt helpless. I have felt like one of those poor
-rabbits when the snake is writhing towards it. I seem to be in
-the grasp of some resistless, inexorable evil, which no foresight
-and no precautions can guard against."
-
-"Tut! tut!" cried Sherlock Holmes. "You must act, man, or you are
-lost. Nothing but energy can save you. This is no time for
-despair."
-
-"I have seen the police."
-
-"Ah!"
-
-"But they listened to my story with a smile. I am convinced that
-the inspector has formed the opinion that the letters are all
-practical jokes, and that the deaths of my relations were really
-accidents, as the jury stated, and were not to be connected with
-the warnings."
-
-Holmes shook his clenched hands in the air. "Incredible
-imbecility!" he cried.
-
-"They have, however, allowed me a policeman, who may remain in
-the house with me."
-
-"Has he come with you to-night?"
-
-"No. His orders were to stay in the house."
-
-Again Holmes raved in the air.
-
-"Why did you come to me," he cried, "and, above all, why did you
-not come at once?"
-
-"I did not know. It was only to-day that I spoke to Major
-Prendergast about my troubles and was advised by him to come to
-you."
-
-"It is really two days since you had the letter. We should have
-acted before this. You have no further evidence, I suppose, than
-that which you have placed before us--no suggestive detail which
-might help us?"
-
-"There is one thing," said John Openshaw. He rummaged in his coat
-pocket, and, drawing out a piece of discoloured, blue-tinted
-paper, he laid it out upon the table. "I have some remembrance,"
-said he, "that on the day when my uncle burned the papers I
-observed that the small, unburned margins which lay amid the
-ashes were of this particular colour. I found this single sheet
-upon the floor of his room, and I am inclined to think that it
-may be one of the papers which has, perhaps, fluttered out from
-among the others, and in that way has escaped destruction. Beyond
-the mention of pips, I do not see that it helps us much. I think
-myself that it is a page from some private diary. The writing is
-undoubtedly my uncle's."
-
-Holmes moved the lamp, and we both bent over the sheet of paper,
-which showed by its ragged edge that it had indeed been torn from
-a book. It was headed, "March, 1869," and beneath were the
-following enigmatical notices:
-
-"4th. Hudson came. Same old platform.
-
-"7th. Set the pips on McCauley, Paramore, and
- John Swain, of St. Augustine.
-
-"9th. McCauley cleared.
-
-"10th. John Swain cleared.
-
-"12th. Visited Paramore. All well."
-
-"Thank you!" said Holmes, folding up the paper and returning it
-to our visitor. "And now you must on no account lose another
-instant. We cannot spare time even to discuss what you have told
-me. You must get home instantly and act."
-
-"What shall I do?"
-
-"There is but one thing to do. It must be done at once. You must
-put this piece of paper which you have shown us into the brass
-box which you have described. You must also put in a note to say
-that all the other papers were burned by your uncle, and that
-this is the only one which remains. You must assert that in such
-words as will carry conviction with them. Having done this, you
-must at once put the box out upon the sundial, as directed. Do
-you understand?"
-
-"Entirely."
-
-"Do not think of revenge, or anything of the sort, at present. I
-think that we may gain that by means of the law; but we have our
-web to weave, while theirs is already woven. The first
-consideration is to remove the pressing danger which threatens
-you. The second is to clear up the mystery and to punish the
-guilty parties."
-
-"I thank you," said the young man, rising and pulling on his
-overcoat. "You have given me fresh life and hope. I shall
-certainly do as you advise."
-
-"Do not lose an instant. And, above all, take care of yourself in
-the meanwhile, for I do not think that there can be a doubt that
-you are threatened by a very real and imminent danger. How do you
-go back?"
-
-"By train from Waterloo."
-
-"It is not yet nine. The streets will be crowded, so I trust that
-you may be in safety. And yet you cannot guard yourself too
-closely."
-
-"I am armed."
-
-"That is well. To-morrow I shall set to work upon your case."
-
-"I shall see you at Horsham, then?"
-
-"No, your secret lies in London. It is there that I shall seek
-it."
-
-"Then I shall call upon you in a day, or in two days, with news
-as to the box and the papers. I shall take your advice in every
-particular." He shook hands with us and took his leave. Outside
-the wind still screamed and the rain splashed and pattered
-against the windows. This strange, wild story seemed to have come
-to us from amid the mad elements--blown in upon us like a sheet
-of sea-weed in a gale--and now to have been reabsorbed by them
-once more.
-
-Sherlock Holmes sat for some time in silence, with his head sunk
-forward and his eyes bent upon the red glow of the fire. Then he
-lit his pipe, and leaning back in his chair he watched the blue
-smoke-rings as they chased each other up to the ceiling.
-
-"I think, Watson," he remarked at last, "that of all our cases we
-have had none more fantastic than this."
-
-"Save, perhaps, the Sign of Four."
-
-"Well, yes. Save, perhaps, that. And yet this John Openshaw seems
-to me to be walking amid even greater perils than did the
-Sholtos."
-
-"But have you," I asked, "formed any definite conception as to
-what these perils are?"
-
-"There can be no question as to their nature," he answered.
-
-"Then what are they? Who is this K. K. K., and why does he pursue
-this unhappy family?"
-
-Sherlock Holmes closed his eyes and placed his elbows upon the
-arms of his chair, with his finger-tips together. "The ideal
-reasoner," he remarked, "would, when he had once been shown a
-single fact in all its bearings, deduce from it not only all the
-chain of events which led up to it but also all the results which
-would follow from it. As Cuvier could correctly describe a whole
-animal by the contemplation of a single bone, so the observer who
-has thoroughly understood one link in a series of incidents
-should be able to accurately state all the other ones, both
-before and after. We have not yet grasped the results which the
-reason alone can attain to. Problems may be solved in the study
-which have baffled all those who have sought a solution by the
-aid of their senses. To carry the art, however, to its highest
-pitch, it is necessary that the reasoner should be able to
-utilise all the facts which have come to his knowledge; and this
-in itself implies, as you will readily see, a possession of all
-knowledge, which, even in these days of free education and
-encyclopaedias, is a somewhat rare accomplishment. It is not so
-impossible, however, that a man should possess all knowledge
-which is likely to be useful to him in his work, and this I have
-endeavoured in my case to do. If I remember rightly, you on one
-occasion, in the early days of our friendship, defined my limits
-in a very precise fashion."
-
-"Yes," I answered, laughing. "It was a singular document.
-Philosophy, astronomy, and politics were marked at zero, I
-remember. Botany variable, geology profound as regards the
-mud-stains from any region within fifty miles of town, chemistry
-eccentric, anatomy unsystematic, sensational literature and crime
-records unique, violin-player, boxer, swordsman, lawyer, and
-self-poisoner by cocaine and tobacco. Those, I think, were the
-main points of my analysis."
-
-Holmes grinned at the last item. "Well," he said, "I say now, as
-I said then, that a man should keep his little brain-attic
-stocked with all the furniture that he is likely to use, and the
-rest he can put away in the lumber-room of his library, where he
-can get it if he wants it. Now, for such a case as the one which
-has been submitted to us to-night, we need certainly to muster
-all our resources. Kindly hand me down the letter K of the
-'American Encyclopaedia' which stands upon the shelf beside you.
-Thank you. Now let us consider the situation and see what may be
-deduced from it. In the first place, we may start with a strong
-presumption that Colonel Openshaw had some very strong reason for
-leaving America. Men at his time of life do not change all their
-habits and exchange willingly the charming climate of Florida for
-the lonely life of an English provincial town. His extreme love
-of solitude in England suggests the idea that he was in fear of
-someone or something, so we may assume as a working hypothesis
-that it was fear of someone or something which drove him from
-America. As to what it was he feared, we can only deduce that by
-considering the formidable letters which were received by himself
-and his successors. Did you remark the postmarks of those
-letters?"
-
-"The first was from Pondicherry, the second from Dundee, and the
-third from London."
-
-"From East London. What do you deduce from that?"
-
-"They are all seaports. That the writer was on board of a ship."
-
-"Excellent. We have already a clue. There can be no doubt that
-the probability--the strong probability--is that the writer was
-on board of a ship. And now let us consider another point. In the
-case of Pondicherry, seven weeks elapsed between the threat and
-its fulfilment, in Dundee it was only some three or four days.
-Does that suggest anything?"
-
-"A greater distance to travel."
-
-"But the letter had also a greater distance to come."
-
-"Then I do not see the point."
-
-"There is at least a presumption that the vessel in which the man
-or men are is a sailing-ship. It looks as if they always send
-their singular warning or token before them when starting upon
-their mission. You see how quickly the deed followed the sign
-when it came from Dundee. If they had come from Pondicherry in a
-steamer they would have arrived almost as soon as their letter.
-But, as a matter of fact, seven weeks elapsed. I think that those
-seven weeks represented the difference between the mail-boat which
-brought the letter and the sailing vessel which brought the
-writer."
-
-"It is possible."
-
-"More than that. It is probable. And now you see the deadly
-urgency of this new case, and why I urged young Openshaw to
-caution. The blow has always fallen at the end of the time which
-it would take the senders to travel the distance. But this one
-comes from London, and therefore we cannot count upon delay."
-
-"Good God!" I cried. "What can it mean, this relentless
-persecution?"
-
-"The papers which Openshaw carried are obviously of vital
-importance to the person or persons in the sailing-ship. I think
-that it is quite clear that there must be more than one of them.
-A single man could not have carried out two deaths in such a way
-as to deceive a coroner's jury. There must have been several in
-it, and they must have been men of resource and determination.
-Their papers they mean to have, be the holder of them who it may.
-In this way you see K. K. K. ceases to be the initials of an
-individual and becomes the badge of a society."
-
-"But of what society?"
-
-"Have you never--" said Sherlock Holmes, bending forward and
-sinking his voice--"have you never heard of the Ku Klux Klan?"
-
-"I never have."
-
-Holmes turned over the leaves of the book upon his knee. "Here it
-is," said he presently:
-
-"'Ku Klux Klan. A name derived from the fanciful resemblance to
-the sound produced by cocking a rifle. This terrible secret
-society was formed by some ex-Confederate soldiers in the
-Southern states after the Civil War, and it rapidly formed local
-branches in different parts of the country, notably in Tennessee,
-Louisiana, the Carolinas, Georgia, and Florida. Its power was
-used for political purposes, principally for the terrorising of
-the negro voters and the murdering and driving from the country
-of those who were opposed to its views. Its outrages were usually
-preceded by a warning sent to the marked man in some fantastic
-but generally recognised shape--a sprig of oak-leaves in some
-parts, melon seeds or orange pips in others. On receiving this
-the victim might either openly abjure his former ways, or might
-fly from the country. If he braved the matter out, death would
-unfailingly come upon him, and usually in some strange and
-unforeseen manner. So perfect was the organisation of the
-society, and so systematic its methods, that there is hardly a
-case upon record where any man succeeded in braving it with
-impunity, or in which any of its outrages were traced home to the
-perpetrators. For some years the organisation flourished in spite
-of the efforts of the United States government and of the better
-classes of the community in the South. Eventually, in the year
-1869, the movement rather suddenly collapsed, although there have
-been sporadic outbreaks of the same sort since that date.'
-
-"You will observe," said Holmes, laying down the volume, "that
-the sudden breaking up of the society was coincident with the
-disappearance of Openshaw from America with their papers. It may
-well have been cause and effect. It is no wonder that he and his
-family have some of the more implacable spirits upon their track.
-You can understand that this register and diary may implicate
-some of the first men in the South, and that there may be many
-who will not sleep easy at night until it is recovered."
-
-"Then the page we have seen--"
-
-"Is such as we might expect. It ran, if I remember right, 'sent
-the pips to A, B, and C'--that is, sent the society's warning to
-them. Then there are successive entries that A and B cleared, or
-left the country, and finally that C was visited, with, I fear, a
-sinister result for C. Well, I think, Doctor, that we may let
-some light into this dark place, and I believe that the only
-chance young Openshaw has in the meantime is to do what I have
-told him. There is nothing more to be said or to be done
-to-night, so hand me over my violin and let us try to forget for
-half an hour the miserable weather and the still more miserable
-ways of our fellow-men."
-
-
-It had cleared in the morning, and the sun was shining with a
-subdued brightness through the dim veil which hangs over the
-great city. Sherlock Holmes was already at breakfast when I came
-down.
-
-"You will excuse me for not waiting for you," said he; "I have, I
-foresee, a very busy day before me in looking into this case of
-young Openshaw's."
-
-"What steps will you take?" I asked.
-
-"It will very much depend upon the results of my first inquiries.
-I may have to go down to Horsham, after all."
-
-"You will not go there first?"
-
-"No, I shall commence with the City. Just ring the bell and the
-maid will bring up your coffee."
-
-As I waited, I lifted the unopened newspaper from the table and
-glanced my eye over it. It rested upon a heading which sent a
-chill to my heart.
-
-"Holmes," I cried, "you are too late."
-
-"Ah!" said he, laying down his cup, "I feared as much. How was it
-done?" He spoke calmly, but I could see that he was deeply moved.
-
-"My eye caught the name of Openshaw, and the heading 'Tragedy
-Near Waterloo Bridge.' Here is the account:
-
-"Between nine and ten last night Police-Constable Cook, of the H
-Division, on duty near Waterloo Bridge, heard a cry for help and
-a splash in the water. The night, however, was extremely dark and
-stormy, so that, in spite of the help of several passers-by, it
-was quite impossible to effect a rescue. The alarm, however, was
-given, and, by the aid of the water-police, the body was
-eventually recovered. It proved to be that of a young gentleman
-whose name, as it appears from an envelope which was found in his
-pocket, was John Openshaw, and whose residence is near Horsham.
-It is conjectured that he may have been hurrying down to catch
-the last train from Waterloo Station, and that in his haste and
-the extreme darkness he missed his path and walked over the edge
-of one of the small landing-places for river steamboats. The body
-exhibited no traces of violence, and there can be no doubt that
-the deceased had been the victim of an unfortunate accident,
-which should have the effect of calling the attention of the
-authorities to the condition of the riverside landing-stages."
-
-We sat in silence for some minutes, Holmes more depressed and
-shaken than I had ever seen him.
-
-"That hurts my pride, Watson," he said at last. "It is a petty
-feeling, no doubt, but it hurts my pride. It becomes a personal
-matter with me now, and, if God sends me health, I shall set my
-hand upon this gang. That he should come to me for help, and that
-I should send him away to his death--!" He sprang from his chair
-and paced about the room in uncontrollable agitation, with a
-flush upon his sallow cheeks and a nervous clasping and
-unclasping of his long thin hands.
-
-"They must be cunning devils," he exclaimed at last. "How could
-they have decoyed him down there? The Embankment is not on the
-direct line to the station. The bridge, no doubt, was too
-crowded, even on such a night, for their purpose. Well, Watson,
-we shall see who will win in the long run. I am going out now!"
-
-"To the police?"
-
-"No; I shall be my own police. When I have spun the web they may
-take the flies, but not before."
-
-All day I was engaged in my professional work, and it was late in
-the evening before I returned to Baker Street. Sherlock Holmes
-had not come back yet. It was nearly ten o'clock before he
-entered, looking pale and worn. He walked up to the sideboard,
-and tearing a piece from the loaf he devoured it voraciously,
-washing it down with a long draught of water.
-
-"You are hungry," I remarked.
-
-"Starving. It had escaped my memory. I have had nothing since
-breakfast."
-
-"Nothing?"
-
-"Not a bite. I had no time to think of it."
-
-"And how have you succeeded?"
-
-"Well."
-
-"You have a clue?"
-
-"I have them in the hollow of my hand. Young Openshaw shall not
-long remain unavenged. Why, Watson, let us put their own devilish
-trade-mark upon them. It is well thought of!"
-
-"What do you mean?"
-
-He took an orange from the cupboard, and tearing it to pieces he
-squeezed out the pips upon the table. Of these he took five and
-thrust them into an envelope. On the inside of the flap he wrote
-"S. H. for J. O." Then he sealed it and addressed it to "Captain
-James Calhoun, Barque 'Lone Star,' Savannah, Georgia."
-
-"That will await him when he enters port," said he, chuckling.
-"It may give him a sleepless night. He will find it as sure a
-precursor of his fate as Openshaw did before him."
-
-"And who is this Captain Calhoun?"
-
-"The leader of the gang. I shall have the others, but he first."
-
-"How did you trace it, then?"
-
-He took a large sheet of paper from his pocket, all covered with
-dates and names.
-
-"I have spent the whole day," said he, "over Lloyd's registers
-and files of the old papers, following the future career of every
-vessel which touched at Pondicherry in January and February in
-'83. There were thirty-six ships of fair tonnage which were
-reported there during those months. Of these, one, the 'Lone Star,'
-instantly attracted my attention, since, although it was reported
-as having cleared from London, the name is that which is given to
-one of the states of the Union."
-
-"Texas, I think."
-
-"I was not and am not sure which; but I knew that the ship must
-have an American origin."
-
-"What then?"
-
-"I searched the Dundee records, and when I found that the barque
-'Lone Star' was there in January, '85, my suspicion became a
-certainty. I then inquired as to the vessels which lay at present
-in the port of London."
-
-"Yes?"
-
-"The 'Lone Star' had arrived here last week. I went down to the
-Albert Dock and found that she had been taken down the river by
-the early tide this morning, homeward bound to Savannah. I wired
-to Gravesend and learned that she had passed some time ago, and
-as the wind is easterly I have no doubt that she is now past the
-Goodwins and not very far from the Isle of Wight."
-
-"What will you do, then?"
-
-"Oh, I have my hand upon him. He and the two mates, are as I
-learn, the only native-born Americans in the ship. The others are
-Finns and Germans. I know, also, that they were all three away
-from the ship last night. I had it from the stevedore who has
-been loading their cargo. By the time that their sailing-ship
-reaches Savannah the mail-boat will have carried this letter, and
-the cable will have informed the police of Savannah that these
-three gentlemen are badly wanted here upon a charge of murder."
-
-There is ever a flaw, however, in the best laid of human plans,
-and the murderers of John Openshaw were never to receive the
-orange pips which would show them that another, as cunning and as
-resolute as themselves, was upon their track. Very long and very
-severe were the equinoctial gales that year. We waited long for
-news of the "Lone Star" of Savannah, but none ever reached us. We
-did at last hear that somewhere far out in the Atlantic a
-shattered stern-post of a boat was seen swinging in the trough
-of a wave, with the letters "L. S." carved upon it, and that is
-all which we shall ever know of the fate of the "Lone Star."
-
-
-
-ADVENTURE VI. THE MAN WITH THE TWISTED LIP
-
-Isa Whitney, brother of the late Elias Whitney, D.D., Principal
-of the Theological College of St. George's, was much addicted to
-opium. The habit grew upon him, as I understand, from some
-foolish freak when he was at college; for having read De
-Quincey's description of his dreams and sensations, he had
-drenched his tobacco with laudanum in an attempt to produce the
-same effects. He found, as so many more have done, that the
-practice is easier to attain than to get rid of, and for many
-years he continued to be a slave to the drug, an object of
-mingled horror and pity to his friends and relatives. I can see
-him now, with yellow, pasty face, drooping lids, and pin-point
-pupils, all huddled in a chair, the wreck and ruin of a noble
-man.
-
-One night--it was in June, '89--there came a ring to my bell,
-about the hour when a man gives his first yawn and glances at the
-clock. I sat up in my chair, and my wife laid her needle-work
-down in her lap and made a little face of disappointment.
-
-"A patient!" said she. "You'll have to go out."
-
-I groaned, for I was newly come back from a weary day.
-
-We heard the door open, a few hurried words, and then quick steps
-upon the linoleum. Our own door flew open, and a lady, clad in
-some dark-coloured stuff, with a black veil, entered the room.
-
-"You will excuse my calling so late," she began, and then,
-suddenly losing her self-control, she ran forward, threw her arms
-about my wife's neck, and sobbed upon her shoulder. "Oh, I'm in
-such trouble!" she cried; "I do so want a little help."
-
-"Why," said my wife, pulling up her veil, "it is Kate Whitney.
-How you startled me, Kate! I had not an idea who you were when
-you came in."
-
-"I didn't know what to do, so I came straight to you." That was
-always the way. Folk who were in grief came to my wife like birds
-to a light-house.
-
-"It was very sweet of you to come. Now, you must have some wine
-and water, and sit here comfortably and tell us all about it. Or
-should you rather that I sent James off to bed?"
-
-"Oh, no, no! I want the doctor's advice and help, too. It's about
-Isa. He has not been home for two days. I am so frightened about
-him!"
-
-It was not the first time that she had spoken to us of her
-husband's trouble, to me as a doctor, to my wife as an old friend
-and school companion. We soothed and comforted her by such words
-as we could find. Did she know where her husband was? Was it
-possible that we could bring him back to her?
-
-It seems that it was. She had the surest information that of late
-he had, when the fit was on him, made use of an opium den in the
-farthest east of the City. Hitherto his orgies had always been
-confined to one day, and he had come back, twitching and
-shattered, in the evening. But now the spell had been upon him
-eight-and-forty hours, and he lay there, doubtless among the
-dregs of the docks, breathing in the poison or sleeping off the
-effects. There he was to be found, she was sure of it, at the Bar
-of Gold, in Upper Swandam Lane. But what was she to do? How could
-she, a young and timid woman, make her way into such a place and
-pluck her husband out from among the ruffians who surrounded him?
-
-There was the case, and of course there was but one way out of
-it. Might I not escort her to this place? And then, as a second
-thought, why should she come at all? I was Isa Whitney's medical
-adviser, and as such I had influence over him. I could manage it
-better if I were alone. I promised her on my word that I would
-send him home in a cab within two hours if he were indeed at the
-address which she had given me. And so in ten minutes I had left
-my armchair and cheery sitting-room behind me, and was speeding
-eastward in a hansom on a strange errand, as it seemed to me at
-the time, though the future only could show how strange it was to
-be.
-
-But there was no great difficulty in the first stage of my
-adventure. Upper Swandam Lane is a vile alley lurking behind the
-high wharves which line the north side of the river to the east
-of London Bridge. Between a slop-shop and a gin-shop, approached
-by a steep flight of steps leading down to a black gap like the
-mouth of a cave, I found the den of which I was in search.
-Ordering my cab to wait, I passed down the steps, worn hollow in
-the centre by the ceaseless tread of drunken feet; and by the
-light of a flickering oil-lamp above the door I found the latch
-and made my way into a long, low room, thick and heavy with the
-brown opium smoke, and terraced with wooden berths, like the
-forecastle of an emigrant ship.
-
-Through the gloom one could dimly catch a glimpse of bodies lying
-in strange fantastic poses, bowed shoulders, bent knees, heads
-thrown back, and chins pointing upward, with here and there a
-dark, lack-lustre eye turned upon the newcomer. Out of the black
-shadows there glimmered little red circles of light, now bright,
-now faint, as the burning poison waxed or waned in the bowls of
-the metal pipes. The most lay silent, but some muttered to
-themselves, and others talked together in a strange, low,
-monotonous voice, their conversation coming in gushes, and then
-suddenly tailing off into silence, each mumbling out his own
-thoughts and paying little heed to the words of his neighbour. At
-the farther end was a small brazier of burning charcoal, beside
-which on a three-legged wooden stool there sat a tall, thin old
-man, with his jaw resting upon his two fists, and his elbows upon
-his knees, staring into the fire.
-
-As I entered, a sallow Malay attendant had hurried up with a pipe
-for me and a supply of the drug, beckoning me to an empty berth.
-
-"Thank you. I have not come to stay," said I. "There is a friend
-of mine here, Mr. Isa Whitney, and I wish to speak with him."
-
-There was a movement and an exclamation from my right, and
-peering through the gloom, I saw Whitney, pale, haggard, and
-unkempt, staring out at me.
-
-"My God! It's Watson," said he. He was in a pitiable state of
-reaction, with every nerve in a twitter. "I say, Watson, what
-o'clock is it?"
-
-"Nearly eleven."
-
-"Of what day?"
-
-"Of Friday, June 19th."
-
-"Good heavens! I thought it was Wednesday. It is Wednesday. What
-d'you want to frighten a chap for?" He sank his face onto his
-arms and began to sob in a high treble key.
-
-"I tell you that it is Friday, man. Your wife has been waiting
-this two days for you. You should be ashamed of yourself!"
-
-"So I am. But you've got mixed, Watson, for I have only been here
-a few hours, three pipes, four pipes--I forget how many. But I'll
-go home with you. I wouldn't frighten Kate--poor little Kate.
-Give me your hand! Have you a cab?"
-
-"Yes, I have one waiting."
-
-"Then I shall go in it. But I must owe something. Find what I
-owe, Watson. I am all off colour. I can do nothing for myself."
-
-I walked down the narrow passage between the double row of
-sleepers, holding my breath to keep out the vile, stupefying
-fumes of the drug, and looking about for the manager. As I passed
-the tall man who sat by the brazier I felt a sudden pluck at my
-skirt, and a low voice whispered, "Walk past me, and then look
-back at me." The words fell quite distinctly upon my ear. I
-glanced down. They could only have come from the old man at my
-side, and yet he sat now as absorbed as ever, very thin, very
-wrinkled, bent with age, an opium pipe dangling down from between
-his knees, as though it had dropped in sheer lassitude from his
-fingers. I took two steps forward and looked back. It took all my
-self-control to prevent me from breaking out into a cry of
-astonishment. He had turned his back so that none could see him
-but I. His form had filled out, his wrinkles were gone, the dull
-eyes had regained their fire, and there, sitting by the fire and
-grinning at my surprise, was none other than Sherlock Holmes. He
-made a slight motion to me to approach him, and instantly, as he
-turned his face half round to the company once more, subsided
-into a doddering, loose-lipped senility.
-
-"Holmes!" I whispered, "what on earth are you doing in this den?"
-
-"As low as you can," he answered; "I have excellent ears. If you
-would have the great kindness to get rid of that sottish friend
-of yours I should be exceedingly glad to have a little talk with
-you."
-
-"I have a cab outside."
-
-"Then pray send him home in it. You may safely trust him, for he
-appears to be too limp to get into any mischief. I should
-recommend you also to send a note by the cabman to your wife to
-say that you have thrown in your lot with me. If you will wait
-outside, I shall be with you in five minutes."
-
-It was difficult to refuse any of Sherlock Holmes' requests, for
-they were always so exceedingly definite, and put forward with
-such a quiet air of mastery. I felt, however, that when Whitney
-was once confined in the cab my mission was practically
-accomplished; and for the rest, I could not wish anything better
-than to be associated with my friend in one of those singular
-adventures which were the normal condition of his existence. In a
-few minutes I had written my note, paid Whitney's bill, led him
-out to the cab, and seen him driven through the darkness. In a
-very short time a decrepit figure had emerged from the opium den,
-and I was walking down the street with Sherlock Holmes. For two
-streets he shuffled along with a bent back and an uncertain foot.
-Then, glancing quickly round, he straightened himself out and
-burst into a hearty fit of laughter.
-
-"I suppose, Watson," said he, "that you imagine that I have added
-opium-smoking to cocaine injections, and all the other little
-weaknesses on which you have favoured me with your medical
-views."
-
-"I was certainly surprised to find you there."
-
-"But not more so than I to find you."
-
-"I came to find a friend."
-
-"And I to find an enemy."
-
-"An enemy?"
-
-"Yes; one of my natural enemies, or, shall I say, my natural
-prey. Briefly, Watson, I am in the midst of a very remarkable
-inquiry, and I have hoped to find a clue in the incoherent
-ramblings of these sots, as I have done before now. Had I been
-recognised in that den my life would not have been worth an
-hour's purchase; for I have used it before now for my own
-purposes, and the rascally Lascar who runs it has sworn to have
-vengeance upon me. There is a trap-door at the back of that
-building, near the corner of Paul's Wharf, which could tell some
-strange tales of what has passed through it upon the moonless
-nights."
-
-"What! You do not mean bodies?"
-
-"Ay, bodies, Watson. We should be rich men if we had 1000 pounds
-for every poor devil who has been done to death in that den. It
-is the vilest murder-trap on the whole riverside, and I fear that
-Neville St. Clair has entered it never to leave it more. But our
-trap should be here." He put his two forefingers between his
-teeth and whistled shrilly--a signal which was answered by a
-similar whistle from the distance, followed shortly by the rattle
-of wheels and the clink of horses' hoofs.
-
-"Now, Watson," said Holmes, as a tall dog-cart dashed up through
-the gloom, throwing out two golden tunnels of yellow light from
-its side lanterns. "You'll come with me, won't you?"
-
-"If I can be of use."
-
-"Oh, a trusty comrade is always of use; and a chronicler still
-more so. My room at The Cedars is a double-bedded one."
-
-"The Cedars?"
-
-"Yes; that is Mr. St. Clair's house. I am staying there while I
-conduct the inquiry."
-
-"Where is it, then?"
-
-"Near Lee, in Kent. We have a seven-mile drive before us."
-
-"But I am all in the dark."
-
-"Of course you are. You'll know all about it presently. Jump up
-here. All right, John; we shall not need you. Here's half a
-crown. Look out for me to-morrow, about eleven. Give her her
-head. So long, then!"
-
-He flicked the horse with his whip, and we dashed away through
-the endless succession of sombre and deserted streets, which
-widened gradually, until we were flying across a broad
-balustraded bridge, with the murky river flowing sluggishly
-beneath us. Beyond lay another dull wilderness of bricks and
-mortar, its silence broken only by the heavy, regular footfall of
-the policeman, or the songs and shouts of some belated party of
-revellers. A dull wrack was drifting slowly across the sky, and a
-star or two twinkled dimly here and there through the rifts of
-the clouds. Holmes drove in silence, with his head sunk upon his
-breast, and the air of a man who is lost in thought, while I sat
-beside him, curious to learn what this new quest might be which
-seemed to tax his powers so sorely, and yet afraid to break in
-upon the current of his thoughts. We had driven several miles,
-and were beginning to get to the fringe of the belt of suburban
-villas, when he shook himself, shrugged his shoulders, and lit up
-his pipe with the air of a man who has satisfied himself that he
-is acting for the best.
-
-"You have a grand gift of silence, Watson," said he. "It makes
-you quite invaluable as a companion. 'Pon my word, it is a great
-thing for me to have someone to talk to, for my own thoughts are
-not over-pleasant. I was wondering what I should say to this dear
-little woman to-night when she meets me at the door."
-
-"You forget that I know nothing about it."
-
-"I shall just have time to tell you the facts of the case before
-we get to Lee. It seems absurdly simple, and yet, somehow I can
-get nothing to go upon. There's plenty of thread, no doubt, but I
-can't get the end of it into my hand. Now, I'll state the case
-clearly and concisely to you, Watson, and maybe you can see a
-spark where all is dark to me."
-
-"Proceed, then."
-
-"Some years ago--to be definite, in May, 1884--there came to Lee
-a gentleman, Neville St. Clair by name, who appeared to have
-plenty of money. He took a large villa, laid out the grounds very
-nicely, and lived generally in good style. By degrees he made
-friends in the neighbourhood, and in 1887 he married the daughter
-of a local brewer, by whom he now has two children. He had no
-occupation, but was interested in several companies and went into
-town as a rule in the morning, returning by the 5:14 from Cannon
-Street every night. Mr. St. Clair is now thirty-seven years of
-age, is a man of temperate habits, a good husband, a very
-affectionate father, and a man who is popular with all who know
-him. I may add that his whole debts at the present moment, as far
-as we have been able to ascertain, amount to 88 pounds 10s., while
-he has 220 pounds standing to his credit in the Capital and
-Counties Bank. There is no reason, therefore, to think that money
-troubles have been weighing upon his mind.
-
-"Last Monday Mr. Neville St. Clair went into town rather earlier
-than usual, remarking before he started that he had two important
-commissions to perform, and that he would bring his little boy
-home a box of bricks. Now, by the merest chance, his wife
-received a telegram upon this same Monday, very shortly after his
-departure, to the effect that a small parcel of considerable
-value which she had been expecting was waiting for her at the
-offices of the Aberdeen Shipping Company. Now, if you are well up
-in your London, you will know that the office of the company is
-in Fresno Street, which branches out of Upper Swandam Lane, where
-you found me to-night. Mrs. St. Clair had her lunch, started for
-the City, did some shopping, proceeded to the company's office,
-got her packet, and found herself at exactly 4:35 walking through
-Swandam Lane on her way back to the station. Have you followed me
-so far?"
-
-"It is very clear."
-
-"If you remember, Monday was an exceedingly hot day, and Mrs. St.
-Clair walked slowly, glancing about in the hope of seeing a cab,
-as she did not like the neighbourhood in which she found herself.
-While she was walking in this way down Swandam Lane, she suddenly
-heard an ejaculation or cry, and was struck cold to see her
-husband looking down at her and, as it seemed to her, beckoning
-to her from a second-floor window. The window was open, and she
-distinctly saw his face, which she describes as being terribly
-agitated. He waved his hands frantically to her, and then
-vanished from the window so suddenly that it seemed to her that
-he had been plucked back by some irresistible force from behind.
-One singular point which struck her quick feminine eye was that
-although he wore some dark coat, such as he had started to town
-in, he had on neither collar nor necktie.
-
-"Convinced that something was amiss with him, she rushed down the
-steps--for the house was none other than the opium den in which
-you found me to-night--and running through the front room she
-attempted to ascend the stairs which led to the first floor. At
-the foot of the stairs, however, she met this Lascar scoundrel of
-whom I have spoken, who thrust her back and, aided by a Dane, who
-acts as assistant there, pushed her out into the street. Filled
-with the most maddening doubts and fears, she rushed down the
-lane and, by rare good-fortune, met in Fresno Street a number of
-constables with an inspector, all on their way to their beat. The
-inspector and two men accompanied her back, and in spite of the
-continued resistance of the proprietor, they made their way to
-the room in which Mr. St. Clair had last been seen. There was no
-sign of him there. In fact, in the whole of that floor there was
-no one to be found save a crippled wretch of hideous aspect, who,
-it seems, made his home there. Both he and the Lascar stoutly
-swore that no one else had been in the front room during the
-afternoon. So determined was their denial that the inspector was
-staggered, and had almost come to believe that Mrs. St. Clair had
-been deluded when, with a cry, she sprang at a small deal box
-which lay upon the table and tore the lid from it. Out there fell
-a cascade of children's bricks. It was the toy which he had
-promised to bring home.
-
-"This discovery, and the evident confusion which the cripple
-showed, made the inspector realise that the matter was serious.
-The rooms were carefully examined, and results all pointed to an
-abominable crime. The front room was plainly furnished as a
-sitting-room and led into a small bedroom, which looked out upon
-the back of one of the wharves. Between the wharf and the bedroom
-window is a narrow strip, which is dry at low tide but is covered
-at high tide with at least four and a half feet of water. The
-bedroom window was a broad one and opened from below. On
-examination traces of blood were to be seen upon the windowsill,
-and several scattered drops were visible upon the wooden floor of
-the bedroom. Thrust away behind a curtain in the front room were
-all the clothes of Mr. Neville St. Clair, with the exception of
-his coat. His boots, his socks, his hat, and his watch--all were
-there. There were no signs of violence upon any of these
-garments, and there were no other traces of Mr. Neville St.
-Clair. Out of the window he must apparently have gone for no
-other exit could be discovered, and the ominous bloodstains upon
-the sill gave little promise that he could save himself by
-swimming, for the tide was at its very highest at the moment of
-the tragedy.
-
-"And now as to the villains who seemed to be immediately
-implicated in the matter. The Lascar was known to be a man of the
-vilest antecedents, but as, by Mrs. St. Clair's story, he was
-known to have been at the foot of the stair within a very few
-seconds of her husband's appearance at the window, he could
-hardly have been more than an accessory to the crime. His defence
-was one of absolute ignorance, and he protested that he had no
-knowledge as to the doings of Hugh Boone, his lodger, and that he
-could not account in any way for the presence of the missing
-gentleman's clothes.
-
-"So much for the Lascar manager. Now for the sinister cripple who
-lives upon the second floor of the opium den, and who was
-certainly the last human being whose eyes rested upon Neville St.
-Clair. His name is Hugh Boone, and his hideous face is one which
-is familiar to every man who goes much to the City. He is a
-professional beggar, though in order to avoid the police
-regulations he pretends to a small trade in wax vestas. Some
-little distance down Threadneedle Street, upon the left-hand
-side, there is, as you may have remarked, a small angle in the
-wall. Here it is that this creature takes his daily seat,
-cross-legged with his tiny stock of matches on his lap, and as he
-is a piteous spectacle a small rain of charity descends into the
-greasy leather cap which lies upon the pavement beside him. I
-have watched the fellow more than once before ever I thought of
-making his professional acquaintance, and I have been surprised
-at the harvest which he has reaped in a short time. His
-appearance, you see, is so remarkable that no one can pass him
-without observing him. A shock of orange hair, a pale face
-disfigured by a horrible scar, which, by its contraction, has
-turned up the outer edge of his upper lip, a bulldog chin, and a
-pair of very penetrating dark eyes, which present a singular
-contrast to the colour of his hair, all mark him out from amid
-the common crowd of mendicants and so, too, does his wit, for he
-is ever ready with a reply to any piece of chaff which may be
-thrown at him by the passers-by. This is the man whom we now
-learn to have been the lodger at the opium den, and to have been
-the last man to see the gentleman of whom we are in quest."
-
-"But a cripple!" said I. "What could he have done single-handed
-against a man in the prime of life?"
-
-"He is a cripple in the sense that he walks with a limp; but in
-other respects he appears to be a powerful and well-nurtured man.
-Surely your medical experience would tell you, Watson, that
-weakness in one limb is often compensated for by exceptional
-strength in the others."
-
-"Pray continue your narrative."
-
-"Mrs. St. Clair had fainted at the sight of the blood upon the
-window, and she was escorted home in a cab by the police, as her
-presence could be of no help to them in their investigations.
-Inspector Barton, who had charge of the case, made a very careful
-examination of the premises, but without finding anything which
-threw any light upon the matter. One mistake had been made in not
-arresting Boone instantly, as he was allowed some few minutes
-during which he might have communicated with his friend the
-Lascar, but this fault was soon remedied, and he was seized and
-searched, without anything being found which could incriminate
-him. There were, it is true, some blood-stains upon his right
-shirt-sleeve, but he pointed to his ring-finger, which had been
-cut near the nail, and explained that the bleeding came from
-there, adding that he had been to the window not long before, and
-that the stains which had been observed there came doubtless from
-the same source. He denied strenuously having ever seen Mr.
-Neville St. Clair and swore that the presence of the clothes in
-his room was as much a mystery to him as to the police. As to
-Mrs. St. Clair's assertion that she had actually seen her husband
-at the window, he declared that she must have been either mad or
-dreaming. He was removed, loudly protesting, to the
-police-station, while the inspector remained upon the premises in
-the hope that the ebbing tide might afford some fresh clue.
-
-"And it did, though they hardly found upon the mud-bank what they
-had feared to find. It was Neville St. Clair's coat, and not
-Neville St. Clair, which lay uncovered as the tide receded. And
-what do you think they found in the pockets?"
-
-"I cannot imagine."
-
-"No, I don't think you would guess. Every pocket stuffed with
-pennies and half-pennies--421 pennies and 270 half-pennies. It
-was no wonder that it had not been swept away by the tide. But a
-human body is a different matter. There is a fierce eddy between
-the wharf and the house. It seemed likely enough that the
-weighted coat had remained when the stripped body had been sucked
-away into the river."
-
-"But I understand that all the other clothes were found in the
-room. Would the body be dressed in a coat alone?"
-
-"No, sir, but the facts might be met speciously enough. Suppose
-that this man Boone had thrust Neville St. Clair through the
-window, there is no human eye which could have seen the deed.
-What would he do then? It would of course instantly strike him
-that he must get rid of the tell-tale garments. He would seize
-the coat, then, and be in the act of throwing it out, when it
-would occur to him that it would swim and not sink. He has little
-time, for he has heard the scuffle downstairs when the wife tried
-to force her way up, and perhaps he has already heard from his
-Lascar confederate that the police are hurrying up the street.
-There is not an instant to be lost. He rushes to some secret
-hoard, where he has accumulated the fruits of his beggary, and he
-stuffs all the coins upon which he can lay his hands into the
-pockets to make sure of the coat's sinking. He throws it out, and
-would have done the same with the other garments had not he heard
-the rush of steps below, and only just had time to close the
-window when the police appeared."
-
-"It certainly sounds feasible."
-
-"Well, we will take it as a working hypothesis for want of a
-better. Boone, as I have told you, was arrested and taken to the
-station, but it could not be shown that there had ever before
-been anything against him. He had for years been known as a
-professional beggar, but his life appeared to have been a very
-quiet and innocent one. There the matter stands at present, and
-the questions which have to be solved--what Neville St. Clair was
-doing in the opium den, what happened to him when there, where is
-he now, and what Hugh Boone had to do with his disappearance--are
-all as far from a solution as ever. I confess that I cannot
-recall any case within my experience which looked at the first
-glance so simple and yet which presented such difficulties."
-
-While Sherlock Holmes had been detailing this singular series of
-events, we had been whirling through the outskirts of the great
-town until the last straggling houses had been left behind, and
-we rattled along with a country hedge upon either side of us.
-Just as he finished, however, we drove through two scattered
-villages, where a few lights still glimmered in the windows.
-
-"We are on the outskirts of Lee," said my companion. "We have
-touched on three English counties in our short drive, starting in
-Middlesex, passing over an angle of Surrey, and ending in Kent.
-See that light among the trees? That is The Cedars, and beside
-that lamp sits a woman whose anxious ears have already, I have
-little doubt, caught the clink of our horse's feet."
-
-"But why are you not conducting the case from Baker Street?" I
-asked.
-
-"Because there are many inquiries which must be made out here.
-Mrs. St. Clair has most kindly put two rooms at my disposal, and
-you may rest assured that she will have nothing but a welcome for
-my friend and colleague. I hate to meet her, Watson, when I have
-no news of her husband. Here we are. Whoa, there, whoa!"
-
-We had pulled up in front of a large villa which stood within its
-own grounds. A stable-boy had run out to the horse's head, and
-springing down, I followed Holmes up the small, winding
-gravel-drive which led to the house. As we approached, the door
-flew open, and a little blonde woman stood in the opening, clad
-in some sort of light mousseline de soie, with a touch of fluffy
-pink chiffon at her neck and wrists. She stood with her figure
-outlined against the flood of light, one hand upon the door, one
-half-raised in her eagerness, her body slightly bent, her head
-and face protruded, with eager eyes and parted lips, a standing
-question.
-
-"Well?" she cried, "well?" And then, seeing that there were two
-of us, she gave a cry of hope which sank into a groan as she saw
-that my companion shook his head and shrugged his shoulders.
-
-"No good news?"
-
-"None."
-
-"No bad?"
-
-"No."
-
-"Thank God for that. But come in. You must be weary, for you have
-had a long day."
-
-"This is my friend, Dr. Watson. He has been of most vital use to
-me in several of my cases, and a lucky chance has made it
-possible for me to bring him out and associate him with this
-investigation."
-
-"I am delighted to see you," said she, pressing my hand warmly.
-"You will, I am sure, forgive anything that may be wanting in our
-arrangements, when you consider the blow which has come so
-suddenly upon us."
-
-"My dear madam," said I, "I am an old campaigner, and if I were
-not I can very well see that no apology is needed. If I can be of
-any assistance, either to you or to my friend here, I shall be
-indeed happy."
-
-"Now, Mr. Sherlock Holmes," said the lady as we entered a
-well-lit dining-room, upon the table of which a cold supper had
-been laid out, "I should very much like to ask you one or two
-plain questions, to which I beg that you will give a plain
-answer."
-
-"Certainly, madam."
-
-"Do not trouble about my feelings. I am not hysterical, nor given
-to fainting. I simply wish to hear your real, real opinion."
-
-"Upon what point?"
-
-"In your heart of hearts, do you think that Neville is alive?"
-
-Sherlock Holmes seemed to be embarrassed by the question.
-"Frankly, now!" she repeated, standing upon the rug and looking
-keenly down at him as he leaned back in a basket-chair.
-
-"Frankly, then, madam, I do not."
-
-"You think that he is dead?"
-
-"I do."
-
-"Murdered?"
-
-"I don't say that. Perhaps."
-
-"And on what day did he meet his death?"
-
-"On Monday."
-
-"Then perhaps, Mr. Holmes, you will be good enough to explain how
-it is that I have received a letter from him to-day."
-
-Sherlock Holmes sprang out of his chair as if he had been
-galvanised.
-
-"What!" he roared.
-
-"Yes, to-day." She stood smiling, holding up a little slip of
-paper in the air.
-
-"May I see it?"
-
-"Certainly."
-
-He snatched it from her in his eagerness, and smoothing it out
-upon the table he drew over the lamp and examined it intently. I
-had left my chair and was gazing at it over his shoulder. The
-envelope was a very coarse one and was stamped with the Gravesend
-postmark and with the date of that very day, or rather of the day
-before, for it was considerably after midnight.
-
-"Coarse writing," murmured Holmes. "Surely this is not your
-husband's writing, madam."
-
-"No, but the enclosure is."
-
-"I perceive also that whoever addressed the envelope had to go
-and inquire as to the address."
-
-"How can you tell that?"
-
-"The name, you see, is in perfectly black ink, which has dried
-itself. The rest is of the greyish colour, which shows that
-blotting-paper has been used. If it had been written straight
-off, and then blotted, none would be of a deep black shade. This
-man has written the name, and there has then been a pause before
-he wrote the address, which can only mean that he was not
-familiar with it. It is, of course, a trifle, but there is
-nothing so important as trifles. Let us now see the letter. Ha!
-there has been an enclosure here!"
-
-"Yes, there was a ring. His signet-ring."
-
-"And you are sure that this is your husband's hand?"
-
-"One of his hands."
-
-"One?"
-
-"His hand when he wrote hurriedly. It is very unlike his usual
-writing, and yet I know it well."
-
-"'Dearest do not be frightened. All will come well. There is a
-huge error which it may take some little time to rectify.
-Wait in patience.--NEVILLE.' Written in pencil upon the fly-leaf
-of a book, octavo size, no water-mark. Hum! Posted to-day in
-Gravesend by a man with a dirty thumb. Ha! And the flap has been
-gummed, if I am not very much in error, by a person who had been
-chewing tobacco. And you have no doubt that it is your husband's
-hand, madam?"
-
-"None. Neville wrote those words."
-
-"And they were posted to-day at Gravesend. Well, Mrs. St. Clair,
-the clouds lighten, though I should not venture to say that the
-danger is over."
-
-"But he must be alive, Mr. Holmes."
-
-"Unless this is a clever forgery to put us on the wrong scent.
-The ring, after all, proves nothing. It may have been taken from
-him."
-
-"No, no; it is, it is his very own writing!"
-
-"Very well. It may, however, have been written on Monday and only
-posted to-day."
-
-"That is possible."
-
-"If so, much may have happened between."
-
-"Oh, you must not discourage me, Mr. Holmes. I know that all is
-well with him. There is so keen a sympathy between us that I
-should know if evil came upon him. On the very day that I saw him
-last he cut himself in the bedroom, and yet I in the dining-room
-rushed upstairs instantly with the utmost certainty that
-something had happened. Do you think that I would respond to such
-a trifle and yet be ignorant of his death?"
-
-"I have seen too much not to know that the impression of a woman
-may be more valuable than the conclusion of an analytical
-reasoner. And in this letter you certainly have a very strong
-piece of evidence to corroborate your view. But if your husband
-is alive and able to write letters, why should he remain away
-from you?"
-
-"I cannot imagine. It is unthinkable."
-
-"And on Monday he made no remarks before leaving you?"
-
-"No."
-
-"And you were surprised to see him in Swandam Lane?"
-
-"Very much so."
-
-"Was the window open?"
-
-"Yes."
-
-"Then he might have called to you?"
-
-"He might."
-
-"He only, as I understand, gave an inarticulate cry?"
-
-"Yes."
-
-"A call for help, you thought?"
-
-"Yes. He waved his hands."
-
-"But it might have been a cry of surprise. Astonishment at the
-unexpected sight of you might cause him to throw up his hands?"
-
-"It is possible."
-
-"And you thought he was pulled back?"
-
-"He disappeared so suddenly."
-
-"He might have leaped back. You did not see anyone else in the
-room?"
-
-"No, but this horrible man confessed to having been there, and
-the Lascar was at the foot of the stairs."
-
-"Quite so. Your husband, as far as you could see, had his
-ordinary clothes on?"
-
-"But without his collar or tie. I distinctly saw his bare
-throat."
-
-"Had he ever spoken of Swandam Lane?"
-
-"Never."
-
-"Had he ever showed any signs of having taken opium?"
-
-"Never."
-
-"Thank you, Mrs. St. Clair. Those are the principal points about
-which I wished to be absolutely clear. We shall now have a little
-supper and then retire, for we may have a very busy day
-to-morrow."
-
-A large and comfortable double-bedded room had been placed at our
-disposal, and I was quickly between the sheets, for I was weary
-after my night of adventure. Sherlock Holmes was a man, however,
-who, when he had an unsolved problem upon his mind, would go for
-days, and even for a week, without rest, turning it over,
-rearranging his facts, looking at it from every point of view
-until he had either fathomed it or convinced himself that his
-data were insufficient. It was soon evident to me that he was now
-preparing for an all-night sitting. He took off his coat and
-waistcoat, put on a large blue dressing-gown, and then wandered
-about the room collecting pillows from his bed and cushions from
-the sofa and armchairs. With these he constructed a sort of
-Eastern divan, upon which he perched himself cross-legged, with
-an ounce of shag tobacco and a box of matches laid out in front
-of him. In the dim light of the lamp I saw him sitting there, an
-old briar pipe between his lips, his eyes fixed vacantly upon the
-corner of the ceiling, the blue smoke curling up from him,
-silent, motionless, with the light shining upon his strong-set
-aquiline features. So he sat as I dropped off to sleep, and so he
-sat when a sudden ejaculation caused me to wake up, and I found
-the summer sun shining into the apartment. The pipe was still
-between his lips, the smoke still curled upward, and the room was
-full of a dense tobacco haze, but nothing remained of the heap of
-shag which I had seen upon the previous night.
-
-"Awake, Watson?" he asked.
-
-"Yes."
-
-"Game for a morning drive?"
-
-"Certainly."
-
-"Then dress. No one is stirring yet, but I know where the
-stable-boy sleeps, and we shall soon have the trap out." He
-chuckled to himself as he spoke, his eyes twinkled, and he seemed
-a different man to the sombre thinker of the previous night.
-
-As I dressed I glanced at my watch. It was no wonder that no one
-was stirring. It was twenty-five minutes past four. I had hardly
-finished when Holmes returned with the news that the boy was
-putting in the horse.
-
-"I want to test a little theory of mine," said he, pulling on his
-boots. "I think, Watson, that you are now standing in the
-presence of one of the most absolute fools in Europe. I deserve
-to be kicked from here to Charing Cross. But I think I have the
-key of the affair now."
-
-"And where is it?" I asked, smiling.
-
-"In the bathroom," he answered. "Oh, yes, I am not joking," he
-continued, seeing my look of incredulity. "I have just been
-there, and I have taken it out, and I have got it in this
-Gladstone bag. Come on, my boy, and we shall see whether it will
-not fit the lock."
-
-We made our way downstairs as quietly as possible, and out into
-the bright morning sunshine. In the road stood our horse and
-trap, with the half-clad stable-boy waiting at the head. We both
-sprang in, and away we dashed down the London Road. A few country
-carts were stirring, bearing in vegetables to the metropolis, but
-the lines of villas on either side were as silent and lifeless as
-some city in a dream.
-
-"It has been in some points a singular case," said Holmes,
-flicking the horse on into a gallop. "I confess that I have been
-as blind as a mole, but it is better to learn wisdom late than
-never to learn it at all."
-
-In town the earliest risers were just beginning to look sleepily
-from their windows as we drove through the streets of the Surrey
-side. Passing down the Waterloo Bridge Road we crossed over the
-river, and dashing up Wellington Street wheeled sharply to the
-right and found ourselves in Bow Street. Sherlock Holmes was well
-known to the force, and the two constables at the door saluted
-him. One of them held the horse's head while the other led us in.
-
-"Who is on duty?" asked Holmes.
-
-"Inspector Bradstreet, sir."
-
-"Ah, Bradstreet, how are you?" A tall, stout official had come
-down the stone-flagged passage, in a peaked cap and frogged
-jacket. "I wish to have a quiet word with you, Bradstreet."
-"Certainly, Mr. Holmes. Step into my room here." It was a small,
-office-like room, with a huge ledger upon the table, and a
-telephone projecting from the wall. The inspector sat down at his
-desk.
-
-"What can I do for you, Mr. Holmes?"
-
-"I called about that beggarman, Boone--the one who was charged
-with being concerned in the disappearance of Mr. Neville St.
-Clair, of Lee."
-
-"Yes. He was brought up and remanded for further inquiries."
-
-"So I heard. You have him here?"
-
-"In the cells."
-
-"Is he quiet?"
-
-"Oh, he gives no trouble. But he is a dirty scoundrel."
-
-"Dirty?"
-
-"Yes, it is all we can do to make him wash his hands, and his
-face is as black as a tinker's. Well, when once his case has been
-settled, he will have a regular prison bath; and I think, if you
-saw him, you would agree with me that he needed it."
-
-"I should like to see him very much."
-
-"Would you? That is easily done. Come this way. You can leave
-your bag."
-
-"No, I think that I'll take it."
-
-"Very good. Come this way, if you please." He led us down a
-passage, opened a barred door, passed down a winding stair, and
-brought us to a whitewashed corridor with a line of doors on each
-side.
-
-"The third on the right is his," said the inspector. "Here it
-is!" He quietly shot back a panel in the upper part of the door
-and glanced through.
-
-"He is asleep," said he. "You can see him very well."
-
-We both put our eyes to the grating. The prisoner lay with his
-face towards us, in a very deep sleep, breathing slowly and
-heavily. He was a middle-sized man, coarsely clad as became his
-calling, with a coloured shirt protruding through the rent in his
-tattered coat. He was, as the inspector had said, extremely
-dirty, but the grime which covered his face could not conceal its
-repulsive ugliness. A broad wheal from an old scar ran right
-across it from eye to chin, and by its contraction had turned up
-one side of the upper lip, so that three teeth were exposed in a
-perpetual snarl. A shock of very bright red hair grew low over
-his eyes and forehead.
-
-"He's a beauty, isn't he?" said the inspector.
-
-"He certainly needs a wash," remarked Holmes. "I had an idea that
-he might, and I took the liberty of bringing the tools with me."
-He opened the Gladstone bag as he spoke, and took out, to my
-astonishment, a very large bath-sponge.
-
-"He! he! You are a funny one," chuckled the inspector.
-
-"Now, if you will have the great goodness to open that door very
-quietly, we will soon make him cut a much more respectable
-figure."
-
-"Well, I don't know why not," said the inspector. "He doesn't
-look a credit to the Bow Street cells, does he?" He slipped his
-key into the lock, and we all very quietly entered the cell. The
-sleeper half turned, and then settled down once more into a deep
-slumber. Holmes stooped to the water-jug, moistened his sponge,
-and then rubbed it twice vigorously across and down the
-prisoner's face.
-
-"Let me introduce you," he shouted, "to Mr. Neville St. Clair, of
-Lee, in the county of Kent."
-
-Never in my life have I seen such a sight. The man's face peeled
-off under the sponge like the bark from a tree. Gone was the
-coarse brown tint! Gone, too, was the horrid scar which had
-seamed it across, and the twisted lip which had given the
-repulsive sneer to the face! A twitch brought away the tangled
-red hair, and there, sitting up in his bed, was a pale,
-sad-faced, refined-looking man, black-haired and smooth-skinned,
-rubbing his eyes and staring about him with sleepy bewilderment.
-Then suddenly realising the exposure, he broke into a scream and
-threw himself down with his face to the pillow.
-
-"Great heavens!" cried the inspector, "it is, indeed, the missing
-man. I know him from the photograph."
-
-The prisoner turned with the reckless air of a man who abandons
-himself to his destiny. "Be it so," said he. "And pray what am I
-charged with?"
-
-"With making away with Mr. Neville St.-- Oh, come, you can't be
-charged with that unless they make a case of attempted suicide of
-it," said the inspector with a grin. "Well, I have been
-twenty-seven years in the force, but this really takes the cake."
-
-"If I am Mr. Neville St. Clair, then it is obvious that no crime
-has been committed, and that, therefore, I am illegally
-detained."
-
-"No crime, but a very great error has been committed," said
-Holmes. "You would have done better to have trusted your wife."
-
-"It was not the wife; it was the children," groaned the prisoner.
-"God help me, I would not have them ashamed of their father. My
-God! What an exposure! What can I do?"
-
-Sherlock Holmes sat down beside him on the couch and patted him
-kindly on the shoulder.
-
-"If you leave it to a court of law to clear the matter up," said
-he, "of course you can hardly avoid publicity. On the other hand,
-if you convince the police authorities that there is no possible
-case against you, I do not know that there is any reason that the
-details should find their way into the papers. Inspector
-Bradstreet would, I am sure, make notes upon anything which you
-might tell us and submit it to the proper authorities. The case
-would then never go into court at all."
-
-"God bless you!" cried the prisoner passionately. "I would have
-endured imprisonment, ay, even execution, rather than have left
-my miserable secret as a family blot to my children.
-
-"You are the first who have ever heard my story. My father was a
-schoolmaster in Chesterfield, where I received an excellent
-education. I travelled in my youth, took to the stage, and
-finally became a reporter on an evening paper in London. One day
-my editor wished to have a series of articles upon begging in the
-metropolis, and I volunteered to supply them. There was the point
-from which all my adventures started. It was only by trying
-begging as an amateur that I could get the facts upon which to
-base my articles. When an actor I had, of course, learned all the
-secrets of making up, and had been famous in the green-room for
-my skill. I took advantage now of my attainments. I painted my
-face, and to make myself as pitiable as possible I made a good
-scar and fixed one side of my lip in a twist by the aid of a
-small slip of flesh-coloured plaster. Then with a red head of
-hair, and an appropriate dress, I took my station in the business
-part of the city, ostensibly as a match-seller but really as a
-beggar. For seven hours I plied my trade, and when I returned
-home in the evening I found to my surprise that I had received no
-less than 26s. 4d.
-
-"I wrote my articles and thought little more of the matter until,
-some time later, I backed a bill for a friend and had a writ
-served upon me for 25 pounds. I was at my wit's end where to get
-the money, but a sudden idea came to me. I begged a fortnight's
-grace from the creditor, asked for a holiday from my employers,
-and spent the time in begging in the City under my disguise. In
-ten days I had the money and had paid the debt.
-
-"Well, you can imagine how hard it was to settle down to arduous
-work at 2 pounds a week when I knew that I could earn as much in
-a day by smearing my face with a little paint, laying my cap on
-the ground, and sitting still. It was a long fight between my
-pride and the money, but the dollars won at last, and I threw up
-reporting and sat day after day in the corner which I had first
-chosen, inspiring pity by my ghastly face and filling my pockets
-with coppers. Only one man knew my secret. He was the keeper of a
-low den in which I used to lodge in Swandam Lane, where I could
-every morning emerge as a squalid beggar and in the evenings
-transform myself into a well-dressed man about town. This fellow,
-a Lascar, was well paid by me for his rooms, so that I knew that
-my secret was safe in his possession.
-
-"Well, very soon I found that I was saving considerable sums of
-money. I do not mean that any beggar in the streets of London
-could earn 700 pounds a year--which is less than my average
-takings--but I had exceptional advantages in my power of making
-up, and also in a facility of repartee, which improved by
-practice and made me quite a recognised character in the City.
-All day a stream of pennies, varied by silver, poured in upon me,
-and it was a very bad day in which I failed to take 2 pounds.
-
-"As I grew richer I grew more ambitious, took a house in the
-country, and eventually married, without anyone having a
-suspicion as to my real occupation. My dear wife knew that I had
-business in the City. She little knew what.
-
-"Last Monday I had finished for the day and was dressing in my
-room above the opium den when I looked out of my window and saw,
-to my horror and astonishment, that my wife was standing in the
-street, with her eyes fixed full upon me. I gave a cry of
-surprise, threw up my arms to cover my face, and, rushing to my
-confidant, the Lascar, entreated him to prevent anyone from
-coming up to me. I heard her voice downstairs, but I knew that
-she could not ascend. Swiftly I threw off my clothes, pulled on
-those of a beggar, and put on my pigments and wig. Even a wife's
-eyes could not pierce so complete a disguise. But then it
-occurred to me that there might be a search in the room, and that
-the clothes might betray me. I threw open the window, reopening
-by my violence a small cut which I had inflicted upon myself in
-the bedroom that morning. Then I seized my coat, which was
-weighted by the coppers which I had just transferred to it from
-the leather bag in which I carried my takings. I hurled it out of
-the window, and it disappeared into the Thames. The other clothes
-would have followed, but at that moment there was a rush of
-constables up the stair, and a few minutes after I found, rather,
-I confess, to my relief, that instead of being identified as Mr.
-Neville St. Clair, I was arrested as his murderer.
-
-"I do not know that there is anything else for me to explain. I
-was determined to preserve my disguise as long as possible, and
-hence my preference for a dirty face. Knowing that my wife would
-be terribly anxious, I slipped off my ring and confided it to the
-Lascar at a moment when no constable was watching me, together
-with a hurried scrawl, telling her that she had no cause to
-fear."
-
-"That note only reached her yesterday," said Holmes.
-
-"Good God! What a week she must have spent!"
-
-"The police have watched this Lascar," said Inspector Bradstreet,
-"and I can quite understand that he might find it difficult to
-post a letter unobserved. Probably he handed it to some sailor
-customer of his, who forgot all about it for some days."
-
-"That was it," said Holmes, nodding approvingly; "I have no doubt
-of it. But have you never been prosecuted for begging?"
-
-"Many times; but what was a fine to me?"
-
-"It must stop here, however," said Bradstreet. "If the police are
-to hush this thing up, there must be no more of Hugh Boone."
-
-"I have sworn it by the most solemn oaths which a man can take."
-
-"In that case I think that it is probable that no further steps
-may be taken. But if you are found again, then all must come out.
-I am sure, Mr. Holmes, that we are very much indebted to you for
-having cleared the matter up. I wish I knew how you reach your
-results."
-
-"I reached this one," said my friend, "by sitting upon five
-pillows and consuming an ounce of shag. I think, Watson, that if
-we drive to Baker Street we shall just be in time for breakfast."
-
-
-
-VII. THE ADVENTURE OF THE BLUE CARBUNCLE
-
-I had called upon my friend Sherlock Holmes upon the second
-morning after Christmas, with the intention of wishing him the
-compliments of the season. He was lounging upon the sofa in a
-purple dressing-gown, a pipe-rack within his reach upon the
-right, and a pile of crumpled morning papers, evidently newly
-studied, near at hand. Beside the couch was a wooden chair, and
-on the angle of the back hung a very seedy and disreputable
-hard-felt hat, much the worse for wear, and cracked in several
-places. A lens and a forceps lying upon the seat of the chair
-suggested that the hat had been suspended in this manner for the
-purpose of examination.
-
-"You are engaged," said I; "perhaps I interrupt you."
-
-"Not at all. I am glad to have a friend with whom I can discuss
-my results. The matter is a perfectly trivial one"--he jerked his
-thumb in the direction of the old hat--"but there are points in
-connection with it which are not entirely devoid of interest and
-even of instruction."
-
-I seated myself in his armchair and warmed my hands before his
-crackling fire, for a sharp frost had set in, and the windows
-were thick with the ice crystals. "I suppose," I remarked, "that,
-homely as it looks, this thing has some deadly story linked on to
-it--that it is the clue which will guide you in the solution of
-some mystery and the punishment of some crime."
-
-"No, no. No crime," said Sherlock Holmes, laughing. "Only one of
-those whimsical little incidents which will happen when you have
-four million human beings all jostling each other within the
-space of a few square miles. Amid the action and reaction of so
-dense a swarm of humanity, every possible combination of events
-may be expected to take place, and many a little problem will be
-presented which may be striking and bizarre without being
-criminal. We have already had experience of such."
-
-"So much so," I remarked, "that of the last six cases which I
-have added to my notes, three have been entirely free of any
-legal crime."
-
-"Precisely. You allude to my attempt to recover the Irene Adler
-papers, to the singular case of Miss Mary Sutherland, and to the
-adventure of the man with the twisted lip. Well, I have no doubt
-that this small matter will fall into the same innocent category.
-You know Peterson, the commissionaire?"
-
-"Yes."
-
-"It is to him that this trophy belongs."
-
-"It is his hat."
-
-"No, no, he found it. Its owner is unknown. I beg that you will
-look upon it not as a battered billycock but as an intellectual
-problem. And, first, as to how it came here. It arrived upon
-Christmas morning, in company with a good fat goose, which is, I
-have no doubt, roasting at this moment in front of Peterson's
-fire. The facts are these: about four o'clock on Christmas
-morning, Peterson, who, as you know, is a very honest fellow, was
-returning from some small jollification and was making his way
-homeward down Tottenham Court Road. In front of him he saw, in
-the gaslight, a tallish man, walking with a slight stagger, and
-carrying a white goose slung over his shoulder. As he reached the
-corner of Goodge Street, a row broke out between this stranger
-and a little knot of roughs. One of the latter knocked off the
-man's hat, on which he raised his stick to defend himself and,
-swinging it over his head, smashed the shop window behind him.
-Peterson had rushed forward to protect the stranger from his
-assailants; but the man, shocked at having broken the window, and
-seeing an official-looking person in uniform rushing towards him,
-dropped his goose, took to his heels, and vanished amid the
-labyrinth of small streets which lie at the back of Tottenham
-Court Road. The roughs had also fled at the appearance of
-Peterson, so that he was left in possession of the field of
-battle, and also of the spoils of victory in the shape of this
-battered hat and a most unimpeachable Christmas goose."
-
-"Which surely he restored to their owner?"
-
-"My dear fellow, there lies the problem. It is true that 'For
-Mrs. Henry Baker' was printed upon a small card which was tied to
-the bird's left leg, and it is also true that the initials 'H.
-B.' are legible upon the lining of this hat, but as there are
-some thousands of Bakers, and some hundreds of Henry Bakers in
-this city of ours, it is not easy to restore lost property to any
-one of them."
-
-"What, then, did Peterson do?"
-
-"He brought round both hat and goose to me on Christmas morning,
-knowing that even the smallest problems are of interest to me.
-The goose we retained until this morning, when there were signs
-that, in spite of the slight frost, it would be well that it
-should be eaten without unnecessary delay. Its finder has carried
-it off, therefore, to fulfil the ultimate destiny of a goose,
-while I continue to retain the hat of the unknown gentleman who
-lost his Christmas dinner."
-
-"Did he not advertise?"
-
-"No."
-
-"Then, what clue could you have as to his identity?"
-
-"Only as much as we can deduce."
-
-"From his hat?"
-
-"Precisely."
-
-"But you are joking. What can you gather from this old battered
-felt?"
-
-"Here is my lens. You know my methods. What can you gather
-yourself as to the individuality of the man who has worn this
-article?"
-
-I took the tattered object in my hands and turned it over rather
-ruefully. It was a very ordinary black hat of the usual round
-shape, hard and much the worse for wear. The lining had been of
-red silk, but was a good deal discoloured. There was no maker's
-name; but, as Holmes had remarked, the initials "H. B." were
-scrawled upon one side. It was pierced in the brim for a
-hat-securer, but the elastic was missing. For the rest, it was
-cracked, exceedingly dusty, and spotted in several places,
-although there seemed to have been some attempt to hide the
-discoloured patches by smearing them with ink.
-
-"I can see nothing," said I, handing it back to my friend.
-
-"On the contrary, Watson, you can see everything. You fail,
-however, to reason from what you see. You are too timid in
-drawing your inferences."
-
-"Then, pray tell me what it is that you can infer from this hat?"
-
-He picked it up and gazed at it in the peculiar introspective
-fashion which was characteristic of him. "It is perhaps less
-suggestive than it might have been," he remarked, "and yet there
-are a few inferences which are very distinct, and a few others
-which represent at least a strong balance of probability. That
-the man was highly intellectual is of course obvious upon the
-face of it, and also that he was fairly well-to-do within the
-last three years, although he has now fallen upon evil days. He
-had foresight, but has less now than formerly, pointing to a
-moral retrogression, which, when taken with the decline of his
-fortunes, seems to indicate some evil influence, probably drink,
-at work upon him. This may account also for the obvious fact that
-his wife has ceased to love him."
-
-"My dear Holmes!"
-
-"He has, however, retained some degree of self-respect," he
-continued, disregarding my remonstrance. "He is a man who leads a
-sedentary life, goes out little, is out of training entirely, is
-middle-aged, has grizzled hair which he has had cut within the
-last few days, and which he anoints with lime-cream. These are
-the more patent facts which are to be deduced from his hat. Also,
-by the way, that it is extremely improbable that he has gas laid
-on in his house."
-
-"You are certainly joking, Holmes."
-
-"Not in the least. Is it possible that even now, when I give you
-these results, you are unable to see how they are attained?"
-
-"I have no doubt that I am very stupid, but I must confess that I
-am unable to follow you. For example, how did you deduce that
-this man was intellectual?"
-
-For answer Holmes clapped the hat upon his head. It came right
-over the forehead and settled upon the bridge of his nose. "It is
-a question of cubic capacity," said he; "a man with so large a
-brain must have something in it."
-
-"The decline of his fortunes, then?"
-
-"This hat is three years old. These flat brims curled at the edge
-came in then. It is a hat of the very best quality. Look at the
-band of ribbed silk and the excellent lining. If this man could
-afford to buy so expensive a hat three years ago, and has had no
-hat since, then he has assuredly gone down in the world."
-
-"Well, that is clear enough, certainly. But how about the
-foresight and the moral retrogression?"
-
-Sherlock Holmes laughed. "Here is the foresight," said he putting
-his finger upon the little disc and loop of the hat-securer.
-"They are never sold upon hats. If this man ordered one, it is a
-sign of a certain amount of foresight, since he went out of his
-way to take this precaution against the wind. But since we see
-that he has broken the elastic and has not troubled to replace
-it, it is obvious that he has less foresight now than formerly,
-which is a distinct proof of a weakening nature. On the other
-hand, he has endeavoured to conceal some of these stains upon the
-felt by daubing them with ink, which is a sign that he has not
-entirely lost his self-respect."
-
-"Your reasoning is certainly plausible."
-
-"The further points, that he is middle-aged, that his hair is
-grizzled, that it has been recently cut, and that he uses
-lime-cream, are all to be gathered from a close examination of the
-lower part of the lining. The lens discloses a large number of
-hair-ends, clean cut by the scissors of the barber. They all
-appear to be adhesive, and there is a distinct odour of
-lime-cream. This dust, you will observe, is not the gritty, grey
-dust of the street but the fluffy brown dust of the house,
-showing that it has been hung up indoors most of the time, while
-the marks of moisture upon the inside are proof positive that the
-wearer perspired very freely, and could therefore, hardly be in
-the best of training."
-
-"But his wife--you said that she had ceased to love him."
-
-"This hat has not been brushed for weeks. When I see you, my dear
-Watson, with a week's accumulation of dust upon your hat, and
-when your wife allows you to go out in such a state, I shall fear
-that you also have been unfortunate enough to lose your wife's
-affection."
-
-"But he might be a bachelor."
-
-"Nay, he was bringing home the goose as a peace-offering to his
-wife. Remember the card upon the bird's leg."
-
-"You have an answer to everything. But how on earth do you deduce
-that the gas is not laid on in his house?"
-
-"One tallow stain, or even two, might come by chance; but when I
-see no less than five, I think that there can be little doubt
-that the individual must be brought into frequent contact with
-burning tallow--walks upstairs at night probably with his hat in
-one hand and a guttering candle in the other. Anyhow, he never
-got tallow-stains from a gas-jet. Are you satisfied?"
-
-"Well, it is very ingenious," said I, laughing; "but since, as
-you said just now, there has been no crime committed, and no harm
-done save the loss of a goose, all this seems to be rather a
-waste of energy."
-
-Sherlock Holmes had opened his mouth to reply, when the door flew
-open, and Peterson, the commissionaire, rushed into the apartment
-with flushed cheeks and the face of a man who is dazed with
-astonishment.
-
-"The goose, Mr. Holmes! The goose, sir!" he gasped.
-
-"Eh? What of it, then? Has it returned to life and flapped off
-through the kitchen window?" Holmes twisted himself round upon
-the sofa to get a fairer view of the man's excited face.
-
-"See here, sir! See what my wife found in its crop!" He held out
-his hand and displayed upon the centre of the palm a brilliantly
-scintillating blue stone, rather smaller than a bean in size, but
-of such purity and radiance that it twinkled like an electric
-point in the dark hollow of his hand.
-
-Sherlock Holmes sat up with a whistle. "By Jove, Peterson!" said
-he, "this is treasure trove indeed. I suppose you know what you
-have got?"
-
-"A diamond, sir? A precious stone. It cuts into glass as though
-it were putty."
-
-"It's more than a precious stone. It is the precious stone."
-
-"Not the Countess of Morcar's blue carbuncle!" I ejaculated.
-
-"Precisely so. I ought to know its size and shape, seeing that I
-have read the advertisement about it in The Times every day
-lately. It is absolutely unique, and its value can only be
-conjectured, but the reward offered of 1000 pounds is certainly
-not within a twentieth part of the market price."
-
-"A thousand pounds! Great Lord of mercy!" The commissionaire
-plumped down into a chair and stared from one to the other of us.
-
-"That is the reward, and I have reason to know that there are
-sentimental considerations in the background which would induce
-the Countess to part with half her fortune if she could but
-recover the gem."
-
-"It was lost, if I remember aright, at the Hotel Cosmopolitan," I
-remarked.
-
-"Precisely so, on December 22nd, just five days ago. John Horner,
-a plumber, was accused of having abstracted it from the lady's
-jewel-case. The evidence against him was so strong that the case
-has been referred to the Assizes. I have some account of the
-matter here, I believe." He rummaged amid his newspapers,
-glancing over the dates, until at last he smoothed one out,
-doubled it over, and read the following paragraph:
-
-"Hotel Cosmopolitan Jewel Robbery. John Horner, 26, plumber, was
-brought up upon the charge of having upon the 22nd inst.,
-abstracted from the jewel-case of the Countess of Morcar the
-valuable gem known as the blue carbuncle. James Ryder,
-upper-attendant at the hotel, gave his evidence to the effect
-that he had shown Horner up to the dressing-room of the Countess
-of Morcar upon the day of the robbery in order that he might
-solder the second bar of the grate, which was loose. He had
-remained with Horner some little time, but had finally been
-called away. On returning, he found that Horner had disappeared,
-that the bureau had been forced open, and that the small morocco
-casket in which, as it afterwards transpired, the Countess was
-accustomed to keep her jewel, was lying empty upon the
-dressing-table. Ryder instantly gave the alarm, and Horner was
-arrested the same evening; but the stone could not be found
-either upon his person or in his rooms. Catherine Cusack, maid to
-the Countess, deposed to having heard Ryder's cry of dismay on
-discovering the robbery, and to having rushed into the room,
-where she found matters as described by the last witness.
-Inspector Bradstreet, B division, gave evidence as to the arrest
-of Horner, who struggled frantically, and protested his innocence
-in the strongest terms. Evidence of a previous conviction for
-robbery having been given against the prisoner, the magistrate
-refused to deal summarily with the offence, but referred it to
-the Assizes. Horner, who had shown signs of intense emotion
-during the proceedings, fainted away at the conclusion and was
-carried out of court."
-
-"Hum! So much for the police-court," said Holmes thoughtfully,
-tossing aside the paper. "The question for us now to solve is the
-sequence of events leading from a rifled jewel-case at one end to
-the crop of a goose in Tottenham Court Road at the other. You
-see, Watson, our little deductions have suddenly assumed a much
-more important and less innocent aspect. Here is the stone; the
-stone came from the goose, and the goose came from Mr. Henry
-Baker, the gentleman with the bad hat and all the other
-characteristics with which I have bored you. So now we must set
-ourselves very seriously to finding this gentleman and
-ascertaining what part he has played in this little mystery. To
-do this, we must try the simplest means first, and these lie
-undoubtedly in an advertisement in all the evening papers. If
-this fail, I shall have recourse to other methods."
-
-"What will you say?"
-
-"Give me a pencil and that slip of paper. Now, then: 'Found at
-the corner of Goodge Street, a goose and a black felt hat. Mr.
-Henry Baker can have the same by applying at 6:30 this evening at
-221B, Baker Street.' That is clear and concise."
-
-"Very. But will he see it?"
-
-"Well, he is sure to keep an eye on the papers, since, to a poor
-man, the loss was a heavy one. He was clearly so scared by his
-mischance in breaking the window and by the approach of Peterson
-that he thought of nothing but flight, but since then he must
-have bitterly regretted the impulse which caused him to drop his
-bird. Then, again, the introduction of his name will cause him to
-see it, for everyone who knows him will direct his attention to
-it. Here you are, Peterson, run down to the advertising agency
-and have this put in the evening papers."
-
-"In which, sir?"
-
-"Oh, in the Globe, Star, Pall Mall, St. James's, Evening News,
-Standard, Echo, and any others that occur to you."
-
-"Very well, sir. And this stone?"
-
-"Ah, yes, I shall keep the stone. Thank you. And, I say,
-Peterson, just buy a goose on your way back and leave it here
-with me, for we must have one to give to this gentleman in place
-of the one which your family is now devouring."
-
-When the commissionaire had gone, Holmes took up the stone and
-held it against the light. "It's a bonny thing," said he. "Just
-see how it glints and sparkles. Of course it is a nucleus and
-focus of crime. Every good stone is. They are the devil's pet
-baits. In the larger and older jewels every facet may stand for a
-bloody deed. This stone is not yet twenty years old. It was found
-in the banks of the Amoy River in southern China and is remarkable
-in having every characteristic of the carbuncle, save that it is
-blue in shade instead of ruby red. In spite of its youth, it has
-already a sinister history. There have been two murders, a
-vitriol-throwing, a suicide, and several robberies brought about
-for the sake of this forty-grain weight of crystallised charcoal.
-Who would think that so pretty a toy would be a purveyor to the
-gallows and the prison? I'll lock it up in my strong box now and
-drop a line to the Countess to say that we have it."
-
-"Do you think that this man Horner is innocent?"
-
-"I cannot tell."
-
-"Well, then, do you imagine that this other one, Henry Baker, had
-anything to do with the matter?"
-
-"It is, I think, much more likely that Henry Baker is an
-absolutely innocent man, who had no idea that the bird which he
-was carrying was of considerably more value than if it were made
-of solid gold. That, however, I shall determine by a very simple
-test if we have an answer to our advertisement."
-
-"And you can do nothing until then?"
-
-"Nothing."
-
-"In that case I shall continue my professional round. But I shall
-come back in the evening at the hour you have mentioned, for I
-should like to see the solution of so tangled a business."
-
-"Very glad to see you. I dine at seven. There is a woodcock, I
-believe. By the way, in view of recent occurrences, perhaps I
-ought to ask Mrs. Hudson to examine its crop."
-
-I had been delayed at a case, and it was a little after half-past
-six when I found myself in Baker Street once more. As I
-approached the house I saw a tall man in a Scotch bonnet with a
-coat which was buttoned up to his chin waiting outside in the
-bright semicircle which was thrown from the fanlight. Just as I
-arrived the door was opened, and we were shown up together to
-Holmes' room.
-
-"Mr. Henry Baker, I believe," said he, rising from his armchair
-and greeting his visitor with the easy air of geniality which he
-could so readily assume. "Pray take this chair by the fire, Mr.
-Baker. It is a cold night, and I observe that your circulation is
-more adapted for summer than for winter. Ah, Watson, you have
-just come at the right time. Is that your hat, Mr. Baker?"
-
-"Yes, sir, that is undoubtedly my hat."
-
-He was a large man with rounded shoulders, a massive head, and a
-broad, intelligent face, sloping down to a pointed beard of
-grizzled brown. A touch of red in nose and cheeks, with a slight
-tremor of his extended hand, recalled Holmes' surmise as to his
-habits. His rusty black frock-coat was buttoned right up in
-front, with the collar turned up, and his lank wrists protruded
-from his sleeves without a sign of cuff or shirt. He spoke in a
-slow staccato fashion, choosing his words with care, and gave the
-impression generally of a man of learning and letters who had had
-ill-usage at the hands of fortune.
-
-"We have retained these things for some days," said Holmes,
-"because we expected to see an advertisement from you giving your
-address. I am at a loss to know now why you did not advertise."
-
-Our visitor gave a rather shamefaced laugh. "Shillings have not
-been so plentiful with me as they once were," he remarked. "I had
-no doubt that the gang of roughs who assaulted me had carried off
-both my hat and the bird. I did not care to spend more money in a
-hopeless attempt at recovering them."
-
-"Very naturally. By the way, about the bird, we were compelled to
-eat it."
-
-"To eat it!" Our visitor half rose from his chair in his
-excitement.
-
-"Yes, it would have been of no use to anyone had we not done so.
-But I presume that this other goose upon the sideboard, which is
-about the same weight and perfectly fresh, will answer your
-purpose equally well?"
-
-"Oh, certainly, certainly," answered Mr. Baker with a sigh of
-relief.
-
-"Of course, we still have the feathers, legs, crop, and so on of
-your own bird, so if you wish--"
-
-The man burst into a hearty laugh. "They might be useful to me as
-relics of my adventure," said he, "but beyond that I can hardly
-see what use the disjecta membra of my late acquaintance are
-going to be to me. No, sir, I think that, with your permission, I
-will confine my attentions to the excellent bird which I perceive
-upon the sideboard."
-
-Sherlock Holmes glanced sharply across at me with a slight shrug
-of his shoulders.
-
-"There is your hat, then, and there your bird," said he. "By the
-way, would it bore you to tell me where you got the other one
-from? I am somewhat of a fowl fancier, and I have seldom seen a
-better grown goose."
-
-"Certainly, sir," said Baker, who had risen and tucked his newly
-gained property under his arm. "There are a few of us who
-frequent the Alpha Inn, near the Museum--we are to be found in
-the Museum itself during the day, you understand. This year our
-good host, Windigate by name, instituted a goose club, by which,
-on consideration of some few pence every week, we were each to
-receive a bird at Christmas. My pence were duly paid, and the
-rest is familiar to you. I am much indebted to you, sir, for a
-Scotch bonnet is fitted neither to my years nor my gravity." With
-a comical pomposity of manner he bowed solemnly to both of us and
-strode off upon his way.
-
-"So much for Mr. Henry Baker," said Holmes when he had closed the
-door behind him. "It is quite certain that he knows nothing
-whatever about the matter. Are you hungry, Watson?"
-
-"Not particularly."
-
-"Then I suggest that we turn our dinner into a supper and follow
-up this clue while it is still hot."
-
-"By all means."
-
-It was a bitter night, so we drew on our ulsters and wrapped
-cravats about our throats. Outside, the stars were shining coldly
-in a cloudless sky, and the breath of the passers-by blew out
-into smoke like so many pistol shots. Our footfalls rang out
-crisply and loudly as we swung through the doctors' quarter,
-Wimpole Street, Harley Street, and so through Wigmore Street into
-Oxford Street. In a quarter of an hour we were in Bloomsbury at
-the Alpha Inn, which is a small public-house at the corner of one
-of the streets which runs down into Holborn. Holmes pushed open
-the door of the private bar and ordered two glasses of beer from
-the ruddy-faced, white-aproned landlord.
-
-"Your beer should be excellent if it is as good as your geese,"
-said he.
-
-"My geese!" The man seemed surprised.
-
-"Yes. I was speaking only half an hour ago to Mr. Henry Baker,
-who was a member of your goose club."
-
-"Ah! yes, I see. But you see, sir, them's not our geese."
-
-"Indeed! Whose, then?"
-
-"Well, I got the two dozen from a salesman in Covent Garden."
-
-"Indeed? I know some of them. Which was it?"
-
-"Breckinridge is his name."
-
-"Ah! I don't know him. Well, here's your good health landlord,
-and prosperity to your house. Good-night."
-
-"Now for Mr. Breckinridge," he continued, buttoning up his coat
-as we came out into the frosty air. "Remember, Watson that though
-we have so homely a thing as a goose at one end of this chain, we
-have at the other a man who will certainly get seven years' penal
-servitude unless we can establish his innocence. It is possible
-that our inquiry may but confirm his guilt; but, in any case, we
-have a line of investigation which has been missed by the police,
-and which a singular chance has placed in our hands. Let us
-follow it out to the bitter end. Faces to the south, then, and
-quick march!"
-
-We passed across Holborn, down Endell Street, and so through a
-zigzag of slums to Covent Garden Market. One of the largest
-stalls bore the name of Breckinridge upon it, and the proprietor
-a horsey-looking man, with a sharp face and trim side-whiskers was
-helping a boy to put up the shutters.
-
-"Good-evening. It's a cold night," said Holmes.
-
-The salesman nodded and shot a questioning glance at my
-companion.
-
-"Sold out of geese, I see," continued Holmes, pointing at the
-bare slabs of marble.
-
-"Let you have five hundred to-morrow morning."
-
-"That's no good."
-
-"Well, there are some on the stall with the gas-flare."
-
-"Ah, but I was recommended to you."
-
-"Who by?"
-
-"The landlord of the Alpha."
-
-"Oh, yes; I sent him a couple of dozen."
-
-"Fine birds they were, too. Now where did you get them from?"
-
-To my surprise the question provoked a burst of anger from the
-salesman.
-
-"Now, then, mister," said he, with his head cocked and his arms
-akimbo, "what are you driving at? Let's have it straight, now."
-
-"It is straight enough. I should like to know who sold you the
-geese which you supplied to the Alpha."
-
-"Well then, I shan't tell you. So now!"
-
-"Oh, it is a matter of no importance; but I don't know why you
-should be so warm over such a trifle."
-
-"Warm! You'd be as warm, maybe, if you were as pestered as I am.
-When I pay good money for a good article there should be an end
-of the business; but it's 'Where are the geese?' and 'Who did you
-sell the geese to?' and 'What will you take for the geese?' One
-would think they were the only geese in the world, to hear the
-fuss that is made over them."
-
-"Well, I have no connection with any other people who have been
-making inquiries," said Holmes carelessly. "If you won't tell us
-the bet is off, that is all. But I'm always ready to back my
-opinion on a matter of fowls, and I have a fiver on it that the
-bird I ate is country bred."
-
-"Well, then, you've lost your fiver, for it's town bred," snapped
-the salesman.
-
-"It's nothing of the kind."
-
-"I say it is."
-
-"I don't believe it."
-
-"D'you think you know more about fowls than I, who have handled
-them ever since I was a nipper? I tell you, all those birds that
-went to the Alpha were town bred."
-
-"You'll never persuade me to believe that."
-
-"Will you bet, then?"
-
-"It's merely taking your money, for I know that I am right. But
-I'll have a sovereign on with you, just to teach you not to be
-obstinate."
-
-The salesman chuckled grimly. "Bring me the books, Bill," said
-he.
-
-The small boy brought round a small thin volume and a great
-greasy-backed one, laying them out together beneath the hanging
-lamp.
-
-"Now then, Mr. Cocksure," said the salesman, "I thought that I
-was out of geese, but before I finish you'll find that there is
-still one left in my shop. You see this little book?"
-
-"Well?"
-
-"That's the list of the folk from whom I buy. D'you see? Well,
-then, here on this page are the country folk, and the numbers
-after their names are where their accounts are in the big ledger.
-Now, then! You see this other page in red ink? Well, that is a
-list of my town suppliers. Now, look at that third name. Just
-read it out to me."
-
-"Mrs. Oakshott, 117, Brixton Road--249," read Holmes.
-
-"Quite so. Now turn that up in the ledger."
-
-Holmes turned to the page indicated. "Here you are, 'Mrs.
-Oakshott, 117, Brixton Road, egg and poultry supplier.'"
-
-"Now, then, what's the last entry?"
-
-"'December 22nd. Twenty-four geese at 7s. 6d.'"
-
-"Quite so. There you are. And underneath?"
-
-"'Sold to Mr. Windigate of the Alpha, at 12s.'"
-
-"What have you to say now?"
-
-Sherlock Holmes looked deeply chagrined. He drew a sovereign from
-his pocket and threw it down upon the slab, turning away with the
-air of a man whose disgust is too deep for words. A few yards off
-he stopped under a lamp-post and laughed in the hearty, noiseless
-fashion which was peculiar to him.
-
-"When you see a man with whiskers of that cut and the 'Pink 'un'
-protruding out of his pocket, you can always draw him by a bet,"
-said he. "I daresay that if I had put 100 pounds down in front of
-him, that man would not have given me such complete information
-as was drawn from him by the idea that he was doing me on a
-wager. Well, Watson, we are, I fancy, nearing the end of our
-quest, and the only point which remains to be determined is
-whether we should go on to this Mrs. Oakshott to-night, or
-whether we should reserve it for to-morrow. It is clear from what
-that surly fellow said that there are others besides ourselves
-who are anxious about the matter, and I should--"
-
-His remarks were suddenly cut short by a loud hubbub which broke
-out from the stall which we had just left. Turning round we saw a
-little rat-faced fellow standing in the centre of the circle of
-yellow light which was thrown by the swinging lamp, while
-Breckinridge, the salesman, framed in the door of his stall, was
-shaking his fists fiercely at the cringing figure.
-
-"I've had enough of you and your geese," he shouted. "I wish you
-were all at the devil together. If you come pestering me any more
-with your silly talk I'll set the dog at you. You bring Mrs.
-Oakshott here and I'll answer her, but what have you to do with
-it? Did I buy the geese off you?"
-
-"No; but one of them was mine all the same," whined the little
-man.
-
-"Well, then, ask Mrs. Oakshott for it."
-
-"She told me to ask you."
-
-"Well, you can ask the King of Proosia, for all I care. I've had
-enough of it. Get out of this!" He rushed fiercely forward, and
-the inquirer flitted away into the darkness.
-
-"Ha! this may save us a visit to Brixton Road," whispered Holmes.
-"Come with me, and we will see what is to be made of this
-fellow." Striding through the scattered knots of people who
-lounged round the flaring stalls, my companion speedily overtook
-the little man and touched him upon the shoulder. He sprang
-round, and I could see in the gas-light that every vestige of
-colour had been driven from his face.
-
-"Who are you, then? What do you want?" he asked in a quavering
-voice.
-
-"You will excuse me," said Holmes blandly, "but I could not help
-overhearing the questions which you put to the salesman just now.
-I think that I could be of assistance to you."
-
-"You? Who are you? How could you know anything of the matter?"
-
-"My name is Sherlock Holmes. It is my business to know what other
-people don't know."
-
-"But you can know nothing of this?"
-
-"Excuse me, I know everything of it. You are endeavouring to
-trace some geese which were sold by Mrs. Oakshott, of Brixton
-Road, to a salesman named Breckinridge, by him in turn to Mr.
-Windigate, of the Alpha, and by him to his club, of which Mr.
-Henry Baker is a member."
-
-"Oh, sir, you are the very man whom I have longed to meet," cried
-the little fellow with outstretched hands and quivering fingers.
-"I can hardly explain to you how interested I am in this matter."
-
-Sherlock Holmes hailed a four-wheeler which was passing. "In that
-case we had better discuss it in a cosy room rather than in this
-wind-swept market-place," said he. "But pray tell me, before we
-go farther, who it is that I have the pleasure of assisting."
-
-The man hesitated for an instant. "My name is John Robinson," he
-answered with a sidelong glance.
-
-"No, no; the real name," said Holmes sweetly. "It is always
-awkward doing business with an alias."
-
-A flush sprang to the white cheeks of the stranger. "Well then,"
-said he, "my real name is James Ryder."
-
-"Precisely so. Head attendant at the Hotel Cosmopolitan. Pray
-step into the cab, and I shall soon be able to tell you
-everything which you would wish to know."
-
-The little man stood glancing from one to the other of us with
-half-frightened, half-hopeful eyes, as one who is not sure
-whether he is on the verge of a windfall or of a catastrophe.
-Then he stepped into the cab, and in half an hour we were back in
-the sitting-room at Baker Street. Nothing had been said during
-our drive, but the high, thin breathing of our new companion, and
-the claspings and unclaspings of his hands, spoke of the nervous
-tension within him.
-
-"Here we are!" said Holmes cheerily as we filed into the room.
-"The fire looks very seasonable in this weather. You look cold,
-Mr. Ryder. Pray take the basket-chair. I will just put on my
-slippers before we settle this little matter of yours. Now, then!
-You want to know what became of those geese?"
-
-"Yes, sir."
-
-"Or rather, I fancy, of that goose. It was one bird, I imagine in
-which you were interested--white, with a black bar across the
-tail."
-
-Ryder quivered with emotion. "Oh, sir," he cried, "can you tell
-me where it went to?"
-
-"It came here."
-
-"Here?"
-
-"Yes, and a most remarkable bird it proved. I don't wonder that
-you should take an interest in it. It laid an egg after it was
-dead--the bonniest, brightest little blue egg that ever was seen.
-I have it here in my museum."
-
-Our visitor staggered to his feet and clutched the mantelpiece
-with his right hand. Holmes unlocked his strong-box and held up
-the blue carbuncle, which shone out like a star, with a cold,
-brilliant, many-pointed radiance. Ryder stood glaring with a
-drawn face, uncertain whether to claim or to disown it.
-
-"The game's up, Ryder," said Holmes quietly. "Hold up, man, or
-you'll be into the fire! Give him an arm back into his chair,
-Watson. He's not got blood enough to go in for felony with
-impunity. Give him a dash of brandy. So! Now he looks a little
-more human. What a shrimp it is, to be sure!"
-
-For a moment he had staggered and nearly fallen, but the brandy
-brought a tinge of colour into his cheeks, and he sat staring
-with frightened eyes at his accuser.
-
-"I have almost every link in my hands, and all the proofs which I
-could possibly need, so there is little which you need tell me.
-Still, that little may as well be cleared up to make the case
-complete. You had heard, Ryder, of this blue stone of the
-Countess of Morcar's?"
-
-"It was Catherine Cusack who told me of it," said he in a
-crackling voice.
-
-"I see--her ladyship's waiting-maid. Well, the temptation of
-sudden wealth so easily acquired was too much for you, as it has
-been for better men before you; but you were not very scrupulous
-in the means you used. It seems to me, Ryder, that there is the
-making of a very pretty villain in you. You knew that this man
-Horner, the plumber, had been concerned in some such matter
-before, and that suspicion would rest the more readily upon him.
-What did you do, then? You made some small job in my lady's
-room--you and your confederate Cusack--and you managed that he
-should be the man sent for. Then, when he had left, you rifled
-the jewel-case, raised the alarm, and had this unfortunate man
-arrested. You then--"
-
-Ryder threw himself down suddenly upon the rug and clutched at my
-companion's knees. "For God's sake, have mercy!" he shrieked.
-"Think of my father! Of my mother! It would break their hearts. I
-never went wrong before! I never will again. I swear it. I'll
-swear it on a Bible. Oh, don't bring it into court! For Christ's
-sake, don't!"
-
-"Get back into your chair!" said Holmes sternly. "It is very well
-to cringe and crawl now, but you thought little enough of this
-poor Horner in the dock for a crime of which he knew nothing."
-
-"I will fly, Mr. Holmes. I will leave the country, sir. Then the
-charge against him will break down."
-
-"Hum! We will talk about that. And now let us hear a true account
-of the next act. How came the stone into the goose, and how came
-the goose into the open market? Tell us the truth, for there lies
-your only hope of safety."
-
-Ryder passed his tongue over his parched lips. "I will tell you
-it just as it happened, sir," said he. "When Horner had been
-arrested, it seemed to me that it would be best for me to get
-away with the stone at once, for I did not know at what moment
-the police might not take it into their heads to search me and my
-room. There was no place about the hotel where it would be safe.
-I went out, as if on some commission, and I made for my sister's
-house. She had married a man named Oakshott, and lived in Brixton
-Road, where she fattened fowls for the market. All the way there
-every man I met seemed to me to be a policeman or a detective;
-and, for all that it was a cold night, the sweat was pouring down
-my face before I came to the Brixton Road. My sister asked me
-what was the matter, and why I was so pale; but I told her that I
-had been upset by the jewel robbery at the hotel. Then I went
-into the back yard and smoked a pipe and wondered what it would
-be best to do.
-
-"I had a friend once called Maudsley, who went to the bad, and
-has just been serving his time in Pentonville. One day he had met
-me, and fell into talk about the ways of thieves, and how they
-could get rid of what they stole. I knew that he would be true to
-me, for I knew one or two things about him; so I made up my mind
-to go right on to Kilburn, where he lived, and take him into my
-confidence. He would show me how to turn the stone into money.
-But how to get to him in safety? I thought of the agonies I had
-gone through in coming from the hotel. I might at any moment be
-seized and searched, and there would be the stone in my waistcoat
-pocket. I was leaning against the wall at the time and looking at
-the geese which were waddling about round my feet, and suddenly
-an idea came into my head which showed me how I could beat the
-best detective that ever lived.
-
-"My sister had told me some weeks before that I might have the
-pick of her geese for a Christmas present, and I knew that she
-was always as good as her word. I would take my goose now, and in
-it I would carry my stone to Kilburn. There was a little shed in
-the yard, and behind this I drove one of the birds--a fine big
-one, white, with a barred tail. I caught it, and prying its bill
-open, I thrust the stone down its throat as far as my finger
-could reach. The bird gave a gulp, and I felt the stone pass
-along its gullet and down into its crop. But the creature flapped
-and struggled, and out came my sister to know what was the
-matter. As I turned to speak to her the brute broke loose and
-fluttered off among the others.
-
-"'Whatever were you doing with that bird, Jem?' says she.
-
-"'Well,' said I, 'you said you'd give me one for Christmas, and I
-was feeling which was the fattest.'
-
-"'Oh,' says she, 'we've set yours aside for you--Jem's bird, we
-call it. It's the big white one over yonder. There's twenty-six
-of them, which makes one for you, and one for us, and two dozen
-for the market.'
-
-"'Thank you, Maggie,' says I; 'but if it is all the same to you,
-I'd rather have that one I was handling just now.'
-
-"'The other is a good three pound heavier,' said she, 'and we
-fattened it expressly for you.'
-
-"'Never mind. I'll have the other, and I'll take it now,' said I.
-
-"'Oh, just as you like,' said she, a little huffed. 'Which is it
-you want, then?'
-
-"'That white one with the barred tail, right in the middle of the
-flock.'
-
-"'Oh, very well. Kill it and take it with you.'
-
-"Well, I did what she said, Mr. Holmes, and I carried the bird
-all the way to Kilburn. I told my pal what I had done, for he was
-a man that it was easy to tell a thing like that to. He laughed
-until he choked, and we got a knife and opened the goose. My
-heart turned to water, for there was no sign of the stone, and I
-knew that some terrible mistake had occurred. I left the bird,
-rushed back to my sister's, and hurried into the back yard. There
-was not a bird to be seen there.
-
-"'Where are they all, Maggie?' I cried.
-
-"'Gone to the dealer's, Jem.'
-
-"'Which dealer's?'
-
-"'Breckinridge, of Covent Garden.'
-
-"'But was there another with a barred tail?' I asked, 'the same
-as the one I chose?'
-
-"'Yes, Jem; there were two barred-tailed ones, and I could never
-tell them apart.'
-
-"Well, then, of course I saw it all, and I ran off as hard as my
-feet would carry me to this man Breckinridge; but he had sold the
-lot at once, and not one word would he tell me as to where they
-had gone. You heard him yourselves to-night. Well, he has always
-answered me like that. My sister thinks that I am going mad.
-Sometimes I think that I am myself. And now--and now I am myself
-a branded thief, without ever having touched the wealth for which
-I sold my character. God help me! God help me!" He burst into
-convulsive sobbing, with his face buried in his hands.
-
-There was a long silence, broken only by his heavy breathing and
-by the measured tapping of Sherlock Holmes' finger-tips upon the
-edge of the table. Then my friend rose and threw open the door.
-
-"Get out!" said he.
-
-"What, sir! Oh, Heaven bless you!"
-
-"No more words. Get out!"
-
-And no more words were needed. There was a rush, a clatter upon
-the stairs, the bang of a door, and the crisp rattle of running
-footfalls from the street.
-
-"After all, Watson," said Holmes, reaching up his hand for his
-clay pipe, "I am not retained by the police to supply their
-deficiencies. If Horner were in danger it would be another thing;
-but this fellow will not appear against him, and the case must
-collapse. I suppose that I am commuting a felony, but it is just
-possible that I am saving a soul. This fellow will not go wrong
-again; he is too terribly frightened. Send him to gaol now, and
-you make him a gaol-bird for life. Besides, it is the season of
-forgiveness. Chance has put in our way a most singular and
-whimsical problem, and its solution is its own reward. If you
-will have the goodness to touch the bell, Doctor, we will begin
-another investigation, in which, also a bird will be the chief
-feature."
-
-
-
-VIII. THE ADVENTURE OF THE SPECKLED BAND
-
-On glancing over my notes of the seventy odd cases in which I
-have during the last eight years studied the methods of my friend
-Sherlock Holmes, I find many tragic, some comic, a large number
-merely strange, but none commonplace; for, working as he did
-rather for the love of his art than for the acquirement of
-wealth, he refused to associate himself with any investigation
-which did not tend towards the unusual, and even the fantastic.
-Of all these varied cases, however, I cannot recall any which
-presented more singular features than that which was associated
-with the well-known Surrey family of the Roylotts of Stoke Moran.
-The events in question occurred in the early days of my
-association with Holmes, when we were sharing rooms as bachelors
-in Baker Street. It is possible that I might have placed them
-upon record before, but a promise of secrecy was made at the
-time, from which I have only been freed during the last month by
-the untimely death of the lady to whom the pledge was given. It
-is perhaps as well that the facts should now come to light, for I
-have reasons to know that there are widespread rumours as to the
-death of Dr. Grimesby Roylott which tend to make the matter even
-more terrible than the truth.
-
-It was early in April in the year '83 that I woke one morning to
-find Sherlock Holmes standing, fully dressed, by the side of my
-bed. He was a late riser, as a rule, and as the clock on the
-mantelpiece showed me that it was only a quarter-past seven, I
-blinked up at him in some surprise, and perhaps just a little
-resentment, for I was myself regular in my habits.
-
-"Very sorry to knock you up, Watson," said he, "but it's the
-common lot this morning. Mrs. Hudson has been knocked up, she
-retorted upon me, and I on you."
-
-"What is it, then--a fire?"
-
-"No; a client. It seems that a young lady has arrived in a
-considerable state of excitement, who insists upon seeing me. She
-is waiting now in the sitting-room. Now, when young ladies wander
-about the metropolis at this hour of the morning, and knock
-sleepy people up out of their beds, I presume that it is
-something very pressing which they have to communicate. Should it
-prove to be an interesting case, you would, I am sure, wish to
-follow it from the outset. I thought, at any rate, that I should
-call you and give you the chance."
-
-"My dear fellow, I would not miss it for anything."
-
-I had no keener pleasure than in following Holmes in his
-professional investigations, and in admiring the rapid
-deductions, as swift as intuitions, and yet always founded on a
-logical basis with which he unravelled the problems which were
-submitted to him. I rapidly threw on my clothes and was ready in
-a few minutes to accompany my friend down to the sitting-room. A
-lady dressed in black and heavily veiled, who had been sitting in
-the window, rose as we entered.
-
-"Good-morning, madam," said Holmes cheerily. "My name is Sherlock
-Holmes. This is my intimate friend and associate, Dr. Watson,
-before whom you can speak as freely as before myself. Ha! I am
-glad to see that Mrs. Hudson has had the good sense to light the
-fire. Pray draw up to it, and I shall order you a cup of hot
-coffee, for I observe that you are shivering."
-
-"It is not cold which makes me shiver," said the woman in a low
-voice, changing her seat as requested.
-
-"What, then?"
-
-"It is fear, Mr. Holmes. It is terror." She raised her veil as
-she spoke, and we could see that she was indeed in a pitiable
-state of agitation, her face all drawn and grey, with restless
-frightened eyes, like those of some hunted animal. Her features
-and figure were those of a woman of thirty, but her hair was shot
-with premature grey, and her expression was weary and haggard.
-Sherlock Holmes ran her over with one of his quick,
-all-comprehensive glances.
-
-"You must not fear," said he soothingly, bending forward and
-patting her forearm. "We shall soon set matters right, I have no
-doubt. You have come in by train this morning, I see."
-
-"You know me, then?"
-
-"No, but I observe the second half of a return ticket in the palm
-of your left glove. You must have started early, and yet you had
-a good drive in a dog-cart, along heavy roads, before you reached
-the station."
-
-The lady gave a violent start and stared in bewilderment at my
-companion.
-
-"There is no mystery, my dear madam," said he, smiling. "The left
-arm of your jacket is spattered with mud in no less than seven
-places. The marks are perfectly fresh. There is no vehicle save a
-dog-cart which throws up mud in that way, and then only when you
-sit on the left-hand side of the driver."
-
-"Whatever your reasons may be, you are perfectly correct," said
-she. "I started from home before six, reached Leatherhead at
-twenty past, and came in by the first train to Waterloo. Sir, I
-can stand this strain no longer; I shall go mad if it continues.
-I have no one to turn to--none, save only one, who cares for me,
-and he, poor fellow, can be of little aid. I have heard of you,
-Mr. Holmes; I have heard of you from Mrs. Farintosh, whom you
-helped in the hour of her sore need. It was from her that I had
-your address. Oh, sir, do you not think that you could help me,
-too, and at least throw a little light through the dense darkness
-which surrounds me? At present it is out of my power to reward
-you for your services, but in a month or six weeks I shall be
-married, with the control of my own income, and then at least you
-shall not find me ungrateful."
-
-Holmes turned to his desk and, unlocking it, drew out a small
-case-book, which he consulted.
-
-"Farintosh," said he. "Ah yes, I recall the case; it was
-concerned with an opal tiara. I think it was before your time,
-Watson. I can only say, madam, that I shall be happy to devote
-the same care to your case as I did to that of your friend. As to
-reward, my profession is its own reward; but you are at liberty
-to defray whatever expenses I may be put to, at the time which
-suits you best. And now I beg that you will lay before us
-everything that may help us in forming an opinion upon the
-matter."
-
-"Alas!" replied our visitor, "the very horror of my situation
-lies in the fact that my fears are so vague, and my suspicions
-depend so entirely upon small points, which might seem trivial to
-another, that even he to whom of all others I have a right to
-look for help and advice looks upon all that I tell him about it
-as the fancies of a nervous woman. He does not say so, but I can
-read it from his soothing answers and averted eyes. But I have
-heard, Mr. Holmes, that you can see deeply into the manifold
-wickedness of the human heart. You may advise me how to walk amid
-the dangers which encompass me."
-
-"I am all attention, madam."
-
-"My name is Helen Stoner, and I am living with my stepfather, who
-is the last survivor of one of the oldest Saxon families in
-England, the Roylotts of Stoke Moran, on the western border of
-Surrey."
-
-Holmes nodded his head. "The name is familiar to me," said he.
-
-"The family was at one time among the richest in England, and the
-estates extended over the borders into Berkshire in the north,
-and Hampshire in the west. In the last century, however, four
-successive heirs were of a dissolute and wasteful disposition,
-and the family ruin was eventually completed by a gambler in the
-days of the Regency. Nothing was left save a few acres of ground,
-and the two-hundred-year-old house, which is itself crushed under
-a heavy mortgage. The last squire dragged out his existence
-there, living the horrible life of an aristocratic pauper; but
-his only son, my stepfather, seeing that he must adapt himself to
-the new conditions, obtained an advance from a relative, which
-enabled him to take a medical degree and went out to Calcutta,
-where, by his professional skill and his force of character, he
-established a large practice. In a fit of anger, however, caused
-by some robberies which had been perpetrated in the house, he
-beat his native butler to death and narrowly escaped a capital
-sentence. As it was, he suffered a long term of imprisonment and
-afterwards returned to England a morose and disappointed man.
-
-"When Dr. Roylott was in India he married my mother, Mrs. Stoner,
-the young widow of Major-General Stoner, of the Bengal Artillery.
-My sister Julia and I were twins, and we were only two years old
-at the time of my mother's re-marriage. She had a considerable
-sum of money--not less than 1000 pounds a year--and this she
-bequeathed to Dr. Roylott entirely while we resided with him,
-with a provision that a certain annual sum should be allowed to
-each of us in the event of our marriage. Shortly after our return
-to England my mother died--she was killed eight years ago in a
-railway accident near Crewe. Dr. Roylott then abandoned his
-attempts to establish himself in practice in London and took us
-to live with him in the old ancestral house at Stoke Moran. The
-money which my mother had left was enough for all our wants, and
-there seemed to be no obstacle to our happiness.
-
-"But a terrible change came over our stepfather about this time.
-Instead of making friends and exchanging visits with our
-neighbours, who had at first been overjoyed to see a Roylott of
-Stoke Moran back in the old family seat, he shut himself up in
-his house and seldom came out save to indulge in ferocious
-quarrels with whoever might cross his path. Violence of temper
-approaching to mania has been hereditary in the men of the
-family, and in my stepfather's case it had, I believe, been
-intensified by his long residence in the tropics. A series of
-disgraceful brawls took place, two of which ended in the
-police-court, until at last he became the terror of the village,
-and the folks would fly at his approach, for he is a man of
-immense strength, and absolutely uncontrollable in his anger.
-
-"Last week he hurled the local blacksmith over a parapet into a
-stream, and it was only by paying over all the money which I
-could gather together that I was able to avert another public
-exposure. He had no friends at all save the wandering gipsies,
-and he would give these vagabonds leave to encamp upon the few
-acres of bramble-covered land which represent the family estate,
-and would accept in return the hospitality of their tents,
-wandering away with them sometimes for weeks on end. He has a
-passion also for Indian animals, which are sent over to him by a
-correspondent, and he has at this moment a cheetah and a baboon,
-which wander freely over his grounds and are feared by the
-villagers almost as much as their master.
-
-"You can imagine from what I say that my poor sister Julia and I
-had no great pleasure in our lives. No servant would stay with
-us, and for a long time we did all the work of the house. She was
-but thirty at the time of her death, and yet her hair had already
-begun to whiten, even as mine has."
-
-"Your sister is dead, then?"
-
-"She died just two years ago, and it is of her death that I wish
-to speak to you. You can understand that, living the life which I
-have described, we were little likely to see anyone of our own
-age and position. We had, however, an aunt, my mother's maiden
-sister, Miss Honoria Westphail, who lives near Harrow, and we
-were occasionally allowed to pay short visits at this lady's
-house. Julia went there at Christmas two years ago, and met there
-a half-pay major of marines, to whom she became engaged. My
-stepfather learned of the engagement when my sister returned and
-offered no objection to the marriage; but within a fortnight of
-the day which had been fixed for the wedding, the terrible event
-occurred which has deprived me of my only companion."
-
-Sherlock Holmes had been leaning back in his chair with his eyes
-closed and his head sunk in a cushion, but he half opened his
-lids now and glanced across at his visitor.
-
-"Pray be precise as to details," said he.
-
-"It is easy for me to be so, for every event of that dreadful
-time is seared into my memory. The manor-house is, as I have
-already said, very old, and only one wing is now inhabited. The
-bedrooms in this wing are on the ground floor, the sitting-rooms
-being in the central block of the buildings. Of these bedrooms
-the first is Dr. Roylott's, the second my sister's, and the third
-my own. There is no communication between them, but they all open
-out into the same corridor. Do I make myself plain?"
-
-"Perfectly so."
-
-"The windows of the three rooms open out upon the lawn. That
-fatal night Dr. Roylott had gone to his room early, though we
-knew that he had not retired to rest, for my sister was troubled
-by the smell of the strong Indian cigars which it was his custom
-to smoke. She left her room, therefore, and came into mine, where
-she sat for some time, chatting about her approaching wedding. At
-eleven o'clock she rose to leave me, but she paused at the door
-and looked back.
-
-"'Tell me, Helen,' said she, 'have you ever heard anyone whistle
-in the dead of the night?'
-
-"'Never,' said I.
-
-"'I suppose that you could not possibly whistle, yourself, in
-your sleep?'
-
-"'Certainly not. But why?'
-
-"'Because during the last few nights I have always, about three
-in the morning, heard a low, clear whistle. I am a light sleeper,
-and it has awakened me. I cannot tell where it came from--perhaps
-from the next room, perhaps from the lawn. I thought that I would
-just ask you whether you had heard it.'
-
-"'No, I have not. It must be those wretched gipsies in the
-plantation.'
-
-"'Very likely. And yet if it were on the lawn, I wonder that you
-did not hear it also.'
-
-"'Ah, but I sleep more heavily than you.'
-
-"'Well, it is of no great consequence, at any rate.' She smiled
-back at me, closed my door, and a few moments later I heard her
-key turn in the lock."
-
-"Indeed," said Holmes. "Was it your custom always to lock
-yourselves in at night?"
-
-"Always."
-
-"And why?"
-
-"I think that I mentioned to you that the doctor kept a cheetah
-and a baboon. We had no feeling of security unless our doors were
-locked."
-
-"Quite so. Pray proceed with your statement."
-
-"I could not sleep that night. A vague feeling of impending
-misfortune impressed me. My sister and I, you will recollect,
-were twins, and you know how subtle are the links which bind two
-souls which are so closely allied. It was a wild night. The wind
-was howling outside, and the rain was beating and splashing
-against the windows. Suddenly, amid all the hubbub of the gale,
-there burst forth the wild scream of a terrified woman. I knew
-that it was my sister's voice. I sprang from my bed, wrapped a
-shawl round me, and rushed into the corridor. As I opened my door
-I seemed to hear a low whistle, such as my sister described, and
-a few moments later a clanging sound, as if a mass of metal had
-fallen. As I ran down the passage, my sister's door was unlocked,
-and revolved slowly upon its hinges. I stared at it
-horror-stricken, not knowing what was about to issue from it. By
-the light of the corridor-lamp I saw my sister appear at the
-opening, her face blanched with terror, her hands groping for
-help, her whole figure swaying to and fro like that of a
-drunkard. I ran to her and threw my arms round her, but at that
-moment her knees seemed to give way and she fell to the ground.
-She writhed as one who is in terrible pain, and her limbs were
-dreadfully convulsed. At first I thought that she had not
-recognised me, but as I bent over her she suddenly shrieked out
-in a voice which I shall never forget, 'Oh, my God! Helen! It was
-the band! The speckled band!' There was something else which she
-would fain have said, and she stabbed with her finger into the
-air in the direction of the doctor's room, but a fresh convulsion
-seized her and choked her words. I rushed out, calling loudly for
-my stepfather, and I met him hastening from his room in his
-dressing-gown. When he reached my sister's side she was
-unconscious, and though he poured brandy down her throat and sent
-for medical aid from the village, all efforts were in vain, for
-she slowly sank and died without having recovered her
-consciousness. Such was the dreadful end of my beloved sister."
-
-"One moment," said Holmes, "are you sure about this whistle and
-metallic sound? Could you swear to it?"
-
-"That was what the county coroner asked me at the inquiry. It is
-my strong impression that I heard it, and yet, among the crash of
-the gale and the creaking of an old house, I may possibly have
-been deceived."
-
-"Was your sister dressed?"
-
-"No, she was in her night-dress. In her right hand was found the
-charred stump of a match, and in her left a match-box."
-
-"Showing that she had struck a light and looked about her when
-the alarm took place. That is important. And what conclusions did
-the coroner come to?"
-
-"He investigated the case with great care, for Dr. Roylott's
-conduct had long been notorious in the county, but he was unable
-to find any satisfactory cause of death. My evidence showed that
-the door had been fastened upon the inner side, and the windows
-were blocked by old-fashioned shutters with broad iron bars,
-which were secured every night. The walls were carefully sounded,
-and were shown to be quite solid all round, and the flooring was
-also thoroughly examined, with the same result. The chimney is
-wide, but is barred up by four large staples. It is certain,
-therefore, that my sister was quite alone when she met her end.
-Besides, there were no marks of any violence upon her."
-
-"How about poison?"
-
-"The doctors examined her for it, but without success."
-
-"What do you think that this unfortunate lady died of, then?"
-
-"It is my belief that she died of pure fear and nervous shock,
-though what it was that frightened her I cannot imagine."
-
-"Were there gipsies in the plantation at the time?"
-
-"Yes, there are nearly always some there."
-
-"Ah, and what did you gather from this allusion to a band--a
-speckled band?"
-
-"Sometimes I have thought that it was merely the wild talk of
-delirium, sometimes that it may have referred to some band of
-people, perhaps to these very gipsies in the plantation. I do not
-know whether the spotted handkerchiefs which so many of them wear
-over their heads might have suggested the strange adjective which
-she used."
-
-Holmes shook his head like a man who is far from being satisfied.
-
-"These are very deep waters," said he; "pray go on with your
-narrative."
-
-"Two years have passed since then, and my life has been until
-lately lonelier than ever. A month ago, however, a dear friend,
-whom I have known for many years, has done me the honour to ask
-my hand in marriage. His name is Armitage--Percy Armitage--the
-second son of Mr. Armitage, of Crane Water, near Reading. My
-stepfather has offered no opposition to the match, and we are to
-be married in the course of the spring. Two days ago some repairs
-were started in the west wing of the building, and my bedroom
-wall has been pierced, so that I have had to move into the
-chamber in which my sister died, and to sleep in the very bed in
-which she slept. Imagine, then, my thrill of terror when last
-night, as I lay awake, thinking over her terrible fate, I
-suddenly heard in the silence of the night the low whistle which
-had been the herald of her own death. I sprang up and lit the
-lamp, but nothing was to be seen in the room. I was too shaken to
-go to bed again, however, so I dressed, and as soon as it was
-daylight I slipped down, got a dog-cart at the Crown Inn, which
-is opposite, and drove to Leatherhead, from whence I have come on
-this morning with the one object of seeing you and asking your
-advice."
-
-"You have done wisely," said my friend. "But have you told me
-all?"
-
-"Yes, all."
-
-"Miss Roylott, you have not. You are screening your stepfather."
-
-"Why, what do you mean?"
-
-For answer Holmes pushed back the frill of black lace which
-fringed the hand that lay upon our visitor's knee. Five little
-livid spots, the marks of four fingers and a thumb, were printed
-upon the white wrist.
-
-"You have been cruelly used," said Holmes.
-
-The lady coloured deeply and covered over her injured wrist. "He
-is a hard man," she said, "and perhaps he hardly knows his own
-strength."
-
-There was a long silence, during which Holmes leaned his chin
-upon his hands and stared into the crackling fire.
-
-"This is a very deep business," he said at last. "There are a
-thousand details which I should desire to know before I decide
-upon our course of action. Yet we have not a moment to lose. If
-we were to come to Stoke Moran to-day, would it be possible for
-us to see over these rooms without the knowledge of your
-stepfather?"
-
-"As it happens, he spoke of coming into town to-day upon some
-most important business. It is probable that he will be away all
-day, and that there would be nothing to disturb you. We have a
-housekeeper now, but she is old and foolish, and I could easily
-get her out of the way."
-
-"Excellent. You are not averse to this trip, Watson?"
-
-"By no means."
-
-"Then we shall both come. What are you going to do yourself?"
-
-"I have one or two things which I would wish to do now that I am
-in town. But I shall return by the twelve o'clock train, so as to
-be there in time for your coming."
-
-"And you may expect us early in the afternoon. I have myself some
-small business matters to attend to. Will you not wait and
-breakfast?"
-
-"No, I must go. My heart is lightened already since I have
-confided my trouble to you. I shall look forward to seeing you
-again this afternoon." She dropped her thick black veil over her
-face and glided from the room.
-
-"And what do you think of it all, Watson?" asked Sherlock Holmes,
-leaning back in his chair.
-
-"It seems to me to be a most dark and sinister business."
-
-"Dark enough and sinister enough."
-
-"Yet if the lady is correct in saying that the flooring and walls
-are sound, and that the door, window, and chimney are impassable,
-then her sister must have been undoubtedly alone when she met her
-mysterious end."
-
-"What becomes, then, of these nocturnal whistles, and what of the
-very peculiar words of the dying woman?"
-
-"I cannot think."
-
-"When you combine the ideas of whistles at night, the presence of
-a band of gipsies who are on intimate terms with this old doctor,
-the fact that we have every reason to believe that the doctor has
-an interest in preventing his stepdaughter's marriage, the dying
-allusion to a band, and, finally, the fact that Miss Helen Stoner
-heard a metallic clang, which might have been caused by one of
-those metal bars that secured the shutters falling back into its
-place, I think that there is good ground to think that the
-mystery may be cleared along those lines."
-
-"But what, then, did the gipsies do?"
-
-"I cannot imagine."
-
-"I see many objections to any such theory."
-
-"And so do I. It is precisely for that reason that we are going
-to Stoke Moran this day. I want to see whether the objections are
-fatal, or if they may be explained away. But what in the name of
-the devil!"
-
-The ejaculation had been drawn from my companion by the fact that
-our door had been suddenly dashed open, and that a huge man had
-framed himself in the aperture. His costume was a peculiar
-mixture of the professional and of the agricultural, having a
-black top-hat, a long frock-coat, and a pair of high gaiters,
-with a hunting-crop swinging in his hand. So tall was he that his
-hat actually brushed the cross bar of the doorway, and his
-breadth seemed to span it across from side to side. A large face,
-seared with a thousand wrinkles, burned yellow with the sun, and
-marked with every evil passion, was turned from one to the other
-of us, while his deep-set, bile-shot eyes, and his high, thin,
-fleshless nose, gave him somewhat the resemblance to a fierce old
-bird of prey.
-
-"Which of you is Holmes?" asked this apparition.
-
-"My name, sir; but you have the advantage of me," said my
-companion quietly.
-
-"I am Dr. Grimesby Roylott, of Stoke Moran."
-
-"Indeed, Doctor," said Holmes blandly. "Pray take a seat."
-
-"I will do nothing of the kind. My stepdaughter has been here. I
-have traced her. What has she been saying to you?"
-
-"It is a little cold for the time of the year," said Holmes.
-
-"What has she been saying to you?" screamed the old man
-furiously.
-
-"But I have heard that the crocuses promise well," continued my
-companion imperturbably.
-
-"Ha! You put me off, do you?" said our new visitor, taking a step
-forward and shaking his hunting-crop. "I know you, you scoundrel!
-I have heard of you before. You are Holmes, the meddler."
-
-My friend smiled.
-
-"Holmes, the busybody!"
-
-His smile broadened.
-
-"Holmes, the Scotland Yard Jack-in-office!"
-
-Holmes chuckled heartily. "Your conversation is most
-entertaining," said he. "When you go out close the door, for
-there is a decided draught."
-
-"I will go when I have said my say. Don't you dare to meddle with
-my affairs. I know that Miss Stoner has been here. I traced her!
-I am a dangerous man to fall foul of! See here." He stepped
-swiftly forward, seized the poker, and bent it into a curve with
-his huge brown hands.
-
-"See that you keep yourself out of my grip," he snarled, and
-hurling the twisted poker into the fireplace he strode out of the
-room.
-
-"He seems a very amiable person," said Holmes, laughing. "I am
-not quite so bulky, but if he had remained I might have shown him
-that my grip was not much more feeble than his own." As he spoke
-he picked up the steel poker and, with a sudden effort,
-straightened it out again.
-
-"Fancy his having the insolence to confound me with the official
-detective force! This incident gives zest to our investigation,
-however, and I only trust that our little friend will not suffer
-from her imprudence in allowing this brute to trace her. And now,
-Watson, we shall order breakfast, and afterwards I shall walk
-down to Doctors' Commons, where I hope to get some data which may
-help us in this matter."
-
-
-It was nearly one o'clock when Sherlock Holmes returned from his
-excursion. He held in his hand a sheet of blue paper, scrawled
-over with notes and figures.
-
-"I have seen the will of the deceased wife," said he. "To
-determine its exact meaning I have been obliged to work out the
-present prices of the investments with which it is concerned. The
-total income, which at the time of the wife's death was little
-short of 1100 pounds, is now, through the fall in agricultural
-prices, not more than 750 pounds. Each daughter can claim an
-income of 250 pounds, in case of marriage. It is evident,
-therefore, that if both girls had married, this beauty would have
-had a mere pittance, while even one of them would cripple him to
-a very serious extent. My morning's work has not been wasted,
-since it has proved that he has the very strongest motives for
-standing in the way of anything of the sort. And now, Watson,
-this is too serious for dawdling, especially as the old man is
-aware that we are interesting ourselves in his affairs; so if you
-are ready, we shall call a cab and drive to Waterloo. I should be
-very much obliged if you would slip your revolver into your
-pocket. An Eley's No. 2 is an excellent argument with gentlemen
-who can twist steel pokers into knots. That and a tooth-brush
-are, I think, all that we need."
-
-At Waterloo we were fortunate in catching a train for
-Leatherhead, where we hired a trap at the station inn and drove
-for four or five miles through the lovely Surrey lanes. It was a
-perfect day, with a bright sun and a few fleecy clouds in the
-heavens. The trees and wayside hedges were just throwing out
-their first green shoots, and the air was full of the pleasant
-smell of the moist earth. To me at least there was a strange
-contrast between the sweet promise of the spring and this
-sinister quest upon which we were engaged. My companion sat in
-the front of the trap, his arms folded, his hat pulled down over
-his eyes, and his chin sunk upon his breast, buried in the
-deepest thought. Suddenly, however, he started, tapped me on the
-shoulder, and pointed over the meadows.
-
-"Look there!" said he.
-
-A heavily timbered park stretched up in a gentle slope,
-thickening into a grove at the highest point. From amid the
-branches there jutted out the grey gables and high roof-tree of a
-very old mansion.
-
-"Stoke Moran?" said he.
-
-"Yes, sir, that be the house of Dr. Grimesby Roylott," remarked
-the driver.
-
-"There is some building going on there," said Holmes; "that is
-where we are going."
-
-"There's the village," said the driver, pointing to a cluster of
-roofs some distance to the left; "but if you want to get to the
-house, you'll find it shorter to get over this stile, and so by
-the foot-path over the fields. There it is, where the lady is
-walking."
-
-"And the lady, I fancy, is Miss Stoner," observed Holmes, shading
-his eyes. "Yes, I think we had better do as you suggest."
-
-We got off, paid our fare, and the trap rattled back on its way
-to Leatherhead.
-
-"I thought it as well," said Holmes as we climbed the stile,
-"that this fellow should think we had come here as architects, or
-on some definite business. It may stop his gossip.
-Good-afternoon, Miss Stoner. You see that we have been as good as
-our word."
-
-Our client of the morning had hurried forward to meet us with a
-face which spoke her joy. "I have been waiting so eagerly for
-you," she cried, shaking hands with us warmly. "All has turned
-out splendidly. Dr. Roylott has gone to town, and it is unlikely
-that he will be back before evening."
-
-"We have had the pleasure of making the doctor's acquaintance,"
-said Holmes, and in a few words he sketched out what had
-occurred. Miss Stoner turned white to the lips as she listened.
-
-"Good heavens!" she cried, "he has followed me, then."
-
-"So it appears."
-
-"He is so cunning that I never know when I am safe from him. What
-will he say when he returns?"
-
-"He must guard himself, for he may find that there is someone
-more cunning than himself upon his track. You must lock yourself
-up from him to-night. If he is violent, we shall take you away to
-your aunt's at Harrow. Now, we must make the best use of our
-time, so kindly take us at once to the rooms which we are to
-examine."
-
-The building was of grey, lichen-blotched stone, with a high
-central portion and two curving wings, like the claws of a crab,
-thrown out on each side. In one of these wings the windows were
-broken and blocked with wooden boards, while the roof was partly
-caved in, a picture of ruin. The central portion was in little
-better repair, but the right-hand block was comparatively modern,
-and the blinds in the windows, with the blue smoke curling up
-from the chimneys, showed that this was where the family resided.
-Some scaffolding had been erected against the end wall, and the
-stone-work had been broken into, but there were no signs of any
-workmen at the moment of our visit. Holmes walked slowly up and
-down the ill-trimmed lawn and examined with deep attention the
-outsides of the windows.
-
-"This, I take it, belongs to the room in which you used to sleep,
-the centre one to your sister's, and the one next to the main
-building to Dr. Roylott's chamber?"
-
-"Exactly so. But I am now sleeping in the middle one."
-
-"Pending the alterations, as I understand. By the way, there does
-not seem to be any very pressing need for repairs at that end
-wall."
-
-"There were none. I believe that it was an excuse to move me from
-my room."
-
-"Ah! that is suggestive. Now, on the other side of this narrow
-wing runs the corridor from which these three rooms open. There
-are windows in it, of course?"
-
-"Yes, but very small ones. Too narrow for anyone to pass
-through."
-
-"As you both locked your doors at night, your rooms were
-unapproachable from that side. Now, would you have the kindness
-to go into your room and bar your shutters?"
-
-Miss Stoner did so, and Holmes, after a careful examination
-through the open window, endeavoured in every way to force the
-shutter open, but without success. There was no slit through
-which a knife could be passed to raise the bar. Then with his
-lens he tested the hinges, but they were of solid iron, built
-firmly into the massive masonry. "Hum!" said he, scratching his
-chin in some perplexity, "my theory certainly presents some
-difficulties. No one could pass these shutters if they were
-bolted. Well, we shall see if the inside throws any light upon
-the matter."
-
-A small side door led into the whitewashed corridor from which
-the three bedrooms opened. Holmes refused to examine the third
-chamber, so we passed at once to the second, that in which Miss
-Stoner was now sleeping, and in which her sister had met with her
-fate. It was a homely little room, with a low ceiling and a
-gaping fireplace, after the fashion of old country-houses. A
-brown chest of drawers stood in one corner, a narrow
-white-counterpaned bed in another, and a dressing-table on the
-left-hand side of the window. These articles, with two small
-wicker-work chairs, made up all the furniture in the room save
-for a square of Wilton carpet in the centre. The boards round and
-the panelling of the walls were of brown, worm-eaten oak, so old
-and discoloured that it may have dated from the original building
-of the house. Holmes drew one of the chairs into a corner and sat
-silent, while his eyes travelled round and round and up and down,
-taking in every detail of the apartment.
-
-"Where does that bell communicate with?" he asked at last
-pointing to a thick bell-rope which hung down beside the bed, the
-tassel actually lying upon the pillow.
-
-"It goes to the housekeeper's room."
-
-"It looks newer than the other things?"
-
-"Yes, it was only put there a couple of years ago."
-
-"Your sister asked for it, I suppose?"
-
-"No, I never heard of her using it. We used always to get what we
-wanted for ourselves."
-
-"Indeed, it seemed unnecessary to put so nice a bell-pull there.
-You will excuse me for a few minutes while I satisfy myself as to
-this floor." He threw himself down upon his face with his lens in
-his hand and crawled swiftly backward and forward, examining
-minutely the cracks between the boards. Then he did the same with
-the wood-work with which the chamber was panelled. Finally he
-walked over to the bed and spent some time in staring at it and
-in running his eye up and down the wall. Finally he took the
-bell-rope in his hand and gave it a brisk tug.
-
-"Why, it's a dummy," said he.
-
-"Won't it ring?"
-
-"No, it is not even attached to a wire. This is very interesting.
-You can see now that it is fastened to a hook just above where
-the little opening for the ventilator is."
-
-"How very absurd! I never noticed that before."
-
-"Very strange!" muttered Holmes, pulling at the rope. "There are
-one or two very singular points about this room. For example,
-what a fool a builder must be to open a ventilator into another
-room, when, with the same trouble, he might have communicated
-with the outside air!"
-
-"That is also quite modern," said the lady.
-
-"Done about the same time as the bell-rope?" remarked Holmes.
-
-"Yes, there were several little changes carried out about that
-time."
-
-"They seem to have been of a most interesting character--dummy
-bell-ropes, and ventilators which do not ventilate. With your
-permission, Miss Stoner, we shall now carry our researches into
-the inner apartment."
-
-Dr. Grimesby Roylott's chamber was larger than that of his
-step-daughter, but was as plainly furnished. A camp-bed, a small
-wooden shelf full of books, mostly of a technical character, an
-armchair beside the bed, a plain wooden chair against the wall, a
-round table, and a large iron safe were the principal things
-which met the eye. Holmes walked slowly round and examined each
-and all of them with the keenest interest.
-
-"What's in here?" he asked, tapping the safe.
-
-"My stepfather's business papers."
-
-"Oh! you have seen inside, then?"
-
-"Only once, some years ago. I remember that it was full of
-papers."
-
-"There isn't a cat in it, for example?"
-
-"No. What a strange idea!"
-
-"Well, look at this!" He took up a small saucer of milk which
-stood on the top of it.
-
-"No; we don't keep a cat. But there is a cheetah and a baboon."
-
-"Ah, yes, of course! Well, a cheetah is just a big cat, and yet a
-saucer of milk does not go very far in satisfying its wants, I
-daresay. There is one point which I should wish to determine." He
-squatted down in front of the wooden chair and examined the seat
-of it with the greatest attention.
-
-"Thank you. That is quite settled," said he, rising and putting
-his lens in his pocket. "Hullo! Here is something interesting!"
-
-The object which had caught his eye was a small dog lash hung on
-one corner of the bed. The lash, however, was curled upon itself
-and tied so as to make a loop of whipcord.
-
-"What do you make of that, Watson?"
-
-"It's a common enough lash. But I don't know why it should be
-tied."
-
-"That is not quite so common, is it? Ah, me! it's a wicked world,
-and when a clever man turns his brains to crime it is the worst
-of all. I think that I have seen enough now, Miss Stoner, and
-with your permission we shall walk out upon the lawn."
-
-I had never seen my friend's face so grim or his brow so dark as
-it was when we turned from the scene of this investigation. We
-had walked several times up and down the lawn, neither Miss
-Stoner nor myself liking to break in upon his thoughts before he
-roused himself from his reverie.
-
-"It is very essential, Miss Stoner," said he, "that you should
-absolutely follow my advice in every respect."
-
-"I shall most certainly do so."
-
-"The matter is too serious for any hesitation. Your life may
-depend upon your compliance."
-
-"I assure you that I am in your hands."
-
-"In the first place, both my friend and I must spend the night in
-your room."
-
-Both Miss Stoner and I gazed at him in astonishment.
-
-"Yes, it must be so. Let me explain. I believe that that is the
-village inn over there?"
-
-"Yes, that is the Crown."
-
-"Very good. Your windows would be visible from there?"
-
-"Certainly."
-
-"You must confine yourself to your room, on pretence of a
-headache, when your stepfather comes back. Then when you hear him
-retire for the night, you must open the shutters of your window,
-undo the hasp, put your lamp there as a signal to us, and then
-withdraw quietly with everything which you are likely to want
-into the room which you used to occupy. I have no doubt that, in
-spite of the repairs, you could manage there for one night."
-
-"Oh, yes, easily."
-
-"The rest you will leave in our hands."
-
-"But what will you do?"
-
-"We shall spend the night in your room, and we shall investigate
-the cause of this noise which has disturbed you."
-
-"I believe, Mr. Holmes, that you have already made up your mind,"
-said Miss Stoner, laying her hand upon my companion's sleeve.
-
-"Perhaps I have."
-
-"Then, for pity's sake, tell me what was the cause of my sister's
-death."
-
-"I should prefer to have clearer proofs before I speak."
-
-"You can at least tell me whether my own thought is correct, and
-if she died from some sudden fright."
-
-"No, I do not think so. I think that there was probably some more
-tangible cause. And now, Miss Stoner, we must leave you for if
-Dr. Roylott returned and saw us our journey would be in vain.
-Good-bye, and be brave, for if you will do what I have told you,
-you may rest assured that we shall soon drive away the dangers
-that threaten you."
-
-Sherlock Holmes and I had no difficulty in engaging a bedroom and
-sitting-room at the Crown Inn. They were on the upper floor, and
-from our window we could command a view of the avenue gate, and
-of the inhabited wing of Stoke Moran Manor House. At dusk we saw
-Dr. Grimesby Roylott drive past, his huge form looming up beside
-the little figure of the lad who drove him. The boy had some
-slight difficulty in undoing the heavy iron gates, and we heard
-the hoarse roar of the doctor's voice and saw the fury with which
-he shook his clinched fists at him. The trap drove on, and a few
-minutes later we saw a sudden light spring up among the trees as
-the lamp was lit in one of the sitting-rooms.
-
-"Do you know, Watson," said Holmes as we sat together in the
-gathering darkness, "I have really some scruples as to taking you
-to-night. There is a distinct element of danger."
-
-"Can I be of assistance?"
-
-"Your presence might be invaluable."
-
-"Then I shall certainly come."
-
-"It is very kind of you."
-
-"You speak of danger. You have evidently seen more in these rooms
-than was visible to me."
-
-"No, but I fancy that I may have deduced a little more. I imagine
-that you saw all that I did."
-
-"I saw nothing remarkable save the bell-rope, and what purpose
-that could answer I confess is more than I can imagine."
-
-"You saw the ventilator, too?"
-
-"Yes, but I do not think that it is such a very unusual thing to
-have a small opening between two rooms. It was so small that a
-rat could hardly pass through."
-
-"I knew that we should find a ventilator before ever we came to
-Stoke Moran."
-
-"My dear Holmes!"
-
-"Oh, yes, I did. You remember in her statement she said that her
-sister could smell Dr. Roylott's cigar. Now, of course that
-suggested at once that there must be a communication between the
-two rooms. It could only be a small one, or it would have been
-remarked upon at the coroner's inquiry. I deduced a ventilator."
-
-"But what harm can there be in that?"
-
-"Well, there is at least a curious coincidence of dates. A
-ventilator is made, a cord is hung, and a lady who sleeps in the
-bed dies. Does not that strike you?"
-
-"I cannot as yet see any connection."
-
-"Did you observe anything very peculiar about that bed?"
-
-"No."
-
-"It was clamped to the floor. Did you ever see a bed fastened
-like that before?"
-
-"I cannot say that I have."
-
-"The lady could not move her bed. It must always be in the same
-relative position to the ventilator and to the rope--or so we may
-call it, since it was clearly never meant for a bell-pull."
-
-"Holmes," I cried, "I seem to see dimly what you are hinting at.
-We are only just in time to prevent some subtle and horrible
-crime."
-
-"Subtle enough and horrible enough. When a doctor does go wrong
-he is the first of criminals. He has nerve and he has knowledge.
-Palmer and Pritchard were among the heads of their profession.
-This man strikes even deeper, but I think, Watson, that we shall
-be able to strike deeper still. But we shall have horrors enough
-before the night is over; for goodness' sake let us have a quiet
-pipe and turn our minds for a few hours to something more
-cheerful."
-
-
-About nine o'clock the light among the trees was extinguished,
-and all was dark in the direction of the Manor House. Two hours
-passed slowly away, and then, suddenly, just at the stroke of
-eleven, a single bright light shone out right in front of us.
-
-"That is our signal," said Holmes, springing to his feet; "it
-comes from the middle window."
-
-As we passed out he exchanged a few words with the landlord,
-explaining that we were going on a late visit to an acquaintance,
-and that it was possible that we might spend the night there. A
-moment later we were out on the dark road, a chill wind blowing
-in our faces, and one yellow light twinkling in front of us
-through the gloom to guide us on our sombre errand.
-
-There was little difficulty in entering the grounds, for
-unrepaired breaches gaped in the old park wall. Making our way
-among the trees, we reached the lawn, crossed it, and were about
-to enter through the window when out from a clump of laurel
-bushes there darted what seemed to be a hideous and distorted
-child, who threw itself upon the grass with writhing limbs and
-then ran swiftly across the lawn into the darkness.
-
-"My God!" I whispered; "did you see it?"
-
-Holmes was for the moment as startled as I. His hand closed like
-a vice upon my wrist in his agitation. Then he broke into a low
-laugh and put his lips to my ear.
-
-"It is a nice household," he murmured. "That is the baboon."
-
-I had forgotten the strange pets which the doctor affected. There
-was a cheetah, too; perhaps we might find it upon our shoulders
-at any moment. I confess that I felt easier in my mind when,
-after following Holmes' example and slipping off my shoes, I
-found myself inside the bedroom. My companion noiselessly closed
-the shutters, moved the lamp onto the table, and cast his eyes
-round the room. All was as we had seen it in the daytime. Then
-creeping up to me and making a trumpet of his hand, he whispered
-into my ear again so gently that it was all that I could do to
-distinguish the words:
-
-"The least sound would be fatal to our plans."
-
-I nodded to show that I had heard.
-
-"We must sit without light. He would see it through the
-ventilator."
-
-I nodded again.
-
-"Do not go asleep; your very life may depend upon it. Have your
-pistol ready in case we should need it. I will sit on the side of
-the bed, and you in that chair."
-
-I took out my revolver and laid it on the corner of the table.
-
-Holmes had brought up a long thin cane, and this he placed upon
-the bed beside him. By it he laid the box of matches and the
-stump of a candle. Then he turned down the lamp, and we were left
-in darkness.
-
-How shall I ever forget that dreadful vigil? I could not hear a
-sound, not even the drawing of a breath, and yet I knew that my
-companion sat open-eyed, within a few feet of me, in the same
-state of nervous tension in which I was myself. The shutters cut
-off the least ray of light, and we waited in absolute darkness.
-
-From outside came the occasional cry of a night-bird, and once at
-our very window a long drawn catlike whine, which told us that
-the cheetah was indeed at liberty. Far away we could hear the
-deep tones of the parish clock, which boomed out every quarter of
-an hour. How long they seemed, those quarters! Twelve struck, and
-one and two and three, and still we sat waiting silently for
-whatever might befall.
-
-Suddenly there was the momentary gleam of a light up in the
-direction of the ventilator, which vanished immediately, but was
-succeeded by a strong smell of burning oil and heated metal.
-Someone in the next room had lit a dark-lantern. I heard a gentle
-sound of movement, and then all was silent once more, though the
-smell grew stronger. For half an hour I sat with straining ears.
-Then suddenly another sound became audible--a very gentle,
-soothing sound, like that of a small jet of steam escaping
-continually from a kettle. The instant that we heard it, Holmes
-sprang from the bed, struck a match, and lashed furiously with
-his cane at the bell-pull.
-
-"You see it, Watson?" he yelled. "You see it?"
-
-But I saw nothing. At the moment when Holmes struck the light I
-heard a low, clear whistle, but the sudden glare flashing into my
-weary eyes made it impossible for me to tell what it was at which
-my friend lashed so savagely. I could, however, see that his face
-was deadly pale and filled with horror and loathing. He had
-ceased to strike and was gazing up at the ventilator when
-suddenly there broke from the silence of the night the most
-horrible cry to which I have ever listened. It swelled up louder
-and louder, a hoarse yell of pain and fear and anger all mingled
-in the one dreadful shriek. They say that away down in the
-village, and even in the distant parsonage, that cry raised the
-sleepers from their beds. It struck cold to our hearts, and I
-stood gazing at Holmes, and he at me, until the last echoes of it
-had died away into the silence from which it rose.
-
-"What can it mean?" I gasped.
-
-"It means that it is all over," Holmes answered. "And perhaps,
-after all, it is for the best. Take your pistol, and we will
-enter Dr. Roylott's room."
-
-With a grave face he lit the lamp and led the way down the
-corridor. Twice he struck at the chamber door without any reply
-from within. Then he turned the handle and entered, I at his
-heels, with the cocked pistol in my hand.
-
-It was a singular sight which met our eyes. On the table stood a
-dark-lantern with the shutter half open, throwing a brilliant
-beam of light upon the iron safe, the door of which was ajar.
-Beside this table, on the wooden chair, sat Dr. Grimesby Roylott
-clad in a long grey dressing-gown, his bare ankles protruding
-beneath, and his feet thrust into red heelless Turkish slippers.
-Across his lap lay the short stock with the long lash which we
-had noticed during the day. His chin was cocked upward and his
-eyes were fixed in a dreadful, rigid stare at the corner of the
-ceiling. Round his brow he had a peculiar yellow band, with
-brownish speckles, which seemed to be bound tightly round his
-head. As we entered he made neither sound nor motion.
-
-"The band! the speckled band!" whispered Holmes.
-
-I took a step forward. In an instant his strange headgear began
-to move, and there reared itself from among his hair the squat
-diamond-shaped head and puffed neck of a loathsome serpent.
-
-"It is a swamp adder!" cried Holmes; "the deadliest snake in
-India. He has died within ten seconds of being bitten. Violence
-does, in truth, recoil upon the violent, and the schemer falls
-into the pit which he digs for another. Let us thrust this
-creature back into its den, and we can then remove Miss Stoner to
-some place of shelter and let the county police know what has
-happened."
-
-As he spoke he drew the dog-whip swiftly from the dead man's lap,
-and throwing the noose round the reptile's neck he drew it from
-its horrid perch and, carrying it at arm's length, threw it into
-the iron safe, which he closed upon it.
-
-Such are the true facts of the death of Dr. Grimesby Roylott, of
-Stoke Moran. It is not necessary that I should prolong a
-narrative which has already run to too great a length by telling
-how we broke the sad news to the terrified girl, how we conveyed
-her by the morning train to the care of her good aunt at Harrow,
-of how the slow process of official inquiry came to the
-conclusion that the doctor met his fate while indiscreetly
-playing with a dangerous pet. The little which I had yet to learn
-of the case was told me by Sherlock Holmes as we travelled back
-next day.
-
-"I had," said he, "come to an entirely erroneous conclusion which
-shows, my dear Watson, how dangerous it always is to reason from
-insufficient data. The presence of the gipsies, and the use of
-the word 'band,' which was used by the poor girl, no doubt, to
-explain the appearance which she had caught a hurried glimpse of
-by the light of her match, were sufficient to put me upon an
-entirely wrong scent. I can only claim the merit that I instantly
-reconsidered my position when, however, it became clear to me
-that whatever danger threatened an occupant of the room could not
-come either from the window or the door. My attention was
-speedily drawn, as I have already remarked to you, to this
-ventilator, and to the bell-rope which hung down to the bed. The
-discovery that this was a dummy, and that the bed was clamped to
-the floor, instantly gave rise to the suspicion that the rope was
-there as a bridge for something passing through the hole and
-coming to the bed. The idea of a snake instantly occurred to me,
-and when I coupled it with my knowledge that the doctor was
-furnished with a supply of creatures from India, I felt that I
-was probably on the right track. The idea of using a form of
-poison which could not possibly be discovered by any chemical
-test was just such a one as would occur to a clever and ruthless
-man who had had an Eastern training. The rapidity with which such
-a poison would take effect would also, from his point of view, be
-an advantage. It would be a sharp-eyed coroner, indeed, who could
-distinguish the two little dark punctures which would show where
-the poison fangs had done their work. Then I thought of the
-whistle. Of course he must recall the snake before the morning
-light revealed it to the victim. He had trained it, probably by
-the use of the milk which we saw, to return to him when summoned.
-He would put it through this ventilator at the hour that he
-thought best, with the certainty that it would crawl down the
-rope and land on the bed. It might or might not bite the
-occupant, perhaps she might escape every night for a week, but
-sooner or later she must fall a victim.
-
-"I had come to these conclusions before ever I had entered his
-room. An inspection of his chair showed me that he had been in
-the habit of standing on it, which of course would be necessary
-in order that he should reach the ventilator. The sight of the
-safe, the saucer of milk, and the loop of whipcord were enough to
-finally dispel any doubts which may have remained. The metallic
-clang heard by Miss Stoner was obviously caused by her stepfather
-hastily closing the door of his safe upon its terrible occupant.
-Having once made up my mind, you know the steps which I took in
-order to put the matter to the proof. I heard the creature hiss
-as I have no doubt that you did also, and I instantly lit the
-light and attacked it."
-
-"With the result of driving it through the ventilator."
-
-"And also with the result of causing it to turn upon its master
-at the other side. Some of the blows of my cane came home and
-roused its snakish temper, so that it flew upon the first person
-it saw. In this way I am no doubt indirectly responsible for Dr.
-Grimesby Roylott's death, and I cannot say that it is likely to
-weigh very heavily upon my conscience."
-
-
-
-IX. THE ADVENTURE OF THE ENGINEER'S THUMB
-
-Of all the problems which have been submitted to my friend, Mr.
-Sherlock Holmes, for solution during the years of our intimacy,
-there were only two which I was the means of introducing to his
-notice--that of Mr. Hatherley's thumb, and that of Colonel
-Warburton's madness. Of these the latter may have afforded a
-finer field for an acute and original observer, but the other was
-so strange in its inception and so dramatic in its details that
-it may be the more worthy of being placed upon record, even if it
-gave my friend fewer openings for those deductive methods of
-reasoning by which he achieved such remarkable results. The story
-has, I believe, been told more than once in the newspapers, but,
-like all such narratives, its effect is much less striking when
-set forth en bloc in a single half-column of print than when the
-facts slowly evolve before your own eyes, and the mystery clears
-gradually away as each new discovery furnishes a step which leads
-on to the complete truth. At the time the circumstances made a
-deep impression upon me, and the lapse of two years has hardly
-served to weaken the effect.
-
-It was in the summer of '89, not long after my marriage, that the
-events occurred which I am now about to summarise. I had returned
-to civil practice and had finally abandoned Holmes in his Baker
-Street rooms, although I continually visited him and occasionally
-even persuaded him to forgo his Bohemian habits so far as to come
-and visit us. My practice had steadily increased, and as I
-happened to live at no very great distance from Paddington
-Station, I got a few patients from among the officials. One of
-these, whom I had cured of a painful and lingering disease, was
-never weary of advertising my virtues and of endeavouring to send
-me on every sufferer over whom he might have any influence.
-
-One morning, at a little before seven o'clock, I was awakened by
-the maid tapping at the door to announce that two men had come
-from Paddington and were waiting in the consulting-room. I
-dressed hurriedly, for I knew by experience that railway cases
-were seldom trivial, and hastened downstairs. As I descended, my
-old ally, the guard, came out of the room and closed the door
-tightly behind him.
-
-"I've got him here," he whispered, jerking his thumb over his
-shoulder; "he's all right."
-
-"What is it, then?" I asked, for his manner suggested that it was
-some strange creature which he had caged up in my room.
-
-"It's a new patient," he whispered. "I thought I'd bring him
-round myself; then he couldn't slip away. There he is, all safe
-and sound. I must go now, Doctor; I have my dooties, just the
-same as you." And off he went, this trusty tout, without even
-giving me time to thank him.
-
-I entered my consulting-room and found a gentleman seated by the
-table. He was quietly dressed in a suit of heather tweed with a
-soft cloth cap which he had laid down upon my books. Round one of
-his hands he had a handkerchief wrapped, which was mottled all
-over with bloodstains. He was young, not more than
-five-and-twenty, I should say, with a strong, masculine face; but
-he was exceedingly pale and gave me the impression of a man who
-was suffering from some strong agitation, which it took all his
-strength of mind to control.
-
-"I am sorry to knock you up so early, Doctor," said he, "but I
-have had a very serious accident during the night. I came in by
-train this morning, and on inquiring at Paddington as to where I
-might find a doctor, a worthy fellow very kindly escorted me
-here. I gave the maid a card, but I see that she has left it upon
-the side-table."
-
-I took it up and glanced at it. "Mr. Victor Hatherley, hydraulic
-engineer, 16A, Victoria Street (3rd floor)." That was the name,
-style, and abode of my morning visitor. "I regret that I have
-kept you waiting," said I, sitting down in my library-chair. "You
-are fresh from a night journey, I understand, which is in itself
-a monotonous occupation."
-
-"Oh, my night could not be called monotonous," said he, and
-laughed. He laughed very heartily, with a high, ringing note,
-leaning back in his chair and shaking his sides. All my medical
-instincts rose up against that laugh.
-
-"Stop it!" I cried; "pull yourself together!" and I poured out
-some water from a caraffe.
-
-It was useless, however. He was off in one of those hysterical
-outbursts which come upon a strong nature when some great crisis
-is over and gone. Presently he came to himself once more, very
-weary and pale-looking.
-
-"I have been making a fool of myself," he gasped.
-
-"Not at all. Drink this." I dashed some brandy into the water,
-and the colour began to come back to his bloodless cheeks.
-
-"That's better!" said he. "And now, Doctor, perhaps you would
-kindly attend to my thumb, or rather to the place where my thumb
-used to be."
-
-He unwound the handkerchief and held out his hand. It gave even
-my hardened nerves a shudder to look at it. There were four
-protruding fingers and a horrid red, spongy surface where the
-thumb should have been. It had been hacked or torn right out from
-the roots.
-
-"Good heavens!" I cried, "this is a terrible injury. It must have
-bled considerably."
-
-"Yes, it did. I fainted when it was done, and I think that I must
-have been senseless for a long time. When I came to I found that
-it was still bleeding, so I tied one end of my handkerchief very
-tightly round the wrist and braced it up with a twig."
-
-"Excellent! You should have been a surgeon."
-
-"It is a question of hydraulics, you see, and came within my own
-province."
-
-"This has been done," said I, examining the wound, "by a very
-heavy and sharp instrument."
-
-"A thing like a cleaver," said he.
-
-"An accident, I presume?"
-
-"By no means."
-
-"What! a murderous attack?"
-
-"Very murderous indeed."
-
-"You horrify me."
-
-I sponged the wound, cleaned it, dressed it, and finally covered
-it over with cotton wadding and carbolised bandages. He lay back
-without wincing, though he bit his lip from time to time.
-
-"How is that?" I asked when I had finished.
-
-"Capital! Between your brandy and your bandage, I feel a new man.
-I was very weak, but I have had a good deal to go through."
-
-"Perhaps you had better not speak of the matter. It is evidently
-trying to your nerves."
-
-"Oh, no, not now. I shall have to tell my tale to the police;
-but, between ourselves, if it were not for the convincing
-evidence of this wound of mine, I should be surprised if they
-believed my statement, for it is a very extraordinary one, and I
-have not much in the way of proof with which to back it up; and,
-even if they believe me, the clues which I can give them are so
-vague that it is a question whether justice will be done."
-
-"Ha!" cried I, "if it is anything in the nature of a problem
-which you desire to see solved, I should strongly recommend you
-to come to my friend, Mr. Sherlock Holmes, before you go to the
-official police."
-
-"Oh, I have heard of that fellow," answered my visitor, "and I
-should be very glad if he would take the matter up, though of
-course I must use the official police as well. Would you give me
-an introduction to him?"
-
-"I'll do better. I'll take you round to him myself."
-
-"I should be immensely obliged to you."
-
-"We'll call a cab and go together. We shall just be in time to
-have a little breakfast with him. Do you feel equal to it?"
-
-"Yes; I shall not feel easy until I have told my story."
-
-"Then my servant will call a cab, and I shall be with you in an
-instant." I rushed upstairs, explained the matter shortly to my
-wife, and in five minutes was inside a hansom, driving with my
-new acquaintance to Baker Street.
-
-Sherlock Holmes was, as I expected, lounging about his
-sitting-room in his dressing-gown, reading the agony column of The
-Times and smoking his before-breakfast pipe, which was composed
-of all the plugs and dottles left from his smokes of the day
-before, all carefully dried and collected on the corner of the
-mantelpiece. He received us in his quietly genial fashion,
-ordered fresh rashers and eggs, and joined us in a hearty meal.
-When it was concluded he settled our new acquaintance upon the
-sofa, placed a pillow beneath his head, and laid a glass of
-brandy and water within his reach.
-
-"It is easy to see that your experience has been no common one,
-Mr. Hatherley," said he. "Pray, lie down there and make yourself
-absolutely at home. Tell us what you can, but stop when you are
-tired and keep up your strength with a little stimulant."
-
-"Thank you," said my patient, "but I have felt another man since
-the doctor bandaged me, and I think that your breakfast has
-completed the cure. I shall take up as little of your valuable
-time as possible, so I shall start at once upon my peculiar
-experiences."
-
-Holmes sat in his big armchair with the weary, heavy-lidded
-expression which veiled his keen and eager nature, while I sat
-opposite to him, and we listened in silence to the strange story
-which our visitor detailed to us.
-
-"You must know," said he, "that I am an orphan and a bachelor,
-residing alone in lodgings in London. By profession I am a
-hydraulic engineer, and I have had considerable experience of my
-work during the seven years that I was apprenticed to Venner &
-Matheson, the well-known firm, of Greenwich. Two years ago,
-having served my time, and having also come into a fair sum of
-money through my poor father's death, I determined to start in
-business for myself and took professional chambers in Victoria
-Street.
-
-"I suppose that everyone finds his first independent start in
-business a dreary experience. To me it has been exceptionally so.
-During two years I have had three consultations and one small
-job, and that is absolutely all that my profession has brought
-me. My gross takings amount to 27 pounds 10s. Every day, from
-nine in the morning until four in the afternoon, I waited in my
-little den, until at last my heart began to sink, and I came to
-believe that I should never have any practice at all.
-
-"Yesterday, however, just as I was thinking of leaving the
-office, my clerk entered to say there was a gentleman waiting who
-wished to see me upon business. He brought up a card, too, with
-the name of 'Colonel Lysander Stark' engraved upon it. Close at
-his heels came the colonel himself, a man rather over the middle
-size, but of an exceeding thinness. I do not think that I have
-ever seen so thin a man. His whole face sharpened away into nose
-and chin, and the skin of his cheeks was drawn quite tense over
-his outstanding bones. Yet this emaciation seemed to be his
-natural habit, and due to no disease, for his eye was bright, his
-step brisk, and his bearing assured. He was plainly but neatly
-dressed, and his age, I should judge, would be nearer forty than
-thirty.
-
-"'Mr. Hatherley?' said he, with something of a German accent.
-'You have been recommended to me, Mr. Hatherley, as being a man
-who is not only proficient in his profession but is also discreet
-and capable of preserving a secret.'
-
-"I bowed, feeling as flattered as any young man would at such an
-address. 'May I ask who it was who gave me so good a character?'
-
-"'Well, perhaps it is better that I should not tell you that just
-at this moment. I have it from the same source that you are both
-an orphan and a bachelor and are residing alone in London.'
-
-"'That is quite correct,' I answered; 'but you will excuse me if
-I say that I cannot see how all this bears upon my professional
-qualifications. I understand that it was on a professional matter
-that you wished to speak to me?'
-
-"'Undoubtedly so. But you will find that all I say is really to
-the point. I have a professional commission for you, but absolute
-secrecy is quite essential--absolute secrecy, you understand, and
-of course we may expect that more from a man who is alone than
-from one who lives in the bosom of his family.'
-
-"'If I promise to keep a secret,' said I, 'you may absolutely
-depend upon my doing so.'
-
-"He looked very hard at me as I spoke, and it seemed to me that I
-had never seen so suspicious and questioning an eye.
-
-"'Do you promise, then?' said he at last.
-
-"'Yes, I promise.'
-
-"'Absolute and complete silence before, during, and after? No
-reference to the matter at all, either in word or writing?'
-
-"'I have already given you my word.'
-
-"'Very good.' He suddenly sprang up, and darting like lightning
-across the room he flung open the door. The passage outside was
-empty.
-
-"'That's all right,' said he, coming back. 'I know that clerks are
-sometimes curious as to their master's affairs. Now we can talk
-in safety.' He drew up his chair very close to mine and began to
-stare at me again with the same questioning and thoughtful look.
-
-"A feeling of repulsion, and of something akin to fear had begun
-to rise within me at the strange antics of this fleshless man.
-Even my dread of losing a client could not restrain me from
-showing my impatience.
-
-"'I beg that you will state your business, sir,' said I; 'my time
-is of value.' Heaven forgive me for that last sentence, but the
-words came to my lips.
-
-"'How would fifty guineas for a night's work suit you?' he asked.
-
-"'Most admirably.'
-
-"'I say a night's work, but an hour's would be nearer the mark. I
-simply want your opinion about a hydraulic stamping machine which
-has got out of gear. If you show us what is wrong we shall soon
-set it right ourselves. What do you think of such a commission as
-that?'
-
-"'The work appears to be light and the pay munificent.'
-
-"'Precisely so. We shall want you to come to-night by the last
-train.'
-
-"'Where to?'
-
-"'To Eyford, in Berkshire. It is a little place near the borders
-of Oxfordshire, and within seven miles of Reading. There is a
-train from Paddington which would bring you there at about
-11:15.'
-
-"'Very good.'
-
-"'I shall come down in a carriage to meet you.'
-
-"'There is a drive, then?'
-
-"'Yes, our little place is quite out in the country. It is a good
-seven miles from Eyford Station.'
-
-"'Then we can hardly get there before midnight. I suppose there
-would be no chance of a train back. I should be compelled to stop
-the night.'
-
-"'Yes, we could easily give you a shake-down.'
-
-"'That is very awkward. Could I not come at some more convenient
-hour?'
-
-"'We have judged it best that you should come late. It is to
-recompense you for any inconvenience that we are paying to you, a
-young and unknown man, a fee which would buy an opinion from the
-very heads of your profession. Still, of course, if you would
-like to draw out of the business, there is plenty of time to do
-so.'
-
-"I thought of the fifty guineas, and of how very useful they
-would be to me. 'Not at all,' said I, 'I shall be very happy to
-accommodate myself to your wishes. I should like, however, to
-understand a little more clearly what it is that you wish me to
-do.'
-
-"'Quite so. It is very natural that the pledge of secrecy which
-we have exacted from you should have aroused your curiosity. I
-have no wish to commit you to anything without your having it all
-laid before you. I suppose that we are absolutely safe from
-eavesdroppers?'
-
-"'Entirely.'
-
-"'Then the matter stands thus. You are probably aware that
-fuller's-earth is a valuable product, and that it is only found
-in one or two places in England?'
-
-"'I have heard so.'
-
-"'Some little time ago I bought a small place--a very small
-place--within ten miles of Reading. I was fortunate enough to
-discover that there was a deposit of fuller's-earth in one of my
-fields. On examining it, however, I found that this deposit was a
-comparatively small one, and that it formed a link between two
-very much larger ones upon the right and left--both of them,
-however, in the grounds of my neighbours. These good people were
-absolutely ignorant that their land contained that which was
-quite as valuable as a gold-mine. Naturally, it was to my
-interest to buy their land before they discovered its true value,
-but unfortunately I had no capital by which I could do this. I
-took a few of my friends into the secret, however, and they
-suggested that we should quietly and secretly work our own little
-deposit and that in this way we should earn the money which would
-enable us to buy the neighbouring fields. This we have now been
-doing for some time, and in order to help us in our operations we
-erected a hydraulic press. This press, as I have already
-explained, has got out of order, and we wish your advice upon the
-subject. We guard our secret very jealously, however, and if it
-once became known that we had hydraulic engineers coming to our
-little house, it would soon rouse inquiry, and then, if the facts
-came out, it would be good-bye to any chance of getting these
-fields and carrying out our plans. That is why I have made you
-promise me that you will not tell a human being that you are
-going to Eyford to-night. I hope that I make it all plain?'
-
-"'I quite follow you,' said I. 'The only point which I could not
-quite understand was what use you could make of a hydraulic press
-in excavating fuller's-earth, which, as I understand, is dug out
-like gravel from a pit.'
-
-"'Ah!' said he carelessly, 'we have our own process. We compress
-the earth into bricks, so as to remove them without revealing
-what they are. But that is a mere detail. I have taken you fully
-into my confidence now, Mr. Hatherley, and I have shown you how I
-trust you.' He rose as he spoke. 'I shall expect you, then, at
-Eyford at 11:15.'
-
-"'I shall certainly be there.'
-
-"'And not a word to a soul.' He looked at me with a last long,
-questioning gaze, and then, pressing my hand in a cold, dank
-grasp, he hurried from the room.
-
-"Well, when I came to think it all over in cool blood I was very
-much astonished, as you may both think, at this sudden commission
-which had been intrusted to me. On the one hand, of course, I was
-glad, for the fee was at least tenfold what I should have asked
-had I set a price upon my own services, and it was possible that
-this order might lead to other ones. On the other hand, the face
-and manner of my patron had made an unpleasant impression upon
-me, and I could not think that his explanation of the
-fuller's-earth was sufficient to explain the necessity for my
-coming at midnight, and his extreme anxiety lest I should tell
-anyone of my errand. However, I threw all fears to the winds, ate
-a hearty supper, drove to Paddington, and started off, having
-obeyed to the letter the injunction as to holding my tongue.
-
-"At Reading I had to change not only my carriage but my station.
-However, I was in time for the last train to Eyford, and I
-reached the little dim-lit station after eleven o'clock. I was the
-only passenger who got out there, and there was no one upon the
-platform save a single sleepy porter with a lantern. As I passed
-out through the wicket gate, however, I found my acquaintance of
-the morning waiting in the shadow upon the other side. Without a
-word he grasped my arm and hurried me into a carriage, the door
-of which was standing open. He drew up the windows on either
-side, tapped on the wood-work, and away we went as fast as the
-horse could go."
-
-"One horse?" interjected Holmes.
-
-"Yes, only one."
-
-"Did you observe the colour?"
-
-"Yes, I saw it by the side-lights when I was stepping into the
-carriage. It was a chestnut."
-
-"Tired-looking or fresh?"
-
-"Oh, fresh and glossy."
-
-"Thank you. I am sorry to have interrupted you. Pray continue
-your most interesting statement."
-
-"Away we went then, and we drove for at least an hour. Colonel
-Lysander Stark had said that it was only seven miles, but I
-should think, from the rate that we seemed to go, and from the
-time that we took, that it must have been nearer twelve. He sat
-at my side in silence all the time, and I was aware, more than
-once when I glanced in his direction, that he was looking at me
-with great intensity. The country roads seem to be not very good
-in that part of the world, for we lurched and jolted terribly. I
-tried to look out of the windows to see something of where we
-were, but they were made of frosted glass, and I could make out
-nothing save the occasional bright blur of a passing light. Now
-and then I hazarded some remark to break the monotony of the
-journey, but the colonel answered only in monosyllables, and the
-conversation soon flagged. At last, however, the bumping of the
-road was exchanged for the crisp smoothness of a gravel-drive,
-and the carriage came to a stand. Colonel Lysander Stark sprang
-out, and, as I followed after him, pulled me swiftly into a porch
-which gaped in front of us. We stepped, as it were, right out of
-the carriage and into the hall, so that I failed to catch the
-most fleeting glance of the front of the house. The instant that
-I had crossed the threshold the door slammed heavily behind us,
-and I heard faintly the rattle of the wheels as the carriage
-drove away.
-
-"It was pitch dark inside the house, and the colonel fumbled
-about looking for matches and muttering under his breath.
-Suddenly a door opened at the other end of the passage, and a
-long, golden bar of light shot out in our direction. It grew
-broader, and a woman appeared with a lamp in her hand, which she
-held above her head, pushing her face forward and peering at us.
-I could see that she was pretty, and from the gloss with which
-the light shone upon her dark dress I knew that it was a rich
-material. She spoke a few words in a foreign tongue in a tone as
-though asking a question, and when my companion answered in a
-gruff monosyllable she gave such a start that the lamp nearly
-fell from her hand. Colonel Stark went up to her, whispered
-something in her ear, and then, pushing her back into the room
-from whence she had come, he walked towards me again with the
-lamp in his hand.
-
-"'Perhaps you will have the kindness to wait in this room for a
-few minutes,' said he, throwing open another door. It was a
-quiet, little, plainly furnished room, with a round table in the
-centre, on which several German books were scattered. Colonel
-Stark laid down the lamp on the top of a harmonium beside the
-door. 'I shall not keep you waiting an instant,' said he, and
-vanished into the darkness.
-
-"I glanced at the books upon the table, and in spite of my
-ignorance of German I could see that two of them were treatises
-on science, the others being volumes of poetry. Then I walked
-across to the window, hoping that I might catch some glimpse of
-the country-side, but an oak shutter, heavily barred, was folded
-across it. It was a wonderfully silent house. There was an old
-clock ticking loudly somewhere in the passage, but otherwise
-everything was deadly still. A vague feeling of uneasiness began
-to steal over me. Who were these German people, and what were
-they doing living in this strange, out-of-the-way place? And
-where was the place? I was ten miles or so from Eyford, that was
-all I knew, but whether north, south, east, or west I had no
-idea. For that matter, Reading, and possibly other large towns,
-were within that radius, so the place might not be so secluded,
-after all. Yet it was quite certain, from the absolute stillness,
-that we were in the country. I paced up and down the room,
-humming a tune under my breath to keep up my spirits and feeling
-that I was thoroughly earning my fifty-guinea fee.
-
-"Suddenly, without any preliminary sound in the midst of the
-utter stillness, the door of my room swung slowly open. The woman
-was standing in the aperture, the darkness of the hall behind
-her, the yellow light from my lamp beating upon her eager and
-beautiful face. I could see at a glance that she was sick with
-fear, and the sight sent a chill to my own heart. She held up one
-shaking finger to warn me to be silent, and she shot a few
-whispered words of broken English at me, her eyes glancing back,
-like those of a frightened horse, into the gloom behind her.
-
-"'I would go,' said she, trying hard, as it seemed to me, to
-speak calmly; 'I would go. I should not stay here. There is no
-good for you to do.'
-
-"'But, madam,' said I, 'I have not yet done what I came for. I
-cannot possibly leave until I have seen the machine.'
-
-"'It is not worth your while to wait,' she went on. 'You can pass
-through the door; no one hinders.' And then, seeing that I smiled
-and shook my head, she suddenly threw aside her constraint and
-made a step forward, with her hands wrung together. 'For the love
-of Heaven!' she whispered, 'get away from here before it is too
-late!'
-
-"But I am somewhat headstrong by nature, and the more ready to
-engage in an affair when there is some obstacle in the way. I
-thought of my fifty-guinea fee, of my wearisome journey, and of
-the unpleasant night which seemed to be before me. Was it all to
-go for nothing? Why should I slink away without having carried
-out my commission, and without the payment which was my due? This
-woman might, for all I knew, be a monomaniac. With a stout
-bearing, therefore, though her manner had shaken me more than I
-cared to confess, I still shook my head and declared my intention
-of remaining where I was. She was about to renew her entreaties
-when a door slammed overhead, and the sound of several footsteps
-was heard upon the stairs. She listened for an instant, threw up
-her hands with a despairing gesture, and vanished as suddenly and
-as noiselessly as she had come.
-
-"The newcomers were Colonel Lysander Stark and a short thick man
-with a chinchilla beard growing out of the creases of his double
-chin, who was introduced to me as Mr. Ferguson.
-
-"'This is my secretary and manager,' said the colonel. 'By the
-way, I was under the impression that I left this door shut just
-now. I fear that you have felt the draught.'
-
-"'On the contrary,' said I, 'I opened the door myself because I
-felt the room to be a little close.'
-
-"He shot one of his suspicious looks at me. 'Perhaps we had
-better proceed to business, then,' said he. 'Mr. Ferguson and I
-will take you up to see the machine.'
-
-"'I had better put my hat on, I suppose.'
-
-"'Oh, no, it is in the house.'
-
-"'What, you dig fuller's-earth in the house?'
-
-"'No, no. This is only where we compress it. But never mind that.
-All we wish you to do is to examine the machine and to let us
-know what is wrong with it.'
-
-"We went upstairs together, the colonel first with the lamp, the
-fat manager and I behind him. It was a labyrinth of an old house,
-with corridors, passages, narrow winding staircases, and little
-low doors, the thresholds of which were hollowed out by the
-generations who had crossed them. There were no carpets and no
-signs of any furniture above the ground floor, while the plaster
-was peeling off the walls, and the damp was breaking through in
-green, unhealthy blotches. I tried to put on as unconcerned an
-air as possible, but I had not forgotten the warnings of the
-lady, even though I disregarded them, and I kept a keen eye upon
-my two companions. Ferguson appeared to be a morose and silent
-man, but I could see from the little that he said that he was at
-least a fellow-countryman.
-
-"Colonel Lysander Stark stopped at last before a low door, which
-he unlocked. Within was a small, square room, in which the three
-of us could hardly get at one time. Ferguson remained outside,
-and the colonel ushered me in.
-
-"'We are now,' said he, 'actually within the hydraulic press, and
-it would be a particularly unpleasant thing for us if anyone were
-to turn it on. The ceiling of this small chamber is really the
-end of the descending piston, and it comes down with the force of
-many tons upon this metal floor. There are small lateral columns
-of water outside which receive the force, and which transmit and
-multiply it in the manner which is familiar to you. The machine
-goes readily enough, but there is some stiffness in the working
-of it, and it has lost a little of its force. Perhaps you will
-have the goodness to look it over and to show us how we can set
-it right.'
-
-"I took the lamp from him, and I examined the machine very
-thoroughly. It was indeed a gigantic one, and capable of
-exercising enormous pressure. When I passed outside, however, and
-pressed down the levers which controlled it, I knew at once by
-the whishing sound that there was a slight leakage, which allowed
-a regurgitation of water through one of the side cylinders. An
-examination showed that one of the india-rubber bands which was
-round the head of a driving-rod had shrunk so as not quite to
-fill the socket along which it worked. This was clearly the cause
-of the loss of power, and I pointed it out to my companions, who
-followed my remarks very carefully and asked several practical
-questions as to how they should proceed to set it right. When I
-had made it clear to them, I returned to the main chamber of the
-machine and took a good look at it to satisfy my own curiosity.
-It was obvious at a glance that the story of the fuller's-earth
-was the merest fabrication, for it would be absurd to suppose
-that so powerful an engine could be designed for so inadequate a
-purpose. The walls were of wood, but the floor consisted of a
-large iron trough, and when I came to examine it I could see a
-crust of metallic deposit all over it. I had stooped and was
-scraping at this to see exactly what it was when I heard a
-muttered exclamation in German and saw the cadaverous face of the
-colonel looking down at me.
-
-"'What are you doing there?' he asked.
-
-"I felt angry at having been tricked by so elaborate a story as
-that which he had told me. 'I was admiring your fuller's-earth,'
-said I; 'I think that I should be better able to advise you as to
-your machine if I knew what the exact purpose was for which it
-was used.'
-
-"The instant that I uttered the words I regretted the rashness of
-my speech. His face set hard, and a baleful light sprang up in
-his grey eyes.
-
-"'Very well,' said he, 'you shall know all about the machine.' He
-took a step backward, slammed the little door, and turned the key
-in the lock. I rushed towards it and pulled at the handle, but it
-was quite secure, and did not give in the least to my kicks and
-shoves. 'Hullo!' I yelled. 'Hullo! Colonel! Let me out!'
-
-"And then suddenly in the silence I heard a sound which sent my
-heart into my mouth. It was the clank of the levers and the swish
-of the leaking cylinder. He had set the engine at work. The lamp
-still stood upon the floor where I had placed it when examining
-the trough. By its light I saw that the black ceiling was coming
-down upon me, slowly, jerkily, but, as none knew better than
-myself, with a force which must within a minute grind me to a
-shapeless pulp. I threw myself, screaming, against the door, and
-dragged with my nails at the lock. I implored the colonel to let
-me out, but the remorseless clanking of the levers drowned my
-cries. The ceiling was only a foot or two above my head, and with
-my hand upraised I could feel its hard, rough surface. Then it
-flashed through my mind that the pain of my death would depend
-very much upon the position in which I met it. If I lay on my
-face the weight would come upon my spine, and I shuddered to
-think of that dreadful snap. Easier the other way, perhaps; and
-yet, had I the nerve to lie and look up at that deadly black
-shadow wavering down upon me? Already I was unable to stand
-erect, when my eye caught something which brought a gush of hope
-back to my heart.
-
-"I have said that though the floor and ceiling were of iron, the
-walls were of wood. As I gave a last hurried glance around, I saw
-a thin line of yellow light between two of the boards, which
-broadened and broadened as a small panel was pushed backward. For
-an instant I could hardly believe that here was indeed a door
-which led away from death. The next instant I threw myself
-through, and lay half-fainting upon the other side. The panel had
-closed again behind me, but the crash of the lamp, and a few
-moments afterwards the clang of the two slabs of metal, told me
-how narrow had been my escape.
-
-"I was recalled to myself by a frantic plucking at my wrist, and
-I found myself lying upon the stone floor of a narrow corridor,
-while a woman bent over me and tugged at me with her left hand,
-while she held a candle in her right. It was the same good friend
-whose warning I had so foolishly rejected.
-
-"'Come! come!' she cried breathlessly. 'They will be here in a
-moment. They will see that you are not there. Oh, do not waste
-the so-precious time, but come!'
-
-"This time, at least, I did not scorn her advice. I staggered to
-my feet and ran with her along the corridor and down a winding
-stair. The latter led to another broad passage, and just as we
-reached it we heard the sound of running feet and the shouting of
-two voices, one answering the other from the floor on which we
-were and from the one beneath. My guide stopped and looked about
-her like one who is at her wit's end. Then she threw open a door
-which led into a bedroom, through the window of which the moon
-was shining brightly.
-
-"'It is your only chance,' said she. 'It is high, but it may be
-that you can jump it.'
-
-"As she spoke a light sprang into view at the further end of the
-passage, and I saw the lean figure of Colonel Lysander Stark
-rushing forward with a lantern in one hand and a weapon like a
-butcher's cleaver in the other. I rushed across the bedroom,
-flung open the window, and looked out. How quiet and sweet and
-wholesome the garden looked in the moonlight, and it could not be
-more than thirty feet down. I clambered out upon the sill, but I
-hesitated to jump until I should have heard what passed between
-my saviour and the ruffian who pursued me. If she were ill-used,
-then at any risks I was determined to go back to her assistance.
-The thought had hardly flashed through my mind before he was at
-the door, pushing his way past her; but she threw her arms round
-him and tried to hold him back.
-
-"'Fritz! Fritz!' she cried in English, 'remember your promise
-after the last time. You said it should not be again. He will be
-silent! Oh, he will be silent!'
-
-"'You are mad, Elise!' he shouted, struggling to break away from
-her. 'You will be the ruin of us. He has seen too much. Let me
-pass, I say!' He dashed her to one side, and, rushing to the
-window, cut at me with his heavy weapon. I had let myself go, and
-was hanging by the hands to the sill, when his blow fell. I was
-conscious of a dull pain, my grip loosened, and I fell into the
-garden below.
-
-"I was shaken but not hurt by the fall; so I picked myself up and
-rushed off among the bushes as hard as I could run, for I
-understood that I was far from being out of danger yet. Suddenly,
-however, as I ran, a deadly dizziness and sickness came over me.
-I glanced down at my hand, which was throbbing painfully, and
-then, for the first time, saw that my thumb had been cut off and
-that the blood was pouring from my wound. I endeavoured to tie my
-handkerchief round it, but there came a sudden buzzing in my
-ears, and next moment I fell in a dead faint among the
-rose-bushes.
-
-"How long I remained unconscious I cannot tell. It must have been
-a very long time, for the moon had sunk, and a bright morning was
-breaking when I came to myself. My clothes were all sodden with
-dew, and my coat-sleeve was drenched with blood from my wounded
-thumb. The smarting of it recalled in an instant all the
-particulars of my night's adventure, and I sprang to my feet with
-the feeling that I might hardly yet be safe from my pursuers. But
-to my astonishment, when I came to look round me, neither house
-nor garden were to be seen. I had been lying in an angle of the
-hedge close by the highroad, and just a little lower down was a
-long building, which proved, upon my approaching it, to be the
-very station at which I had arrived upon the previous night. Were
-it not for the ugly wound upon my hand, all that had passed
-during those dreadful hours might have been an evil dream.
-
-"Half dazed, I went into the station and asked about the morning
-train. There would be one to Reading in less than an hour. The
-same porter was on duty, I found, as had been there when I
-arrived. I inquired of him whether he had ever heard of Colonel
-Lysander Stark. The name was strange to him. Had he observed a
-carriage the night before waiting for me? No, he had not. Was
-there a police-station anywhere near? There was one about three
-miles off.
-
-"It was too far for me to go, weak and ill as I was. I determined
-to wait until I got back to town before telling my story to the
-police. It was a little past six when I arrived, so I went first
-to have my wound dressed, and then the doctor was kind enough to
-bring me along here. I put the case into your hands and shall do
-exactly what you advise."
-
-We both sat in silence for some little time after listening to
-this extraordinary narrative. Then Sherlock Holmes pulled down
-from the shelf one of the ponderous commonplace books in which he
-placed his cuttings.
-
-"Here is an advertisement which will interest you," said he. "It
-appeared in all the papers about a year ago. Listen to this:
-'Lost, on the 9th inst., Mr. Jeremiah Hayling, aged
-twenty-six, a hydraulic engineer. Left his lodgings at ten
-o'clock at night, and has not been heard of since. Was
-dressed in,' etc., etc. Ha! That represents the last time that
-the colonel needed to have his machine overhauled, I fancy."
-
-"Good heavens!" cried my patient. "Then that explains what the
-girl said."
-
-"Undoubtedly. It is quite clear that the colonel was a cool and
-desperate man, who was absolutely determined that nothing should
-stand in the way of his little game, like those out-and-out
-pirates who will leave no survivor from a captured ship. Well,
-every moment now is precious, so if you feel equal to it we shall
-go down to Scotland Yard at once as a preliminary to starting for
-Eyford."
-
-Some three hours or so afterwards we were all in the train
-together, bound from Reading to the little Berkshire village.
-There were Sherlock Holmes, the hydraulic engineer, Inspector
-Bradstreet, of Scotland Yard, a plain-clothes man, and myself.
-Bradstreet had spread an ordnance map of the county out upon the
-seat and was busy with his compasses drawing a circle with Eyford
-for its centre.
-
-"There you are," said he. "That circle is drawn at a radius of
-ten miles from the village. The place we want must be somewhere
-near that line. You said ten miles, I think, sir."
-
-"It was an hour's good drive."
-
-"And you think that they brought you back all that way when you
-were unconscious?"
-
-"They must have done so. I have a confused memory, too, of having
-been lifted and conveyed somewhere."
-
-"What I cannot understand," said I, "is why they should have
-spared you when they found you lying fainting in the garden.
-Perhaps the villain was softened by the woman's entreaties."
-
-"I hardly think that likely. I never saw a more inexorable face
-in my life."
-
-"Oh, we shall soon clear up all that," said Bradstreet. "Well, I
-have drawn my circle, and I only wish I knew at what point upon
-it the folk that we are in search of are to be found."
-
-"I think I could lay my finger on it," said Holmes quietly.
-
-"Really, now!" cried the inspector, "you have formed your
-opinion! Come, now, we shall see who agrees with you. I say it is
-south, for the country is more deserted there."
-
-"And I say east," said my patient.
-
-"I am for west," remarked the plain-clothes man. "There are
-several quiet little villages up there."
-
-"And I am for north," said I, "because there are no hills there,
-and our friend says that he did not notice the carriage go up
-any."
-
-"Come," cried the inspector, laughing; "it's a very pretty
-diversity of opinion. We have boxed the compass among us. Who do
-you give your casting vote to?"
-
-"You are all wrong."
-
-"But we can't all be."
-
-"Oh, yes, you can. This is my point." He placed his finger in the
-centre of the circle. "This is where we shall find them."
-
-"But the twelve-mile drive?" gasped Hatherley.
-
-"Six out and six back. Nothing simpler. You say yourself that the
-horse was fresh and glossy when you got in. How could it be that
-if it had gone twelve miles over heavy roads?"
-
-"Indeed, it is a likely ruse enough," observed Bradstreet
-thoughtfully. "Of course there can be no doubt as to the nature
-of this gang."
-
-"None at all," said Holmes. "They are coiners on a large scale,
-and have used the machine to form the amalgam which has taken the
-place of silver."
-
-"We have known for some time that a clever gang was at work,"
-said the inspector. "They have been turning out half-crowns by
-the thousand. We even traced them as far as Reading, but could
-get no farther, for they had covered their traces in a way that
-showed that they were very old hands. But now, thanks to this
-lucky chance, I think that we have got them right enough."
-
-But the inspector was mistaken, for those criminals were not
-destined to fall into the hands of justice. As we rolled into
-Eyford Station we saw a gigantic column of smoke which streamed
-up from behind a small clump of trees in the neighbourhood and
-hung like an immense ostrich feather over the landscape.
-
-"A house on fire?" asked Bradstreet as the train steamed off
-again on its way.
-
-"Yes, sir!" said the station-master.
-
-"When did it break out?"
-
-"I hear that it was during the night, sir, but it has got worse,
-and the whole place is in a blaze."
-
-"Whose house is it?"
-
-"Dr. Becher's."
-
-"Tell me," broke in the engineer, "is Dr. Becher a German, very
-thin, with a long, sharp nose?"
-
-The station-master laughed heartily. "No, sir, Dr. Becher is an
-Englishman, and there isn't a man in the parish who has a
-better-lined waistcoat. But he has a gentleman staying with him,
-a patient, as I understand, who is a foreigner, and he looks as
-if a little good Berkshire beef would do him no harm."
-
-The station-master had not finished his speech before we were all
-hastening in the direction of the fire. The road topped a low
-hill, and there was a great widespread whitewashed building in
-front of us, spouting fire at every chink and window, while in
-the garden in front three fire-engines were vainly striving to
-keep the flames under.
-
-"That's it!" cried Hatherley, in intense excitement. "There is
-the gravel-drive, and there are the rose-bushes where I lay. That
-second window is the one that I jumped from."
-
-"Well, at least," said Holmes, "you have had your revenge upon
-them. There can be no question that it was your oil-lamp which,
-when it was crushed in the press, set fire to the wooden walls,
-though no doubt they were too excited in the chase after you to
-observe it at the time. Now keep your eyes open in this crowd for
-your friends of last night, though I very much fear that they are
-a good hundred miles off by now."
-
-And Holmes' fears came to be realised, for from that day to this
-no word has ever been heard either of the beautiful woman, the
-sinister German, or the morose Englishman. Early that morning a
-peasant had met a cart containing several people and some very
-bulky boxes driving rapidly in the direction of Reading, but
-there all traces of the fugitives disappeared, and even Holmes'
-ingenuity failed ever to discover the least clue as to their
-whereabouts.
-
-The firemen had been much perturbed at the strange arrangements
-which they had found within, and still more so by discovering a
-newly severed human thumb upon a window-sill of the second floor.
-About sunset, however, their efforts were at last successful, and
-they subdued the flames, but not before the roof had fallen in,
-and the whole place been reduced to such absolute ruin that, save
-some twisted cylinders and iron piping, not a trace remained of
-the machinery which had cost our unfortunate acquaintance so
-dearly. Large masses of nickel and of tin were discovered stored
-in an out-house, but no coins were to be found, which may have
-explained the presence of those bulky boxes which have been
-already referred to.
-
-How our hydraulic engineer had been conveyed from the garden to
-the spot where he recovered his senses might have remained
-forever a mystery were it not for the soft mould, which told us a
-very plain tale. He had evidently been carried down by two
-persons, one of whom had remarkably small feet and the other
-unusually large ones. On the whole, it was most probable that the
-silent Englishman, being less bold or less murderous than his
-companion, had assisted the woman to bear the unconscious man out
-of the way of danger.
-
-"Well," said our engineer ruefully as we took our seats to return
-once more to London, "it has been a pretty business for me! I
-have lost my thumb and I have lost a fifty-guinea fee, and what
-have I gained?"
-
-"Experience," said Holmes, laughing. "Indirectly it may be of
-value, you know; you have only to put it into words to gain the
-reputation of being excellent company for the remainder of your
-existence."
-
-
-
-X. THE ADVENTURE OF THE NOBLE BACHELOR
-
-The Lord St. Simon marriage, and its curious termination, have
-long ceased to be a subject of interest in those exalted circles
-in which the unfortunate bridegroom moves. Fresh scandals have
-eclipsed it, and their more piquant details have drawn the
-gossips away from this four-year-old drama. As I have reason to
-believe, however, that the full facts have never been revealed to
-the general public, and as my friend Sherlock Holmes had a
-considerable share in clearing the matter up, I feel that no
-memoir of him would be complete without some little sketch of
-this remarkable episode.
-
-It was a few weeks before my own marriage, during the days when I
-was still sharing rooms with Holmes in Baker Street, that he came
-home from an afternoon stroll to find a letter on the table
-waiting for him. I had remained indoors all day, for the weather
-had taken a sudden turn to rain, with high autumnal winds, and
-the Jezail bullet which I had brought back in one of my limbs as
-a relic of my Afghan campaign throbbed with dull persistence.
-With my body in one easy-chair and my legs upon another, I had
-surrounded myself with a cloud of newspapers until at last,
-saturated with the news of the day, I tossed them all aside and
-lay listless, watching the huge crest and monogram upon the
-envelope upon the table and wondering lazily who my friend's
-noble correspondent could be.
-
-"Here is a very fashionable epistle," I remarked as he entered.
-"Your morning letters, if I remember right, were from a
-fish-monger and a tide-waiter."
-
-"Yes, my correspondence has certainly the charm of variety," he
-answered, smiling, "and the humbler are usually the more
-interesting. This looks like one of those unwelcome social
-summonses which call upon a man either to be bored or to lie."
-
-He broke the seal and glanced over the contents.
-
-"Oh, come, it may prove to be something of interest, after all."
-
-"Not social, then?"
-
-"No, distinctly professional."
-
-"And from a noble client?"
-
-"One of the highest in England."
-
-"My dear fellow, I congratulate you."
-
-"I assure you, Watson, without affectation, that the status of my
-client is a matter of less moment to me than the interest of his
-case. It is just possible, however, that that also may not be
-wanting in this new investigation. You have been reading the
-papers diligently of late, have you not?"
-
-"It looks like it," said I ruefully, pointing to a huge bundle in
-the corner. "I have had nothing else to do."
-
-"It is fortunate, for you will perhaps be able to post me up. I
-read nothing except the criminal news and the agony column. The
-latter is always instructive. But if you have followed recent
-events so closely you must have read about Lord St. Simon and his
-wedding?"
-
-"Oh, yes, with the deepest interest."
-
-"That is well. The letter which I hold in my hand is from Lord
-St. Simon. I will read it to you, and in return you must turn
-over these papers and let me have whatever bears upon the matter.
-This is what he says:
-
-"'MY DEAR MR. SHERLOCK HOLMES:--Lord Backwater tells me that I
-may place implicit reliance upon your judgment and discretion. I
-have determined, therefore, to call upon you and to consult you
-in reference to the very painful event which has occurred in
-connection with my wedding. Mr. Lestrade, of Scotland Yard, is
-acting already in the matter, but he assures me that he sees no
-objection to your co-operation, and that he even thinks that
-it might be of some assistance. I will call at four o'clock in
-the afternoon, and, should you have any other engagement at that
-time, I hope that you will postpone it, as this matter is of
-paramount importance. Yours faithfully, ST. SIMON.'
-
-"It is dated from Grosvenor Mansions, written with a quill pen,
-and the noble lord has had the misfortune to get a smear of ink
-upon the outer side of his right little finger," remarked Holmes
-as he folded up the epistle.
-
-"He says four o'clock. It is three now. He will be here in an
-hour."
-
-"Then I have just time, with your assistance, to get clear upon
-the subject. Turn over those papers and arrange the extracts in
-their order of time, while I take a glance as to who our client
-is." He picked a red-covered volume from a line of books of
-reference beside the mantelpiece. "Here he is," said he, sitting
-down and flattening it out upon his knee. "'Lord Robert Walsingham
-de Vere St. Simon, second son of the Duke of Balmoral.' Hum! 'Arms:
-Azure, three caltrops in chief over a fess sable. Born in 1846.'
-He's forty-one years of age, which is mature for marriage. Was
-Under-Secretary for the colonies in a late administration. The
-Duke, his father, was at one time Secretary for Foreign Affairs.
-They inherit Plantagenet blood by direct descent, and Tudor on
-the distaff side. Ha! Well, there is nothing very instructive in
-all this. I think that I must turn to you Watson, for something
-more solid."
-
-"I have very little difficulty in finding what I want," said I,
-"for the facts are quite recent, and the matter struck me as
-remarkable. I feared to refer them to you, however, as I knew
-that you had an inquiry on hand and that you disliked the
-intrusion of other matters."
-
-"Oh, you mean the little problem of the Grosvenor Square
-furniture van. That is quite cleared up now--though, indeed, it
-was obvious from the first. Pray give me the results of your
-newspaper selections."
-
-"Here is the first notice which I can find. It is in the personal
-column of the Morning Post, and dates, as you see, some weeks
-back: 'A marriage has been arranged,' it says, 'and will, if
-rumour is correct, very shortly take place, between Lord Robert
-St. Simon, second son of the Duke of Balmoral, and Miss Hatty
-Doran, the only daughter of Aloysius Doran. Esq., of San
-Francisco, Cal., U.S.A.' That is all."
-
-"Terse and to the point," remarked Holmes, stretching his long,
-thin legs towards the fire.
-
-"There was a paragraph amplifying this in one of the society
-papers of the same week. Ah, here it is: 'There will soon be a
-call for protection in the marriage market, for the present
-free-trade principle appears to tell heavily against our home
-product. One by one the management of the noble houses of Great
-Britain is passing into the hands of our fair cousins from across
-the Atlantic. An important addition has been made during the last
-week to the list of the prizes which have been borne away by
-these charming invaders. Lord St. Simon, who has shown himself
-for over twenty years proof against the little god's arrows, has
-now definitely announced his approaching marriage with Miss Hatty
-Doran, the fascinating daughter of a California millionaire. Miss
-Doran, whose graceful figure and striking face attracted much
-attention at the Westbury House festivities, is an only child,
-and it is currently reported that her dowry will run to
-considerably over the six figures, with expectancies for the
-future. As it is an open secret that the Duke of Balmoral has
-been compelled to sell his pictures within the last few years,
-and as Lord St. Simon has no property of his own save the small
-estate of Birchmoor, it is obvious that the Californian heiress
-is not the only gainer by an alliance which will enable her to
-make the easy and common transition from a Republican lady to a
-British peeress.'"
-
-"Anything else?" asked Holmes, yawning.
-
-"Oh, yes; plenty. Then there is another note in the Morning Post
-to say that the marriage would be an absolutely quiet one, that it
-would be at St. George's, Hanover Square, that only half a dozen
-intimate friends would be invited, and that the party would
-return to the furnished house at Lancaster Gate which has been
-taken by Mr. Aloysius Doran. Two days later--that is, on
-Wednesday last--there is a curt announcement that the wedding had
-taken place, and that the honeymoon would be passed at Lord
-Backwater's place, near Petersfield. Those are all the notices
-which appeared before the disappearance of the bride."
-
-"Before the what?" asked Holmes with a start.
-
-"The vanishing of the lady."
-
-"When did she vanish, then?"
-
-"At the wedding breakfast."
-
-"Indeed. This is more interesting than it promised to be; quite
-dramatic, in fact."
-
-"Yes; it struck me as being a little out of the common."
-
-"They often vanish before the ceremony, and occasionally during
-the honeymoon; but I cannot call to mind anything quite so prompt
-as this. Pray let me have the details."
-
-"I warn you that they are very incomplete."
-
-"Perhaps we may make them less so."
-
-"Such as they are, they are set forth in a single article of a
-morning paper of yesterday, which I will read to you. It is
-headed, 'Singular Occurrence at a Fashionable Wedding':
-
-"'The family of Lord Robert St. Simon has been thrown into the
-greatest consternation by the strange and painful episodes which
-have taken place in connection with his wedding. The ceremony, as
-shortly announced in the papers of yesterday, occurred on the
-previous morning; but it is only now that it has been possible to
-confirm the strange rumours which have been so persistently
-floating about. In spite of the attempts of the friends to hush
-the matter up, so much public attention has now been drawn to it
-that no good purpose can be served by affecting to disregard what
-is a common subject for conversation.
-
-"'The ceremony, which was performed at St. George's, Hanover
-Square, was a very quiet one, no one being present save the
-father of the bride, Mr. Aloysius Doran, the Duchess of Balmoral,
-Lord Backwater, Lord Eustace and Lady Clara St. Simon (the
-younger brother and sister of the bridegroom), and Lady Alicia
-Whittington. The whole party proceeded afterwards to the house of
-Mr. Aloysius Doran, at Lancaster Gate, where breakfast had been
-prepared. It appears that some little trouble was caused by a
-woman, whose name has not been ascertained, who endeavoured to
-force her way into the house after the bridal party, alleging
-that she had some claim upon Lord St. Simon. It was only after a
-painful and prolonged scene that she was ejected by the butler
-and the footman. The bride, who had fortunately entered the house
-before this unpleasant interruption, had sat down to breakfast
-with the rest, when she complained of a sudden indisposition and
-retired to her room. Her prolonged absence having caused some
-comment, her father followed her, but learned from her maid that
-she had only come up to her chamber for an instant, caught up an
-ulster and bonnet, and hurried down to the passage. One of the
-footmen declared that he had seen a lady leave the house thus
-apparelled, but had refused to credit that it was his mistress,
-believing her to be with the company. On ascertaining that his
-daughter had disappeared, Mr. Aloysius Doran, in conjunction with
-the bridegroom, instantly put themselves in communication with
-the police, and very energetic inquiries are being made, which
-will probably result in a speedy clearing up of this very
-singular business. Up to a late hour last night, however, nothing
-had transpired as to the whereabouts of the missing lady. There
-are rumours of foul play in the matter, and it is said that the
-police have caused the arrest of the woman who had caused the
-original disturbance, in the belief that, from jealousy or some
-other motive, she may have been concerned in the strange
-disappearance of the bride.'"
-
-"And is that all?"
-
-"Only one little item in another of the morning papers, but it is
-a suggestive one."
-
-"And it is--"
-
-"That Miss Flora Millar, the lady who had caused the disturbance,
-has actually been arrested. It appears that she was formerly a
-danseuse at the Allegro, and that she has known the bridegroom
-for some years. There are no further particulars, and the whole
-case is in your hands now--so far as it has been set forth in the
-public press."
-
-"And an exceedingly interesting case it appears to be. I would
-not have missed it for worlds. But there is a ring at the bell,
-Watson, and as the clock makes it a few minutes after four, I
-have no doubt that this will prove to be our noble client. Do not
-dream of going, Watson, for I very much prefer having a witness,
-if only as a check to my own memory."
-
-"Lord Robert St. Simon," announced our page-boy, throwing open
-the door. A gentleman entered, with a pleasant, cultured face,
-high-nosed and pale, with something perhaps of petulance about
-the mouth, and with the steady, well-opened eye of a man whose
-pleasant lot it had ever been to command and to be obeyed. His
-manner was brisk, and yet his general appearance gave an undue
-impression of age, for he had a slight forward stoop and a little
-bend of the knees as he walked. His hair, too, as he swept off
-his very curly-brimmed hat, was grizzled round the edges and thin
-upon the top. As to his dress, it was careful to the verge of
-foppishness, with high collar, black frock-coat, white waistcoat,
-yellow gloves, patent-leather shoes, and light-coloured gaiters.
-He advanced slowly into the room, turning his head from left to
-right, and swinging in his right hand the cord which held his
-golden eyeglasses.
-
-"Good-day, Lord St. Simon," said Holmes, rising and bowing. "Pray
-take the basket-chair. This is my friend and colleague, Dr.
-Watson. Draw up a little to the fire, and we will talk this
-matter over."
-
-"A most painful matter to me, as you can most readily imagine,
-Mr. Holmes. I have been cut to the quick. I understand that you
-have already managed several delicate cases of this sort, sir,
-though I presume that they were hardly from the same class of
-society."
-
-"No, I am descending."
-
-"I beg pardon."
-
-"My last client of the sort was a king."
-
-"Oh, really! I had no idea. And which king?"
-
-"The King of Scandinavia."
-
-"What! Had he lost his wife?"
-
-"You can understand," said Holmes suavely, "that I extend to the
-affairs of my other clients the same secrecy which I promise to
-you in yours."
-
-"Of course! Very right! very right! I'm sure I beg pardon. As to
-my own case, I am ready to give you any information which may
-assist you in forming an opinion."
-
-"Thank you. I have already learned all that is in the public
-prints, nothing more. I presume that I may take it as correct--this
-article, for example, as to the disappearance of the bride."
-
-Lord St. Simon glanced over it. "Yes, it is correct, as far as it
-goes."
-
-"But it needs a great deal of supplementing before anyone could
-offer an opinion. I think that I may arrive at my facts most
-directly by questioning you."
-
-"Pray do so."
-
-"When did you first meet Miss Hatty Doran?"
-
-"In San Francisco, a year ago."
-
-"You were travelling in the States?"
-
-"Yes."
-
-"Did you become engaged then?"
-
-"No."
-
-"But you were on a friendly footing?"
-
-"I was amused by her society, and she could see that I was
-amused."
-
-"Her father is very rich?"
-
-"He is said to be the richest man on the Pacific slope."
-
-"And how did he make his money?"
-
-"In mining. He had nothing a few years ago. Then he struck gold,
-invested it, and came up by leaps and bounds."
-
-"Now, what is your own impression as to the young lady's--your
-wife's character?"
-
-The nobleman swung his glasses a little faster and stared down
-into the fire. "You see, Mr. Holmes," said he, "my wife was
-twenty before her father became a rich man. During that time she
-ran free in a mining camp and wandered through woods or
-mountains, so that her education has come from Nature rather than
-from the schoolmaster. She is what we call in England a tomboy,
-with a strong nature, wild and free, unfettered by any sort of
-traditions. She is impetuous--volcanic, I was about to say. She
-is swift in making up her mind and fearless in carrying out her
-resolutions. On the other hand, I would not have given her the
-name which I have the honour to bear"--he gave a little stately
-cough--"had not I thought her to be at bottom a noble woman. I
-believe that she is capable of heroic self-sacrifice and that
-anything dishonourable would be repugnant to her."
-
-"Have you her photograph?"
-
-"I brought this with me." He opened a locket and showed us the
-full face of a very lovely woman. It was not a photograph but an
-ivory miniature, and the artist had brought out the full effect
-of the lustrous black hair, the large dark eyes, and the
-exquisite mouth. Holmes gazed long and earnestly at it. Then he
-closed the locket and handed it back to Lord St. Simon.
-
-"The young lady came to London, then, and you renewed your
-acquaintance?"
-
-"Yes, her father brought her over for this last London season. I
-met her several times, became engaged to her, and have now
-married her."
-
-"She brought, I understand, a considerable dowry?"
-
-"A fair dowry. Not more than is usual in my family."
-
-"And this, of course, remains to you, since the marriage is a
-fait accompli?"
-
-"I really have made no inquiries on the subject."
-
-"Very naturally not. Did you see Miss Doran on the day before the
-wedding?"
-
-"Yes."
-
-"Was she in good spirits?"
-
-"Never better. She kept talking of what we should do in our
-future lives."
-
-"Indeed! That is very interesting. And on the morning of the
-wedding?"
-
-"She was as bright as possible--at least until after the
-ceremony."
-
-"And did you observe any change in her then?"
-
-"Well, to tell the truth, I saw then the first signs that I had
-ever seen that her temper was just a little sharp. The incident
-however, was too trivial to relate and can have no possible
-bearing upon the case."
-
-"Pray let us have it, for all that."
-
-"Oh, it is childish. She dropped her bouquet as we went towards
-the vestry. She was passing the front pew at the time, and it
-fell over into the pew. There was a moment's delay, but the
-gentleman in the pew handed it up to her again, and it did not
-appear to be the worse for the fall. Yet when I spoke to her of
-the matter, she answered me abruptly; and in the carriage, on our
-way home, she seemed absurdly agitated over this trifling cause."
-
-"Indeed! You say that there was a gentleman in the pew. Some of
-the general public were present, then?"
-
-"Oh, yes. It is impossible to exclude them when the church is
-open."
-
-"This gentleman was not one of your wife's friends?"
-
-"No, no; I call him a gentleman by courtesy, but he was quite a
-common-looking person. I hardly noticed his appearance. But
-really I think that we are wandering rather far from the point."
-
-"Lady St. Simon, then, returned from the wedding in a less
-cheerful frame of mind than she had gone to it. What did she do
-on re-entering her father's house?"
-
-"I saw her in conversation with her maid."
-
-"And who is her maid?"
-
-"Alice is her name. She is an American and came from California
-with her."
-
-"A confidential servant?"
-
-"A little too much so. It seemed to me that her mistress allowed
-her to take great liberties. Still, of course, in America they
-look upon these things in a different way."
-
-"How long did she speak to this Alice?"
-
-"Oh, a few minutes. I had something else to think of."
-
-"You did not overhear what they said?"
-
-"Lady St. Simon said something about 'jumping a claim.' She was
-accustomed to use slang of the kind. I have no idea what she
-meant."
-
-"American slang is very expressive sometimes. And what did your
-wife do when she finished speaking to her maid?"
-
-"She walked into the breakfast-room."
-
-"On your arm?"
-
-"No, alone. She was very independent in little matters like that.
-Then, after we had sat down for ten minutes or so, she rose
-hurriedly, muttered some words of apology, and left the room. She
-never came back."
-
-"But this maid, Alice, as I understand, deposes that she went to
-her room, covered her bride's dress with a long ulster, put on a
-bonnet, and went out."
-
-"Quite so. And she was afterwards seen walking into Hyde Park in
-company with Flora Millar, a woman who is now in custody, and who
-had already made a disturbance at Mr. Doran's house that
-morning."
-
-"Ah, yes. I should like a few particulars as to this young lady,
-and your relations to her."
-
-Lord St. Simon shrugged his shoulders and raised his eyebrows.
-"We have been on a friendly footing for some years--I may say on
-a very friendly footing. She used to be at the Allegro. I have
-not treated her ungenerously, and she had no just cause of
-complaint against me, but you know what women are, Mr. Holmes.
-Flora was a dear little thing, but exceedingly hot-headed and
-devotedly attached to me. She wrote me dreadful letters when she
-heard that I was about to be married, and, to tell the truth, the
-reason why I had the marriage celebrated so quietly was that I
-feared lest there might be a scandal in the church. She came to
-Mr. Doran's door just after we returned, and she endeavoured to
-push her way in, uttering very abusive expressions towards my
-wife, and even threatening her, but I had foreseen the
-possibility of something of the sort, and I had two police
-fellows there in private clothes, who soon pushed her out again.
-She was quiet when she saw that there was no good in making a
-row."
-
-"Did your wife hear all this?"
-
-"No, thank goodness, she did not."
-
-"And she was seen walking with this very woman afterwards?"
-
-"Yes. That is what Mr. Lestrade, of Scotland Yard, looks upon as
-so serious. It is thought that Flora decoyed my wife out and laid
-some terrible trap for her."
-
-"Well, it is a possible supposition."
-
-"You think so, too?"
-
-"I did not say a probable one. But you do not yourself look upon
-this as likely?"
-
-"I do not think Flora would hurt a fly."
-
-"Still, jealousy is a strange transformer of characters. Pray
-what is your own theory as to what took place?"
-
-"Well, really, I came to seek a theory, not to propound one. I
-have given you all the facts. Since you ask me, however, I may
-say that it has occurred to me as possible that the excitement of
-this affair, the consciousness that she had made so immense a
-social stride, had the effect of causing some little nervous
-disturbance in my wife."
-
-"In short, that she had become suddenly deranged?"
-
-"Well, really, when I consider that she has turned her back--I
-will not say upon me, but upon so much that many have aspired to
-without success--I can hardly explain it in any other fashion."
-
-"Well, certainly that is also a conceivable hypothesis," said
-Holmes, smiling. "And now, Lord St. Simon, I think that I have
-nearly all my data. May I ask whether you were seated at the
-breakfast-table so that you could see out of the window?"
-
-"We could see the other side of the road and the Park."
-
-"Quite so. Then I do not think that I need to detain you longer.
-I shall communicate with you."
-
-"Should you be fortunate enough to solve this problem," said our
-client, rising.
-
-"I have solved it."
-
-"Eh? What was that?"
-
-"I say that I have solved it."
-
-"Where, then, is my wife?"
-
-"That is a detail which I shall speedily supply."
-
-Lord St. Simon shook his head. "I am afraid that it will take
-wiser heads than yours or mine," he remarked, and bowing in a
-stately, old-fashioned manner he departed.
-
-"It is very good of Lord St. Simon to honour my head by putting
-it on a level with his own," said Sherlock Holmes, laughing. "I
-think that I shall have a whisky and soda and a cigar after all
-this cross-questioning. I had formed my conclusions as to the
-case before our client came into the room."
-
-"My dear Holmes!"
-
-"I have notes of several similar cases, though none, as I
-remarked before, which were quite as prompt. My whole examination
-served to turn my conjecture into a certainty. Circumstantial
-evidence is occasionally very convincing, as when you find a
-trout in the milk, to quote Thoreau's example."
-
-"But I have heard all that you have heard."
-
-"Without, however, the knowledge of pre-existing cases which
-serves me so well. There was a parallel instance in Aberdeen some
-years back, and something on very much the same lines at Munich
-the year after the Franco-Prussian War. It is one of these
-cases--but, hullo, here is Lestrade! Good-afternoon, Lestrade!
-You will find an extra tumbler upon the sideboard, and there are
-cigars in the box."
-
-The official detective was attired in a pea-jacket and cravat,
-which gave him a decidedly nautical appearance, and he carried a
-black canvas bag in his hand. With a short greeting he seated
-himself and lit the cigar which had been offered to him.
-
-"What's up, then?" asked Holmes with a twinkle in his eye. "You
-look dissatisfied."
-
-"And I feel dissatisfied. It is this infernal St. Simon marriage
-case. I can make neither head nor tail of the business."
-
-"Really! You surprise me."
-
-"Who ever heard of such a mixed affair? Every clue seems to slip
-through my fingers. I have been at work upon it all day."
-
-"And very wet it seems to have made you," said Holmes laying his
-hand upon the arm of the pea-jacket.
-
-"Yes, I have been dragging the Serpentine."
-
-"In heaven's name, what for?"
-
-"In search of the body of Lady St. Simon."
-
-Sherlock Holmes leaned back in his chair and laughed heartily.
-
-"Have you dragged the basin of Trafalgar Square fountain?" he
-asked.
-
-"Why? What do you mean?"
-
-"Because you have just as good a chance of finding this lady in
-the one as in the other."
-
-Lestrade shot an angry glance at my companion. "I suppose you
-know all about it," he snarled.
-
-"Well, I have only just heard the facts, but my mind is made up."
-
-"Oh, indeed! Then you think that the Serpentine plays no part in
-the matter?"
-
-"I think it very unlikely."
-
-"Then perhaps you will kindly explain how it is that we found
-this in it?" He opened his bag as he spoke, and tumbled onto the
-floor a wedding-dress of watered silk, a pair of white satin
-shoes and a bride's wreath and veil, all discoloured and soaked
-in water. "There," said he, putting a new wedding-ring upon the
-top of the pile. "There is a little nut for you to crack, Master
-Holmes."
-
-"Oh, indeed!" said my friend, blowing blue rings into the air.
-"You dragged them from the Serpentine?"
-
-"No. They were found floating near the margin by a park-keeper.
-They have been identified as her clothes, and it seemed to me
-that if the clothes were there the body would not be far off."
-
-"By the same brilliant reasoning, every man's body is to be found
-in the neighbourhood of his wardrobe. And pray what did you hope
-to arrive at through this?"
-
-"At some evidence implicating Flora Millar in the disappearance."
-
-"I am afraid that you will find it difficult."
-
-"Are you, indeed, now?" cried Lestrade with some bitterness. "I
-am afraid, Holmes, that you are not very practical with your
-deductions and your inferences. You have made two blunders in as
-many minutes. This dress does implicate Miss Flora Millar."
-
-"And how?"
-
-"In the dress is a pocket. In the pocket is a card-case. In the
-card-case is a note. And here is the very note." He slapped it
-down upon the table in front of him. "Listen to this: 'You will
-see me when all is ready. Come at once. F.H.M.' Now my theory all
-along has been that Lady St. Simon was decoyed away by Flora
-Millar, and that she, with confederates, no doubt, was
-responsible for her disappearance. Here, signed with her
-initials, is the very note which was no doubt quietly slipped
-into her hand at the door and which lured her within their
-reach."
-
-"Very good, Lestrade," said Holmes, laughing. "You really are
-very fine indeed. Let me see it." He took up the paper in a
-listless way, but his attention instantly became riveted, and he
-gave a little cry of satisfaction. "This is indeed important,"
-said he.
-
-"Ha! you find it so?"
-
-"Extremely so. I congratulate you warmly."
-
-Lestrade rose in his triumph and bent his head to look. "Why," he
-shrieked, "you're looking at the wrong side!"
-
-"On the contrary, this is the right side."
-
-"The right side? You're mad! Here is the note written in pencil
-over here."
-
-"And over here is what appears to be the fragment of a hotel
-bill, which interests me deeply."
-
-"There's nothing in it. I looked at it before," said Lestrade.
-"'Oct. 4th, rooms 8s., breakfast 2s. 6d., cocktail 1s., lunch 2s.
-6d., glass sherry, 8d.' I see nothing in that."
-
-"Very likely not. It is most important, all the same. As to the
-note, it is important also, or at least the initials are, so I
-congratulate you again."
-
-"I've wasted time enough," said Lestrade, rising. "I believe in
-hard work and not in sitting by the fire spinning fine theories.
-Good-day, Mr. Holmes, and we shall see which gets to the bottom
-of the matter first." He gathered up the garments, thrust them
-into the bag, and made for the door.
-
-"Just one hint to you, Lestrade," drawled Holmes before his rival
-vanished; "I will tell you the true solution of the matter. Lady
-St. Simon is a myth. There is not, and there never has been, any
-such person."
-
-Lestrade looked sadly at my companion. Then he turned to me,
-tapped his forehead three times, shook his head solemnly, and
-hurried away.
-
-He had hardly shut the door behind him when Holmes rose to put on
-his overcoat. "There is something in what the fellow says about
-outdoor work," he remarked, "so I think, Watson, that I must
-leave you to your papers for a little."
-
-It was after five o'clock when Sherlock Holmes left me, but I had
-no time to be lonely, for within an hour there arrived a
-confectioner's man with a very large flat box. This he unpacked
-with the help of a youth whom he had brought with him, and
-presently, to my very great astonishment, a quite epicurean
-little cold supper began to be laid out upon our humble
-lodging-house mahogany. There were a couple of brace of cold
-woodcock, a pheasant, a pâté de foie gras pie with a group of
-ancient and cobwebby bottles. Having laid out all these luxuries,
-my two visitors vanished away, like the genii of the Arabian
-Nights, with no explanation save that the things had been paid
-for and were ordered to this address.
-
-Just before nine o'clock Sherlock Holmes stepped briskly into the
-room. His features were gravely set, but there was a light in his
-eye which made me think that he had not been disappointed in his
-conclusions.
-
-"They have laid the supper, then," he said, rubbing his hands.
-
-"You seem to expect company. They have laid for five."
-
-"Yes, I fancy we may have some company dropping in," said he. "I
-am surprised that Lord St. Simon has not already arrived. Ha! I
-fancy that I hear his step now upon the stairs."
-
-It was indeed our visitor of the afternoon who came bustling in,
-dangling his glasses more vigorously than ever, and with a very
-perturbed expression upon his aristocratic features.
-
-"My messenger reached you, then?" asked Holmes.
-
-"Yes, and I confess that the contents startled me beyond measure.
-Have you good authority for what you say?"
-
-"The best possible."
-
-Lord St. Simon sank into a chair and passed his hand over his
-forehead.
-
-"What will the Duke say," he murmured, "when he hears that one of
-the family has been subjected to such humiliation?"
-
-"It is the purest accident. I cannot allow that there is any
-humiliation."
-
-"Ah, you look on these things from another standpoint."
-
-"I fail to see that anyone is to blame. I can hardly see how the
-lady could have acted otherwise, though her abrupt method of
-doing it was undoubtedly to be regretted. Having no mother, she
-had no one to advise her at such a crisis."
-
-"It was a slight, sir, a public slight," said Lord St. Simon,
-tapping his fingers upon the table.
-
-"You must make allowance for this poor girl, placed in so
-unprecedented a position."
-
-"I will make no allowance. I am very angry indeed, and I have
-been shamefully used."
-
-"I think that I heard a ring," said Holmes. "Yes, there are steps
-on the landing. If I cannot persuade you to take a lenient view
-of the matter, Lord St. Simon, I have brought an advocate here
-who may be more successful." He opened the door and ushered in a
-lady and gentleman. "Lord St. Simon," said he "allow me to
-introduce you to Mr. and Mrs. Francis Hay Moulton. The lady, I
-think, you have already met."
-
-At the sight of these newcomers our client had sprung from his
-seat and stood very erect, with his eyes cast down and his hand
-thrust into the breast of his frock-coat, a picture of offended
-dignity. The lady had taken a quick step forward and had held out
-her hand to him, but he still refused to raise his eyes. It was
-as well for his resolution, perhaps, for her pleading face was
-one which it was hard to resist.
-
-"You're angry, Robert," said she. "Well, I guess you have every
-cause to be."
-
-"Pray make no apology to me," said Lord St. Simon bitterly.
-
-"Oh, yes, I know that I have treated you real bad and that I
-should have spoken to you before I went; but I was kind of
-rattled, and from the time when I saw Frank here again I just
-didn't know what I was doing or saying. I only wonder I didn't
-fall down and do a faint right there before the altar."
-
-"Perhaps, Mrs. Moulton, you would like my friend and me to leave
-the room while you explain this matter?"
-
-"If I may give an opinion," remarked the strange gentleman,
-"we've had just a little too much secrecy over this business
-already. For my part, I should like all Europe and America to
-hear the rights of it." He was a small, wiry, sunburnt man,
-clean-shaven, with a sharp face and alert manner.
-
-"Then I'll tell our story right away," said the lady. "Frank here
-and I met in '84, in McQuire's camp, near the Rockies, where pa
-was working a claim. We were engaged to each other, Frank and I;
-but then one day father struck a rich pocket and made a pile,
-while poor Frank here had a claim that petered out and came to
-nothing. The richer pa grew the poorer was Frank; so at last pa
-wouldn't hear of our engagement lasting any longer, and he took
-me away to 'Frisco. Frank wouldn't throw up his hand, though; so
-he followed me there, and he saw me without pa knowing anything
-about it. It would only have made him mad to know, so we just
-fixed it all up for ourselves. Frank said that he would go and
-make his pile, too, and never come back to claim me until he had
-as much as pa. So then I promised to wait for him to the end of
-time and pledged myself not to marry anyone else while he lived.
-'Why shouldn't we be married right away, then,' said he, 'and
-then I will feel sure of you; and I won't claim to be your
-husband until I come back?' Well, we talked it over, and he had
-fixed it all up so nicely, with a clergyman all ready in waiting,
-that we just did it right there; and then Frank went off to seek
-his fortune, and I went back to pa.
-
-"The next I heard of Frank was that he was in Montana, and then
-he went prospecting in Arizona, and then I heard of him from New
-Mexico. After that came a long newspaper story about how a
-miners' camp had been attacked by Apache Indians, and there was
-my Frank's name among the killed. I fainted dead away, and I was
-very sick for months after. Pa thought I had a decline and took
-me to half the doctors in 'Frisco. Not a word of news came for a
-year and more, so that I never doubted that Frank was really
-dead. Then Lord St. Simon came to 'Frisco, and we came to London,
-and a marriage was arranged, and pa was very pleased, but I felt
-all the time that no man on this earth would ever take the place
-in my heart that had been given to my poor Frank.
-
-"Still, if I had married Lord St. Simon, of course I'd have done
-my duty by him. We can't command our love, but we can our
-actions. I went to the altar with him with the intention to make
-him just as good a wife as it was in me to be. But you may
-imagine what I felt when, just as I came to the altar rails, I
-glanced back and saw Frank standing and looking at me out of the
-first pew. I thought it was his ghost at first; but when I looked
-again there he was still, with a kind of question in his eyes, as
-if to ask me whether I were glad or sorry to see him. I wonder I
-didn't drop. I know that everything was turning round, and the
-words of the clergyman were just like the buzz of a bee in my
-ear. I didn't know what to do. Should I stop the service and make
-a scene in the church? I glanced at him again, and he seemed to
-know what I was thinking, for he raised his finger to his lips to
-tell me to be still. Then I saw him scribble on a piece of paper,
-and I knew that he was writing me a note. As I passed his pew on
-the way out I dropped my bouquet over to him, and he slipped the
-note into my hand when he returned me the flowers. It was only a
-line asking me to join him when he made the sign to me to do so.
-Of course I never doubted for a moment that my first duty was now
-to him, and I determined to do just whatever he might direct.
-
-"When I got back I told my maid, who had known him in California,
-and had always been his friend. I ordered her to say nothing, but
-to get a few things packed and my ulster ready. I know I ought to
-have spoken to Lord St. Simon, but it was dreadful hard before
-his mother and all those great people. I just made up my mind to
-run away and explain afterwards. I hadn't been at the table ten
-minutes before I saw Frank out of the window at the other side of
-the road. He beckoned to me and then began walking into the Park.
-I slipped out, put on my things, and followed him. Some woman
-came talking something or other about Lord St. Simon to
-me--seemed to me from the little I heard as if he had a little
-secret of his own before marriage also--but I managed to get away
-from her and soon overtook Frank. We got into a cab together, and
-away we drove to some lodgings he had taken in Gordon Square, and
-that was my true wedding after all those years of waiting. Frank
-had been a prisoner among the Apaches, had escaped, came on to
-'Frisco, found that I had given him up for dead and had gone to
-England, followed me there, and had come upon me at last on the
-very morning of my second wedding."
-
-"I saw it in a paper," explained the American. "It gave the name
-and the church but not where the lady lived."
-
-"Then we had a talk as to what we should do, and Frank was all
-for openness, but I was so ashamed of it all that I felt as if I
-should like to vanish away and never see any of them again--just
-sending a line to pa, perhaps, to show him that I was alive. It
-was awful to me to think of all those lords and ladies sitting
-round that breakfast-table and waiting for me to come back. So
-Frank took my wedding-clothes and things and made a bundle of
-them, so that I should not be traced, and dropped them away
-somewhere where no one could find them. It is likely that we
-should have gone on to Paris to-morrow, only that this good
-gentleman, Mr. Holmes, came round to us this evening, though how
-he found us is more than I can think, and he showed us very
-clearly and kindly that I was wrong and that Frank was right, and
-that we should be putting ourselves in the wrong if we were so
-secret. Then he offered to give us a chance of talking to Lord
-St. Simon alone, and so we came right away round to his rooms at
-once. Now, Robert, you have heard it all, and I am very sorry if
-I have given you pain, and I hope that you do not think very
-meanly of me."
-
-Lord St. Simon had by no means relaxed his rigid attitude, but
-had listened with a frowning brow and a compressed lip to this
-long narrative.
-
-"Excuse me," he said, "but it is not my custom to discuss my most
-intimate personal affairs in this public manner."
-
-"Then you won't forgive me? You won't shake hands before I go?"
-
-"Oh, certainly, if it would give you any pleasure." He put out
-his hand and coldly grasped that which she extended to him.
-
-"I had hoped," suggested Holmes, "that you would have joined us
-in a friendly supper."
-
-"I think that there you ask a little too much," responded his
-Lordship. "I may be forced to acquiesce in these recent
-developments, but I can hardly be expected to make merry over
-them. I think that with your permission I will now wish you all a
-very good-night." He included us all in a sweeping bow and
-stalked out of the room.
-
-"Then I trust that you at least will honour me with your
-company," said Sherlock Holmes. "It is always a joy to meet an
-American, Mr. Moulton, for I am one of those who believe that the
-folly of a monarch and the blundering of a minister in far-gone
-years will not prevent our children from being some day citizens
-of the same world-wide country under a flag which shall be a
-quartering of the Union Jack with the Stars and Stripes."
-
-"The case has been an interesting one," remarked Holmes when our
-visitors had left us, "because it serves to show very clearly how
-simple the explanation may be of an affair which at first sight
-seems to be almost inexplicable. Nothing could be more natural
-than the sequence of events as narrated by this lady, and nothing
-stranger than the result when viewed, for instance, by Mr.
-Lestrade of Scotland Yard."
-
-"You were not yourself at fault at all, then?"
-
-"From the first, two facts were very obvious to me, the one that
-the lady had been quite willing to undergo the wedding ceremony,
-the other that she had repented of it within a few minutes of
-returning home. Obviously something had occurred during the
-morning, then, to cause her to change her mind. What could that
-something be? She could not have spoken to anyone when she was
-out, for she had been in the company of the bridegroom. Had she
-seen someone, then? If she had, it must be someone from America
-because she had spent so short a time in this country that she
-could hardly have allowed anyone to acquire so deep an influence
-over her that the mere sight of him would induce her to change
-her plans so completely. You see we have already arrived, by a
-process of exclusion, at the idea that she might have seen an
-American. Then who could this American be, and why should he
-possess so much influence over her? It might be a lover; it might
-be a husband. Her young womanhood had, I knew, been spent in
-rough scenes and under strange conditions. So far I had got
-before I ever heard Lord St. Simon's narrative. When he told us
-of a man in a pew, of the change in the bride's manner, of so
-transparent a device for obtaining a note as the dropping of a
-bouquet, of her resort to her confidential maid, and of her very
-significant allusion to claim-jumping--which in miners' parlance
-means taking possession of that which another person has a prior
-claim to--the whole situation became absolutely clear. She had
-gone off with a man, and the man was either a lover or was a
-previous husband--the chances being in favour of the latter."
-
-"And how in the world did you find them?"
-
-"It might have been difficult, but friend Lestrade held
-information in his hands the value of which he did not himself
-know. The initials were, of course, of the highest importance,
-but more valuable still was it to know that within a week he had
-settled his bill at one of the most select London hotels."
-
-"How did you deduce the select?"
-
-"By the select prices. Eight shillings for a bed and eightpence
-for a glass of sherry pointed to one of the most expensive
-hotels. There are not many in London which charge at that rate.
-In the second one which I visited in Northumberland Avenue, I
-learned by an inspection of the book that Francis H. Moulton, an
-American gentleman, had left only the day before, and on looking
-over the entries against him, I came upon the very items which I
-had seen in the duplicate bill. His letters were to be forwarded
-to 226 Gordon Square; so thither I travelled, and being fortunate
-enough to find the loving couple at home, I ventured to give them
-some paternal advice and to point out to them that it would be
-better in every way that they should make their position a little
-clearer both to the general public and to Lord St. Simon in
-particular. I invited them to meet him here, and, as you see, I
-made him keep the appointment."
-
-"But with no very good result," I remarked. "His conduct was
-certainly not very gracious."
-
-"Ah, Watson," said Holmes, smiling, "perhaps you would not be
-very gracious either, if, after all the trouble of wooing and
-wedding, you found yourself deprived in an instant of wife and of
-fortune. I think that we may judge Lord St. Simon very mercifully
-and thank our stars that we are never likely to find ourselves in
-the same position. Draw your chair up and hand me my violin, for
-the only problem we have still to solve is how to while away
-these bleak autumnal evenings."
-
-
-
-XI. THE ADVENTURE OF THE BERYL CORONET
-
-"Holmes," said I as I stood one morning in our bow-window looking
-down the street, "here is a madman coming along. It seems rather
-sad that his relatives should allow him to come out alone."
-
-My friend rose lazily from his armchair and stood with his hands
-in the pockets of his dressing-gown, looking over my shoulder. It
-was a bright, crisp February morning, and the snow of the day
-before still lay deep upon the ground, shimmering brightly in the
-wintry sun. Down the centre of Baker Street it had been ploughed
-into a brown crumbly band by the traffic, but at either side and
-on the heaped-up edges of the foot-paths it still lay as white as
-when it fell. The grey pavement had been cleaned and scraped, but
-was still dangerously slippery, so that there were fewer
-passengers than usual. Indeed, from the direction of the
-Metropolitan Station no one was coming save the single gentleman
-whose eccentric conduct had drawn my attention.
-
-He was a man of about fifty, tall, portly, and imposing, with a
-massive, strongly marked face and a commanding figure. He was
-dressed in a sombre yet rich style, in black frock-coat, shining
-hat, neat brown gaiters, and well-cut pearl-grey trousers. Yet
-his actions were in absurd contrast to the dignity of his dress
-and features, for he was running hard, with occasional little
-springs, such as a weary man gives who is little accustomed to
-set any tax upon his legs. As he ran he jerked his hands up and
-down, waggled his head, and writhed his face into the most
-extraordinary contortions.
-
-"What on earth can be the matter with him?" I asked. "He is
-looking up at the numbers of the houses."
-
-"I believe that he is coming here," said Holmes, rubbing his
-hands.
-
-"Here?"
-
-"Yes; I rather think he is coming to consult me professionally. I
-think that I recognise the symptoms. Ha! did I not tell you?" As
-he spoke, the man, puffing and blowing, rushed at our door and
-pulled at our bell until the whole house resounded with the
-clanging.
-
-A few moments later he was in our room, still puffing, still
-gesticulating, but with so fixed a look of grief and despair in
-his eyes that our smiles were turned in an instant to horror and
-pity. For a while he could not get his words out, but swayed his
-body and plucked at his hair like one who has been driven to the
-extreme limits of his reason. Then, suddenly springing to his
-feet, he beat his head against the wall with such force that we
-both rushed upon him and tore him away to the centre of the room.
-Sherlock Holmes pushed him down into the easy-chair and, sitting
-beside him, patted his hand and chatted with him in the easy,
-soothing tones which he knew so well how to employ.
-
-"You have come to me to tell your story, have you not?" said he.
-"You are fatigued with your haste. Pray wait until you have
-recovered yourself, and then I shall be most happy to look into
-any little problem which you may submit to me."
-
-The man sat for a minute or more with a heaving chest, fighting
-against his emotion. Then he passed his handkerchief over his
-brow, set his lips tight, and turned his face towards us.
-
-"No doubt you think me mad?" said he.
-
-"I see that you have had some great trouble," responded Holmes.
-
-"God knows I have!--a trouble which is enough to unseat my
-reason, so sudden and so terrible is it. Public disgrace I might
-have faced, although I am a man whose character has never yet
-borne a stain. Private affliction also is the lot of every man;
-but the two coming together, and in so frightful a form, have
-been enough to shake my very soul. Besides, it is not I alone.
-The very noblest in the land may suffer unless some way be found
-out of this horrible affair."
-
-"Pray compose yourself, sir," said Holmes, "and let me have a
-clear account of who you are and what it is that has befallen
-you."
-
-"My name," answered our visitor, "is probably familiar to your
-ears. I am Alexander Holder, of the banking firm of Holder &
-Stevenson, of Threadneedle Street."
-
-The name was indeed well known to us as belonging to the senior
-partner in the second largest private banking concern in the City
-of London. What could have happened, then, to bring one of the
-foremost citizens of London to this most pitiable pass? We
-waited, all curiosity, until with another effort he braced
-himself to tell his story.
-
-"I feel that time is of value," said he; "that is why I hastened
-here when the police inspector suggested that I should secure
-your co-operation. I came to Baker Street by the Underground and
-hurried from there on foot, for the cabs go slowly through this
-snow. That is why I was so out of breath, for I am a man who
-takes very little exercise. I feel better now, and I will put the
-facts before you as shortly and yet as clearly as I can.
-
-"It is, of course, well known to you that in a successful banking
-business as much depends upon our being able to find remunerative
-investments for our funds as upon our increasing our connection
-and the number of our depositors. One of our most lucrative means
-of laying out money is in the shape of loans, where the security
-is unimpeachable. We have done a good deal in this direction
-during the last few years, and there are many noble families to
-whom we have advanced large sums upon the security of their
-pictures, libraries, or plate.
-
-"Yesterday morning I was seated in my office at the bank when a
-card was brought in to me by one of the clerks. I started when I
-saw the name, for it was that of none other than--well, perhaps
-even to you I had better say no more than that it was a name
-which is a household word all over the earth--one of the highest,
-noblest, most exalted names in England. I was overwhelmed by the
-honour and attempted, when he entered, to say so, but he plunged
-at once into business with the air of a man who wishes to hurry
-quickly through a disagreeable task.
-
-"'Mr. Holder,' said he, 'I have been informed that you are in the
-habit of advancing money.'
-
-"'The firm does so when the security is good.' I answered.
-
-"'It is absolutely essential to me,' said he, 'that I should have
-50,000 pounds at once. I could, of course, borrow so trifling a
-sum ten times over from my friends, but I much prefer to make it
-a matter of business and to carry out that business myself. In my
-position you can readily understand that it is unwise to place
-one's self under obligations.'
-
-"'For how long, may I ask, do you want this sum?' I asked.
-
-"'Next Monday I have a large sum due to me, and I shall then most
-certainly repay what you advance, with whatever interest you
-think it right to charge. But it is very essential to me that the
-money should be paid at once.'
-
-"'I should be happy to advance it without further parley from my
-own private purse,' said I, 'were it not that the strain would be
-rather more than it could bear. If, on the other hand, I am to do
-it in the name of the firm, then in justice to my partner I must
-insist that, even in your case, every businesslike precaution
-should be taken.'
-
-"'I should much prefer to have it so,' said he, raising up a
-square, black morocco case which he had laid beside his chair.
-'You have doubtless heard of the Beryl Coronet?'
-
-"'One of the most precious public possessions of the empire,'
-said I.
-
-"'Precisely.' He opened the case, and there, imbedded in soft,
-flesh-coloured velvet, lay the magnificent piece of jewellery
-which he had named. 'There are thirty-nine enormous beryls,' said
-he, 'and the price of the gold chasing is incalculable. The
-lowest estimate would put the worth of the coronet at double the
-sum which I have asked. I am prepared to leave it with you as my
-security.'
-
-"I took the precious case into my hands and looked in some
-perplexity from it to my illustrious client.
-
-"'You doubt its value?' he asked.
-
-"'Not at all. I only doubt--'
-
-"'The propriety of my leaving it. You may set your mind at rest
-about that. I should not dream of doing so were it not absolutely
-certain that I should be able in four days to reclaim it. It is a
-pure matter of form. Is the security sufficient?'
-
-"'Ample.'
-
-"'You understand, Mr. Holder, that I am giving you a strong proof
-of the confidence which I have in you, founded upon all that I
-have heard of you. I rely upon you not only to be discreet and to
-refrain from all gossip upon the matter but, above all, to
-preserve this coronet with every possible precaution because I
-need not say that a great public scandal would be caused if any
-harm were to befall it. Any injury to it would be almost as
-serious as its complete loss, for there are no beryls in the
-world to match these, and it would be impossible to replace them.
-I leave it with you, however, with every confidence, and I shall
-call for it in person on Monday morning.'
-
-"Seeing that my client was anxious to leave, I said no more but,
-calling for my cashier, I ordered him to pay over fifty 1000
-pound notes. When I was alone once more, however, with the
-precious case lying upon the table in front of me, I could not
-but think with some misgivings of the immense responsibility
-which it entailed upon me. There could be no doubt that, as it
-was a national possession, a horrible scandal would ensue if any
-misfortune should occur to it. I already regretted having ever
-consented to take charge of it. However, it was too late to alter
-the matter now, so I locked it up in my private safe and turned
-once more to my work.
-
-"When evening came I felt that it would be an imprudence to leave
-so precious a thing in the office behind me. Bankers' safes had
-been forced before now, and why should not mine be? If so, how
-terrible would be the position in which I should find myself! I
-determined, therefore, that for the next few days I would always
-carry the case backward and forward with me, so that it might
-never be really out of my reach. With this intention, I called a
-cab and drove out to my house at Streatham, carrying the jewel
-with me. I did not breathe freely until I had taken it upstairs
-and locked it in the bureau of my dressing-room.
-
-"And now a word as to my household, Mr. Holmes, for I wish you to
-thoroughly understand the situation. My groom and my page sleep
-out of the house, and may be set aside altogether. I have three
-maid-servants who have been with me a number of years and whose
-absolute reliability is quite above suspicion. Another, Lucy
-Parr, the second waiting-maid, has only been in my service a few
-months. She came with an excellent character, however, and has
-always given me satisfaction. She is a very pretty girl and has
-attracted admirers who have occasionally hung about the place.
-That is the only drawback which we have found to her, but we
-believe her to be a thoroughly good girl in every way.
-
-"So much for the servants. My family itself is so small that it
-will not take me long to describe it. I am a widower and have an
-only son, Arthur. He has been a disappointment to me, Mr.
-Holmes--a grievous disappointment. I have no doubt that I am
-myself to blame. People tell me that I have spoiled him. Very
-likely I have. When my dear wife died I felt that he was all I
-had to love. I could not bear to see the smile fade even for a
-moment from his face. I have never denied him a wish. Perhaps it
-would have been better for both of us had I been sterner, but I
-meant it for the best.
-
-"It was naturally my intention that he should succeed me in my
-business, but he was not of a business turn. He was wild,
-wayward, and, to speak the truth, I could not trust him in the
-handling of large sums of money. When he was young he became a
-member of an aristocratic club, and there, having charming
-manners, he was soon the intimate of a number of men with long
-purses and expensive habits. He learned to play heavily at cards
-and to squander money on the turf, until he had again and again
-to come to me and implore me to give him an advance upon his
-allowance, that he might settle his debts of honour. He tried
-more than once to break away from the dangerous company which he
-was keeping, but each time the influence of his friend, Sir
-George Burnwell, was enough to draw him back again.
-
-"And, indeed, I could not wonder that such a man as Sir George
-Burnwell should gain an influence over him, for he has frequently
-brought him to my house, and I have found myself that I could
-hardly resist the fascination of his manner. He is older than
-Arthur, a man of the world to his finger-tips, one who had been
-everywhere, seen everything, a brilliant talker, and a man of
-great personal beauty. Yet when I think of him in cold blood, far
-away from the glamour of his presence, I am convinced from his
-cynical speech and the look which I have caught in his eyes that
-he is one who should be deeply distrusted. So I think, and so,
-too, thinks my little Mary, who has a woman's quick insight into
-character.
-
-"And now there is only she to be described. She is my niece; but
-when my brother died five years ago and left her alone in the
-world I adopted her, and have looked upon her ever since as my
-daughter. She is a sunbeam in my house--sweet, loving, beautiful,
-a wonderful manager and housekeeper, yet as tender and quiet and
-gentle as a woman could be. She is my right hand. I do not know
-what I could do without her. In only one matter has she ever gone
-against my wishes. Twice my boy has asked her to marry him, for
-he loves her devotedly, but each time she has refused him. I
-think that if anyone could have drawn him into the right path it
-would have been she, and that his marriage might have changed his
-whole life; but now, alas! it is too late--forever too late!
-
-"Now, Mr. Holmes, you know the people who live under my roof, and
-I shall continue with my miserable story.
-
-"When we were taking coffee in the drawing-room that night after
-dinner, I told Arthur and Mary my experience, and of the precious
-treasure which we had under our roof, suppressing only the name
-of my client. Lucy Parr, who had brought in the coffee, had, I am
-sure, left the room; but I cannot swear that the door was closed.
-Mary and Arthur were much interested and wished to see the famous
-coronet, but I thought it better not to disturb it.
-
-"'Where have you put it?' asked Arthur.
-
-"'In my own bureau.'
-
-"'Well, I hope to goodness the house won't be burgled during the
-night.' said he.
-
-"'It is locked up,' I answered.
-
-"'Oh, any old key will fit that bureau. When I was a youngster I
-have opened it myself with the key of the box-room cupboard.'
-
-"He often had a wild way of talking, so that I thought little of
-what he said. He followed me to my room, however, that night with
-a very grave face.
-
-"'Look here, dad,' said he with his eyes cast down, 'can you let
-me have 200 pounds?'
-
-"'No, I cannot!' I answered sharply. 'I have been far too
-generous with you in money matters.'
-
-"'You have been very kind,' said he, 'but I must have this money,
-or else I can never show my face inside the club again.'
-
-"'And a very good thing, too!' I cried.
-
-"'Yes, but you would not have me leave it a dishonoured man,'
-said he. 'I could not bear the disgrace. I must raise the money
-in some way, and if you will not let me have it, then I must try
-other means.'
-
-"I was very angry, for this was the third demand during the
-month. 'You shall not have a farthing from me,' I cried, on which
-he bowed and left the room without another word.
-
-"When he was gone I unlocked my bureau, made sure that my
-treasure was safe, and locked it again. Then I started to go
-round the house to see that all was secure--a duty which I
-usually leave to Mary but which I thought it well to perform
-myself that night. As I came down the stairs I saw Mary herself
-at the side window of the hall, which she closed and fastened as
-I approached.
-
-"'Tell me, dad,' said she, looking, I thought, a little
-disturbed, 'did you give Lucy, the maid, leave to go out
-to-night?'
-
-"'Certainly not.'
-
-"'She came in just now by the back door. I have no doubt that she
-has only been to the side gate to see someone, but I think that
-it is hardly safe and should be stopped.'
-
-"'You must speak to her in the morning, or I will if you prefer
-it. Are you sure that everything is fastened?'
-
-"'Quite sure, dad.'
-
-"'Then, good-night.' I kissed her and went up to my bedroom
-again, where I was soon asleep.
-
-"I am endeavouring to tell you everything, Mr. Holmes, which may
-have any bearing upon the case, but I beg that you will question
-me upon any point which I do not make clear."
-
-"On the contrary, your statement is singularly lucid."
-
-"I come to a part of my story now in which I should wish to be
-particularly so. I am not a very heavy sleeper, and the anxiety
-in my mind tended, no doubt, to make me even less so than usual.
-About two in the morning, then, I was awakened by some sound in
-the house. It had ceased ere I was wide awake, but it had left an
-impression behind it as though a window had gently closed
-somewhere. I lay listening with all my ears. Suddenly, to my
-horror, there was a distinct sound of footsteps moving softly in
-the next room. I slipped out of bed, all palpitating with fear,
-and peeped round the corner of my dressing-room door.
-
-"'Arthur!' I screamed, 'you villain! you thief! How dare you
-touch that coronet?'
-
-"The gas was half up, as I had left it, and my unhappy boy,
-dressed only in his shirt and trousers, was standing beside the
-light, holding the coronet in his hands. He appeared to be
-wrenching at it, or bending it with all his strength. At my cry
-he dropped it from his grasp and turned as pale as death. I
-snatched it up and examined it. One of the gold corners, with
-three of the beryls in it, was missing.
-
-"'You blackguard!' I shouted, beside myself with rage. 'You have
-destroyed it! You have dishonoured me forever! Where are the
-jewels which you have stolen?'
-
-"'Stolen!' he cried.
-
-"'Yes, thief!' I roared, shaking him by the shoulder.
-
-"'There are none missing. There cannot be any missing,' said he.
-
-"'There are three missing. And you know where they are. Must I
-call you a liar as well as a thief? Did I not see you trying to
-tear off another piece?'
-
-"'You have called me names enough,' said he, 'I will not stand it
-any longer. I shall not say another word about this business,
-since you have chosen to insult me. I will leave your house in
-the morning and make my own way in the world.'
-
-"'You shall leave it in the hands of the police!' I cried
-half-mad with grief and rage. 'I shall have this matter probed to
-the bottom.'
-
-"'You shall learn nothing from me,' said he with a passion such
-as I should not have thought was in his nature. 'If you choose to
-call the police, let the police find what they can.'
-
-"By this time the whole house was astir, for I had raised my
-voice in my anger. Mary was the first to rush into my room, and,
-at the sight of the coronet and of Arthur's face, she read the
-whole story and, with a scream, fell down senseless on the
-ground. I sent the house-maid for the police and put the
-investigation into their hands at once. When the inspector and a
-constable entered the house, Arthur, who had stood sullenly with
-his arms folded, asked me whether it was my intention to charge
-him with theft. I answered that it had ceased to be a private
-matter, but had become a public one, since the ruined coronet was
-national property. I was determined that the law should have its
-way in everything.
-
-"'At least,' said he, 'you will not have me arrested at once. It
-would be to your advantage as well as mine if I might leave the
-house for five minutes.'
-
-"'That you may get away, or perhaps that you may conceal what you
-have stolen,' said I. And then, realising the dreadful position
-in which I was placed, I implored him to remember that not only
-my honour but that of one who was far greater than I was at
-stake; and that he threatened to raise a scandal which would
-convulse the nation. He might avert it all if he would but tell
-me what he had done with the three missing stones.
-
-"'You may as well face the matter,' said I; 'you have been caught
-in the act, and no confession could make your guilt more heinous.
-If you but make such reparation as is in your power, by telling
-us where the beryls are, all shall be forgiven and forgotten.'
-
-"'Keep your forgiveness for those who ask for it,' he answered,
-turning away from me with a sneer. I saw that he was too hardened
-for any words of mine to influence him. There was but one way for
-it. I called in the inspector and gave him into custody. A search
-was made at once not only of his person but of his room and of
-every portion of the house where he could possibly have concealed
-the gems; but no trace of them could be found, nor would the
-wretched boy open his mouth for all our persuasions and our
-threats. This morning he was removed to a cell, and I, after
-going through all the police formalities, have hurried round to
-you to implore you to use your skill in unravelling the matter.
-The police have openly confessed that they can at present make
-nothing of it. You may go to any expense which you think
-necessary. I have already offered a reward of 1000 pounds. My
-God, what shall I do! I have lost my honour, my gems, and my son
-in one night. Oh, what shall I do!"
-
-He put a hand on either side of his head and rocked himself to
-and fro, droning to himself like a child whose grief has got
-beyond words.
-
-Sherlock Holmes sat silent for some few minutes, with his brows
-knitted and his eyes fixed upon the fire.
-
-"Do you receive much company?" he asked.
-
-"None save my partner with his family and an occasional friend of
-Arthur's. Sir George Burnwell has been several times lately. No
-one else, I think."
-
-"Do you go out much in society?"
-
-"Arthur does. Mary and I stay at home. We neither of us care for
-it."
-
-"That is unusual in a young girl."
-
-"She is of a quiet nature. Besides, she is not so very young. She
-is four-and-twenty."
-
-"This matter, from what you say, seems to have been a shock to
-her also."
-
-"Terrible! She is even more affected than I."
-
-"You have neither of you any doubt as to your son's guilt?"
-
-"How can we have when I saw him with my own eyes with the coronet
-in his hands."
-
-"I hardly consider that a conclusive proof. Was the remainder of
-the coronet at all injured?"
-
-"Yes, it was twisted."
-
-"Do you not think, then, that he might have been trying to
-straighten it?"
-
-"God bless you! You are doing what you can for him and for me.
-But it is too heavy a task. What was he doing there at all? If
-his purpose were innocent, why did he not say so?"
-
-"Precisely. And if it were guilty, why did he not invent a lie?
-His silence appears to me to cut both ways. There are several
-singular points about the case. What did the police think of the
-noise which awoke you from your sleep?"
-
-"They considered that it might be caused by Arthur's closing his
-bedroom door."
-
-"A likely story! As if a man bent on felony would slam his door
-so as to wake a household. What did they say, then, of the
-disappearance of these gems?"
-
-"They are still sounding the planking and probing the furniture
-in the hope of finding them."
-
-"Have they thought of looking outside the house?"
-
-"Yes, they have shown extraordinary energy. The whole garden has
-already been minutely examined."
-
-"Now, my dear sir," said Holmes, "is it not obvious to you now
-that this matter really strikes very much deeper than either you
-or the police were at first inclined to think? It appeared to you
-to be a simple case; to me it seems exceedingly complex. Consider
-what is involved by your theory. You suppose that your son came
-down from his bed, went, at great risk, to your dressing-room,
-opened your bureau, took out your coronet, broke off by main
-force a small portion of it, went off to some other place,
-concealed three gems out of the thirty-nine, with such skill that
-nobody can find them, and then returned with the other thirty-six
-into the room in which he exposed himself to the greatest danger
-of being discovered. I ask you now, is such a theory tenable?"
-
-"But what other is there?" cried the banker with a gesture of
-despair. "If his motives were innocent, why does he not explain
-them?"
-
-"It is our task to find that out," replied Holmes; "so now, if
-you please, Mr. Holder, we will set off for Streatham together,
-and devote an hour to glancing a little more closely into
-details."
-
-My friend insisted upon my accompanying them in their expedition,
-which I was eager enough to do, for my curiosity and sympathy
-were deeply stirred by the story to which we had listened. I
-confess that the guilt of the banker's son appeared to me to be
-as obvious as it did to his unhappy father, but still I had such
-faith in Holmes' judgment that I felt that there must be some
-grounds for hope as long as he was dissatisfied with the accepted
-explanation. He hardly spoke a word the whole way out to the
-southern suburb, but sat with his chin upon his breast and his
-hat drawn over his eyes, sunk in the deepest thought. Our client
-appeared to have taken fresh heart at the little glimpse of hope
-which had been presented to him, and he even broke into a
-desultory chat with me over his business affairs. A short railway
-journey and a shorter walk brought us to Fairbank, the modest
-residence of the great financier.
-
-Fairbank was a good-sized square house of white stone, standing
-back a little from the road. A double carriage-sweep, with a
-snow-clad lawn, stretched down in front to two large iron gates
-which closed the entrance. On the right side was a small wooden
-thicket, which led into a narrow path between two neat hedges
-stretching from the road to the kitchen door, and forming the
-tradesmen's entrance. On the left ran a lane which led to the
-stables, and was not itself within the grounds at all, being a
-public, though little used, thoroughfare. Holmes left us standing
-at the door and walked slowly all round the house, across the
-front, down the tradesmen's path, and so round by the garden
-behind into the stable lane. So long was he that Mr. Holder and I
-went into the dining-room and waited by the fire until he should
-return. We were sitting there in silence when the door opened and
-a young lady came in. She was rather above the middle height,
-slim, with dark hair and eyes, which seemed the darker against
-the absolute pallor of her skin. I do not think that I have ever
-seen such deadly paleness in a woman's face. Her lips, too, were
-bloodless, but her eyes were flushed with crying. As she swept
-silently into the room she impressed me with a greater sense of
-grief than the banker had done in the morning, and it was the
-more striking in her as she was evidently a woman of strong
-character, with immense capacity for self-restraint. Disregarding
-my presence, she went straight to her uncle and passed her hand
-over his head with a sweet womanly caress.
-
-"You have given orders that Arthur should be liberated, have you
-not, dad?" she asked.
-
-"No, no, my girl, the matter must be probed to the bottom."
-
-"But I am so sure that he is innocent. You know what woman's
-instincts are. I know that he has done no harm and that you will
-be sorry for having acted so harshly."
-
-"Why is he silent, then, if he is innocent?"
-
-"Who knows? Perhaps because he was so angry that you should
-suspect him."
-
-"How could I help suspecting him, when I actually saw him with
-the coronet in his hand?"
-
-"Oh, but he had only picked it up to look at it. Oh, do, do take
-my word for it that he is innocent. Let the matter drop and say
-no more. It is so dreadful to think of our dear Arthur in
-prison!"
-
-"I shall never let it drop until the gems are found--never, Mary!
-Your affection for Arthur blinds you as to the awful consequences
-to me. Far from hushing the thing up, I have brought a gentleman
-down from London to inquire more deeply into it."
-
-"This gentleman?" she asked, facing round to me.
-
-"No, his friend. He wished us to leave him alone. He is round in
-the stable lane now."
-
-"The stable lane?" She raised her dark eyebrows. "What can he
-hope to find there? Ah! this, I suppose, is he. I trust, sir,
-that you will succeed in proving, what I feel sure is the truth,
-that my cousin Arthur is innocent of this crime."
-
-"I fully share your opinion, and I trust, with you, that we may
-prove it," returned Holmes, going back to the mat to knock the
-snow from his shoes. "I believe I have the honour of addressing
-Miss Mary Holder. Might I ask you a question or two?"
-
-"Pray do, sir, if it may help to clear this horrible affair up."
-
-"You heard nothing yourself last night?"
-
-"Nothing, until my uncle here began to speak loudly. I heard
-that, and I came down."
-
-"You shut up the windows and doors the night before. Did you
-fasten all the windows?"
-
-"Yes."
-
-"Were they all fastened this morning?"
-
-"Yes."
-
-"You have a maid who has a sweetheart? I think that you remarked
-to your uncle last night that she had been out to see him?"
-
-"Yes, and she was the girl who waited in the drawing-room, and
-who may have heard uncle's remarks about the coronet."
-
-"I see. You infer that she may have gone out to tell her
-sweetheart, and that the two may have planned the robbery."
-
-"But what is the good of all these vague theories," cried the
-banker impatiently, "when I have told you that I saw Arthur with
-the coronet in his hands?"
-
-"Wait a little, Mr. Holder. We must come back to that. About this
-girl, Miss Holder. You saw her return by the kitchen door, I
-presume?"
-
-"Yes; when I went to see if the door was fastened for the night I
-met her slipping in. I saw the man, too, in the gloom."
-
-"Do you know him?"
-
-"Oh, yes! he is the green-grocer who brings our vegetables round.
-His name is Francis Prosper."
-
-"He stood," said Holmes, "to the left of the door--that is to
-say, farther up the path than is necessary to reach the door?"
-
-"Yes, he did."
-
-"And he is a man with a wooden leg?"
-
-Something like fear sprang up in the young lady's expressive
-black eyes. "Why, you are like a magician," said she. "How do you
-know that?" She smiled, but there was no answering smile in
-Holmes' thin, eager face.
-
-"I should be very glad now to go upstairs," said he. "I shall
-probably wish to go over the outside of the house again. Perhaps
-I had better take a look at the lower windows before I go up."
-
-He walked swiftly round from one to the other, pausing only at
-the large one which looked from the hall onto the stable lane.
-This he opened and made a very careful examination of the sill
-with his powerful magnifying lens. "Now we shall go upstairs,"
-said he at last.
-
-The banker's dressing-room was a plainly furnished little
-chamber, with a grey carpet, a large bureau, and a long mirror.
-Holmes went to the bureau first and looked hard at the lock.
-
-"Which key was used to open it?" he asked.
-
-"That which my son himself indicated--that of the cupboard of the
-lumber-room."
-
-"Have you it here?"
-
-"That is it on the dressing-table."
-
-Sherlock Holmes took it up and opened the bureau.
-
-"It is a noiseless lock," said he. "It is no wonder that it did
-not wake you. This case, I presume, contains the coronet. We must
-have a look at it." He opened the case, and taking out the diadem
-he laid it upon the table. It was a magnificent specimen of the
-jeweller's art, and the thirty-six stones were the finest that I
-have ever seen. At one side of the coronet was a cracked edge,
-where a corner holding three gems had been torn away.
-
-"Now, Mr. Holder," said Holmes, "here is the corner which
-corresponds to that which has been so unfortunately lost. Might I
-beg that you will break it off."
-
-The banker recoiled in horror. "I should not dream of trying,"
-said he.
-
-"Then I will." Holmes suddenly bent his strength upon it, but
-without result. "I feel it give a little," said he; "but, though
-I am exceptionally strong in the fingers, it would take me all my
-time to break it. An ordinary man could not do it. Now, what do
-you think would happen if I did break it, Mr. Holder? There would
-be a noise like a pistol shot. Do you tell me that all this
-happened within a few yards of your bed and that you heard
-nothing of it?"
-
-"I do not know what to think. It is all dark to me."
-
-"But perhaps it may grow lighter as we go. What do you think,
-Miss Holder?"
-
-"I confess that I still share my uncle's perplexity."
-
-"Your son had no shoes or slippers on when you saw him?"
-
-"He had nothing on save only his trousers and shirt."
-
-"Thank you. We have certainly been favoured with extraordinary
-luck during this inquiry, and it will be entirely our own fault
-if we do not succeed in clearing the matter up. With your
-permission, Mr. Holder, I shall now continue my investigations
-outside."
-
-He went alone, at his own request, for he explained that any
-unnecessary footmarks might make his task more difficult. For an
-hour or more he was at work, returning at last with his feet
-heavy with snow and his features as inscrutable as ever.
-
-"I think that I have seen now all that there is to see, Mr.
-Holder," said he; "I can serve you best by returning to my
-rooms."
-
-"But the gems, Mr. Holmes. Where are they?"
-
-"I cannot tell."
-
-The banker wrung his hands. "I shall never see them again!" he
-cried. "And my son? You give me hopes?"
-
-"My opinion is in no way altered."
-
-"Then, for God's sake, what was this dark business which was
-acted in my house last night?"
-
-"If you can call upon me at my Baker Street rooms to-morrow
-morning between nine and ten I shall be happy to do what I can to
-make it clearer. I understand that you give me carte blanche to
-act for you, provided only that I get back the gems, and that you
-place no limit on the sum I may draw."
-
-"I would give my fortune to have them back."
-
-"Very good. I shall look into the matter between this and then.
-Good-bye; it is just possible that I may have to come over here
-again before evening."
-
-It was obvious to me that my companion's mind was now made up
-about the case, although what his conclusions were was more than
-I could even dimly imagine. Several times during our homeward
-journey I endeavoured to sound him upon the point, but he always
-glided away to some other topic, until at last I gave it over in
-despair. It was not yet three when we found ourselves in our
-rooms once more. He hurried to his chamber and was down again in
-a few minutes dressed as a common loafer. With his collar turned
-up, his shiny, seedy coat, his red cravat, and his worn boots, he
-was a perfect sample of the class.
-
-"I think that this should do," said he, glancing into the glass
-above the fireplace. "I only wish that you could come with me,
-Watson, but I fear that it won't do. I may be on the trail in
-this matter, or I may be following a will-o'-the-wisp, but I
-shall soon know which it is. I hope that I may be back in a few
-hours." He cut a slice of beef from the joint upon the sideboard,
-sandwiched it between two rounds of bread, and thrusting this
-rude meal into his pocket he started off upon his expedition.
-
-I had just finished my tea when he returned, evidently in
-excellent spirits, swinging an old elastic-sided boot in his
-hand. He chucked it down into a corner and helped himself to a
-cup of tea.
-
-"I only looked in as I passed," said he. "I am going right on."
-
-"Where to?"
-
-"Oh, to the other side of the West End. It may be some time
-before I get back. Don't wait up for me in case I should be
-late."
-
-"How are you getting on?"
-
-"Oh, so so. Nothing to complain of. I have been out to Streatham
-since I saw you last, but I did not call at the house. It is a
-very sweet little problem, and I would not have missed it for a
-good deal. However, I must not sit gossiping here, but must get
-these disreputable clothes off and return to my highly
-respectable self."
-
-I could see by his manner that he had stronger reasons for
-satisfaction than his words alone would imply. His eyes twinkled,
-and there was even a touch of colour upon his sallow cheeks. He
-hastened upstairs, and a few minutes later I heard the slam of
-the hall door, which told me that he was off once more upon his
-congenial hunt.
-
-I waited until midnight, but there was no sign of his return, so
-I retired to my room. It was no uncommon thing for him to be away
-for days and nights on end when he was hot upon a scent, so that
-his lateness caused me no surprise. I do not know at what hour he
-came in, but when I came down to breakfast in the morning there
-he was with a cup of coffee in one hand and the paper in the
-other, as fresh and trim as possible.
-
-"You will excuse my beginning without you, Watson," said he, "but
-you remember that our client has rather an early appointment this
-morning."
-
-"Why, it is after nine now," I answered. "I should not be
-surprised if that were he. I thought I heard a ring."
-
-It was, indeed, our friend the financier. I was shocked by the
-change which had come over him, for his face which was naturally
-of a broad and massive mould, was now pinched and fallen in,
-while his hair seemed to me at least a shade whiter. He entered
-with a weariness and lethargy which was even more painful than
-his violence of the morning before, and he dropped heavily into
-the armchair which I pushed forward for him.
-
-"I do not know what I have done to be so severely tried," said
-he. "Only two days ago I was a happy and prosperous man, without
-a care in the world. Now I am left to a lonely and dishonoured
-age. One sorrow comes close upon the heels of another. My niece,
-Mary, has deserted me."
-
-"Deserted you?"
-
-"Yes. Her bed this morning had not been slept in, her room was
-empty, and a note for me lay upon the hall table. I had said to
-her last night, in sorrow and not in anger, that if she had
-married my boy all might have been well with him. Perhaps it was
-thoughtless of me to say so. It is to that remark that she refers
-in this note:
-
-"'MY DEAREST UNCLE:--I feel that I have brought trouble upon you,
-and that if I had acted differently this terrible misfortune
-might never have occurred. I cannot, with this thought in my
-mind, ever again be happy under your roof, and I feel that I must
-leave you forever. Do not worry about my future, for that is
-provided for; and, above all, do not search for me, for it will
-be fruitless labour and an ill-service to me. In life or in
-death, I am ever your loving,--MARY.'
-
-"What could she mean by that note, Mr. Holmes? Do you think it
-points to suicide?"
-
-"No, no, nothing of the kind. It is perhaps the best possible
-solution. I trust, Mr. Holder, that you are nearing the end of
-your troubles."
-
-"Ha! You say so! You have heard something, Mr. Holmes; you have
-learned something! Where are the gems?"
-
-"You would not think 1000 pounds apiece an excessive sum for
-them?"
-
-"I would pay ten."
-
-"That would be unnecessary. Three thousand will cover the matter.
-And there is a little reward, I fancy. Have you your check-book?
-Here is a pen. Better make it out for 4000 pounds."
-
-With a dazed face the banker made out the required check. Holmes
-walked over to his desk, took out a little triangular piece of
-gold with three gems in it, and threw it down upon the table.
-
-With a shriek of joy our client clutched it up.
-
-"You have it!" he gasped. "I am saved! I am saved!"
-
-The reaction of joy was as passionate as his grief had been, and
-he hugged his recovered gems to his bosom.
-
-"There is one other thing you owe, Mr. Holder," said Sherlock
-Holmes rather sternly.
-
-"Owe!" He caught up a pen. "Name the sum, and I will pay it."
-
-"No, the debt is not to me. You owe a very humble apology to that
-noble lad, your son, who has carried himself in this matter as I
-should be proud to see my own son do, should I ever chance to
-have one."
-
-"Then it was not Arthur who took them?"
-
-"I told you yesterday, and I repeat to-day, that it was not."
-
-"You are sure of it! Then let us hurry to him at once to let him
-know that the truth is known."
-
-"He knows it already. When I had cleared it all up I had an
-interview with him, and finding that he would not tell me the
-story, I told it to him, on which he had to confess that I was
-right and to add the very few details which were not yet quite
-clear to me. Your news of this morning, however, may open his
-lips."
-
-"For heaven's sake, tell me, then, what is this extraordinary
-mystery!"
-
-"I will do so, and I will show you the steps by which I reached
-it. And let me say to you, first, that which it is hardest for me
-to say and for you to hear: there has been an understanding
-between Sir George Burnwell and your niece Mary. They have now
-fled together."
-
-"My Mary? Impossible!"
-
-"It is unfortunately more than possible; it is certain. Neither
-you nor your son knew the true character of this man when you
-admitted him into your family circle. He is one of the most
-dangerous men in England--a ruined gambler, an absolutely
-desperate villain, a man without heart or conscience. Your niece
-knew nothing of such men. When he breathed his vows to her, as he
-had done to a hundred before her, she flattered herself that she
-alone had touched his heart. The devil knows best what he said,
-but at least she became his tool and was in the habit of seeing
-him nearly every evening."
-
-"I cannot, and I will not, believe it!" cried the banker with an
-ashen face.
-
-"I will tell you, then, what occurred in your house last night.
-Your niece, when you had, as she thought, gone to your room,
-slipped down and talked to her lover through the window which
-leads into the stable lane. His footmarks had pressed right
-through the snow, so long had he stood there. She told him of the
-coronet. His wicked lust for gold kindled at the news, and he
-bent her to his will. I have no doubt that she loved you, but
-there are women in whom the love of a lover extinguishes all
-other loves, and I think that she must have been one. She had
-hardly listened to his instructions when she saw you coming
-downstairs, on which she closed the window rapidly and told you
-about one of the servants' escapade with her wooden-legged lover,
-which was all perfectly true.
-
-"Your boy, Arthur, went to bed after his interview with you but
-he slept badly on account of his uneasiness about his club debts.
-In the middle of the night he heard a soft tread pass his door,
-so he rose and, looking out, was surprised to see his cousin
-walking very stealthily along the passage until she disappeared
-into your dressing-room. Petrified with astonishment, the lad
-slipped on some clothes and waited there in the dark to see what
-would come of this strange affair. Presently she emerged from the
-room again, and in the light of the passage-lamp your son saw
-that she carried the precious coronet in her hands. She passed
-down the stairs, and he, thrilling with horror, ran along and
-slipped behind the curtain near your door, whence he could see
-what passed in the hall beneath. He saw her stealthily open the
-window, hand out the coronet to someone in the gloom, and then
-closing it once more hurry back to her room, passing quite close
-to where he stood hid behind the curtain.
-
-"As long as she was on the scene he could not take any action
-without a horrible exposure of the woman whom he loved. But the
-instant that she was gone he realised how crushing a misfortune
-this would be for you, and how all-important it was to set it
-right. He rushed down, just as he was, in his bare feet, opened
-the window, sprang out into the snow, and ran down the lane,
-where he could see a dark figure in the moonlight. Sir George
-Burnwell tried to get away, but Arthur caught him, and there was
-a struggle between them, your lad tugging at one side of the
-coronet, and his opponent at the other. In the scuffle, your son
-struck Sir George and cut him over the eye. Then something
-suddenly snapped, and your son, finding that he had the coronet
-in his hands, rushed back, closed the window, ascended to your
-room, and had just observed that the coronet had been twisted in
-the struggle and was endeavouring to straighten it when you
-appeared upon the scene."
-
-"Is it possible?" gasped the banker.
-
-"You then roused his anger by calling him names at a moment when
-he felt that he had deserved your warmest thanks. He could not
-explain the true state of affairs without betraying one who
-certainly deserved little enough consideration at his hands. He
-took the more chivalrous view, however, and preserved her
-secret."
-
-"And that was why she shrieked and fainted when she saw the
-coronet," cried Mr. Holder. "Oh, my God! what a blind fool I have
-been! And his asking to be allowed to go out for five minutes!
-The dear fellow wanted to see if the missing piece were at the
-scene of the struggle. How cruelly I have misjudged him!"
-
-"When I arrived at the house," continued Holmes, "I at once went
-very carefully round it to observe if there were any traces in
-the snow which might help me. I knew that none had fallen since
-the evening before, and also that there had been a strong frost
-to preserve impressions. I passed along the tradesmen's path, but
-found it all trampled down and indistinguishable. Just beyond it,
-however, at the far side of the kitchen door, a woman had stood
-and talked with a man, whose round impressions on one side showed
-that he had a wooden leg. I could even tell that they had been
-disturbed, for the woman had run back swiftly to the door, as was
-shown by the deep toe and light heel marks, while Wooden-leg had
-waited a little, and then had gone away. I thought at the time
-that this might be the maid and her sweetheart, of whom you had
-already spoken to me, and inquiry showed it was so. I passed
-round the garden without seeing anything more than random tracks,
-which I took to be the police; but when I got into the stable
-lane a very long and complex story was written in the snow in
-front of me.
-
-"There was a double line of tracks of a booted man, and a second
-double line which I saw with delight belonged to a man with naked
-feet. I was at once convinced from what you had told me that the
-latter was your son. The first had walked both ways, but the
-other had run swiftly, and as his tread was marked in places over
-the depression of the boot, it was obvious that he had passed
-after the other. I followed them up and found they led to the
-hall window, where Boots had worn all the snow away while
-waiting. Then I walked to the other end, which was a hundred
-yards or more down the lane. I saw where Boots had faced round,
-where the snow was cut up as though there had been a struggle,
-and, finally, where a few drops of blood had fallen, to show me
-that I was not mistaken. Boots had then run down the lane, and
-another little smudge of blood showed that it was he who had been
-hurt. When he came to the highroad at the other end, I found that
-the pavement had been cleared, so there was an end to that clue.
-
-"On entering the house, however, I examined, as you remember, the
-sill and framework of the hall window with my lens, and I could
-at once see that someone had passed out. I could distinguish the
-outline of an instep where the wet foot had been placed in coming
-in. I was then beginning to be able to form an opinion as to what
-had occurred. A man had waited outside the window; someone had
-brought the gems; the deed had been overseen by your son; he had
-pursued the thief; had struggled with him; they had each tugged
-at the coronet, their united strength causing injuries which
-neither alone could have effected. He had returned with the
-prize, but had left a fragment in the grasp of his opponent. So
-far I was clear. The question now was, who was the man and who
-was it brought him the coronet?
-
-"It is an old maxim of mine that when you have excluded the
-impossible, whatever remains, however improbable, must be the
-truth. Now, I knew that it was not you who had brought it down,
-so there only remained your niece and the maids. But if it were
-the maids, why should your son allow himself to be accused in
-their place? There could be no possible reason. As he loved his
-cousin, however, there was an excellent explanation why he should
-retain her secret--the more so as the secret was a disgraceful
-one. When I remembered that you had seen her at that window, and
-how she had fainted on seeing the coronet again, my conjecture
-became a certainty.
-
-"And who could it be who was her confederate? A lover evidently,
-for who else could outweigh the love and gratitude which she must
-feel to you? I knew that you went out little, and that your
-circle of friends was a very limited one. But among them was Sir
-George Burnwell. I had heard of him before as being a man of evil
-reputation among women. It must have been he who wore those boots
-and retained the missing gems. Even though he knew that Arthur
-had discovered him, he might still flatter himself that he was
-safe, for the lad could not say a word without compromising his
-own family.
-
-"Well, your own good sense will suggest what measures I took
-next. I went in the shape of a loafer to Sir George's house,
-managed to pick up an acquaintance with his valet, learned that
-his master had cut his head the night before, and, finally, at
-the expense of six shillings, made all sure by buying a pair of
-his cast-off shoes. With these I journeyed down to Streatham and
-saw that they exactly fitted the tracks."
-
-"I saw an ill-dressed vagabond in the lane yesterday evening,"
-said Mr. Holder.
-
-"Precisely. It was I. I found that I had my man, so I came home
-and changed my clothes. It was a delicate part which I had to
-play then, for I saw that a prosecution must be avoided to avert
-scandal, and I knew that so astute a villain would see that our
-hands were tied in the matter. I went and saw him. At first, of
-course, he denied everything. But when I gave him every
-particular that had occurred, he tried to bluster and took down a
-life-preserver from the wall. I knew my man, however, and I
-clapped a pistol to his head before he could strike. Then he
-became a little more reasonable. I told him that we would give
-him a price for the stones he held--1000 pounds apiece. That
-brought out the first signs of grief that he had shown. 'Why,
-dash it all!' said he, 'I've let them go at six hundred for the
-three!' I soon managed to get the address of the receiver who had
-them, on promising him that there would be no prosecution. Off I
-set to him, and after much chaffering I got our stones at 1000
-pounds apiece. Then I looked in upon your son, told him that all
-was right, and eventually got to my bed about two o'clock, after
-what I may call a really hard day's work."
-
-"A day which has saved England from a great public scandal," said
-the banker, rising. "Sir, I cannot find words to thank you, but
-you shall not find me ungrateful for what you have done. Your
-skill has indeed exceeded all that I have heard of it. And now I
-must fly to my dear boy to apologise to him for the wrong which I
-have done him. As to what you tell me of poor Mary, it goes to my
-very heart. Not even your skill can inform me where she is now."
-
-"I think that we may safely say," returned Holmes, "that she is
-wherever Sir George Burnwell is. It is equally certain, too, that
-whatever her sins are, they will soon receive a more than
-sufficient punishment."
-
-
-
-XII. THE ADVENTURE OF THE COPPER BEECHES
-
-"To the man who loves art for its own sake," remarked Sherlock
-Holmes, tossing aside the advertisement sheet of the Daily
-Telegraph, "it is frequently in its least important and lowliest
-manifestations that the keenest pleasure is to be derived. It is
-pleasant to me to observe, Watson, that you have so far grasped
-this truth that in these little records of our cases which you
-have been good enough to draw up, and, I am bound to say,
-occasionally to embellish, you have given prominence not so much
-to the many causes célèbres and sensational trials in which I
-have figured but rather to those incidents which may have been
-trivial in themselves, but which have given room for those
-faculties of deduction and of logical synthesis which I have made
-my special province."
-
-"And yet," said I, smiling, "I cannot quite hold myself absolved
-from the charge of sensationalism which has been urged against my
-records."
-
-"You have erred, perhaps," he observed, taking up a glowing
-cinder with the tongs and lighting with it the long cherry-wood
-pipe which was wont to replace his clay when he was in a
-disputatious rather than a meditative mood--"you have erred
-perhaps in attempting to put colour and life into each of your
-statements instead of confining yourself to the task of placing
-upon record that severe reasoning from cause to effect which is
-really the only notable feature about the thing."
-
-"It seems to me that I have done you full justice in the matter,"
-I remarked with some coldness, for I was repelled by the egotism
-which I had more than once observed to be a strong factor in my
-friend's singular character.
-
-"No, it is not selfishness or conceit," said he, answering, as
-was his wont, my thoughts rather than my words. "If I claim full
-justice for my art, it is because it is an impersonal thing--a
-thing beyond myself. Crime is common. Logic is rare. Therefore it
-is upon the logic rather than upon the crime that you should
-dwell. You have degraded what should have been a course of
-lectures into a series of tales."
-
-It was a cold morning of the early spring, and we sat after
-breakfast on either side of a cheery fire in the old room at
-Baker Street. A thick fog rolled down between the lines of
-dun-coloured houses, and the opposing windows loomed like dark,
-shapeless blurs through the heavy yellow wreaths. Our gas was lit
-and shone on the white cloth and glimmer of china and metal, for
-the table had not been cleared yet. Sherlock Holmes had been
-silent all the morning, dipping continuously into the
-advertisement columns of a succession of papers until at last,
-having apparently given up his search, he had emerged in no very
-sweet temper to lecture me upon my literary shortcomings.
-
-"At the same time," he remarked after a pause, during which he
-had sat puffing at his long pipe and gazing down into the fire,
-"you can hardly be open to a charge of sensationalism, for out of
-these cases which you have been so kind as to interest yourself
-in, a fair proportion do not treat of crime, in its legal sense,
-at all. The small matter in which I endeavoured to help the King
-of Bohemia, the singular experience of Miss Mary Sutherland, the
-problem connected with the man with the twisted lip, and the
-incident of the noble bachelor, were all matters which are
-outside the pale of the law. But in avoiding the sensational, I
-fear that you may have bordered on the trivial."
-
-"The end may have been so," I answered, "but the methods I hold
-to have been novel and of interest."
-
-"Pshaw, my dear fellow, what do the public, the great unobservant
-public, who could hardly tell a weaver by his tooth or a
-compositor by his left thumb, care about the finer shades of
-analysis and deduction! But, indeed, if you are trivial, I cannot
-blame you, for the days of the great cases are past. Man, or at
-least criminal man, has lost all enterprise and originality. As
-to my own little practice, it seems to be degenerating into an
-agency for recovering lost lead pencils and giving advice to
-young ladies from boarding-schools. I think that I have touched
-bottom at last, however. This note I had this morning marks my
-zero-point, I fancy. Read it!" He tossed a crumpled letter across
-to me.
-
-It was dated from Montague Place upon the preceding evening, and
-ran thus:
-
-"DEAR MR. HOLMES:--I am very anxious to consult you as to whether
-I should or should not accept a situation which has been offered
-to me as governess. I shall call at half-past ten to-morrow if I
-do not inconvenience you. Yours faithfully,
- "VIOLET HUNTER."
-
-"Do you know the young lady?" I asked.
-
-"Not I."
-
-"It is half-past ten now."
-
-"Yes, and I have no doubt that is her ring."
-
-"It may turn out to be of more interest than you think. You
-remember that the affair of the blue carbuncle, which appeared to
-be a mere whim at first, developed into a serious investigation.
-It may be so in this case, also."
-
-"Well, let us hope so. But our doubts will very soon be solved,
-for here, unless I am much mistaken, is the person in question."
-
-As he spoke the door opened and a young lady entered the room.
-She was plainly but neatly dressed, with a bright, quick face,
-freckled like a plover's egg, and with the brisk manner of a
-woman who has had her own way to make in the world.
-
-"You will excuse my troubling you, I am sure," said she, as my
-companion rose to greet her, "but I have had a very strange
-experience, and as I have no parents or relations of any sort
-from whom I could ask advice, I thought that perhaps you would be
-kind enough to tell me what I should do."
-
-"Pray take a seat, Miss Hunter. I shall be happy to do anything
-that I can to serve you."
-
-I could see that Holmes was favourably impressed by the manner
-and speech of his new client. He looked her over in his searching
-fashion, and then composed himself, with his lids drooping and
-his finger-tips together, to listen to her story.
-
-"I have been a governess for five years," said she, "in the
-family of Colonel Spence Munro, but two months ago the colonel
-received an appointment at Halifax, in Nova Scotia, and took his
-children over to America with him, so that I found myself without
-a situation. I advertised, and I answered advertisements, but
-without success. At last the little money which I had saved began
-to run short, and I was at my wit's end as to what I should do.
-
-"There is a well-known agency for governesses in the West End
-called Westaway's, and there I used to call about once a week in
-order to see whether anything had turned up which might suit me.
-Westaway was the name of the founder of the business, but it is
-really managed by Miss Stoper. She sits in her own little office,
-and the ladies who are seeking employment wait in an anteroom,
-and are then shown in one by one, when she consults her ledgers
-and sees whether she has anything which would suit them.
-
-"Well, when I called last week I was shown into the little office
-as usual, but I found that Miss Stoper was not alone. A
-prodigiously stout man with a very smiling face and a great heavy
-chin which rolled down in fold upon fold over his throat sat at
-her elbow with a pair of glasses on his nose, looking very
-earnestly at the ladies who entered. As I came in he gave quite a
-jump in his chair and turned quickly to Miss Stoper.
-
-"'That will do,' said he; 'I could not ask for anything better.
-Capital! capital!' He seemed quite enthusiastic and rubbed his
-hands together in the most genial fashion. He was such a
-comfortable-looking man that it was quite a pleasure to look at
-him.
-
-"'You are looking for a situation, miss?' he asked.
-
-"'Yes, sir.'
-
-"'As governess?'
-
-"'Yes, sir.'
-
-"'And what salary do you ask?'
-
-"'I had 4 pounds a month in my last place with Colonel Spence
-Munro.'
-
-"'Oh, tut, tut! sweating--rank sweating!' he cried, throwing his
-fat hands out into the air like a man who is in a boiling
-passion. 'How could anyone offer so pitiful a sum to a lady with
-such attractions and accomplishments?'
-
-"'My accomplishments, sir, may be less than you imagine,' said I.
-'A little French, a little German, music, and drawing--'
-
-"'Tut, tut!' he cried. 'This is all quite beside the question.
-The point is, have you or have you not the bearing and deportment
-of a lady? There it is in a nutshell. If you have not, you are
-not fitted for the rearing of a child who may some day play a
-considerable part in the history of the country. But if you have
-why, then, how could any gentleman ask you to condescend to
-accept anything under the three figures? Your salary with me,
-madam, would commence at 100 pounds a year.'
-
-"You may imagine, Mr. Holmes, that to me, destitute as I was,
-such an offer seemed almost too good to be true. The gentleman,
-however, seeing perhaps the look of incredulity upon my face,
-opened a pocket-book and took out a note.
-
-"'It is also my custom,' said he, smiling in the most pleasant
-fashion until his eyes were just two little shining slits amid
-the white creases of his face, 'to advance to my young ladies
-half their salary beforehand, so that they may meet any little
-expenses of their journey and their wardrobe.'
-
-"It seemed to me that I had never met so fascinating and so
-thoughtful a man. As I was already in debt to my tradesmen, the
-advance was a great convenience, and yet there was something
-unnatural about the whole transaction which made me wish to know
-a little more before I quite committed myself.
-
-"'May I ask where you live, sir?' said I.
-
-"'Hampshire. Charming rural place. The Copper Beeches, five miles
-on the far side of Winchester. It is the most lovely country, my
-dear young lady, and the dearest old country-house.'
-
-"'And my duties, sir? I should be glad to know what they would
-be.'
-
-"'One child--one dear little romper just six years old. Oh, if
-you could see him killing cockroaches with a slipper! Smack!
-smack! smack! Three gone before you could wink!' He leaned back
-in his chair and laughed his eyes into his head again.
-
-"I was a little startled at the nature of the child's amusement,
-but the father's laughter made me think that perhaps he was
-joking.
-
-"'My sole duties, then,' I asked, 'are to take charge of a single
-child?'
-
-"'No, no, not the sole, not the sole, my dear young lady,' he
-cried. 'Your duty would be, as I am sure your good sense would
-suggest, to obey any little commands my wife might give, provided
-always that they were such commands as a lady might with
-propriety obey. You see no difficulty, heh?'
-
-"'I should be happy to make myself useful.'
-
-"'Quite so. In dress now, for example. We are faddy people, you
-know--faddy but kind-hearted. If you were asked to wear any dress
-which we might give you, you would not object to our little whim.
-Heh?'
-
-"'No,' said I, considerably astonished at his words.
-
-"'Or to sit here, or sit there, that would not be offensive to
-you?'
-
-"'Oh, no.'
-
-"'Or to cut your hair quite short before you come to us?'
-
-"I could hardly believe my ears. As you may observe, Mr. Holmes,
-my hair is somewhat luxuriant, and of a rather peculiar tint of
-chestnut. It has been considered artistic. I could not dream of
-sacrificing it in this offhand fashion.
-
-"'I am afraid that that is quite impossible,' said I. He had been
-watching me eagerly out of his small eyes, and I could see a
-shadow pass over his face as I spoke.
-
-"'I am afraid that it is quite essential,' said he. 'It is a
-little fancy of my wife's, and ladies' fancies, you know, madam,
-ladies' fancies must be consulted. And so you won't cut your
-hair?'
-
-"'No, sir, I really could not,' I answered firmly.
-
-"'Ah, very well; then that quite settles the matter. It is a
-pity, because in other respects you would really have done very
-nicely. In that case, Miss Stoper, I had best inspect a few more
-of your young ladies.'
-
-"The manageress had sat all this while busy with her papers
-without a word to either of us, but she glanced at me now with so
-much annoyance upon her face that I could not help suspecting
-that she had lost a handsome commission through my refusal.
-
-"'Do you desire your name to be kept upon the books?' she asked.
-
-"'If you please, Miss Stoper.'
-
-"'Well, really, it seems rather useless, since you refuse the
-most excellent offers in this fashion,' said she sharply. 'You
-can hardly expect us to exert ourselves to find another such
-opening for you. Good-day to you, Miss Hunter.' She struck a gong
-upon the table, and I was shown out by the page.
-
-"Well, Mr. Holmes, when I got back to my lodgings and found
-little enough in the cupboard, and two or three bills upon the
-table, I began to ask myself whether I had not done a very
-foolish thing. After all, if these people had strange fads and
-expected obedience on the most extraordinary matters, they were
-at least ready to pay for their eccentricity. Very few
-governesses in England are getting 100 pounds a year. Besides,
-what use was my hair to me? Many people are improved by wearing
-it short and perhaps I should be among the number. Next day I was
-inclined to think that I had made a mistake, and by the day after
-I was sure of it. I had almost overcome my pride so far as to go
-back to the agency and inquire whether the place was still open
-when I received this letter from the gentleman himself. I have it
-here and I will read it to you:
-
- "'The Copper Beeches, near Winchester.
-"'DEAR MISS HUNTER:--Miss Stoper has very kindly given me your
-address, and I write from here to ask you whether you have
-reconsidered your decision. My wife is very anxious that you
-should come, for she has been much attracted by my description of
-you. We are willing to give 30 pounds a quarter, or 120 pounds a
-year, so as to recompense you for any little inconvenience which
-our fads may cause you. They are not very exacting, after all. My
-wife is fond of a particular shade of electric blue and would
-like you to wear such a dress indoors in the morning. You need
-not, however, go to the expense of purchasing one, as we have one
-belonging to my dear daughter Alice (now in Philadelphia), which
-would, I should think, fit you very well. Then, as to sitting
-here or there, or amusing yourself in any manner indicated, that
-need cause you no inconvenience. As regards your hair, it is no
-doubt a pity, especially as I could not help remarking its beauty
-during our short interview, but I am afraid that I must remain
-firm upon this point, and I only hope that the increased salary
-may recompense you for the loss. Your duties, as far as the child
-is concerned, are very light. Now do try to come, and I shall
-meet you with the dog-cart at Winchester. Let me know your train.
-Yours faithfully, JEPHRO RUCASTLE.'
-
-"That is the letter which I have just received, Mr. Holmes, and
-my mind is made up that I will accept it. I thought, however,
-that before taking the final step I should like to submit the
-whole matter to your consideration."
-
-"Well, Miss Hunter, if your mind is made up, that settles the
-question," said Holmes, smiling.
-
-"But you would not advise me to refuse?"
-
-"I confess that it is not the situation which I should like to
-see a sister of mine apply for."
-
-"What is the meaning of it all, Mr. Holmes?"
-
-"Ah, I have no data. I cannot tell. Perhaps you have yourself
-formed some opinion?"
-
-"Well, there seems to me to be only one possible solution. Mr.
-Rucastle seemed to be a very kind, good-natured man. Is it not
-possible that his wife is a lunatic, that he desires to keep the
-matter quiet for fear she should be taken to an asylum, and that
-he humours her fancies in every way in order to prevent an
-outbreak?"
-
-"That is a possible solution--in fact, as matters stand, it is
-the most probable one. But in any case it does not seem to be a
-nice household for a young lady."
-
-"But the money, Mr. Holmes, the money!"
-
-"Well, yes, of course the pay is good--too good. That is what
-makes me uneasy. Why should they give you 120 pounds a year, when
-they could have their pick for 40 pounds? There must be some
-strong reason behind."
-
-"I thought that if I told you the circumstances you would
-understand afterwards if I wanted your help. I should feel so
-much stronger if I felt that you were at the back of me."
-
-"Oh, you may carry that feeling away with you. I assure you that
-your little problem promises to be the most interesting which has
-come my way for some months. There is something distinctly novel
-about some of the features. If you should find yourself in doubt
-or in danger--"
-
-"Danger! What danger do you foresee?"
-
-Holmes shook his head gravely. "It would cease to be a danger if
-we could define it," said he. "But at any time, day or night, a
-telegram would bring me down to your help."
-
-"That is enough." She rose briskly from her chair with the
-anxiety all swept from her face. "I shall go down to Hampshire
-quite easy in my mind now. I shall write to Mr. Rucastle at once,
-sacrifice my poor hair to-night, and start for Winchester
-to-morrow." With a few grateful words to Holmes she bade us both
-good-night and bustled off upon her way.
-
-"At least," said I as we heard her quick, firm steps descending
-the stairs, "she seems to be a young lady who is very well able
-to take care of herself."
-
-"And she would need to be," said Holmes gravely. "I am much
-mistaken if we do not hear from her before many days are past."
-
-It was not very long before my friend's prediction was fulfilled.
-A fortnight went by, during which I frequently found my thoughts
-turning in her direction and wondering what strange side-alley of
-human experience this lonely woman had strayed into. The unusual
-salary, the curious conditions, the light duties, all pointed to
-something abnormal, though whether a fad or a plot, or whether
-the man were a philanthropist or a villain, it was quite beyond
-my powers to determine. As to Holmes, I observed that he sat
-frequently for half an hour on end, with knitted brows and an
-abstracted air, but he swept the matter away with a wave of his
-hand when I mentioned it. "Data! data! data!" he cried
-impatiently. "I can't make bricks without clay." And yet he would
-always wind up by muttering that no sister of his should ever
-have accepted such a situation.
-
-The telegram which we eventually received came late one night
-just as I was thinking of turning in and Holmes was settling down
-to one of those all-night chemical researches which he frequently
-indulged in, when I would leave him stooping over a retort and a
-test-tube at night and find him in the same position when I came
-down to breakfast in the morning. He opened the yellow envelope,
-and then, glancing at the message, threw it across to me.
-
-"Just look up the trains in Bradshaw," said he, and turned back
-to his chemical studies.
-
-The summons was a brief and urgent one.
-
-"Please be at the Black Swan Hotel at Winchester at midday
-to-morrow," it said. "Do come! I am at my wit's end. HUNTER."
-
-"Will you come with me?" asked Holmes, glancing up.
-
-"I should wish to."
-
-"Just look it up, then."
-
-"There is a train at half-past nine," said I, glancing over my
-Bradshaw. "It is due at Winchester at 11:30."
-
-"That will do very nicely. Then perhaps I had better postpone my
-analysis of the acetones, as we may need to be at our best in the
-morning."
-
-By eleven o'clock the next day we were well upon our way to the
-old English capital. Holmes had been buried in the morning papers
-all the way down, but after we had passed the Hampshire border he
-threw them down and began to admire the scenery. It was an ideal
-spring day, a light blue sky, flecked with little fleecy white
-clouds drifting across from west to east. The sun was shining
-very brightly, and yet there was an exhilarating nip in the air,
-which set an edge to a man's energy. All over the countryside,
-away to the rolling hills around Aldershot, the little red and
-grey roofs of the farm-steadings peeped out from amid the light
-green of the new foliage.
-
-"Are they not fresh and beautiful?" I cried with all the
-enthusiasm of a man fresh from the fogs of Baker Street.
-
-But Holmes shook his head gravely.
-
-"Do you know, Watson," said he, "that it is one of the curses of
-a mind with a turn like mine that I must look at everything with
-reference to my own special subject. You look at these scattered
-houses, and you are impressed by their beauty. I look at them,
-and the only thought which comes to me is a feeling of their
-isolation and of the impunity with which crime may be committed
-there."
-
-"Good heavens!" I cried. "Who would associate crime with these
-dear old homesteads?"
-
-"They always fill me with a certain horror. It is my belief,
-Watson, founded upon my experience, that the lowest and vilest
-alleys in London do not present a more dreadful record of sin
-than does the smiling and beautiful countryside."
-
-"You horrify me!"
-
-"But the reason is very obvious. The pressure of public opinion
-can do in the town what the law cannot accomplish. There is no
-lane so vile that the scream of a tortured child, or the thud of
-a drunkard's blow, does not beget sympathy and indignation among
-the neighbours, and then the whole machinery of justice is ever
-so close that a word of complaint can set it going, and there is
-but a step between the crime and the dock. But look at these
-lonely houses, each in its own fields, filled for the most part
-with poor ignorant folk who know little of the law. Think of the
-deeds of hellish cruelty, the hidden wickedness which may go on,
-year in, year out, in such places, and none the wiser. Had this
-lady who appeals to us for help gone to live in Winchester, I
-should never have had a fear for her. It is the five miles of
-country which makes the danger. Still, it is clear that she is
-not personally threatened."
-
-"No. If she can come to Winchester to meet us she can get away."
-
-"Quite so. She has her freedom."
-
-"What CAN be the matter, then? Can you suggest no explanation?"
-
-"I have devised seven separate explanations, each of which would
-cover the facts as far as we know them. But which of these is
-correct can only be determined by the fresh information which we
-shall no doubt find waiting for us. Well, there is the tower of
-the cathedral, and we shall soon learn all that Miss Hunter has
-to tell."
-
-The Black Swan is an inn of repute in the High Street, at no
-distance from the station, and there we found the young lady
-waiting for us. She had engaged a sitting-room, and our lunch
-awaited us upon the table.
-
-"I am so delighted that you have come," she said earnestly. "It
-is so very kind of you both; but indeed I do not know what I
-should do. Your advice will be altogether invaluable to me."
-
-"Pray tell us what has happened to you."
-
-"I will do so, and I must be quick, for I have promised Mr.
-Rucastle to be back before three. I got his leave to come into
-town this morning, though he little knew for what purpose."
-
-"Let us have everything in its due order." Holmes thrust his long
-thin legs out towards the fire and composed himself to listen.
-
-"In the first place, I may say that I have met, on the whole,
-with no actual ill-treatment from Mr. and Mrs. Rucastle. It is
-only fair to them to say that. But I cannot understand them, and
-I am not easy in my mind about them."
-
-"What can you not understand?"
-
-"Their reasons for their conduct. But you shall have it all just
-as it occurred. When I came down, Mr. Rucastle met me here and
-drove me in his dog-cart to the Copper Beeches. It is, as he
-said, beautifully situated, but it is not beautiful in itself,
-for it is a large square block of a house, whitewashed, but all
-stained and streaked with damp and bad weather. There are grounds
-round it, woods on three sides, and on the fourth a field which
-slopes down to the Southampton highroad, which curves past about
-a hundred yards from the front door. This ground in front belongs
-to the house, but the woods all round are part of Lord
-Southerton's preserves. A clump of copper beeches immediately in
-front of the hall door has given its name to the place.
-
-"I was driven over by my employer, who was as amiable as ever,
-and was introduced by him that evening to his wife and the child.
-There was no truth, Mr. Holmes, in the conjecture which seemed to
-us to be probable in your rooms at Baker Street. Mrs. Rucastle is
-not mad. I found her to be a silent, pale-faced woman, much
-younger than her husband, not more than thirty, I should think,
-while he can hardly be less than forty-five. From their
-conversation I have gathered that they have been married about
-seven years, that he was a widower, and that his only child by
-the first wife was the daughter who has gone to Philadelphia. Mr.
-Rucastle told me in private that the reason why she had left them
-was that she had an unreasoning aversion to her stepmother. As
-the daughter could not have been less than twenty, I can quite
-imagine that her position must have been uncomfortable with her
-father's young wife.
-
-"Mrs. Rucastle seemed to me to be colourless in mind as well as
-in feature. She impressed me neither favourably nor the reverse.
-She was a nonentity. It was easy to see that she was passionately
-devoted both to her husband and to her little son. Her light grey
-eyes wandered continually from one to the other, noting every
-little want and forestalling it if possible. He was kind to her
-also in his bluff, boisterous fashion, and on the whole they
-seemed to be a happy couple. And yet she had some secret sorrow,
-this woman. She would often be lost in deep thought, with the
-saddest look upon her face. More than once I have surprised her
-in tears. I have thought sometimes that it was the disposition of
-her child which weighed upon her mind, for I have never met so
-utterly spoiled and so ill-natured a little creature. He is small
-for his age, with a head which is quite disproportionately large.
-His whole life appears to be spent in an alternation between
-savage fits of passion and gloomy intervals of sulking. Giving
-pain to any creature weaker than himself seems to be his one idea
-of amusement, and he shows quite remarkable talent in planning
-the capture of mice, little birds, and insects. But I would
-rather not talk about the creature, Mr. Holmes, and, indeed, he
-has little to do with my story."
-
-"I am glad of all details," remarked my friend, "whether they
-seem to you to be relevant or not."
-
-"I shall try not to miss anything of importance. The one
-unpleasant thing about the house, which struck me at once, was
-the appearance and conduct of the servants. There are only two, a
-man and his wife. Toller, for that is his name, is a rough,
-uncouth man, with grizzled hair and whiskers, and a perpetual
-smell of drink. Twice since I have been with them he has been
-quite drunk, and yet Mr. Rucastle seemed to take no notice of it.
-His wife is a very tall and strong woman with a sour face, as
-silent as Mrs. Rucastle and much less amiable. They are a most
-unpleasant couple, but fortunately I spend most of my time in the
-nursery and my own room, which are next to each other in one
-corner of the building.
-
-"For two days after my arrival at the Copper Beeches my life was
-very quiet; on the third, Mrs. Rucastle came down just after
-breakfast and whispered something to her husband.
-
-"'Oh, yes,' said he, turning to me, 'we are very much obliged to
-you, Miss Hunter, for falling in with our whims so far as to cut
-your hair. I assure you that it has not detracted in the tiniest
-iota from your appearance. We shall now see how the electric-blue
-dress will become you. You will find it laid out upon the bed in
-your room, and if you would be so good as to put it on we should
-both be extremely obliged.'
-
-"The dress which I found waiting for me was of a peculiar shade
-of blue. It was of excellent material, a sort of beige, but it
-bore unmistakable signs of having been worn before. It could not
-have been a better fit if I had been measured for it. Both Mr.
-and Mrs. Rucastle expressed a delight at the look of it, which
-seemed quite exaggerated in its vehemence. They were waiting for
-me in the drawing-room, which is a very large room, stretching
-along the entire front of the house, with three long windows
-reaching down to the floor. A chair had been placed close to the
-central window, with its back turned towards it. In this I was
-asked to sit, and then Mr. Rucastle, walking up and down on the
-other side of the room, began to tell me a series of the funniest
-stories that I have ever listened to. You cannot imagine how
-comical he was, and I laughed until I was quite weary. Mrs.
-Rucastle, however, who has evidently no sense of humour, never so
-much as smiled, but sat with her hands in her lap, and a sad,
-anxious look upon her face. After an hour or so, Mr. Rucastle
-suddenly remarked that it was time to commence the duties of the
-day, and that I might change my dress and go to little Edward in
-the nursery.
-
-"Two days later this same performance was gone through under
-exactly similar circumstances. Again I changed my dress, again I
-sat in the window, and again I laughed very heartily at the funny
-stories of which my employer had an immense répertoire, and which
-he told inimitably. Then he handed me a yellow-backed novel, and
-moving my chair a little sideways, that my own shadow might not
-fall upon the page, he begged me to read aloud to him. I read for
-about ten minutes, beginning in the heart of a chapter, and then
-suddenly, in the middle of a sentence, he ordered me to cease and
-to change my dress.
-
-"You can easily imagine, Mr. Holmes, how curious I became as to
-what the meaning of this extraordinary performance could possibly
-be. They were always very careful, I observed, to turn my face
-away from the window, so that I became consumed with the desire
-to see what was going on behind my back. At first it seemed to be
-impossible, but I soon devised a means. My hand-mirror had been
-broken, so a happy thought seized me, and I concealed a piece of
-the glass in my handkerchief. On the next occasion, in the midst
-of my laughter, I put my handkerchief up to my eyes, and was able
-with a little management to see all that there was behind me. I
-confess that I was disappointed. There was nothing. At least that
-was my first impression. At the second glance, however, I
-perceived that there was a man standing in the Southampton Road,
-a small bearded man in a grey suit, who seemed to be looking in
-my direction. The road is an important highway, and there are
-usually people there. This man, however, was leaning against the
-railings which bordered our field and was looking earnestly up. I
-lowered my handkerchief and glanced at Mrs. Rucastle to find her
-eyes fixed upon me with a most searching gaze. She said nothing,
-but I am convinced that she had divined that I had a mirror in my
-hand and had seen what was behind me. She rose at once.
-
-"'Jephro,' said she, 'there is an impertinent fellow upon the
-road there who stares up at Miss Hunter.'
-
-"'No friend of yours, Miss Hunter?' he asked.
-
-"'No, I know no one in these parts.'
-
-"'Dear me! How very impertinent! Kindly turn round and motion to
-him to go away.'
-
-"'Surely it would be better to take no notice.'
-
-"'No, no, we should have him loitering here always. Kindly turn
-round and wave him away like that.'
-
-"I did as I was told, and at the same instant Mrs. Rucastle drew
-down the blind. That was a week ago, and from that time I have
-not sat again in the window, nor have I worn the blue dress, nor
-seen the man in the road."
-
-"Pray continue," said Holmes. "Your narrative promises to be a
-most interesting one."
-
-"You will find it rather disconnected, I fear, and there may
-prove to be little relation between the different incidents of
-which I speak. On the very first day that I was at the Copper
-Beeches, Mr. Rucastle took me to a small outhouse which stands
-near the kitchen door. As we approached it I heard the sharp
-rattling of a chain, and the sound as of a large animal moving
-about.
-
-"'Look in here!' said Mr. Rucastle, showing me a slit between two
-planks. 'Is he not a beauty?'
-
-"I looked through and was conscious of two glowing eyes, and of a
-vague figure huddled up in the darkness.
-
-"'Don't be frightened,' said my employer, laughing at the start
-which I had given. 'It's only Carlo, my mastiff. I call him mine,
-but really old Toller, my groom, is the only man who can do
-anything with him. We feed him once a day, and not too much then,
-so that he is always as keen as mustard. Toller lets him loose
-every night, and God help the trespasser whom he lays his fangs
-upon. For goodness' sake don't you ever on any pretext set your
-foot over the threshold at night, for it's as much as your life
-is worth.'
-
-"The warning was no idle one, for two nights later I happened to
-look out of my bedroom window about two o'clock in the morning.
-It was a beautiful moonlight night, and the lawn in front of the
-house was silvered over and almost as bright as day. I was
-standing, rapt in the peaceful beauty of the scene, when I was
-aware that something was moving under the shadow of the copper
-beeches. As it emerged into the moonshine I saw what it was. It
-was a giant dog, as large as a calf, tawny tinted, with hanging
-jowl, black muzzle, and huge projecting bones. It walked slowly
-across the lawn and vanished into the shadow upon the other side.
-That dreadful sentinel sent a chill to my heart which I do not
-think that any burglar could have done.
-
-"And now I have a very strange experience to tell you. I had, as
-you know, cut off my hair in London, and I had placed it in a
-great coil at the bottom of my trunk. One evening, after the
-child was in bed, I began to amuse myself by examining the
-furniture of my room and by rearranging my own little things.
-There was an old chest of drawers in the room, the two upper ones
-empty and open, the lower one locked. I had filled the first two
-with my linen, and as I had still much to pack away I was
-naturally annoyed at not having the use of the third drawer. It
-struck me that it might have been fastened by a mere oversight,
-so I took out my bunch of keys and tried to open it. The very
-first key fitted to perfection, and I drew the drawer open. There
-was only one thing in it, but I am sure that you would never
-guess what it was. It was my coil of hair.
-
-"I took it up and examined it. It was of the same peculiar tint,
-and the same thickness. But then the impossibility of the thing
-obtruded itself upon me. How could my hair have been locked in
-the drawer? With trembling hands I undid my trunk, turned out the
-contents, and drew from the bottom my own hair. I laid the two
-tresses together, and I assure you that they were identical. Was
-it not extraordinary? Puzzle as I would, I could make nothing at
-all of what it meant. I returned the strange hair to the drawer,
-and I said nothing of the matter to the Rucastles as I felt that
-I had put myself in the wrong by opening a drawer which they had
-locked.
-
-"I am naturally observant, as you may have remarked, Mr. Holmes,
-and I soon had a pretty good plan of the whole house in my head.
-There was one wing, however, which appeared not to be inhabited
-at all. A door which faced that which led into the quarters of
-the Tollers opened into this suite, but it was invariably locked.
-One day, however, as I ascended the stair, I met Mr. Rucastle
-coming out through this door, his keys in his hand, and a look on
-his face which made him a very different person to the round,
-jovial man to whom I was accustomed. His cheeks were red, his
-brow was all crinkled with anger, and the veins stood out at his
-temples with passion. He locked the door and hurried past me
-without a word or a look.
-
-"This aroused my curiosity, so when I went out for a walk in the
-grounds with my charge, I strolled round to the side from which I
-could see the windows of this part of the house. There were four
-of them in a row, three of which were simply dirty, while the
-fourth was shuttered up. They were evidently all deserted. As I
-strolled up and down, glancing at them occasionally, Mr. Rucastle
-came out to me, looking as merry and jovial as ever.
-
-"'Ah!' said he, 'you must not think me rude if I passed you
-without a word, my dear young lady. I was preoccupied with
-business matters.'
-
-"I assured him that I was not offended. 'By the way,' said I,
-'you seem to have quite a suite of spare rooms up there, and one
-of them has the shutters up.'
-
-"He looked surprised and, as it seemed to me, a little startled
-at my remark.
-
-"'Photography is one of my hobbies,' said he. 'I have made my
-dark room up there. But, dear me! what an observant young lady we
-have come upon. Who would have believed it? Who would have ever
-believed it?' He spoke in a jesting tone, but there was no jest
-in his eyes as he looked at me. I read suspicion there and
-annoyance, but no jest.
-
-"Well, Mr. Holmes, from the moment that I understood that there
-was something about that suite of rooms which I was not to know,
-I was all on fire to go over them. It was not mere curiosity,
-though I have my share of that. It was more a feeling of duty--a
-feeling that some good might come from my penetrating to this
-place. They talk of woman's instinct; perhaps it was woman's
-instinct which gave me that feeling. At any rate, it was there,
-and I was keenly on the lookout for any chance to pass the
-forbidden door.
-
-"It was only yesterday that the chance came. I may tell you that,
-besides Mr. Rucastle, both Toller and his wife find something to
-do in these deserted rooms, and I once saw him carrying a large
-black linen bag with him through the door. Recently he has been
-drinking hard, and yesterday evening he was very drunk; and when
-I came upstairs there was the key in the door. I have no doubt at
-all that he had left it there. Mr. and Mrs. Rucastle were both
-downstairs, and the child was with them, so that I had an
-admirable opportunity. I turned the key gently in the lock,
-opened the door, and slipped through.
-
-"There was a little passage in front of me, unpapered and
-uncarpeted, which turned at a right angle at the farther end.
-Round this corner were three doors in a line, the first and third
-of which were open. They each led into an empty room, dusty and
-cheerless, with two windows in the one and one in the other, so
-thick with dirt that the evening light glimmered dimly through
-them. The centre door was closed, and across the outside of it
-had been fastened one of the broad bars of an iron bed, padlocked
-at one end to a ring in the wall, and fastened at the other with
-stout cord. The door itself was locked as well, and the key was
-not there. This barricaded door corresponded clearly with the
-shuttered window outside, and yet I could see by the glimmer from
-beneath it that the room was not in darkness. Evidently there was
-a skylight which let in light from above. As I stood in the
-passage gazing at the sinister door and wondering what secret it
-might veil, I suddenly heard the sound of steps within the room
-and saw a shadow pass backward and forward against the little
-slit of dim light which shone out from under the door. A mad,
-unreasoning terror rose up in me at the sight, Mr. Holmes. My
-overstrung nerves failed me suddenly, and I turned and ran--ran
-as though some dreadful hand were behind me clutching at the
-skirt of my dress. I rushed down the passage, through the door,
-and straight into the arms of Mr. Rucastle, who was waiting
-outside.
-
-"'So,' said he, smiling, 'it was you, then. I thought that it
-must be when I saw the door open.'
-
-"'Oh, I am so frightened!' I panted.
-
-"'My dear young lady! my dear young lady!'--you cannot think how
-caressing and soothing his manner was--'and what has frightened
-you, my dear young lady?'
-
-"But his voice was just a little too coaxing. He overdid it. I
-was keenly on my guard against him.
-
-"'I was foolish enough to go into the empty wing,' I answered.
-'But it is so lonely and eerie in this dim light that I was
-frightened and ran out again. Oh, it is so dreadfully still in
-there!'
-
-"'Only that?' said he, looking at me keenly.
-
-"'Why, what did you think?' I asked.
-
-"'Why do you think that I lock this door?'
-
-"'I am sure that I do not know.'
-
-"'It is to keep people out who have no business there. Do you
-see?' He was still smiling in the most amiable manner.
-
-"'I am sure if I had known--'
-
-"'Well, then, you know now. And if you ever put your foot over
-that threshold again'--here in an instant the smile hardened into
-a grin of rage, and he glared down at me with the face of a
-demon--'I'll throw you to the mastiff.'
-
-"I was so terrified that I do not know what I did. I suppose that
-I must have rushed past him into my room. I remember nothing
-until I found myself lying on my bed trembling all over. Then I
-thought of you, Mr. Holmes. I could not live there longer without
-some advice. I was frightened of the house, of the man, of the
-woman, of the servants, even of the child. They were all horrible
-to me. If I could only bring you down all would be well. Of
-course I might have fled from the house, but my curiosity was
-almost as strong as my fears. My mind was soon made up. I would
-send you a wire. I put on my hat and cloak, went down to the
-office, which is about half a mile from the house, and then
-returned, feeling very much easier. A horrible doubt came into my
-mind as I approached the door lest the dog might be loose, but I
-remembered that Toller had drunk himself into a state of
-insensibility that evening, and I knew that he was the only one
-in the household who had any influence with the savage creature,
-or who would venture to set him free. I slipped in in safety and
-lay awake half the night in my joy at the thought of seeing you.
-I had no difficulty in getting leave to come into Winchester this
-morning, but I must be back before three o'clock, for Mr. and
-Mrs. Rucastle are going on a visit, and will be away all the
-evening, so that I must look after the child. Now I have told you
-all my adventures, Mr. Holmes, and I should be very glad if you
-could tell me what it all means, and, above all, what I should
-do."
-
-Holmes and I had listened spellbound to this extraordinary story.
-My friend rose now and paced up and down the room, his hands in
-his pockets, and an expression of the most profound gravity upon
-his face.
-
-"Is Toller still drunk?" he asked.
-
-"Yes. I heard his wife tell Mrs. Rucastle that she could do
-nothing with him."
-
-"That is well. And the Rucastles go out to-night?"
-
-"Yes."
-
-"Is there a cellar with a good strong lock?"
-
-"Yes, the wine-cellar."
-
-"You seem to me to have acted all through this matter like a very
-brave and sensible girl, Miss Hunter. Do you think that you could
-perform one more feat? I should not ask it of you if I did not
-think you a quite exceptional woman."
-
-"I will try. What is it?"
-
-"We shall be at the Copper Beeches by seven o'clock, my friend
-and I. The Rucastles will be gone by that time, and Toller will,
-we hope, be incapable. There only remains Mrs. Toller, who might
-give the alarm. If you could send her into the cellar on some
-errand, and then turn the key upon her, you would facilitate
-matters immensely."
-
-"I will do it."
-
-"Excellent! We shall then look thoroughly into the affair. Of
-course there is only one feasible explanation. You have been
-brought there to personate someone, and the real person is
-imprisoned in this chamber. That is obvious. As to who this
-prisoner is, I have no doubt that it is the daughter, Miss Alice
-Rucastle, if I remember right, who was said to have gone to
-America. You were chosen, doubtless, as resembling her in height,
-figure, and the colour of your hair. Hers had been cut off, very
-possibly in some illness through which she has passed, and so, of
-course, yours had to be sacrificed also. By a curious chance you
-came upon her tresses. The man in the road was undoubtedly some
-friend of hers--possibly her fiancé--and no doubt, as you wore
-the girl's dress and were so like her, he was convinced from your
-laughter, whenever he saw you, and afterwards from your gesture,
-that Miss Rucastle was perfectly happy, and that she no longer
-desired his attentions. The dog is let loose at night to prevent
-him from endeavouring to communicate with her. So much is fairly
-clear. The most serious point in the case is the disposition of
-the child."
-
-"What on earth has that to do with it?" I ejaculated.
-
-"My dear Watson, you as a medical man are continually gaining
-light as to the tendencies of a child by the study of the
-parents. Don't you see that the converse is equally valid. I have
-frequently gained my first real insight into the character of
-parents by studying their children. This child's disposition is
-abnormally cruel, merely for cruelty's sake, and whether he
-derives this from his smiling father, as I should suspect, or
-from his mother, it bodes evil for the poor girl who is in their
-power."
-
-"I am sure that you are right, Mr. Holmes," cried our client. "A
-thousand things come back to me which make me certain that you
-have hit it. Oh, let us lose not an instant in bringing help to
-this poor creature."
-
-"We must be circumspect, for we are dealing with a very cunning
-man. We can do nothing until seven o'clock. At that hour we shall
-be with you, and it will not be long before we solve the
-mystery."
-
-We were as good as our word, for it was just seven when we
-reached the Copper Beeches, having put up our trap at a wayside
-public-house. The group of trees, with their dark leaves shining
-like burnished metal in the light of the setting sun, were
-sufficient to mark the house even had Miss Hunter not been
-standing smiling on the door-step.
-
-"Have you managed it?" asked Holmes.
-
-A loud thudding noise came from somewhere downstairs. "That is
-Mrs. Toller in the cellar," said she. "Her husband lies snoring
-on the kitchen rug. Here are his keys, which are the duplicates
-of Mr. Rucastle's."
-
-"You have done well indeed!" cried Holmes with enthusiasm. "Now
-lead the way, and we shall soon see the end of this black
-business."
-
-We passed up the stair, unlocked the door, followed on down a
-passage, and found ourselves in front of the barricade which Miss
-Hunter had described. Holmes cut the cord and removed the
-transverse bar. Then he tried the various keys in the lock, but
-without success. No sound came from within, and at the silence
-Holmes' face clouded over.
-
-"I trust that we are not too late," said he. "I think, Miss
-Hunter, that we had better go in without you. Now, Watson, put
-your shoulder to it, and we shall see whether we cannot make our
-way in."
-
-It was an old rickety door and gave at once before our united
-strength. Together we rushed into the room. It was empty. There
-was no furniture save a little pallet bed, a small table, and a
-basketful of linen. The skylight above was open, and the prisoner
-gone.
-
-"There has been some villainy here," said Holmes; "this beauty
-has guessed Miss Hunter's intentions and has carried his victim
-off."
-
-"But how?"
-
-"Through the skylight. We shall soon see how he managed it." He
-swung himself up onto the roof. "Ah, yes," he cried, "here's the
-end of a long light ladder against the eaves. That is how he did
-it."
-
-"But it is impossible," said Miss Hunter; "the ladder was not
-there when the Rucastles went away."
-
-"He has come back and done it. I tell you that he is a clever and
-dangerous man. I should not be very much surprised if this were
-he whose step I hear now upon the stair. I think, Watson, that it
-would be as well for you to have your pistol ready."
-
-The words were hardly out of his mouth before a man appeared at
-the door of the room, a very fat and burly man, with a heavy
-stick in his hand. Miss Hunter screamed and shrunk against the
-wall at the sight of him, but Sherlock Holmes sprang forward and
-confronted him.
-
-"You villain!" said he, "where's your daughter?"
-
-The fat man cast his eyes round, and then up at the open
-skylight.
-
-"It is for me to ask you that," he shrieked, "you thieves! Spies
-and thieves! I have caught you, have I? You are in my power. I'll
-serve you!" He turned and clattered down the stairs as hard as he
-could go.
-
-"He's gone for the dog!" cried Miss Hunter.
-
-"I have my revolver," said I.
-
-"Better close the front door," cried Holmes, and we all rushed
-down the stairs together. We had hardly reached the hall when we
-heard the baying of a hound, and then a scream of agony, with a
-horrible worrying sound which it was dreadful to listen to. An
-elderly man with a red face and shaking limbs came staggering out
-at a side door.
-
-"My God!" he cried. "Someone has loosed the dog. It's not been
-fed for two days. Quick, quick, or it'll be too late!"
-
-Holmes and I rushed out and round the angle of the house, with
-Toller hurrying behind us. There was the huge famished brute, its
-black muzzle buried in Rucastle's throat, while he writhed and
-screamed upon the ground. Running up, I blew its brains out, and
-it fell over with its keen white teeth still meeting in the great
-creases of his neck. With much labour we separated them and
-carried him, living but horribly mangled, into the house. We laid
-him upon the drawing-room sofa, and having dispatched the sobered
-Toller to bear the news to his wife, I did what I could to
-relieve his pain. We were all assembled round him when the door
-opened, and a tall, gaunt woman entered the room.
-
-"Mrs. Toller!" cried Miss Hunter.
-
-"Yes, miss. Mr. Rucastle let me out when he came back before he
-went up to you. Ah, miss, it is a pity you didn't let me know
-what you were planning, for I would have told you that your pains
-were wasted."
-
-"Ha!" said Holmes, looking keenly at her. "It is clear that Mrs.
-Toller knows more about this matter than anyone else."
-
-"Yes, sir, I do, and I am ready enough to tell what I know."
-
-"Then, pray, sit down, and let us hear it for there are several
-points on which I must confess that I am still in the dark."
-
-"I will soon make it clear to you," said she; "and I'd have done
-so before now if I could ha' got out from the cellar. If there's
-police-court business over this, you'll remember that I was the
-one that stood your friend, and that I was Miss Alice's friend
-too.
-
-"She was never happy at home, Miss Alice wasn't, from the time
-that her father married again. She was slighted like and had no
-say in anything, but it never really became bad for her until
-after she met Mr. Fowler at a friend's house. As well as I could
-learn, Miss Alice had rights of her own by will, but she was so
-quiet and patient, she was, that she never said a word about them
-but just left everything in Mr. Rucastle's hands. He knew he was
-safe with her; but when there was a chance of a husband coming
-forward, who would ask for all that the law would give him, then
-her father thought it time to put a stop on it. He wanted her to
-sign a paper, so that whether she married or not, he could use
-her money. When she wouldn't do it, he kept on worrying her until
-she got brain-fever, and for six weeks was at death's door. Then
-she got better at last, all worn to a shadow, and with her
-beautiful hair cut off; but that didn't make no change in her
-young man, and he stuck to her as true as man could be."
-
-"Ah," said Holmes, "I think that what you have been good enough
-to tell us makes the matter fairly clear, and that I can deduce
-all that remains. Mr. Rucastle then, I presume, took to this
-system of imprisonment?"
-
-"Yes, sir."
-
-"And brought Miss Hunter down from London in order to get rid of
-the disagreeable persistence of Mr. Fowler."
-
-"That was it, sir."
-
-"But Mr. Fowler being a persevering man, as a good seaman should
-be, blockaded the house, and having met you succeeded by certain
-arguments, metallic or otherwise, in convincing you that your
-interests were the same as his."
-
-"Mr. Fowler was a very kind-spoken, free-handed gentleman," said
-Mrs. Toller serenely.
-
-"And in this way he managed that your good man should have no
-want of drink, and that a ladder should be ready at the moment
-when your master had gone out."
-
-"You have it, sir, just as it happened."
-
-"I am sure we owe you an apology, Mrs. Toller," said Holmes, "for
-you have certainly cleared up everything which puzzled us. And
-here comes the country surgeon and Mrs. Rucastle, so I think,
-Watson, that we had best escort Miss Hunter back to Winchester,
-as it seems to me that our locus standi now is rather a
-questionable one."
-
-And thus was solved the mystery of the sinister house with the
-copper beeches in front of the door. Mr. Rucastle survived, but
-was always a broken man, kept alive solely through the care of
-his devoted wife. They still live with their old servants, who
-probably know so much of Rucastle's past life that he finds it
-difficult to part from them. Mr. Fowler and Miss Rucastle were
-married, by special license, in Southampton the day after their
-flight, and he is now the holder of a government appointment in
-the island of Mauritius. As to Miss Violet Hunter, my friend
-Holmes, rather to my disappointment, manifested no further
-interest in her when once she had ceased to be the centre of one
-of his problems, and she is now the head of a private school at
-Walsall, where I believe that she has met with considerable success.
-
-
-
-
-
-
-
-
-
-End of the Project Gutenberg EBook of The Adventures of Sherlock Holmes, by
-Arthur Conan Doyle
-
-*** END OF THIS PROJECT GUTENBERG EBOOK THE ADVENTURES OF SHERLOCK HOLMES ***
-
-***** This file should be named 1661-8.txt or 1661-8.zip *****
-This and all associated files of various formats will be found in:
- http://www.gutenberg.org/1/6/6/1661/
-
-Produced by an anonymous Project Gutenberg volunteer and Jose Menendez
-
-Updated editions will replace the previous one--the old editions
-will be renamed.
-
-Creating the works from public domain print editions means that no
-one owns a United States copyright in these works, so the Foundation
-(and you!) can copy and distribute it in the United States without
-permission and without paying copyright royalties. Special rules,
-set forth in the General Terms of Use part of this license, apply to
-copying and distributing Project Gutenberg-tm electronic works to
-protect the PROJECT GUTENBERG-tm concept and trademark. Project
-Gutenberg is a registered trademark, and may not be used if you
-charge for the eBooks, unless you receive specific permission. If you
-do not charge anything for copies of this eBook, complying with the
-rules is very easy. You may use this eBook for nearly any purpose
-such as creation of derivative works, reports, performances and
-research. They may be modified and printed and given away--you may do
-practically ANYTHING with public domain eBooks. Redistribution is
-subject to the trademark license, especially commercial
-redistribution.
-
-
-
-*** START: FULL LICENSE ***
-
-THE FULL PROJECT GUTENBERG LICENSE
-PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
-
-To protect the Project Gutenberg-tm mission of promoting the free
-distribution of electronic works, by using or distributing this work
-(or any other work associated in any way with the phrase "Project
-Gutenberg"), you agree to comply with all the terms of the Full Project
-Gutenberg-tm License (available with this file or online at
-http://gutenberg.net/license).
-
-
-Section 1. General Terms of Use and Redistributing Project Gutenberg-tm
-electronic works
-
-1.A. By reading or using any part of this Project Gutenberg-tm
-electronic work, you indicate that you have read, understand, agree to
-and accept all the terms of this license and intellectual property
-(trademark/copyright) agreement. If you do not agree to abide by all
-the terms of this agreement, you must cease using and return or destroy
-all copies of Project Gutenberg-tm electronic works in your possession.
-If you paid a fee for obtaining a copy of or access to a Project
-Gutenberg-tm electronic work and you do not agree to be bound by the
-terms of this agreement, you may obtain a refund from the person or
-entity to whom you paid the fee as set forth in paragraph 1.E.8.
-
-1.B. "Project Gutenberg" is a registered trademark. It may only be
-used on or associated in any way with an electronic work by people who
-agree to be bound by the terms of this agreement. There are a few
-things that you can do with most Project Gutenberg-tm electronic works
-even without complying with the full terms of this agreement. See
-paragraph 1.C below. There are a lot of things you can do with Project
-Gutenberg-tm electronic works if you follow the terms of this agreement
-and help preserve free future access to Project Gutenberg-tm electronic
-works. See paragraph 1.E below.
-
-1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation"
-or PGLAF), owns a compilation copyright in the collection of Project
-Gutenberg-tm electronic works. Nearly all the individual works in the
-collection are in the public domain in the United States. If an
-individual work is in the public domain in the United States and you are
-located in the United States, we do not claim a right to prevent you from
-copying, distributing, performing, displaying or creating derivative
-works based on the work as long as all references to Project Gutenberg
-are removed. Of course, we hope that you will support the Project
-Gutenberg-tm mission of promoting free access to electronic works by
-freely sharing Project Gutenberg-tm works in compliance with the terms of
-this agreement for keeping the Project Gutenberg-tm name associated with
-the work. You can easily comply with the terms of this agreement by
-keeping this work in the same format with its attached full Project
-Gutenberg-tm License when you share it without charge with others.
-
-1.D. The copyright laws of the place where you are located also govern
-what you can do with this work. Copyright laws in most countries are in
-a constant state of change. If you are outside the United States, check
-the laws of your country in addition to the terms of this agreement
-before downloading, copying, displaying, performing, distributing or
-creating derivative works based on this work or any other Project
-Gutenberg-tm work. The Foundation makes no representations concerning
-the copyright status of any work in any country outside the United
-States.
-
-1.E. Unless you have removed all references to Project Gutenberg:
-
-1.E.1. The following sentence, with active links to, or other immediate
-access to, the full Project Gutenberg-tm License must appear prominently
-whenever any copy of a Project Gutenberg-tm work (any work on which the
-phrase "Project Gutenberg" appears, or with which the phrase "Project
-Gutenberg" is associated) is accessed, displayed, performed, viewed,
-copied or distributed:
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.net
-
-1.E.2. If an individual Project Gutenberg-tm electronic work is derived
-from the public domain (does not contain a notice indicating that it is
-posted with permission of the copyright holder), the work can be copied
-and distributed to anyone in the United States without paying any fees
-or charges. If you are redistributing or providing access to a work
-with the phrase "Project Gutenberg" associated with or appearing on the
-work, you must comply either with the requirements of paragraphs 1.E.1
-through 1.E.7 or obtain permission for the use of the work and the
-Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or
-1.E.9.
-
-1.E.3. If an individual Project Gutenberg-tm electronic work is posted
-with the permission of the copyright holder, your use and distribution
-must comply with both paragraphs 1.E.1 through 1.E.7 and any additional
-terms imposed by the copyright holder. Additional terms will be linked
-to the Project Gutenberg-tm License for all works posted with the
-permission of the copyright holder found at the beginning of this work.
-
-1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm
-License terms from this work, or any files containing a part of this
-work or any other work associated with Project Gutenberg-tm.
-
-1.E.5. Do not copy, display, perform, distribute or redistribute this
-electronic work, or any part of this electronic work, without
-prominently displaying the sentence set forth in paragraph 1.E.1 with
-active links or immediate access to the full terms of the Project
-Gutenberg-tm License.
-
-1.E.6. You may convert to and distribute this work in any binary,
-compressed, marked up, nonproprietary or proprietary form, including any
-word processing or hypertext form. However, if you provide access to or
-distribute copies of a Project Gutenberg-tm work in a format other than
-"Plain Vanilla ASCII" or other format used in the official version
-posted on the official Project Gutenberg-tm web site (www.gutenberg.net),
-you must, at no additional cost, fee or expense to the user, provide a
-copy, a means of exporting a copy, or a means of obtaining a copy upon
-request, of the work in its original "Plain Vanilla ASCII" or other
-form. Any alternate format must include the full Project Gutenberg-tm
-License as specified in paragraph 1.E.1.
-
-1.E.7. Do not charge a fee for access to, viewing, displaying,
-performing, copying or distributing any Project Gutenberg-tm works
-unless you comply with paragraph 1.E.8 or 1.E.9.
-
-1.E.8. You may charge a reasonable fee for copies of or providing
-access to or distributing Project Gutenberg-tm electronic works provided
-that
-
-- You pay a royalty fee of 20% of the gross profits you derive from
- the use of Project Gutenberg-tm works calculated using the method
- you already use to calculate your applicable taxes. The fee is
- owed to the owner of the Project Gutenberg-tm trademark, but he
- has agreed to donate royalties under this paragraph to the
- Project Gutenberg Literary Archive Foundation. Royalty payments
- must be paid within 60 days following each date on which you
- prepare (or are legally required to prepare) your periodic tax
- returns. Royalty payments should be clearly marked as such and
- sent to the Project Gutenberg Literary Archive Foundation at the
- address specified in Section 4, "Information about donations to
- the Project Gutenberg Literary Archive Foundation."
-
-- You provide a full refund of any money paid by a user who notifies
- you in writing (or by e-mail) within 30 days of receipt that s/he
- does not agree to the terms of the full Project Gutenberg-tm
- License. You must require such a user to return or
- destroy all copies of the works possessed in a physical medium
- and discontinue all use of and all access to other copies of
- Project Gutenberg-tm works.
-
-- You provide, in accordance with paragraph 1.F.3, a full refund of any
- money paid for a work or a replacement copy, if a defect in the
- electronic work is discovered and reported to you within 90 days
- of receipt of the work.
-
-- You comply with all other terms of this agreement for free
- distribution of Project Gutenberg-tm works.
-
-1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm
-electronic work or group of works on different terms than are set
-forth in this agreement, you must obtain permission in writing from
-both the Project Gutenberg Literary Archive Foundation and Michael
-Hart, the owner of the Project Gutenberg-tm trademark. Contact the
-Foundation as set forth in Section 3 below.
-
-1.F.
-
-1.F.1. Project Gutenberg volunteers and employees expend considerable
-effort to identify, do copyright research on, transcribe and proofread
-public domain works in creating the Project Gutenberg-tm
-collection. Despite these efforts, Project Gutenberg-tm electronic
-works, and the medium on which they may be stored, may contain
-"Defects," such as, but not limited to, incomplete, inaccurate or
-corrupt data, transcription errors, a copyright or other intellectual
-property infringement, a defective or damaged disk or other medium, a
-computer virus, or computer codes that damage or cannot be read by
-your equipment.
-
-1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right
-of Replacement or Refund" described in paragraph 1.F.3, the Project
-Gutenberg Literary Archive Foundation, the owner of the Project
-Gutenberg-tm trademark, and any other party distributing a Project
-Gutenberg-tm electronic work under this agreement, disclaim all
-liability to you for damages, costs and expenses, including legal
-fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
-LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE
-PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE
-TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE
-LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
-INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a
-defect in this electronic work within 90 days of receiving it, you can
-receive a refund of the money (if any) you paid for it by sending a
-written explanation to the person you received the work from. If you
-received the work on a physical medium, you must return the medium with
-your written explanation. The person or entity that provided you with
-the defective work may elect to provide a replacement copy in lieu of a
-refund. If you received the work electronically, the person or entity
-providing it to you may choose to give you a second opportunity to
-receive the work electronically in lieu of a refund. If the second copy
-is also defective, you may demand a refund in writing without further
-opportunities to fix the problem.
-
-1.F.4. Except for the limited right of replacement or refund set forth
-in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER
-WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE.
-
-1.F.5. Some states do not allow disclaimers of certain implied
-warranties or the exclusion or limitation of certain types of damages.
-If any disclaimer or limitation set forth in this agreement violates the
-law of the state applicable to this agreement, the agreement shall be
-interpreted to make the maximum disclaimer or limitation permitted by
-the applicable state law. The invalidity or unenforceability of any
-provision of this agreement shall not void the remaining provisions.
-
-1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the
-trademark owner, any agent or employee of the Foundation, anyone
-providing copies of Project Gutenberg-tm electronic works in accordance
-with this agreement, and any volunteers associated with the production,
-promotion and distribution of Project Gutenberg-tm electronic works,
-harmless from all liability, costs and expenses, including legal fees,
-that arise directly or indirectly from any of the following which you do
-or cause to occur: (a) distribution of this or any Project Gutenberg-tm
-work, (b) alteration, modification, or additions or deletions to any
-Project Gutenberg-tm work, and (c) any Defect you cause.
-
-
-Section 2. Information about the Mission of Project Gutenberg-tm
-
-Project Gutenberg-tm is synonymous with the free distribution of
-electronic works in formats readable by the widest variety of computers
-including obsolete, old, middle-aged and new computers. It exists
-because of the efforts of hundreds of volunteers and donations from
-people in all walks of life.
-
-Volunteers and financial support to provide volunteers with the
-assistance they need are critical to reaching Project Gutenberg-tm's
-goals and ensuring that the Project Gutenberg-tm collection will
-remain freely available for generations to come. In 2001, the Project
-Gutenberg Literary Archive Foundation was created to provide a secure
-and permanent future for Project Gutenberg-tm and future generations.
-To learn more about the Project Gutenberg Literary Archive Foundation
-and how your efforts and donations can help, see Sections 3 and 4
-and the Foundation web page at http://www.pglaf.org.
-
-
-Section 3. Information about the Project Gutenberg Literary Archive
-Foundation
-
-The Project Gutenberg Literary Archive Foundation is a non profit
-501(c)(3) educational corporation organized under the laws of the
-state of Mississippi and granted tax exempt status by the Internal
-Revenue Service. The Foundation's EIN or federal tax identification
-number is 64-6221541. Its 501(c)(3) letter is posted at
-http://pglaf.org/fundraising. Contributions to the Project Gutenberg
-Literary Archive Foundation are tax deductible to the full extent
-permitted by U.S. federal laws and your state's laws.
-
-The Foundation's principal office is located at 4557 Melan Dr. S.
-Fairbanks, AK, 99712., but its volunteers and employees are scattered
-throughout numerous locations. Its business office is located at
-809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email
-business@pglaf.org. Email contact links and up to date contact
-information can be found at the Foundation's web site and official
-page at http://pglaf.org
-
-For additional contact information:
- Dr. Gregory B. Newby
- Chief Executive and Director
- gbnewby@pglaf.org
-
-
-Section 4. Information about Donations to the Project Gutenberg
-Literary Archive Foundation
-
-Project Gutenberg-tm depends upon and cannot survive without wide
-spread public support and donations to carry out its mission of
-increasing the number of public domain and licensed works that can be
-freely distributed in machine readable form accessible by the widest
-array of equipment including outdated equipment. Many small donations
-($1 to $5,000) are particularly important to maintaining tax exempt
-status with the IRS.
-
-The Foundation is committed to complying with the laws regulating
-charities and charitable donations in all 50 states of the United
-States. Compliance requirements are not uniform and it takes a
-considerable effort, much paperwork and many fees to meet and keep up
-with these requirements. We do not solicit donations in locations
-where we have not received written confirmation of compliance. To
-SEND DONATIONS or determine the status of compliance for any
-particular state visit http://pglaf.org
-
-While we cannot and do not solicit contributions from states where we
-have not met the solicitation requirements, we know of no prohibition
-against accepting unsolicited donations from donors in such states who
-approach us with offers to donate.
-
-International donations are gratefully accepted, but we cannot make
-any statements concerning tax treatment of donations received from
-outside the United States. U.S. laws alone swamp our small staff.
-
-Please check the Project Gutenberg Web pages for current donation
-methods and addresses. Donations are accepted in a number of other
-ways including including checks, online payments and credit card
-donations. To donate, please visit: http://pglaf.org/donate
-
-
-Section 5. General Information About Project Gutenberg-tm electronic
-works.
-
-Professor Michael S. Hart is the originator of the Project Gutenberg-tm
-concept of a library of electronic works that could be freely shared
-with anyone. For thirty years, he produced and distributed Project
-Gutenberg-tm eBooks with only a loose network of volunteer support.
-
-
-Project Gutenberg-tm eBooks are often created from several printed
-editions, all of which are confirmed as Public Domain in the U.S.
-unless a copyright notice is included. Thus, we do not necessarily
-keep eBooks in compliance with any particular paper edition.
-
-
-Most people start at our Web site which has the main PG search facility:
-
- http://www.gutenberg.net
-
-This Web site includes information about Project Gutenberg-tm,
-including how to make donations to the Project Gutenberg Literary
-Archive Foundation, how to help produce our new eBooks, and how to
-subscribe to our email newsletter to hear about new eBooks.
diff --git a/hyracks/hyracks-examples/text-example/textapp/data/file2.txt b/hyracks/hyracks-examples/text-example/textapp/data/file2.txt
deleted file mode 100644
index a25d303..0000000
--- a/hyracks/hyracks-examples/text-example/textapp/data/file2.txt
+++ /dev/null
@@ -1,10216 +0,0 @@
-Project Gutenberg's Memoirs of Sherlock Holmes, by Sir Arthur Conan Doyle
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.org
-
-
-Title: Memoirs of Sherlock Holmes
-
-Author: Sir Arthur Conan Doyle
-
-Posting Date: July 31, 2008 [EBook #834]
-Release Date: March, 1997
-[This file last updated on August 16, 2010]
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK MEMOIRS OF SHERLOCK HOLMES ***
-
-
-
-
-Produced by Angela M. Cable
-
-
-
-
-
-MEMOIRS OF SHERLOCK HOLMES
-
-by Sir Arthur Conan Doyle
-
-
-
-
-Adventure I. Silver Blaze
-
-
-"I am afraid, Watson, that I shall have to go," said Holmes, as we sat
-down together to our breakfast one morning.
-
-"Go! Where to?"
-
-"To Dartmoor; to King's Pyland."
-
-I was not surprised. Indeed, my only wonder was that he had not already
-been mixed up in this extraordinary case, which was the one topic of
-conversation through the length and breadth of England. For a whole day
-my companion had rambled about the room with his chin upon his chest and
-his brows knitted, charging and recharging his pipe with the strongest
-black tobacco, and absolutely deaf to any of my questions or remarks.
-Fresh editions of every paper had been sent up by our news agent, only
-to be glanced over and tossed down into a corner. Yet, silent as he was,
-I knew perfectly well what it was over which he was brooding. There was
-but one problem before the public which could challenge his powers of
-analysis, and that was the singular disappearance of the favorite for
-the Wessex Cup, and the tragic murder of its trainer. When, therefore,
-he suddenly announced his intention of setting out for the scene of the
-drama it was only what I had both expected and hoped for.
-
-"I should be most happy to go down with you if I should not be in the
-way," said I.
-
-"My dear Watson, you would confer a great favor upon me by coming. And
-I think that your time will not be misspent, for there are points about
-the case which promise to make it an absolutely unique one. We have, I
-think, just time to catch our train at Paddington, and I will go further
-into the matter upon our journey. You would oblige me by bringing with
-you your very excellent field-glass."
-
-And so it happened that an hour or so later I found myself in the
-corner of a first-class carriage flying along en route for Exeter, while
-Sherlock Holmes, with his sharp, eager face framed in his ear-flapped
-travelling-cap, dipped rapidly into the bundle of fresh papers which he
-had procured at Paddington. We had left Reading far behind us before
-he thrust the last one of them under the seat, and offered me his
-cigar-case.
-
-"We are going well," said he, looking out the window and glancing at his
-watch. "Our rate at present is fifty-three and a half miles an hour."
-
-"I have not observed the quarter-mile posts," said I.
-
-"Nor have I. But the telegraph posts upon this line are sixty yards
-apart, and the calculation is a simple one. I presume that you
-have looked into this matter of the murder of John Straker and the
-disappearance of Silver Blaze?"
-
-"I have seen what the Telegraph and the Chronicle have to say."
-
-"It is one of those cases where the art of the reasoner should be
-used rather for the sifting of details than for the acquiring of fresh
-evidence. The tragedy has been so uncommon, so complete and of such
-personal importance to so many people, that we are suffering from a
-plethora of surmise, conjecture, and hypothesis. The difficulty is to
-detach the framework of fact--of absolute undeniable fact--from the
-embellishments of theorists and reporters. Then, having established
-ourselves upon this sound basis, it is our duty to see what inferences
-may be drawn and what are the special points upon which the whole
-mystery turns. On Tuesday evening I received telegrams from both Colonel
-Ross, the owner of the horse, and from Inspector Gregory, who is looking
-after the case, inviting my cooperation."
-
-"Tuesday evening!" I exclaimed. "And this is Thursday morning. Why
-didn't you go down yesterday?"
-
-"Because I made a blunder, my dear Watson--which is, I am afraid, a more
-common occurrence than any one would think who only knew me through your
-memoirs. The fact is that I could not believe it possible that the most
-remarkable horse in England could long remain concealed, especially in
-so sparsely inhabited a place as the north of Dartmoor. From hour to
-hour yesterday I expected to hear that he had been found, and that
-his abductor was the murderer of John Straker. When, however, another
-morning had come, and I found that beyond the arrest of young Fitzroy
-Simpson nothing had been done, I felt that it was time for me to take
-action. Yet in some ways I feel that yesterday has not been wasted."
-
-"You have formed a theory, then?"
-
-"At least I have got a grip of the essential facts of the case. I shall
-enumerate them to you, for nothing clears up a case so much as stating
-it to another person, and I can hardly expect your co-operation if I do
-not show you the position from which we start."
-
-I lay back against the cushions, puffing at my cigar, while Holmes,
-leaning forward, with his long, thin forefinger checking off the points
-upon the palm of his left hand, gave me a sketch of the events which had
-led to our journey.
-
-"Silver Blaze," said he, "is from the Somomy stock, and holds as
-brilliant a record as his famous ancestor. He is now in his fifth year,
-and has brought in turn each of the prizes of the turf to Colonel Ross,
-his fortunate owner. Up to the time of the catastrophe he was the first
-favorite for the Wessex Cup, the betting being three to one on him. He
-has always, however, been a prime favorite with the racing public, and
-has never yet disappointed them, so that even at those odds enormous
-sums of money have been laid upon him. It is obvious, therefore, that
-there were many people who had the strongest interest in preventing
-Silver Blaze from being there at the fall of the flag next Tuesday.
-
-"The fact was, of course, appreciated at King's Pyland, where the
-Colonel's training-stable is situated. Every precaution was taken to
-guard the favorite. The trainer, John Straker, is a retired jockey
-who rode in Colonel Ross's colors before he became too heavy for the
-weighing-chair. He has served the Colonel for five years as jockey and
-for seven as trainer, and has always shown himself to be a zealous and
-honest servant. Under him were three lads; for the establishment was a
-small one, containing only four horses in all. One of these lads sat up
-each night in the stable, while the others slept in the loft. All three
-bore excellent characters. John Straker, who is a married man, lived
-in a small villa about two hundred yards from the stables. He has no
-children, keeps one maid-servant, and is comfortably off. The country
-round is very lonely, but about half a mile to the north there is a
-small cluster of villas which have been built by a Tavistock contractor
-for the use of invalids and others who may wish to enjoy the pure
-Dartmoor air. Tavistock itself lies two miles to the west, while
-across the moor, also about two miles distant, is the larger training
-establishment of Mapleton, which belongs to Lord Backwater, and is
-managed by Silas Brown. In every other direction the moor is a complete
-wilderness, inhabited only by a few roaming gypsies. Such was the
-general situation last Monday night when the catastrophe occurred.
-
-"On that evening the horses had been exercised and watered as usual, and
-the stables were locked up at nine o'clock. Two of the lads walked up
-to the trainer's house, where they had supper in the kitchen, while the
-third, Ned Hunter, remained on guard. At a few minutes after nine
-the maid, Edith Baxter, carried down to the stables his supper, which
-consisted of a dish of curried mutton. She took no liquid, as there was
-a water-tap in the stables, and it was the rule that the lad on duty
-should drink nothing else. The maid carried a lantern with her, as it
-was very dark and the path ran across the open moor.
-
-"Edith Baxter was within thirty yards of the stables, when a man
-appeared out of the darkness and called to her to stop. As he stepped
-into the circle of yellow light thrown by the lantern she saw that he
-was a person of gentlemanly bearing, dressed in a gray suit of tweeds,
-with a cloth cap. He wore gaiters, and carried a heavy stick with a knob
-to it. She was most impressed, however, by the extreme pallor of his
-face and by the nervousness of his manner. His age, she thought, would
-be rather over thirty than under it.
-
-"'Can you tell me where I am?' he asked. 'I had almost made up my mind
-to sleep on the moor, when I saw the light of your lantern.'
-
-"'You are close to the King's Pyland training-stables,' said she.
-
-"'Oh, indeed! What a stroke of luck!' he cried. 'I understand that a
-stable-boy sleeps there alone every night. Perhaps that is his supper
-which you are carrying to him. Now I am sure that you would not be too
-proud to earn the price of a new dress, would you?' He took a piece of
-white paper folded up out of his waistcoat pocket. 'See that the boy
-has this to-night, and you shall have the prettiest frock that money can
-buy.'
-
-"She was frightened by the earnestness of his manner, and ran past him
-to the window through which she was accustomed to hand the meals. It was
-already opened, and Hunter was seated at the small table inside. She had
-begun to tell him of what had happened, when the stranger came up again.
-
-"'Good-evening,' said he, looking through the window. 'I wanted to have
-a word with you.' The girl has sworn that as he spoke she noticed the
-corner of the little paper packet protruding from his closed hand.
-
-"'What business have you here?' asked the lad.
-
-"'It's business that may put something into your pocket,' said the
-other. 'You've two horses in for the Wessex Cup--Silver Blaze and
-Bayard. Let me have the straight tip and you won't be a loser. Is it a
-fact that at the weights Bayard could give the other a hundred yards in
-five furlongs, and that the stable have put their money on him?'
-
-"'So, you're one of those damned touts!' cried the lad. 'I'll show you
-how we serve them in King's Pyland.' He sprang up and rushed across the
-stable to unloose the dog. The girl fled away to the house, but as she
-ran she looked back and saw that the stranger was leaning through the
-window. A minute later, however, when Hunter rushed out with the hound
-he was gone, and though he ran all round the buildings he failed to find
-any trace of him."
-
-"One moment," I asked. "Did the stable-boy, when he ran out with the
-dog, leave the door unlocked behind him?"
-
-"Excellent, Watson, excellent!" murmured my companion. "The importance
-of the point struck me so forcibly that I sent a special wire to
-Dartmoor yesterday to clear the matter up. The boy locked the door
-before he left it. The window, I may add, was not large enough for a man
-to get through.
-
-"Hunter waited until his fellow-grooms had returned, when he sent a
-message to the trainer and told him what had occurred. Straker was
-excited at hearing the account, although he does not seem to have quite
-realized its true significance. It left him, however, vaguely uneasy,
-and Mrs. Straker, waking at one in the morning, found that he was
-dressing. In reply to her inquiries, he said that he could not sleep on
-account of his anxiety about the horses, and that he intended to walk
-down to the stables to see that all was well. She begged him to remain
-at home, as she could hear the rain pattering against the window, but in
-spite of her entreaties he pulled on his large mackintosh and left the
-house.
-
-"Mrs. Straker awoke at seven in the morning, to find that her husband
-had not yet returned. She dressed herself hastily, called the maid, and
-set off for the stables. The door was open; inside, huddled together
-upon a chair, Hunter was sunk in a state of absolute stupor, the
-favorite's stall was empty, and there were no signs of his trainer.
-
-"The two lads who slept in the chaff-cutting loft above the harness-room
-were quickly aroused. They had heard nothing during the night, for they
-are both sound sleepers. Hunter was obviously under the influence of
-some powerful drug, and as no sense could be got out of him, he was left
-to sleep it off while the two lads and the two women ran out in search
-of the absentees. They still had hopes that the trainer had for some
-reason taken out the horse for early exercise, but on ascending the
-knoll near the house, from which all the neighboring moors were visible,
-they not only could see no signs of the missing favorite, but they
-perceived something which warned them that they were in the presence of
-a tragedy.
-
-"About a quarter of a mile from the stables John Straker's overcoat was
-flapping from a furze-bush. Immediately beyond there was a bowl-shaped
-depression in the moor, and at the bottom of this was found the dead
-body of the unfortunate trainer. His head had been shattered by a savage
-blow from some heavy weapon, and he was wounded on the thigh, where
-there was a long, clean cut, inflicted evidently by some very sharp
-instrument. It was clear, however, that Straker had defended himself
-vigorously against his assailants, for in his right hand he held a small
-knife, which was clotted with blood up to the handle, while in his left
-he clasped a red and black silk cravat, which was recognized by the maid
-as having been worn on the preceding evening by the stranger who had
-visited the stables. Hunter, on recovering from his stupor, was also
-quite positive as to the ownership of the cravat. He was equally certain
-that the same stranger had, while standing at the window, drugged his
-curried mutton, and so deprived the stables of their watchman. As to the
-missing horse, there were abundant proofs in the mud which lay at the
-bottom of the fatal hollow that he had been there at the time of the
-struggle. But from that morning he has disappeared, and although a large
-reward has been offered, and all the gypsies of Dartmoor are on the
-alert, no news has come of him. Finally, an analysis has shown that
-the remains of his supper left by the stable-lad contain an appreciable
-quantity of powdered opium, while the people at the house partook of the
-same dish on the same night without any ill effect.
-
-"Those are the main facts of the case, stripped of all surmise, and
-stated as baldly as possible. I shall now recapitulate what the police
-have done in the matter.
-
-"Inspector Gregory, to whom the case has been committed, is an extremely
-competent officer. Were he but gifted with imagination he might rise to
-great heights in his profession. On his arrival he promptly found and
-arrested the man upon whom suspicion naturally rested. There was little
-difficulty in finding him, for he inhabited one of those villas which I
-have mentioned. His name, it appears, was Fitzroy Simpson. He was a man
-of excellent birth and education, who had squandered a fortune upon the
-turf, and who lived now by doing a little quiet and genteel book-making
-in the sporting clubs of London. An examination of his betting-book
-shows that bets to the amount of five thousand pounds had been
-registered by him against the favorite. On being arrested he volunteered
-that statement that he had come down to Dartmoor in the hope of
-getting some information about the King's Pyland horses, and also about
-Desborough, the second favorite, which was in charge of Silas Brown at
-the Mapleton stables. He did not attempt to deny that he had acted as
-described upon the evening before, but declared that he had no sinister
-designs, and had simply wished to obtain first-hand information. When
-confronted with his cravat, he turned very pale, and was utterly unable
-to account for its presence in the hand of the murdered man. His wet
-clothing showed that he had been out in the storm of the night before,
-and his stick, which was a Penang-lawyer weighted with lead, was just
-such a weapon as might, by repeated blows, have inflicted the terrible
-injuries to which the trainer had succumbed. On the other hand, there
-was no wound upon his person, while the state of Straker's knife would
-show that one at least of his assailants must bear his mark upon him.
-There you have it all in a nutshell, Watson, and if you can give me any
-light I shall be infinitely obliged to you."
-
-I had listened with the greatest interest to the statement which Holmes,
-with characteristic clearness, had laid before me. Though most of the
-facts were familiar to me, I had not sufficiently appreciated their
-relative importance, nor their connection to each other.
-
-"Is it not possible," I suggested, "that the incised wound upon Straker
-may have been caused by his own knife in the convulsive struggles which
-follow any brain injury?"
-
-"It is more than possible; it is probable," said Holmes. "In that case
-one of the main points in favor of the accused disappears."
-
-"And yet," said I, "even now I fail to understand what the theory of the
-police can be."
-
-"I am afraid that whatever theory we state has very grave objections to
-it," returned my companion. "The police imagine, I take it, that this
-Fitzroy Simpson, having drugged the lad, and having in some way obtained
-a duplicate key, opened the stable door and took out the horse, with
-the intention, apparently, of kidnapping him altogether. His bridle is
-missing, so that Simpson must have put this on. Then, having left the
-door open behind him, he was leading the horse away over the moor, when
-he was either met or overtaken by the trainer. A row naturally ensued.
-Simpson beat out the trainer's brains with his heavy stick without
-receiving any injury from the small knife which Straker used in
-self-defence, and then the thief either led the horse on to some secret
-hiding-place, or else it may have bolted during the struggle, and be
-now wandering out on the moors. That is the case as it appears to
-the police, and improbable as it is, all other explanations are more
-improbable still. However, I shall very quickly test the matter when I
-am once upon the spot, and until then I cannot really see how we can get
-much further than our present position."
-
-It was evening before we reached the little town of Tavistock, which
-lies, like the boss of a shield, in the middle of the huge circle of
-Dartmoor. Two gentlemen were awaiting us in the station--the one a tall,
-fair man with lion-like hair and beard and curiously penetrating light
-blue eyes; the other a small, alert person, very neat and dapper, in a
-frock-coat and gaiters, with trim little side-whiskers and an eye-glass.
-The latter was Colonel Ross, the well-known sportsman; the other,
-Inspector Gregory, a man who was rapidly making his name in the English
-detective service.
-
-"I am delighted that you have come down, Mr. Holmes," said the Colonel.
-"The Inspector here has done all that could possibly be suggested, but I
-wish to leave no stone unturned in trying to avenge poor Straker and in
-recovering my horse."
-
-"Have there been any fresh developments?" asked Holmes.
-
-"I am sorry to say that we have made very little progress," said the
-Inspector. "We have an open carriage outside, and as you would no doubt
-like to see the place before the light fails, we might talk it over as
-we drive."
-
-A minute later we were all seated in a comfortable landau, and were
-rattling through the quaint old Devonshire city. Inspector Gregory was
-full of his case, and poured out a stream of remarks, while Holmes threw
-in an occasional question or interjection. Colonel Ross leaned back with
-his arms folded and his hat tilted over his eyes, while I listened with
-interest to the dialogue of the two detectives. Gregory was formulating
-his theory, which was almost exactly what Holmes had foretold in the
-train.
-
-"The net is drawn pretty close round Fitzroy Simpson," he remarked, "and
-I believe myself that he is our man. At the same time I recognize that
-the evidence is purely circumstantial, and that some new development may
-upset it."
-
-"How about Straker's knife?"
-
-"We have quite come to the conclusion that he wounded himself in his
-fall."
-
-"My friend Dr. Watson made that suggestion to me as we came down. If so,
-it would tell against this man Simpson."
-
-"Undoubtedly. He has neither a knife nor any sign of a wound. The
-evidence against him is certainly very strong. He had a great interest
-in the disappearance of the favorite. He lies under suspicion of having
-poisoned the stable-boy, he was undoubtedly out in the storm, he was
-armed with a heavy stick, and his cravat was found in the dead man's
-hand. I really think we have enough to go before a jury."
-
-Holmes shook his head. "A clever counsel would tear it all to rags,"
-said he. "Why should he take the horse out of the stable? If he wished
-to injure it why could he not do it there? Has a duplicate key been
-found in his possession? What chemist sold him the powdered opium? Above
-all, where could he, a stranger to the district, hide a horse, and such
-a horse as this? What is his own explanation as to the paper which he
-wished the maid to give to the stable-boy?"
-
-"He says that it was a ten-pound note. One was found in his purse. But
-your other difficulties are not so formidable as they seem. He is not
-a stranger to the district. He has twice lodged at Tavistock in the
-summer. The opium was probably brought from London. The key, having
-served its purpose, would be hurled away. The horse may be at the bottom
-of one of the pits or old mines upon the moor."
-
-"What does he say about the cravat?"
-
-"He acknowledges that it is his, and declares that he had lost it. But a
-new element has been introduced into the case which may account for his
-leading the horse from the stable."
-
-Holmes pricked up his ears.
-
-"We have found traces which show that a party of gypsies encamped on
-Monday night within a mile of the spot where the murder took place. On
-Tuesday they were gone. Now, presuming that there was some understanding
-between Simpson and these gypsies, might he not have been leading the
-horse to them when he was overtaken, and may they not have him now?"
-
-"It is certainly possible."
-
-"The moor is being scoured for these gypsies. I have also examined every
-stable and out-house in Tavistock, and for a radius of ten miles."
-
-"There is another training-stable quite close, I understand?"
-
-"Yes, and that is a factor which we must certainly not neglect. As
-Desborough, their horse, was second in the betting, they had an interest
-in the disappearance of the favorite. Silas Brown, the trainer, is known
-to have had large bets upon the event, and he was no friend to poor
-Straker. We have, however, examined the stables, and there is nothing to
-connect him with the affair."
-
-"And nothing to connect this man Simpson with the interests of the
-Mapleton stables?"
-
-"Nothing at all."
-
-Holmes leaned back in the carriage, and the conversation ceased. A few
-minutes later our driver pulled up at a neat little red-brick villa with
-overhanging eaves which stood by the road. Some distance off, across a
-paddock, lay a long gray-tiled out-building. In every other direction
-the low curves of the moor, bronze-colored from the fading ferns,
-stretched away to the sky-line, broken only by the steeples of
-Tavistock, and by a cluster of houses away to the westward which marked
-the Mapleton stables. We all sprang out with the exception of Holmes,
-who continued to lean back with his eyes fixed upon the sky in front of
-him, entirely absorbed in his own thoughts. It was only when I touched
-his arm that he roused himself with a violent start and stepped out of
-the carriage.
-
-"Excuse me," said he, turning to Colonel Ross, who had looked at him in
-some surprise. "I was day-dreaming." There was a gleam in his eyes and a
-suppressed excitement in his manner which convinced me, used as I was
-to his ways, that his hand was upon a clue, though I could not imagine
-where he had found it.
-
-"Perhaps you would prefer at once to go on to the scene of the crime,
-Mr. Holmes?" said Gregory.
-
-"I think that I should prefer to stay here a little and go into one or
-two questions of detail. Straker was brought back here, I presume?"
-
-"Yes; he lies upstairs. The inquest is to-morrow."
-
-"He has been in your service some years, Colonel Ross?"
-
-"I have always found him an excellent servant."
-
-"I presume that you made an inventory of what he had in his pockets at
-the time of his death, Inspector?"
-
-"I have the things themselves in the sitting-room, if you would care to
-see them."
-
-"I should be very glad." We all filed into the front room and sat round
-the central table while the Inspector unlocked a square tin box and laid
-a small heap of things before us. There was a box of vestas, two inches
-of tallow candle, an A D P brier-root pipe, a pouch of seal-skin with
-half an ounce of long-cut Cavendish, a silver watch with a gold chain,
-five sovereigns in gold, an aluminum pencil-case, a few papers, and an
-ivory-handled knife with a very delicate, inflexible blade marked Weiss
-& Co., London.
-
-"This is a very singular knife," said Holmes, lifting it up and
-examining it minutely. "I presume, as I see blood-stains upon it, that
-it is the one which was found in the dead man's grasp. Watson, this
-knife is surely in your line?"
-
-"It is what we call a cataract knife," said I.
-
-"I thought so. A very delicate blade devised for very delicate work.
-A strange thing for a man to carry with him upon a rough expedition,
-especially as it would not shut in his pocket."
-
-"The tip was guarded by a disk of cork which we found beside his body,"
-said the Inspector. "His wife tells us that the knife had lain upon the
-dressing-table, and that he had picked it up as he left the room. It was
-a poor weapon, but perhaps the best that he could lay his hands on at
-the moment."
-
-"Very possible. How about these papers?"
-
-"Three of them are receipted hay-dealers' accounts. One of them is a
-letter of instructions from Colonel Ross. This other is a milliner's
-account for thirty-seven pounds fifteen made out by Madame Lesurier,
-of Bond Street, to William Derbyshire. Mrs. Straker tells us that
-Derbyshire was a friend of her husband's and that occasionally his
-letters were addressed here."
-
-"Madam Derbyshire had somewhat expensive tastes," remarked Holmes,
-glancing down the account. "Twenty-two guineas is rather heavy for a
-single costume. However there appears to be nothing more to learn, and
-we may now go down to the scene of the crime."
-
-As we emerged from the sitting-room a woman, who had been waiting in
-the passage, took a step forward and laid her hand upon the Inspector's
-sleeve. Her face was haggard and thin and eager, stamped with the print
-of a recent horror.
-
-"Have you got them? Have you found them?" she panted.
-
-"No, Mrs. Straker. But Mr. Holmes here has come from London to help us,
-and we shall do all that is possible."
-
-"Surely I met you in Plymouth at a garden-party some little time ago,
-Mrs. Straker?" said Holmes.
-
-"No, sir; you are mistaken."
-
-"Dear me! Why, I could have sworn to it. You wore a costume of
-dove-colored silk with ostrich-feather trimming."
-
-"I never had such a dress, sir," answered the lady.
-
-"Ah, that quite settles it," said Holmes. And with an apology he
-followed the Inspector outside. A short walk across the moor took us to
-the hollow in which the body had been found. At the brink of it was the
-furze-bush upon which the coat had been hung.
-
-"There was no wind that night, I understand," said Holmes.
-
-"None; but very heavy rain."
-
-"In that case the overcoat was not blown against the furze-bush, but
-placed there."
-
-"Yes, it was laid across the bush."
-
-"You fill me with interest, I perceive that the ground has been trampled
-up a good deal. No doubt many feet have been here since Monday night."
-
-"A piece of matting has been laid here at the side, and we have all
-stood upon that."
-
-"Excellent."
-
-"In this bag I have one of the boots which Straker wore, one of Fitzroy
-Simpson's shoes, and a cast horseshoe of Silver Blaze."
-
-"My dear Inspector, you surpass yourself!" Holmes took the bag, and,
-descending into the hollow, he pushed the matting into a more central
-position. Then stretching himself upon his face and leaning his chin
-upon his hands, he made a careful study of the trampled mud in front of
-him. "Hullo!" said he, suddenly. "What's this?" It was a wax vesta half
-burned, which was so coated with mud that it looked at first like a
-little chip of wood.
-
-"I cannot think how I came to overlook it," said the Inspector, with an
-expression of annoyance.
-
-"It was invisible, buried in the mud. I only saw it because I was
-looking for it."
-
-"What! You expected to find it?"
-
-"I thought it not unlikely."
-
-He took the boots from the bag, and compared the impressions of each of
-them with marks upon the ground. Then he clambered up to the rim of the
-hollow, and crawled about among the ferns and bushes.
-
-"I am afraid that there are no more tracks," said the Inspector. "I
-have examined the ground very carefully for a hundred yards in each
-direction."
-
-"Indeed!" said Holmes, rising. "I should not have the impertinence to
-do it again after what you say. But I should like to take a little walk
-over the moor before it grows dark, that I may know my ground to-morrow,
-and I think that I shall put this horseshoe into my pocket for luck."
-
-Colonel Ross, who had shown some signs of impatience at my companion's
-quiet and systematic method of work, glanced at his watch. "I wish you
-would come back with me, Inspector," said he. "There are several points
-on which I should like your advice, and especially as to whether we do
-not owe it to the public to remove our horse's name from the entries for
-the Cup."
-
-"Certainly not," cried Holmes, with decision. "I should let the name
-stand."
-
-The Colonel bowed. "I am very glad to have had your opinion, sir," said
-he. "You will find us at poor Straker's house when you have finished
-your walk, and we can drive together into Tavistock."
-
-He turned back with the Inspector, while Holmes and I walked slowly
-across the moor. The sun was beginning to sink behind the stables of
-Mapleton, and the long, sloping plain in front of us was tinged with
-gold, deepening into rich, ruddy browns where the faded ferns and
-brambles caught the evening light. But the glories of the landscape were
-all wasted upon my companion, who was sunk in the deepest thought.
-
-"It's this way, Watson," said he at last. "We may leave the question
-of who killed John Straker for the instant, and confine ourselves to
-finding out what has become of the horse. Now, supposing that he broke
-away during or after the tragedy, where could he have gone to? The horse
-is a very gregarious creature. If left to himself his instincts would
-have been either to return to King's Pyland or go over to Mapleton. Why
-should he run wild upon the moor? He would surely have been seen by now.
-And why should gypsies kidnap him? These people always clear out when
-they hear of trouble, for they do not wish to be pestered by the police.
-They could not hope to sell such a horse. They would run a great risk
-and gain nothing by taking him. Surely that is clear."
-
-"Where is he, then?"
-
-"I have already said that he must have gone to King's Pyland or to
-Mapleton. He is not at King's Pyland. Therefore he is at Mapleton. Let
-us take that as a working hypothesis and see what it leads us to. This
-part of the moor, as the Inspector remarked, is very hard and dry. But
-it falls away towards Mapleton, and you can see from here that there
-is a long hollow over yonder, which must have been very wet on Monday
-night. If our supposition is correct, then the horse must have crossed
-that, and there is the point where we should look for his tracks."
-
-We had been walking briskly during this conversation, and a few more
-minutes brought us to the hollow in question. At Holmes' request I
-walked down the bank to the right, and he to the left, but I had not
-taken fifty paces before I heard him give a shout, and saw him waving
-his hand to me. The track of a horse was plainly outlined in the soft
-earth in front of him, and the shoe which he took from his pocket
-exactly fitted the impression.
-
-"See the value of imagination," said Holmes. "It is the one quality
-which Gregory lacks. We imagined what might have happened, acted upon
-the supposition, and find ourselves justified. Let us proceed."
-
-We crossed the marshy bottom and passed over a quarter of a mile of dry,
-hard turf. Again the ground sloped, and again we came on the tracks.
-Then we lost them for half a mile, but only to pick them up once more
-quite close to Mapleton. It was Holmes who saw them first, and he stood
-pointing with a look of triumph upon his face. A man's track was visible
-beside the horse's.
-
-"The horse was alone before," I cried.
-
-"Quite so. It was alone before. Hullo, what is this?"
-
-The double track turned sharp off and took the direction of King's
-Pyland. Holmes whistled, and we both followed along after it. His eyes
-were on the trail, but I happened to look a little to one side, and
-saw to my surprise the same tracks coming back again in the opposite
-direction.
-
-"One for you, Watson," said Holmes, when I pointed it out. "You have
-saved us a long walk, which would have brought us back on our own
-traces. Let us follow the return track."
-
-We had not to go far. It ended at the paving of asphalt which led up
-to the gates of the Mapleton stables. As we approached, a groom ran out
-from them.
-
-"We don't want any loiterers about here," said he.
-
-"I only wished to ask a question," said Holmes, with his finger and
-thumb in his waistcoat pocket. "Should I be too early to see your
-master, Mr. Silas Brown, if I were to call at five o'clock to-morrow
-morning?"
-
-"Bless you, sir, if any one is about he will be, for he is always
-the first stirring. But here he is, sir, to answer your questions for
-himself. No, sir, no; it is as much as my place is worth to let him see
-me touch your money. Afterwards, if you like."
-
-As Sherlock Holmes replaced the half-crown which he had drawn from his
-pocket, a fierce-looking elderly man strode out from the gate with a
-hunting-crop swinging in his hand.
-
-"What's this, Dawson!" he cried. "No gossiping! Go about your business!
-And you, what the devil do you want here?"
-
-"Ten minutes' talk with you, my good sir," said Holmes in the sweetest
-of voices.
-
-"I've no time to talk to every gadabout. We want no stranger here. Be
-off, or you may find a dog at your heels."
-
-Holmes leaned forward and whispered something in the trainer's ear. He
-started violently and flushed to the temples.
-
-"It's a lie!" he shouted, "an infernal lie!"
-
-"Very good. Shall we argue about it here in public or talk it over in
-your parlor?"
-
-"Oh, come in if you wish to."
-
-Holmes smiled. "I shall not keep you more than a few minutes, Watson,"
-said he. "Now, Mr. Brown, I am quite at your disposal."
-
-It was twenty minutes, and the reds had all faded into grays before
-Holmes and the trainer reappeared. Never have I seen such a change as
-had been brought about in Silas Brown in that short time. His face was
-ashy pale, beads of perspiration shone upon his brow, and his hands
-shook until the hunting-crop wagged like a branch in the wind. His
-bullying, overbearing manner was all gone too, and he cringed along at
-my companion's side like a dog with its master.
-
-"Your instructions will be done. It shall all be done," said he.
-
-"There must be no mistake," said Holmes, looking round at him. The other
-winced as he read the menace in his eyes.
-
-"Oh no, there shall be no mistake. It shall be there. Should I change it
-first or not?"
-
-Holmes thought a little and then burst out laughing. "No, don't," said
-he; "I shall write to you about it. No tricks, now, or--"
-
-"Oh, you can trust me, you can trust me!"
-
-"Yes, I think I can. Well, you shall hear from me to-morrow." He turned
-upon his heel, disregarding the trembling hand which the other held out
-to him, and we set off for King's Pyland.
-
-"A more perfect compound of the bully, coward, and sneak than Master
-Silas Brown I have seldom met with," remarked Holmes as we trudged along
-together.
-
-"He has the horse, then?"
-
-"He tried to bluster out of it, but I described to him so exactly what
-his actions had been upon that morning that he is convinced that I was
-watching him. Of course you observed the peculiarly square toes in the
-impressions, and that his own boots exactly corresponded to them.
-Again, of course no subordinate would have dared to do such a thing.
-I described to him how, when according to his custom he was the first
-down, he perceived a strange horse wandering over the moor. How he went
-out to it, and his astonishment at recognizing, from the white forehead
-which has given the favorite its name, that chance had put in his power
-the only horse which could beat the one upon which he had put his money.
-Then I described how his first impulse had been to lead him back to
-King's Pyland, and how the devil had shown him how he could hide the
-horse until the race was over, and how he had led it back and concealed
-it at Mapleton. When I told him every detail he gave it up and thought
-only of saving his own skin."
-
-"But his stables had been searched?"
-
-"Oh, an old horse-faker like him has many a dodge."
-
-"But are you not afraid to leave the horse in his power now, since he
-has every interest in injuring it?"
-
-"My dear fellow, he will guard it as the apple of his eye. He knows that
-his only hope of mercy is to produce it safe."
-
-"Colonel Ross did not impress me as a man who would be likely to show
-much mercy in any case."
-
-"The matter does not rest with Colonel Ross. I follow my own methods,
-and tell as much or as little as I choose. That is the advantage of
-being unofficial. I don't know whether you observed it, Watson, but the
-Colonel's manner has been just a trifle cavalier to me. I am inclined
-now to have a little amusement at his expense. Say nothing to him about
-the horse."
-
-"Certainly not without your permission."
-
-"And of course this is all quite a minor point compared to the question
-of who killed John Straker."
-
-"And you will devote yourself to that?"
-
-"On the contrary, we both go back to London by the night train."
-
-I was thunderstruck by my friend's words. We had only been a few hours
-in Devonshire, and that he should give up an investigation which he had
-begun so brilliantly was quite incomprehensible to me. Not a word more
-could I draw from him until we were back at the trainer's house. The
-Colonel and the Inspector were awaiting us in the parlor.
-
-"My friend and I return to town by the night-express," said Holmes. "We
-have had a charming little breath of your beautiful Dartmoor air."
-
-The Inspector opened his eyes, and the Colonel's lip curled in a sneer.
-
-"So you despair of arresting the murderer of poor Straker," said he.
-
-Holmes shrugged his shoulders. "There are certainly grave difficulties
-in the way," said he. "I have every hope, however, that your horse
-will start upon Tuesday, and I beg that you will have your jockey in
-readiness. Might I ask for a photograph of Mr. John Straker?"
-
-The Inspector took one from an envelope and handed it to him.
-
-"My dear Gregory, you anticipate all my wants. If I might ask you to
-wait here for an instant, I have a question which I should like to put
-to the maid."
-
-"I must say that I am rather disappointed in our London consultant,"
-said Colonel Ross, bluntly, as my friend left the room. "I do not see
-that we are any further than when he came."
-
-"At least you have his assurance that your horse will run," said I.
-
-"Yes, I have his assurance," said the Colonel, with a shrug of his
-shoulders. "I should prefer to have the horse."
-
-I was about to make some reply in defence of my friend when he entered
-the room again.
-
-"Now, gentlemen," said he, "I am quite ready for Tavistock."
-
-As we stepped into the carriage one of the stable-lads held the door
-open for us. A sudden idea seemed to occur to Holmes, for he leaned
-forward and touched the lad upon the sleeve.
-
-"You have a few sheep in the paddock," he said. "Who attends to them?"
-
-"I do, sir."
-
-"Have you noticed anything amiss with them of late?"
-
-"Well, sir, not of much account; but three of them have gone lame, sir."
-
-I could see that Holmes was extremely pleased, for he chuckled and
-rubbed his hands together.
-
-"A long shot, Watson; a very long shot," said he, pinching my arm.
-"Gregory, let me recommend to your attention this singular epidemic
-among the sheep. Drive on, coachman!"
-
-Colonel Ross still wore an expression which showed the poor opinion
-which he had formed of my companion's ability, but I saw by the
-Inspector's face that his attention had been keenly aroused.
-
-"You consider that to be important?" he asked.
-
-"Exceedingly so."
-
-"Is there any point to which you would wish to draw my attention?"
-
-"To the curious incident of the dog in the night-time."
-
-"The dog did nothing in the night-time."
-
-"That was the curious incident," remarked Sherlock Holmes.
-
-
-Four days later Holmes and I were again in the train, bound for
-Winchester to see the race for the Wessex Cup. Colonel Ross met us by
-appointment outside the station, and we drove in his drag to the course
-beyond the town. His face was grave, and his manner was cold in the
-extreme.
-
-"I have seen nothing of my horse," said he.
-
-"I suppose that you would know him when you saw him?" asked Holmes.
-
-The Colonel was very angry. "I have been on the turf for twenty years,
-and never was asked such a question as that before," said he. "A
-child would know Silver Blaze, with his white forehead and his mottled
-off-foreleg."
-
-"How is the betting?"
-
-"Well, that is the curious part of it. You could have got fifteen to one
-yesterday, but the price has become shorter and shorter, until you can
-hardly get three to one now."
-
-"Hum!" said Holmes. "Somebody knows something, that is clear."
-
-As the drag drew up in the enclosure near the grand stand I glanced at
-the card to see the entries.
-
-Wessex Plate [it ran] 50 sovs each h ft with 1000 sovs added for four
-and five year olds. Second, L300. Third, L200. New course (one mile and
-five furlongs). Mr. Heath Newton's The Negro. Red cap. Cinnamon jacket.
-Colonel Wardlaw's Pugilist. Pink cap. Blue and black jacket. Lord
-Backwater's Desborough. Yellow cap and sleeves. Colonel Ross's Silver
-Blaze. Black cap. Red jacket. Duke of Balmoral's Iris. Yellow and black
-stripes. Lord Singleford's Rasper. Purple cap. Black sleeves.
-
-"We scratched our other one, and put all hopes on your word," said the
-Colonel. "Why, what is that? Silver Blaze favorite?"
-
-"Five to four against Silver Blaze!" roared the ring. "Five to four
-against Silver Blaze! Five to fifteen against Desborough! Five to four
-on the field!"
-
-"There are the numbers up," I cried. "They are all six there."
-
-"All six there? Then my horse is running," cried the Colonel in great
-agitation. "But I don't see him. My colors have not passed."
-
-"Only five have passed. This must be he."
-
-As I spoke a powerful bay horse swept out from the weighing enclosure
-and cantered past us, bearing on its back the well-known black and red
-of the Colonel.
-
-"That's not my horse," cried the owner. "That beast has not a white hair
-upon its body. What is this that you have done, Mr. Holmes?"
-
-"Well, well, let us see how he gets on," said my friend, imperturbably.
-For a few minutes he gazed through my field-glass. "Capital! An
-excellent start!" he cried suddenly. "There they are, coming round the
-curve!"
-
-From our drag we had a superb view as they came up the straight. The six
-horses were so close together that a carpet could have covered them,
-but half way up the yellow of the Mapleton stable showed to the front.
-Before they reached us, however, Desborough's bolt was shot, and the
-Colonel's horse, coming away with a rush, passed the post a good six
-lengths before its rival, the Duke of Balmoral's Iris making a bad
-third.
-
-"It's my race, anyhow," gasped the Colonel, passing his hand over his
-eyes. "I confess that I can make neither head nor tail of it. Don't you
-think that you have kept up your mystery long enough, Mr. Holmes?"
-
-"Certainly, Colonel, you shall know everything. Let us all go round and
-have a look at the horse together. Here he is," he continued, as we made
-our way into the weighing enclosure, where only owners and their friends
-find admittance. "You have only to wash his face and his leg in spirits
-of wine, and you will find that he is the same old Silver Blaze as
-ever."
-
-"You take my breath away!"
-
-"I found him in the hands of a faker, and took the liberty of running
-him just as he was sent over."
-
-"My dear sir, you have done wonders. The horse looks very fit and well.
-It never went better in its life. I owe you a thousand apologies
-for having doubted your ability. You have done me a great service by
-recovering my horse. You would do me a greater still if you could lay
-your hands on the murderer of John Straker."
-
-"I have done so," said Holmes quietly.
-
-The Colonel and I stared at him in amazement. "You have got him! Where
-is he, then?"
-
-"He is here."
-
-"Here! Where?"
-
-"In my company at the present moment."
-
-The Colonel flushed angrily. "I quite recognize that I am under
-obligations to you, Mr. Holmes," said he, "but I must regard what you
-have just said as either a very bad joke or an insult."
-
-Sherlock Holmes laughed. "I assure you that I have not associated
-you with the crime, Colonel," said he. "The real murderer is standing
-immediately behind you." He stepped past and laid his hand upon the
-glossy neck of the thoroughbred.
-
-"The horse!" cried both the Colonel and myself.
-
-"Yes, the horse. And it may lessen his guilt if I say that it was
-done in self-defence, and that John Straker was a man who was entirely
-unworthy of your confidence. But there goes the bell, and as I stand
-to win a little on this next race, I shall defer a lengthy explanation
-until a more fitting time."
-
-
-
-We had the corner of a Pullman car to ourselves that evening as we
-whirled back to London, and I fancy that the journey was a short one
-to Colonel Ross as well as to myself, as we listened to our
-companion's narrative of the events which had occurred at the Dartmoor
-training-stables upon the Monday night, and the means by which he had
-unravelled them.
-
-"I confess," said he, "that any theories which I had formed from
-the newspaper reports were entirely erroneous. And yet there were
-indications there, had they not been overlaid by other details which
-concealed their true import. I went to Devonshire with the conviction
-that Fitzroy Simpson was the true culprit, although, of course, I saw
-that the evidence against him was by no means complete. It was while I
-was in the carriage, just as we reached the trainer's house, that the
-immense significance of the curried mutton occurred to me. You may
-remember that I was distrait, and remained sitting after you had all
-alighted. I was marvelling in my own mind how I could possibly have
-overlooked so obvious a clue."
-
-"I confess," said the Colonel, "that even now I cannot see how it helps
-us."
-
-"It was the first link in my chain of reasoning. Powdered opium is by no
-means tasteless. The flavor is not disagreeable, but it is perceptible.
-Were it mixed with any ordinary dish the eater would undoubtedly detect
-it, and would probably eat no more. A curry was exactly the medium
-which would disguise this taste. By no possible supposition could
-this stranger, Fitzroy Simpson, have caused curry to be served in
-the trainer's family that night, and it is surely too monstrous a
-coincidence to suppose that he happened to come along with powdered
-opium upon the very night when a dish happened to be served which would
-disguise the flavor. That is unthinkable. Therefore Simpson becomes
-eliminated from the case, and our attention centers upon Straker and
-his wife, the only two people who could have chosen curried mutton for
-supper that night. The opium was added after the dish was set aside
-for the stable-boy, for the others had the same for supper with no ill
-effects. Which of them, then, had access to that dish without the maid
-seeing them?
-
-"Before deciding that question I had grasped the significance of the
-silence of the dog, for one true inference invariably suggests others.
-The Simpson incident had shown me that a dog was kept in the stables,
-and yet, though some one had been in and had fetched out a horse, he
-had not barked enough to arouse the two lads in the loft. Obviously the
-midnight visitor was some one whom the dog knew well.
-
-"I was already convinced, or almost convinced, that John Straker went
-down to the stables in the dead of the night and took out Silver Blaze.
-For what purpose? For a dishonest one, obviously, or why should he drug
-his own stable-boy? And yet I was at a loss to know why. There have been
-cases before now where trainers have made sure of great sums of money
-by laying against their own horses, through agents, and then preventing
-them from winning by fraud. Sometimes it is a pulling jockey. Sometimes
-it is some surer and subtler means. What was it here? I hoped that the
-contents of his pockets might help me to form a conclusion.
-
-"And they did so. You cannot have forgotten the singular knife which was
-found in the dead man's hand, a knife which certainly no sane man would
-choose for a weapon. It was, as Dr. Watson told us, a form of knife
-which is used for the most delicate operations known in surgery. And it
-was to be used for a delicate operation that night. You must know, with
-your wide experience of turf matters, Colonel Ross, that it is possible
-to make a slight nick upon the tendons of a horse's ham, and to do it
-subcutaneously, so as to leave absolutely no trace. A horse so treated
-would develop a slight lameness, which would be put down to a strain in
-exercise or a touch of rheumatism, but never to foul play."
-
-"Villain! Scoundrel!" cried the Colonel.
-
-"We have here the explanation of why John Straker wished to take the
-horse out on to the moor. So spirited a creature would have certainly
-roused the soundest of sleepers when it felt the prick of the knife. It
-was absolutely necessary to do it in the open air."
-
-"I have been blind!" cried the Colonel. "Of course that was why he
-needed the candle, and struck the match."
-
-"Undoubtedly. But in examining his belongings I was fortunate enough to
-discover not only the method of the crime, but even its motives. As a
-man of the world, Colonel, you know that men do not carry other people's
-bills about in their pockets. We have most of us quite enough to do to
-settle our own. I at once concluded that Straker was leading a double
-life, and keeping a second establishment. The nature of the bill showed
-that there was a lady in the case, and one who had expensive tastes.
-Liberal as you are with your servants, one can hardly expect that they
-can buy twenty-guinea walking dresses for their ladies. I questioned
-Mrs. Straker as to the dress without her knowing it, and having
-satisfied myself that it had never reached her, I made a note of the
-milliner's address, and felt that by calling there with Straker's
-photograph I could easily dispose of the mythical Derbyshire.
-
-"From that time on all was plain. Straker had led out the horse to a
-hollow where his light would be invisible. Simpson in his flight had
-dropped his cravat, and Straker had picked it up--with some idea,
-perhaps, that he might use it in securing the horse's leg. Once in the
-hollow, he had got behind the horse and had struck a light; but the
-creature frightened at the sudden glare, and with the strange instinct
-of animals feeling that some mischief was intended, had lashed out, and
-the steel shoe had struck Straker full on the forehead. He had already,
-in spite of the rain, taken off his overcoat in order to do his delicate
-task, and so, as he fell, his knife gashed his thigh. Do I make it
-clear?"
-
-"Wonderful!" cried the Colonel. "Wonderful! You might have been there!"
-
-"My final shot was, I confess a very long one. It struck me that so
-astute a man as Straker would not undertake this delicate tendon-nicking
-without a little practice. What could he practice on? My eyes fell upon
-the sheep, and I asked a question which, rather to my surprise, showed
-that my surmise was correct.
-
-"When I returned to London I called upon the milliner, who had
-recognized Straker as an excellent customer of the name of Derbyshire,
-who had a very dashing wife, with a strong partiality for expensive
-dresses. I have no doubt that this woman had plunged him over head and
-ears in debt, and so led him into this miserable plot."
-
-"You have explained all but one thing," cried the Colonel. "Where was
-the horse?"
-
-"Ah, it bolted, and was cared for by one of your neighbors. We must have
-an amnesty in that direction, I think. This is Clapham Junction, if I am
-not mistaken, and we shall be in Victoria in less than ten minutes. If
-you care to smoke a cigar in our rooms, Colonel, I shall be happy to
-give you any other details which might interest you."
-
-
-
-
-Adventure II. The Yellow Face
-
-
-[In publishing these short sketches based upon the numerous cases in
-which my companion's singular gifts have made us the listeners to, and
-eventually the actors in, some strange drama, it is only natural that I
-should dwell rather upon his successes than upon his failures. And this
-not so much for the sake of his reputation--for, indeed, it was when
-he was at his wits' end that his energy and his versatility were most
-admirable--but because where he failed it happened too often that no one
-else succeeded, and that the tale was left forever without a conclusion.
-Now and again, however, it chanced that even when he erred, the truth
-was still discovered. I have noted of some half-dozen cases of the
-kind; the Adventure of the Musgrave Ritual and that which I am about to
-recount are the two which present the strongest features of interest.]
-
-Sherlock Holmes was a man who seldom took exercise for exercise's sake.
-Few men were capable of greater muscular effort, and he was undoubtedly
-one of the finest boxers of his weight that I have ever seen; but he
-looked upon aimless bodily exertion as a waste of energy, and he seldom
-bestirred himself save when there was some professional object to be
-served. Then he was absolutely untiring and indefatigable. That he
-should have kept himself in training under such circumstances is
-remarkable, but his diet was usually of the sparest, and his habits
-were simple to the verge of austerity. Save for the occasional use of
-cocaine, he had no vices, and he only turned to the drug as a protest
-against the monotony of existence when cases were scanty and the papers
-uninteresting.
-
-One day in early spring he had so far relaxed as to go for a walk with
-me in the Park, where the first faint shoots of green were breaking out
-upon the elms, and the sticky spear-heads of the chestnuts were just
-beginning to burst into their five-fold leaves. For two hours we rambled
-about together, in silence for the most part, as befits two men who know
-each other intimately. It was nearly five before we were back in Baker
-Street once more.
-
-"Beg pardon, sir," said our page-boy, as he opened the door. "There's
-been a gentleman here asking for you, sir."
-
-Holmes glanced reproachfully at me. "So much for afternoon walks!" said
-he. "Has this gentleman gone, then?"
-
-"Yes, sir."
-
-"Didn't you ask him in?"
-
-"Yes, sir; he came in."
-
-"How long did he wait?"
-
-"Half an hour, sir. He was a very restless gentleman, sir, a-walkin'
-and a-stampin' all the time he was here. I was waitin' outside the door,
-sir, and I could hear him. At last he outs into the passage, and he
-cries, 'Is that man never goin' to come?' Those were his very words,
-sir. 'You'll only need to wait a little longer,' says I. 'Then I'll wait
-in the open air, for I feel half choked,' says he. 'I'll be back before
-long.' And with that he ups and he outs, and all I could say wouldn't
-hold him back."
-
-"Well, well, you did your best," said Holmes, as we walked into our
-room. "It's very annoying, though, Watson. I was badly in need of
-a case, and this looks, from the man's impatience, as if it were of
-importance. Hullo! That's not your pipe on the table. He must have
-left his behind him. A nice old brier with a good long stem of what the
-tobacconists call amber. I wonder how many real amber mouthpieces there
-are in London? Some people think that a fly in it is a sign. Well, he
-must have been disturbed in his mind to leave a pipe behind him which he
-evidently values highly."
-
-"How do you know that he values it highly?" I asked.
-
-"Well, I should put the original cost of the pipe at seven and sixpence.
-Now it has, you see, been twice mended, once in the wooden stem and once
-in the amber. Each of these mends, done, as you observe, with silver
-bands, must have cost more than the pipe did originally. The man must
-value the pipe highly when he prefers to patch it up rather than buy a
-new one with the same money."
-
-"Anything else?" I asked, for Holmes was turning the pipe about in his
-hand, and staring at it in his peculiar pensive way.
-
-He held it up and tapped on it with his long, thin fore-finger, as a
-professor might who was lecturing on a bone.
-
-"Pipes are occasionally of extraordinary interest," said he. "Nothing
-has more individuality, save perhaps watches and bootlaces. The
-indications here, however, are neither very marked nor very important.
-The owner is obviously a muscular man, left-handed, with an excellent
-set of teeth, careless in his habits, and with no need to practise
-economy."
-
-My friend threw out the information in a very offhand way, but I saw
-that he cocked his eye at me to see if I had followed his reasoning.
-
-"You think a man must be well-to-do if he smokes a seven-shilling pipe,"
-said I.
-
-"This is Grosvenor mixture at eightpence an ounce," Holmes answered,
-knocking a little out on his palm. "As he might get an excellent smoke
-for half the price, he has no need to practise economy."
-
-"And the other points?"
-
-"He has been in the habit of lighting his pipe at lamps and gas-jets.
-You can see that it is quite charred all down one side. Of course a
-match could not have done that. Why should a man hold a match to the
-side of his pipe? But you cannot light it at a lamp without getting the
-bowl charred. And it is all on the right side of the pipe. From that I
-gather that he is a left-handed man. You hold your own pipe to the lamp,
-and see how naturally you, being right-handed, hold the left side to the
-flame. You might do it once the other way, but not as a constancy. This
-has always been held so. Then he has bitten through his amber. It takes
-a muscular, energetic fellow, and one with a good set of teeth, to do
-that. But if I am not mistaken I hear him upon the stair, so we shall
-have something more interesting than his pipe to study."
-
-An instant later our door opened, and a tall young man entered the room.
-He was well but quietly dressed in a dark-gray suit, and carried a brown
-wide-awake in his hand. I should have put him at about thirty, though he
-was really some years older.
-
-"I beg your pardon," said he, with some embarrassment; "I suppose I
-should have knocked. Yes, of course I should have knocked. The fact
-is that I am a little upset, and you must put it all down to that." He
-passed his hand over his forehead like a man who is half dazed, and then
-fell rather than sat down upon a chair.
-
-"I can see that you have not slept for a night or two," said Holmes,
-in his easy, genial way. "That tries a man's nerves more than work, and
-more even than pleasure. May I ask how I can help you?"
-
-"I wanted your advice, sir. I don't know what to do and my whole life
-seems to have gone to pieces."
-
-"You wish to employ me as a consulting detective?"
-
-"Not that only. I want your opinion as a judicious man--as a man of the
-world. I want to know what I ought to do next. I hope to God you'll be
-able to tell me."
-
-He spoke in little, sharp, jerky outbursts, and it seemed to me that to
-speak at all was very painful to him, and that his will all through was
-overriding his inclinations.
-
-"It's a very delicate thing," said he. "One does not like to speak of
-one's domestic affairs to strangers. It seems dreadful to discuss the
-conduct of one's wife with two men whom I have never seen before. It's
-horrible to have to do it. But I've got to the end of my tether, and I
-must have advice."
-
-"My dear Mr. Grant Munro--" began Holmes.
-
-Our visitor sprang from his chair. "What!" he cried, "you know my name?"
-
-"If you wish to preserve your incognito," said Holmes, smiling, "I would
-suggest that you cease to write your name upon the lining of your
-hat, or else that you turn the crown towards the person whom you are
-addressing. I was about to say that my friend and I have listened to a
-good many strange secrets in this room, and that we have had the good
-fortune to bring peace to many troubled souls. I trust that we may do as
-much for you. Might I beg you, as time may prove to be of importance, to
-furnish me with the facts of your case without further delay?"
-
-Our visitor again passed his hand over his forehead, as if he found it
-bitterly hard. From every gesture and expression I could see that he was
-a reserved, self-contained man, with a dash of pride in his nature, more
-likely to hide his wounds than to expose them. Then suddenly, with a
-fierce gesture of his closed hand, like one who throws reserve to the
-winds, he began.
-
-"The facts are these, Mr. Holmes," said he. "I am a married man, and
-have been so for three years. During that time my wife and I have loved
-each other as fondly and lived as happily as any two that ever were
-joined. We have not had a difference, not one, in thought or word or
-deed. And now, since last Monday, there has suddenly sprung up a barrier
-between us, and I find that there is something in her life and in her
-thought of which I know as little as if she were the woman who brushes
-by me in the street. We are estranged, and I want to know why.
-
-"Now there is one thing that I want to impress upon you before I go
-any further, Mr. Holmes. Effie loves me. Don't let there be any mistake
-about that. She loves me with her whole heart and soul, and never more
-than now. I know it. I feel it. I don't want to argue about that. A man
-can tell easily enough when a woman loves him. But there's this secret
-between us, and we can never be the same until it is cleared."
-
-"Kindly let me have the facts, Mr. Munro," said Holmes, with some
-impatience.
-
-"I'll tell you what I know about Effie's history. She was a widow when
-I met her first, though quite young--only twenty-five. Her name then was
-Mrs. Hebron. She went out to America when she was young, and lived in
-the town of Atlanta, where she married this Hebron, who was a lawyer
-with a good practice. They had one child, but the yellow fever broke out
-badly in the place, and both husband and child died of it. I have seen
-his death certificate. This sickened her of America, and she came back
-to live with a maiden aunt at Pinner, in Middlesex. I may mention that
-her husband had left her comfortably off, and that she had a capital of
-about four thousand five hundred pounds, which had been so well invested
-by him that it returned an average of seven per cent. She had only been
-six months at Pinner when I met her; we fell in love with each other,
-and we married a few weeks afterwards.
-
-"I am a hop merchant myself, and as I have an income of seven or
-eight hundred, we found ourselves comfortably off, and took a nice
-eighty-pound-a-year villa at Norbury. Our little place was very
-countrified, considering that it is so close to town. We had an inn and
-two houses a little above us, and a single cottage at the other side of
-the field which faces us, and except those there were no houses until
-you got half way to the station. My business took me into town at
-certain seasons, but in summer I had less to do, and then in our country
-home my wife and I were just as happy as could be wished. I tell you
-that there never was a shadow between us until this accursed affair
-began.
-
-"There's one thing I ought to tell you before I go further. When we
-married, my wife made over all her property to me--rather against my
-will, for I saw how awkward it would be if my business affairs went
-wrong. However, she would have it so, and it was done. Well, about six
-weeks ago she came to me.
-
-"'Jack,' said she, 'when you took my money you said that if ever I
-wanted any I was to ask you for it.'
-
-"'Certainly,' said I. 'It's all your own.'
-
-"'Well,' said she, 'I want a hundred pounds.'
-
-"I was a bit staggered at this, for I had imagined it was simply a new
-dress or something of the kind that she was after.
-
-"'What on earth for?' I asked.
-
-"'Oh,' said she, in her playful way, 'you said that you were only my
-banker, and bankers never ask questions, you know.'
-
-"'If you really mean it, of course you shall have the money,' said I.
-
-"'Oh, yes, I really mean it.'
-
-"'And you won't tell me what you want it for?'
-
-"'Some day, perhaps, but not just at present, Jack.'
-
-"So I had to be content with that, though it was the first time that
-there had ever been any secret between us. I gave her a check, and I
-never thought any more of the matter. It may have nothing to do with
-what came afterwards, but I thought it only right to mention it.
-
-"Well, I told you just now that there is a cottage not far from our
-house. There is just a field between us, but to reach it you have to
-go along the road and then turn down a lane. Just beyond it is a nice
-little grove of Scotch firs, and I used to be very fond of strolling
-down there, for trees are always a neighborly kind of things. The
-cottage had been standing empty this eight months, and it was a pity,
-for it was a pretty two-storied place, with an old-fashioned porch and
-honeysuckle about it. I have stood many a time and thought what a neat
-little homestead it would make.
-
-"Well, last Monday evening I was taking a stroll down that way, when
-I met an empty van coming up the lane, and saw a pile of carpets and
-things lying about on the grass-plot beside the porch. It was clear that
-the cottage had at last been let. I walked past it, and wondered what
-sort of folk they were who had come to live so near us. And as I looked
-I suddenly became aware that a face was watching me out of one of the
-upper windows.
-
-"I don't know what there was about that face, Mr. Holmes, but it seemed
-to send a chill right down my back. I was some little way off, so that
-I could not make out the features, but there was something unnatural and
-inhuman about the face. That was the impression that I had, and I moved
-quickly forwards to get a nearer view of the person who was watching
-me. But as I did so the face suddenly disappeared, so suddenly that it
-seemed to have been plucked away into the darkness of the room. I stood
-for five minutes thinking the business over, and trying to analyze my
-impressions. I could not tell if the face were that of a man or a
-woman. It had been too far from me for that. But its color was what had
-impressed me most. It was of a livid chalky white, and with something
-set and rigid about it which was shockingly unnatural. So disturbed
-was I that I determined to see a little more of the new inmates of
-the cottage. I approached and knocked at the door, which was instantly
-opened by a tall, gaunt woman with a harsh, forbidding face.
-
-"'What may you be wantin'?' she asked, in a Northern accent.
-
-"'I am your neighbor over yonder,' said I, nodding towards my house. 'I
-see that you have only just moved in, so I thought that if I could be of
-any help to you in any--'
-
-"'Ay, we'll just ask ye when we want ye,' said she, and shut the door
-in my face. Annoyed at the churlish rebuff, I turned my back and walked
-home. All evening, though I tried to think of other things, my mind
-would still turn to the apparition at the window and the rudeness of the
-woman. I determined to say nothing about the former to my wife, for
-she is a nervous, highly strung woman, and I had no wish that she would
-share the unpleasant impression which had been produced upon myself. I
-remarked to her, however, before I fell asleep, that the cottage was now
-occupied, to which she returned no reply.
-
-"I am usually an extremely sound sleeper. It has been a standing jest
-in the family that nothing could ever wake me during the night. And yet
-somehow on that particular night, whether it may have been the slight
-excitement produced by my little adventure or not I know not, but
-I slept much more lightly than usual. Half in my dreams I was dimly
-conscious that something was going on in the room, and gradually became
-aware that my wife had dressed herself and was slipping on her mantle
-and her bonnet. My lips were parted to murmur out some sleepy words of
-surprise or remonstrance at this untimely preparation, when suddenly my
-half-opened eyes fell upon her face, illuminated by the candle-light,
-and astonishment held me dumb. She wore an expression such as I had
-never seen before--such as I should have thought her incapable of
-assuming. She was deadly pale and breathing fast, glancing furtively
-towards the bed as she fastened her mantle, to see if she had disturbed
-me. Then, thinking that I was still asleep, she slipped noiselessly from
-the room, and an instant later I heard a sharp creaking which could only
-come from the hinges of the front door. I sat up in bed and rapped my
-knuckles against the rail to make certain that I was truly awake. Then
-I took my watch from under the pillow. It was three in the morning. What
-on this earth could my wife be doing out on the country road at three in
-the morning?
-
-"I had sat for about twenty minutes turning the thing over in my mind
-and trying to find some possible explanation. The more I thought, the
-more extraordinary and inexplicable did it appear. I was still puzzling
-over it when I heard the door gently close again, and her footsteps
-coming up the stairs.
-
-"'Where in the world have you been, Effie?' I asked as she entered.
-
-"She gave a violent start and a kind of gasping cry when I spoke, and
-that cry and start troubled me more than all the rest, for there was
-something indescribably guilty about them. My wife had always been
-a woman of a frank, open nature, and it gave me a chill to see her
-slinking into her own room, and crying out and wincing when her own
-husband spoke to her.
-
-"'You awake, Jack!' she cried, with a nervous laugh. 'Why, I thought
-that nothing could awake you.'
-
-"'Where have you been?' I asked, more sternly.
-
-"'I don't wonder that you are surprised,' said she, and I could see that
-her fingers were trembling as she undid the fastenings of her mantle.
-'Why, I never remember having done such a thing in my life before. The
-fact is that I felt as though I were choking, and had a perfect longing
-for a breath of fresh air. I really think that I should have fainted if
-I had not gone out. I stood at the door for a few minutes, and now I am
-quite myself again.'
-
-"All the time that she was telling me this story she never once looked
-in my direction, and her voice was quite unlike her usual tones. It
-was evident to me that she was saying what was false. I said nothing
-in reply, but turned my face to the wall, sick at heart, with my mind
-filled with a thousand venomous doubts and suspicions. What was it that
-my wife was concealing from me? Where had she been during that strange
-expedition? I felt that I should have no peace until I knew, and yet I
-shrank from asking her again after once she had told me what was false.
-All the rest of the night I tossed and tumbled, framing theory after
-theory, each more unlikely than the last.
-
-"I should have gone to the City that day, but I was too disturbed in my
-mind to be able to pay attention to business matters. My wife seemed
-to be as upset as myself, and I could see from the little questioning
-glances which she kept shooting at me that she understood that I
-disbelieved her statement, and that she was at her wits' end what to do.
-We hardly exchanged a word during breakfast, and immediately afterwards
-I went out for a walk, that I might think the matter out in the fresh
-morning air.
-
-"I went as far as the Crystal Palace, spent an hour in the grounds, and
-was back in Norbury by one o'clock. It happened that my way took me past
-the cottage, and I stopped for an instant to look at the windows, and to
-see if I could catch a glimpse of the strange face which had looked
-out at me on the day before. As I stood there, imagine my surprise, Mr.
-Holmes, when the door suddenly opened and my wife walked out.
-
-"I was struck dumb with astonishment at the sight of her; but my
-emotions were nothing to those which showed themselves upon her face
-when our eyes met. She seemed for an instant to wish to shrink back
-inside the house again; and then, seeing how useless all concealment
-must be, she came forward, with a very white face and frightened eyes
-which belied the smile upon her lips.
-
-"'Ah, Jack,' she said, 'I have just been in to see if I can be of any
-assistance to our new neighbors. Why do you look at me like that, Jack?
-You are not angry with me?'
-
-"'So,' said I, 'this is where you went during the night.'
-
-"'What do you mean?' she cried.
-
-"'You came here. I am sure of it. Who are these people, that you should
-visit them at such an hour?'
-
-"'I have not been here before.'
-
-"'How can you tell me what you know is false?' I cried. 'Your very voice
-changes as you speak. When have I ever had a secret from you? I shall
-enter that cottage, and I shall probe the matter to the bottom.'
-
-"'No, no, Jack, for God's sake!' she gasped, in uncontrollable emotion.
-Then, as I approached the door, she seized my sleeve and pulled me back
-with convulsive strength.
-
-"'I implore you not to do this, Jack,' she cried. 'I swear that I will
-tell you everything some day, but nothing but misery can come of it if
-you enter that cottage.' Then, as I tried to shake her off, she clung to
-me in a frenzy of entreaty.
-
-"'Trust me, Jack!' she cried. 'Trust me only this once. You will never
-have cause to regret it. You know that I would not have a secret from
-you if it were not for your own sake. Our whole lives are at stake in
-this. If you come home with me, all will be well. If you force your way
-into that cottage, all is over between us.'
-
-"There was such earnestness, such despair, in her manner that her words
-arrested me, and I stood irresolute before the door.
-
-"'I will trust you on one condition, and on one condition only,' said I
-at last. 'It is that this mystery comes to an end from now. You are
-at liberty to preserve your secret, but you must promise me that there
-shall be no more nightly visits, no more doings which are kept from my
-knowledge. I am willing to forget those which are passed if you will
-promise that there shall be no more in the future.'
-
-"'I was sure that you would trust me,' she cried, with a great sigh of
-relief. 'It shall be just as you wish. Come away--oh, come away up to
-the house.'
-
-"Still pulling at my sleeve, she led me away from the cottage. As we
-went I glanced back, and there was that yellow livid face watching us
-out of the upper window. What link could there be between that creature
-and my wife? Or how could the coarse, rough woman whom I had seen the
-day before be connected with her? It was a strange puzzle, and yet I
-knew that my mind could never know ease again until I had solved it.
-
-"For two days after this I stayed at home, and my wife appeared to abide
-loyally by our engagement, for, as far as I know, she never stirred out
-of the house. On the third day, however, I had ample evidence that
-her solemn promise was not enough to hold her back from this secret
-influence which drew her away from her husband and her duty.
-
-"I had gone into town on that day, but I returned by the 2.40 instead of
-the 3.36, which is my usual train. As I entered the house the maid ran
-into the hall with a startled face.
-
-"'Where is your mistress?' I asked.
-
-"'I think that she has gone out for a walk,' she answered.
-
-"My mind was instantly filled with suspicion. I rushed upstairs to make
-sure that she was not in the house. As I did so I happened to glance out
-of one of the upper windows, and saw the maid with whom I had just been
-speaking running across the field in the direction of the cottage. Then
-of course I saw exactly what it all meant. My wife had gone over there,
-and had asked the servant to call her if I should return. Tingling with
-anger, I rushed down and hurried across, determined to end the matter
-once and forever. I saw my wife and the maid hurrying back along the
-lane, but I did not stop to speak with them. In the cottage lay the
-secret which was casting a shadow over my life. I vowed that, come what
-might, it should be a secret no longer. I did not even knock when I
-reached it, but turned the handle and rushed into the passage.
-
-"It was all still and quiet upon the ground floor. In the kitchen a
-kettle was singing on the fire, and a large black cat lay coiled up in
-the basket; but there was no sign of the woman whom I had seen before.
-I ran into the other room, but it was equally deserted. Then I rushed up
-the stairs, only to find two other rooms empty and deserted at the top.
-There was no one at all in the whole house. The furniture and pictures
-were of the most common and vulgar description, save in the one chamber
-at the window of which I had seen the strange face. That was comfortable
-and elegant, and all my suspicions rose into a fierce bitter flame when
-I saw that on the mantelpiece stood a copy of a full-length photograph
-of my wife, which had been taken at my request only three months ago.
-
-"I stayed long enough to make certain that the house was absolutely
-empty. Then I left it, feeling a weight at my heart such as I had never
-had before. My wife came out into the hall as I entered my house; but I
-was too hurt and angry to speak with her, and pushing past her, I made
-my way into my study. She followed me, however, before I could close the
-door.
-
-"'I am sorry that I broke my promise, Jack,' said she; 'but if you knew
-all the circumstances I am sure that you would forgive me.'
-
-"'Tell me everything, then,' said I.
-
-"'I cannot, Jack, I cannot,' she cried.
-
-"'Until you tell me who it is that has been living in that cottage, and
-who it is to whom you have given that photograph, there can never be any
-confidence between us,' said I, and breaking away from her, I left the
-house. That was yesterday, Mr. Holmes, and I have not seen her since,
-nor do I know anything more about this strange business. It is the first
-shadow that has come between us, and it has so shaken me that I do not
-know what I should do for the best. Suddenly this morning it occurred to
-me that you were the man to advise me, so I have hurried to you now, and
-I place myself unreservedly in your hands. If there is any point which I
-have not made clear, pray question me about it. But, above all, tell me
-quickly what I am to do, for this misery is more than I can bear."
-
-Holmes and I had listened with the utmost interest to this extraordinary
-statement, which had been delivered in the jerky, broken fashion of a
-man who is under the influence of extreme emotions. My companion sat
-silent for some time, with his chin upon his hand, lost in thought.
-
-"Tell me," said he at last, "could you swear that this was a man's face
-which you saw at the window?"
-
-"Each time that I saw it I was some distance away from it, so that it is
-impossible for me to say."
-
-"You appear, however, to have been disagreeably impressed by it."
-
-"It seemed to be of an unnatural color, and to have a strange rigidity
-about the features. When I approached, it vanished with a jerk."
-
-"How long is it since your wife asked you for a hundred pounds?"
-
-"Nearly two months."
-
-"Have you ever seen a photograph of her first husband?"
-
-"No; there was a great fire at Atlanta very shortly after his death, and
-all her papers were destroyed."
-
-"And yet she had a certificate of death. You say that you saw it."
-
-"Yes; she got a duplicate after the fire."
-
-"Did you ever meet any one who knew her in America?"
-
-"No."
-
-"Did she ever talk of revisiting the place?"
-
-"No."
-
-"Or get letters from it?"
-
-"No."
-
-"Thank you. I should like to think over the matter a little now. If the
-cottage is now permanently deserted we may have some difficulty. If, on
-the other hand, as I fancy is more likely, the inmates were warned of
-your coming, and left before you entered yesterday, then they may be
-back now, and we should clear it all up easily. Let me advise you, then,
-to return to Norbury, and to examine the windows of the cottage again.
-If you have reason to believe that it is inhabited, do not force your
-way in, but send a wire to my friend and me. We shall be with you within
-an hour of receiving it, and we shall then very soon get to the bottom
-of the business."
-
-"And if it is still empty?"
-
-"In that case I shall come out to-morrow and talk it over with you.
-Good-by; and, above all, do not fret until you know that you really have
-a cause for it."
-
-"I am afraid that this is a bad business, Watson," said my companion, as
-he returned after accompanying Mr. Grant Munro to the door. "What do you
-make of it?"
-
-"It had an ugly sound," I answered.
-
-"Yes. There's blackmail in it, or I am much mistaken."
-
-"And who is the blackmailer?"
-
-"Well, it must be the creature who lives in the only comfortable room
-in the place, and has her photograph above his fireplace. Upon my word,
-Watson, there is something very attractive about that livid face at the
-window, and I would not have missed the case for worlds."
-
-"You have a theory?"
-
-"Yes, a provisional one. But I shall be surprised if it does not turn
-out to be correct. This woman's first husband is in that cottage."
-
-"Why do you think so?"
-
-"How else can we explain her frenzied anxiety that her second one should
-not enter it? The facts, as I read them, are something like this:
-This woman was married in America. Her husband developed some hateful
-qualities; or shall we say that he contracted some loathsome disease,
-and became a leper or an imbecile? She flies from him at last, returns
-to England, changes her name, and starts her life, as she thinks,
-afresh. She has been married three years, and believes that her position
-is quite secure, having shown her husband the death certificate of
-some man whose name she has assumed, when suddenly her whereabouts
-is discovered by her first husband; or, we may suppose, by some
-unscrupulous woman who has attached herself to the invalid. They write
-to the wife, and threaten to come and expose her. She asks for a hundred
-pounds, and endeavors to buy them off. They come in spite of it, and
-when the husband mentions casually to the wife that there are new-comers
-in the cottage, she knows in some way that they are her pursuers. She
-waits until her husband is asleep, and then she rushes down to endeavor
-to persuade them to leave her in peace. Having no success, she goes
-again next morning, and her husband meets her, as he has told us, as
-she comes out. She promises him then not to go there again, but two days
-afterwards the hope of getting rid of those dreadful neighbors was too
-strong for her, and she made another attempt, taking down with her the
-photograph which had probably been demanded from her. In the midst of
-this interview the maid rushed in to say that the master had come home,
-on which the wife, knowing that he would come straight down to the
-cottage, hurried the inmates out at the back door, into the grove of
-fir-trees, probably, which was mentioned as standing near. In this way
-he found the place deserted. I shall be very much surprised, however, if
-it is still so when he reconnoitres it this evening. What do you think
-of my theory?"
-
-"It is all surmise."
-
-"But at least it covers all the facts. When new facts come to our
-knowledge which cannot be covered by it, it will be time enough to
-reconsider it. We can do nothing more until we have a message from our
-friend at Norbury."
-
-But we had not a very long time to wait for that. It came just as we had
-finished our tea. "The cottage is still tenanted," it said. "Have seen
-the face again at the window. Will meet the seven o'clock train, and
-will take no steps until you arrive."
-
-
-He was waiting on the platform when we stepped out, and we could see in
-the light of the station lamps that he was very pale, and quivering with
-agitation.
-
-"They are still there, Mr. Holmes," said he, laying his hand hard upon
-my friend's sleeve. "I saw lights in the cottage as I came down. We
-shall settle it now once and for all."
-
-"What is your plan, then?" asked Holmes, as he walked down the dark
-tree-lined road.
-
-"I am going to force my way in and see for myself who is in the house. I
-wish you both to be there as witnesses."
-
-"You are quite determined to do this, in spite of your wife's warning
-that it is better that you should not solve the mystery?"
-
-"Yes, I am determined."
-
-"Well, I think that you are in the right. Any truth is better than
-indefinite doubt. We had better go up at once. Of course, legally, we
-are putting ourselves hopelessly in the wrong; but I think that it is
-worth it."
-
-It was a very dark night, and a thin rain began to fall as we turned
-from the high road into a narrow lane, deeply rutted, with hedges on
-either side. Mr. Grant Munro pushed impatiently forward, however, and we
-stumbled after him as best we could.
-
-"There are the lights of my house," he murmured, pointing to a glimmer
-among the trees. "And here is the cottage which I am going to enter."
-
-We turned a corner in the lane as he spoke, and there was the building
-close beside us. A yellow bar falling across the black foreground showed
-that the door was not quite closed, and one window in the upper story
-was brightly illuminated. As we looked, we saw a dark blur moving across
-the blind.
-
-"There is that creature!" cried Grant Munro. "You can see for yourselves
-that some one is there. Now follow me, and we shall soon know all."
-
-We approached the door; but suddenly a woman appeared out of the shadow
-and stood in the golden track of the lamp-light. I could not see her
-face in the darkness, but her arms were thrown out in an attitude of
-entreaty.
-
-"For God's sake, don't Jack!" she cried. "I had a presentiment that you
-would come this evening. Think better of it, dear! Trust me again, and
-you will never have cause to regret it."
-
-"I have trusted you too long, Effie," he cried, sternly. "Leave go of
-me! I must pass you. My friends and I are going to settle this matter
-once and forever!" He pushed her to one side, and we followed closely
-after him. As he threw the door open an old woman ran out in front of
-him and tried to bar his passage, but he thrust her back, and an instant
-afterwards we were all upon the stairs. Grant Munro rushed into the
-lighted room at the top, and we entered at his heels.
-
-It was a cosey, well-furnished apartment, with two candles burning upon
-the table and two upon the mantelpiece. In the corner, stooping over a
-desk, there sat what appeared to be a little girl. Her face was turned
-away as we entered, but we could see that she was dressed in a red
-frock, and that she had long white gloves on. As she whisked round
-to us, I gave a cry of surprise and horror. The face which she turned
-towards us was of the strangest livid tint, and the features were
-absolutely devoid of any expression. An instant later the mystery was
-explained. Holmes, with a laugh, passed his hand behind the child's
-ear, a mask peeled off from her countenance, and there was a little coal
-black negress, with all her white teeth flashing in amusement at our
-amazed faces. I burst out laughing, out of sympathy with her merriment;
-but Grant Munro stood staring, with his hand clutching his throat.
-
-"My God!" he cried. "What can be the meaning of this?"
-
-"I will tell you the meaning of it," cried the lady, sweeping into
-the room with a proud, set face. "You have forced me, against my own
-judgment, to tell you, and now we must both make the best of it. My
-husband died at Atlanta. My child survived."
-
-"Your child?"
-
-She drew a large silver locket from her bosom. "You have never seen this
-open."
-
-"I understood that it did not open."
-
-She touched a spring, and the front hinged back. There was a portrait
-within of a man strikingly handsome and intelligent-looking, but bearing
-unmistakable signs upon his features of his African descent.
-
-"That is John Hebron, of Atlanta," said the lady, "and a nobler man
-never walked the earth. I cut myself off from my race in order to wed
-him, but never once while he lived did I for an instant regret it. It
-was our misfortune that our only child took after his people rather than
-mine. It is often so in such matches, and little Lucy is darker far than
-ever her father was. But dark or fair, she is my own dear little girlie,
-and her mother's pet." The little creature ran across at the words and
-nestled up against the lady's dress. "When I left her in America," she
-continued, "it was only because her health was weak, and the change
-might have done her harm. She was given to the care of a faithful Scotch
-woman who had once been our servant. Never for an instant did I dream
-of disowning her as my child. But when chance threw you in my way, Jack,
-and I learned to love you, I feared to tell you about my child. God
-forgive me, I feared that I should lose you, and I had not the courage
-to tell you. I had to choose between you, and in my weakness I turned
-away from my own little girl. For three years I have kept her existence
-a secret from you, but I heard from the nurse, and I knew that all was
-well with her. At last, however, there came an overwhelming desire to
-see the child once more. I struggled against it, but in vain. Though I
-knew the danger, I determined to have the child over, if it were but
-for a few weeks. I sent a hundred pounds to the nurse, and I gave her
-instructions about this cottage, so that she might come as a neighbor,
-without my appearing to be in any way connected with her. I pushed my
-precautions so far as to order her to keep the child in the house during
-the daytime, and to cover up her little face and hands so that even
-those who might see her at the window should not gossip about there
-being a black child in the neighborhood. If I had been less cautious
-I might have been more wise, but I was half crazy with fear that you
-should learn the truth.
-
-"It was you who told me first that the cottage was occupied. I should
-have waited for the morning, but I could not sleep for excitement, and
-so at last I slipped out, knowing how difficult it is to awake you. But
-you saw me go, and that was the beginning of my troubles. Next day you
-had my secret at your mercy, but you nobly refrained from pursuing your
-advantage. Three days later, however, the nurse and child only just
-escaped from the back door as you rushed in at the front one. And now
-to-night you at last know all, and I ask you what is to become of us, my
-child and me?" She clasped her hands and waited for an answer.
-
-It was a long ten minutes before Grant Munro broke the silence, and
-when his answer came it was one of which I love to think. He lifted
-the little child, kissed her, and then, still carrying her, he held his
-other hand out to his wife and turned towards the door.
-
-"We can talk it over more comfortably at home," said he. "I am not a
-very good man, Effie, but I think that I am a better one than you have
-given me credit for being."
-
-Holmes and I followed them down the lane, and my friend plucked at my
-sleeve as we came out.
-
-"I think," said he, "that we shall be of more use in London than in
-Norbury."
-
-Not another word did he say of the case until late that night, when he
-was turning away, with his lighted candle, for his bedroom.
-
-"Watson," said he, "if it should ever strike you that I am getting a
-little over-confident in my powers, or giving less pains to a case
-than it deserves, kindly whisper 'Norbury' in my ear, and I shall be
-infinitely obliged to you."
-
-
-
-
-Adventure III. The Stock-Broker's Clerk
-
-
-Shortly after my marriage I had bought a connection in the Paddington
-district. Old Mr. Farquhar, from whom I purchased it, had at one time an
-excellent general practice; but his age, and an affliction of the nature
-of St. Vitus's dance from which he suffered, had very much thinned it.
-The public not unnaturally goes on the principle that he who would heal
-others must himself be whole, and looks askance at the curative powers
-of the man whose own case is beyond the reach of his drugs. Thus as my
-predecessor weakened his practice declined, until when I purchased
-it from him it had sunk from twelve hundred to little more than three
-hundred a year. I had confidence, however, in my own youth and energy,
-and was convinced that in a very few years the concern would be as
-flourishing as ever.
-
-For three months after taking over the practice I was kept very closely
-at work, and saw little of my friend Sherlock Holmes, for I was too busy
-to visit Baker Street, and he seldom went anywhere himself save upon
-professional business. I was surprised, therefore, when, one morning in
-June, as I sat reading the British Medical Journal after breakfast, I
-heard a ring at the bell, followed by the high, somewhat strident tones
-of my old companion's voice.
-
-"Ah, my dear Watson," said he, striding into the room, "I am very
-delighted to see you! I trust that Mrs. Watson has entirely recovered
-from all the little excitements connected with our adventure of the Sign
-of Four."
-
-"Thank you, we are both very well," said I, shaking him warmly by the
-hand.
-
-"And I hope, also," he continued, sitting down in the rocking-chair,
-"that the cares of medical practice have not entirely obliterated the
-interest which you used to take in our little deductive problems."
-
-"On the contrary," I answered, "it was only last night that I was
-looking over my old notes, and classifying some of our past results."
-
-"I trust that you don't consider your collection closed."
-
-"Not at all. I should wish nothing better than to have some more of such
-experiences."
-
-"To-day, for example?"
-
-"Yes, to-day, if you like."
-
-"And as far off as Birmingham?"
-
-"Certainly, if you wish it."
-
-"And the practice?"
-
-"I do my neighbor's when he goes. He is always ready to work off the
-debt."
-
-"Ha! Nothing could be better," said Holmes, leaning back in his chair
-and looking keenly at me from under his half closed lids. "I perceive
-that you have been unwell lately. Summer colds are always a little
-trying."
-
-"I was confined to the house by a severe chill for three days last week.
-I thought, however, that I had cast off every trace of it."
-
-"So you have. You look remarkably robust."
-
-"How, then, did you know of it?"
-
-"My dear fellow, you know my methods."
-
-"You deduced it, then?"
-
-"Certainly."
-
-"And from what?"
-
-"From your slippers."
-
-I glanced down at the new patent leathers which I was wearing. "How on
-earth--" I began, but Holmes answered my question before it was asked.
-
-"Your slippers are new," he said. "You could not have had them more than
-a few weeks. The soles which you are at this moment presenting to me are
-slightly scorched. For a moment I thought they might have got wet and
-been burned in the drying. But near the instep there is a small circular
-wafer of paper with the shopman's hieroglyphics upon it. Damp would of
-course have removed this. You had, then, been sitting with your feet
-outstretched to the fire, which a man would hardly do even in so wet a
-June as this if he were in his full health."
-
-Like all Holmes's reasoning the thing seemed simplicity itself when it
-was once explained. He read the thought upon my features, and his smile
-had a tinge of bitterness.
-
-"I am afraid that I rather give myself away when I explain," said he.
-"Results without causes are much more impressive. You are ready to come
-to Birmingham, then?"
-
-"Certainly. What is the case?"
-
-"You shall hear it all in the train. My client is outside in a
-four-wheeler. Can you come at once?"
-
-"In an instant." I scribbled a note to my neighbor, rushed upstairs to
-explain the matter to my wife, and joined Holmes upon the door-step.
-
-"Your neighbor is a doctor," said he, nodding at the brass plate.
-
-"Yes; he bought a practice as I did."
-
-"An old-established one?"
-
-"Just the same as mine. Both have been ever since the houses were
-built."
-
-"Ah! Then you got hold of the best of the two."
-
-"I think I did. But how do you know?"
-
-"By the steps, my boy. Yours are worn three inches deeper than his. But
-this gentleman in the cab is my client, Mr. Hall Pycroft. Allow me to
-introduce you to him. Whip your horse up, cabby, for we have only just
-time to catch our train."
-
-The man whom I found myself facing was a well built, fresh-complexioned
-young fellow, with a frank, honest face and a slight, crisp, yellow
-mustache. He wore a very shiny top hat and a neat suit of sober black,
-which made him look what he was--a smart young City man, of the class
-who have been labeled cockneys, but who give us our crack volunteer
-regiments, and who turn out more fine athletes and sportsmen than any
-body of men in these islands. His round, ruddy face was naturally full
-of cheeriness, but the corners of his mouth seemed to me to be pulled
-down in a half-comical distress. It was not, however, until we were
-all in a first-class carriage and well started upon our journey to
-Birmingham that I was able to learn what the trouble was which had
-driven him to Sherlock Holmes.
-
-"We have a clear run here of seventy minutes," Holmes remarked. "I
-want you, Mr. Hall Pycroft, to tell my friend your very interesting
-experience exactly as you have told it to me, or with more detail if
-possible. It will be of use to me to hear the succession of events
-again. It is a case, Watson, which may prove to have something in it, or
-may prove to have nothing, but which, at least, presents those unusual
-and outré features which are as dear to you as they are to me. Now, Mr.
-Pycroft, I shall not interrupt you again."
-
-Our young companion looked at me with a twinkle in his eye.
-
-"The worst of the story is," said he, "that I show myself up as such a
-confounded fool. Of course it may work out all right, and I don't see
-that I could have done otherwise; but if I have lost my crib and get
-nothing in exchange I shall feel what a soft Johnnie I have been. I'm
-not very good at telling a story, Dr. Watson, but it is like this with
-me:
-
-"I used to have a billet at Coxon & Woodhouse's, of Draper's Gardens,
-but they were let in early in the spring through the Venezuelan loan,
-as no doubt you remember, and came a nasty cropper. I had been with them
-five years, and old Coxon gave me a ripping good testimonial when
-the smash came, but of course we clerks were all turned adrift, the
-twenty-seven of us. I tried here and tried there, but there were lots of
-other chaps on the same lay as myself, and it was a perfect frost for a
-long time. I had been taking three pounds a week at Coxon's, and I had
-saved about seventy of them, but I soon worked my way through that and
-out at the other end. I was fairly at the end of my tether at last,
-and could hardly find the stamps to answer the advertisements or the
-envelopes to stick them to. I had worn out my boots paddling up office
-stairs, and I seemed just as far from getting a billet as ever.
-
-"At last I saw a vacancy at Mawson & Williams's, the great stock-broking
-firm in Lombard Street. I dare say E. C. Is not much in your line, but
-I can tell you that this is about the richest house in London.
-The advertisement was to be answered by letter only. I sent in my
-testimonial and application, but without the least hope of getting it.
-Back came an answer by return, saying that if I would appear next Monday
-I might take over my new duties at once, provided that my appearance was
-satisfactory. No one knows how these things are worked. Some people say
-that the manager just plunges his hand into the heap and takes the first
-that comes. Anyhow it was my innings that time, and I don't ever wish to
-feel better pleased. The screw was a pound a week rise, and the duties
-just about the same as at Coxon's.
-
-"And now I come to the queer part of the business. I was in diggings out
-Hampstead way, 17 Potter's Terrace. Well, I was sitting doing a smoke
-that very evening after I had been promised the appointment, when up
-came my landlady with a card which had 'Arthur Pinner, Financial Agent,'
-printed upon it. I had never heard the name before and could not imagine
-what he wanted with me; but, of course, I asked her to show him up. In
-he walked, a middle-sized, dark-haired, dark-eyed, black-bearded man,
-with a touch of the Sheeny about his nose. He had a brisk kind of way
-with him and spoke sharply, like a man who knew the value of time."
-
-"'Mr. Hall Pycroft, I believe?'" said he.
-
-"'Yes, sir,' I answered, pushing a chair towards him.
-
-"'Lately engaged at Coxon & Woodhouse's?'
-
-"'Yes, sir.'
-
-"'And now on the staff of Mawson's.'
-
-"'Quite so.'
-
-"'Well,' said he, 'the fact is that I have heard some really
-extraordinary stories about your financial ability. You remember Parker,
-who used to be Coxon's manager? He can never say enough about it.'
-
-"Of course I was pleased to hear this. I had always been pretty sharp in
-the office, but I had never dreamed that I was talked about in the City
-in this fashion.
-
-"'You have a good memory?' said he.
-
-"'Pretty fair,' I answered, modestly.
-
-"'Have you kept in touch with the market while you have been out of
-work?' he asked.
-
-"'Yes. I read the stock exchange list every morning.'
-
-"'Now that shows real application!' he cried. 'That is the way to
-prosper! You won't mind my testing you, will you? Let me see. How are
-Ayrshires?'
-
-"'A hundred and six and a quarter to a hundred and five and
-seven-eighths.'
-
-"'And New Zealand consolidated?'
-
-"'A hundred and four.
-
-"'And British Broken Hills?'
-
-"'Seven to seven-and-six.'
-
-"'Wonderful!' he cried, with his hands up. 'This quite fits in with all
-that I had heard. My boy, my boy, you are very much too good to be a
-clerk at Mawson's!'
-
-"This outburst rather astonished me, as you can think. 'Well,' said I,
-'other people don't think quite so much of me as you seem to do, Mr.
-Pinner. I had a hard enough fight to get this berth, and I am very glad
-to have it.'
-
-"'Pooh, man; you should soar above it. You are not in your true sphere.
-Now, I'll tell you how it stands with me. What I have to offer is little
-enough when measured by your ability, but when compared with Mawson's,
-it's light to dark. Let me see. When do you go to Mawson's?'
-
-"'On Monday.'
-
-"'Ha, ha! I think I would risk a little sporting flutter that you don't
-go there at all.'
-
-"'Not go to Mawson's?'
-
-"'No, sir. By that day you will be the business manager of the
-Franco-Midland Hardware Company, Limited, with a hundred and thirty-four
-branches in the towns and villages of France, not counting one in
-Brussels and one in San Remo.'
-
-"This took my breath away. 'I never heard of it,' said I.
-
-"'Very likely not. It has been kept very quiet, for the capital was all
-privately subscribed, and it's too good a thing to let the public
-into. My brother, Harry Pinner, is promoter, and joins the board after
-allotment as managing director. He knew I was in the swim down here, and
-asked me to pick up a good man cheap. A young, pushing man with plenty
-of snap about him. Parker spoke of you, and that brought me here
-to-night. We can only offer you a beggarly five hundred to start with.'
-
-"'Five hundred a year!' I shouted.
-
-"'Only that at the beginning; but you are to have an overriding
-commission of one per cent on all business done by your agents, and you
-may take my word for it that this will come to more than your salary.'
-
-"'But I know nothing about hardware.'
-
-"'Tut, my boy; you know about figures.'
-
-"My head buzzed, and I could hardly sit still in my chair. But suddenly
-a little chill of doubt came upon me.
-
-"'I must be frank with you,' said I. 'Mawson only gives me two hundred,
-but Mawson is safe. Now, really, I know so little about your company
-that--'
-
-"'Ah, smart, smart!' he cried, in a kind of ecstasy of delight. 'You
-are the very man for us. You are not to be talked over, and quite right,
-too. Now, here's a note for a hundred pounds, and if you think that we
-can do business you may just slip it into your pocket as an advance upon
-your salary.'
-
-"'That is very handsome,' said I. 'When should I take over my new
-duties?'
-
-"'Be in Birmingham to-morrow at one,' said he. 'I have a note in my
-pocket here which you will take to my brother. You will find him at
-126b Corporation Street, where the temporary offices of the company
-are situated. Of course he must confirm your engagement, but between
-ourselves it will be all right.'
-
-"'Really, I hardly know how to express my gratitude, Mr. Pinner,' said
-I.
-
-"'Not at all, my boy. You have only got your deserts. There are one or
-two small things--mere formalities--which I must arrange with you.
-You have a bit of paper beside you there. Kindly write upon it "I am
-perfectly willing to act as business manager to the Franco-Midland
-Hardware Company, Limited, at a minimum salary of L500."'
-
-"I did as he asked, and he put the paper in his pocket.
-
-"'There is one other detail,' said he. 'What do you intend to do about
-Mawson's?'
-
-"I had forgotten all about Mawson's in my joy. 'I'll write and resign,'
-said I.
-
-"'Precisely what I don't want you to do. I had a row over you with
-Mawson's manager. I had gone up to ask him about you, and he was very
-offensive; accused me of coaxing you away from the service of the firm,
-and that sort of thing. At last I fairly lost my temper. "If you want
-good men you should pay them a good price," said I.'
-
-"'He would rather have our small price than your big one,' said he.
-
-"'I'll lay you a fiver,' said I, 'that when he has my offer you'll never
-so much as hear from him again.'
-
-"'Done!' said he. 'We picked him out of the gutter, and he won't leave
-us so easily.' Those were his very words."
-
-"'The impudent scoundrel!' I cried. 'I've never so much as seen him in
-my life. Why should I consider him in any way? I shall certainly not
-write if you would rather I didn't.'
-
-"'Good! That's a promise,' said he, rising from his chair. 'Well, I'm
-delighted to have got so good a man for my brother. Here's your advance
-of a hundred pounds, and here is the letter. Make a note of the address,
-126b Corporation Street, and remember that one o'clock to-morrow is
-your appointment. Good-night; and may you have all the fortune that you
-deserve!'
-
-"That's just about all that passed between us, as near as I can
-remember. You can imagine, Dr. Watson, how pleased I was at such an
-extraordinary bit of good fortune. I sat up half the night hugging
-myself over it, and next day I was off to Birmingham in a train that
-would take me in plenty time for my appointment. I took my things to
-a hotel in New Street, and then I made my way to the address which had
-been given me.
-
-"It was a quarter of an hour before my time, but I thought that would
-make no difference. 126b was a passage between two large shops, which
-led to a winding stone stair, from which there were many flats, let as
-offices to companies or professional men. The names of the occupants
-were painted at the bottom on the wall, but there was no such name as
-the Franco-Midland Hardware Company, Limited. I stood for a few minutes
-with my heart in my boots, wondering whether the whole thing was an
-elaborate hoax or not, when up came a man and addressed me. He was very
-like the chap I had seen the night before, the same figure and voice,
-but he was clean shaven and his hair was lighter.
-
-"'Are you Mr. Hall Pycroft?' he asked.
-
-"'Yes,' said I.
-
-"'Oh! I was expecting you, but you are a trifle before your time. I had
-a note from my brother this morning in which he sang your praises very
-loudly.'
-
-"'I was just looking for the offices when you came.
-
-"'We have not got our name up yet, for we only secured these temporary
-premises last week. Come up with me, and we will talk the matter over.'
-
-"I followed him to the top of a very lofty stair, and there, right under
-the slates, were a couple of empty, dusty little rooms, uncarpeted and
-uncurtained, into which he led me. I had thought of a great office with
-shining tables and rows of clerks, such as I was used to, and I dare say
-I stared rather straight at the two deal chairs and one little table,
-which, with a ledger and a waste paper basket, made up the whole
-furniture.
-
-"'Don't be disheartened, Mr. Pycroft,' said my new acquaintance, seeing
-the length of my face. 'Rome was not built in a day, and we have lots of
-money at our backs, though we don't cut much dash yet in offices. Pray
-sit down, and let me have your letter.'
-
-"I gave it to him, and he read it over very carefully.
-
-"'You seem to have made a vast impression upon my brother Arthur,' said
-he; 'and I know that he is a pretty shrewd judge. He swears by London,
-you know; and I by Birmingham; but this time I shall follow his advice.
-Pray consider yourself definitely engaged."
-
-"'What are my duties?' I asked.
-
-"'You will eventually manage the great depot in Paris, which will pour
-a flood of English crockery into the shops of a hundred and thirty-four
-agents in France. The purchase will be completed in a week, and
-meanwhile you will remain in Birmingham and make yourself useful.'
-
-"'How?'
-
-"For answer, he took a big red book out of a drawer.
-
-"'This is a directory of Paris,' said he, 'with the trades after the
-names of the people. I want you to take it home with you, and to mark
-off all the hardware sellers, with their addresses. It would be of the
-greatest use to me to have them.'
-
-"'Surely there are classified lists?' I suggested.
-
-"'Not reliable ones. Their system is different from ours. Stick at it,
-and let me have the lists by Monday, at twelve. Good-day, Mr. Pycroft.
-If you continue to show zeal and intelligence you will find the company
-a good master.'
-
-"I went back to the hotel with the big book under my arm, and with very
-conflicting feelings in my breast. On the one hand, I was definitely
-engaged and had a hundred pounds in my pocket; on the other, the look
-of the offices, the absence of name on the wall, and other of the points
-which would strike a business man had left a bad impression as to the
-position of my employers. However, come what might, I had my money, so I
-settled down to my task. All Sunday I was kept hard at work, and yet by
-Monday I had only got as far as H. I went round to my employer, found
-him in the same dismantled kind of room, and was told to keep at
-it until Wednesday, and then come again. On Wednesday it was still
-unfinished, so I hammered away until Friday--that is, yesterday. Then I
-brought it round to Mr. Harry Pinner.
-
-"'Thank you very much,' said he; 'I fear that I underrated the
-difficulty of the task. This list will be of very material assistance to
-me.'
-
-"'It took some time,' said I.
-
-"'And now,' said he, 'I want you to make a list of the furniture shops,
-for they all sell crockery.'
-
-"'Very good.'
-
-"'And you can come up to-morrow evening, at seven, and let me know how
-you are getting on. Don't overwork yourself. A couple of hours at Day's
-Music Hall in the evening would do you no harm after your labors.' He
-laughed as he spoke, and I saw with a thrill that his second tooth upon
-the left-hand side had been very badly stuffed with gold."
-
-
-Sherlock Holmes rubbed his hands with delight, and I stared with
-astonishment at our client.
-
-"You may well look surprised, Dr. Watson; but it is this way," said he:
-"When I was speaking to the other chap in London, at the time that he
-laughed at my not going to Mawson's, I happened to notice that his tooth
-was stuffed in this very identical fashion. The glint of the gold in
-each case caught my eye, you see. When I put that with the voice and
-figure being the same, and only those things altered which might be
-changed by a razor or a wig, I could not doubt that it was the same man.
-Of course you expect two brothers to be alike, but not that they should
-have the same tooth stuffed in the same way. He bowed me out, and I
-found myself in the street, hardly knowing whether I was on my head or
-my heels. Back I went to my hotel, put my head in a basin of cold water,
-and tried to think it out. Why had he sent me from London to Birmingham?
-Why had he got there before me? And why had he written a letter from
-himself to himself? It was altogether too much for me, and I could make
-no sense of it. And then suddenly it struck me that what was dark to me
-might be very light to Mr. Sherlock Holmes. I had just time to get up to
-town by the night train to see him this morning, and to bring you both
-back with me to Birmingham."
-
-There was a pause after the stock-broker's clerk had concluded his
-surprising experience. Then Sherlock Holmes cocked his eye at me,
-leaning back on the cushions with a pleased and yet critical face, like
-a connoisseur who has just taken his first sip of a comet vintage.
-
-"Rather fine, Watson, is it not?" said he. "There are points in it which
-please me. I think that you will agree with me that an interview with
-Mr. Arthur Harry Pinner in the temporary offices of the Franco-Midland
-Hardware Company, Limited, would be a rather interesting experience for
-both of us."
-
-"But how can we do it?" I asked.
-
-"Oh, easily enough," said Hall Pycroft, cheerily. "You are two friends
-of mine who are in want of a billet, and what could be more natural than
-that I should bring you both round to the managing director?"
-
-"Quite so, of course," said Holmes. "I should like to have a look at
-the gentleman, and see if I can make anything of his little game.
-What qualities have you, my friend, which would make your services
-so valuable? or is it possible that--" He began biting his nails and
-staring blankly out of the window, and we hardly drew another word from
-him until we were in New Street.
-
-At seven o'clock that evening we were walking, the three of us, down
-Corporation Street to the company's offices.
-
-"It is no use our being at all before our time," said our client. "He
-only comes there to see me, apparently, for the place is deserted up to
-the very hour he names."
-
-"That is suggestive," remarked Holmes.
-
-"By Jove, I told you so!" cried the clerk. "That's he walking ahead of
-us there."
-
-He pointed to a smallish, dark, well-dressed man who was bustling along
-the other side of the road. As we watched him he looked across at a boy
-who was bawling out the latest edition of the evening paper, and running
-over among the cabs and busses, he bought one from him. Then, clutching
-it in his hand, he vanished through a door-way.
-
-"There he goes!" cried Hall Pycroft. "These are the company's offices
-into which he has gone. Come with me, and I'll fix it up as easily as
-possible."
-
-Following his lead, we ascended five stories, until we found ourselves
-outside a half-opened door, at which our client tapped. A voice within
-bade us enter, and we entered a bare, unfurnished room such as Hall
-Pycroft had described. At the single table sat the man whom we had seen
-in the street, with his evening paper spread out in front of him, and as
-he looked up at us it seemed to me that I had never looked upon a face
-which bore such marks of grief, and of something beyond grief--of a
-horror such as comes to few men in a lifetime. His brow glistened with
-perspiration, his cheeks were of the dull, dead white of a fish's belly,
-and his eyes were wild and staring. He looked at his clerk as though he
-failed to recognize him, and I could see by the astonishment depicted
-upon our conductor's face that this was by no means the usual appearance
-of his employer.
-
-"You look ill, Mr. Pinner!" he exclaimed.
-
-"Yes, I am not very well," answered the other, making obvious efforts
-to pull himself together, and licking his dry lips before he spoke. "Who
-are these gentlemen whom you have brought with you?"
-
-"One is Mr. Harris, of Bermondsey, and the other is Mr. Price, of this
-town," said our clerk, glibly. "They are friends of mine and gentlemen
-of experience, but they have been out of a place for some little time,
-and they hoped that perhaps you might find an opening for them in the
-company's employment."
-
-"Very possibly! Very possibly!" cried Mr. Pinner with a ghastly smile.
-"Yes, I have no doubt that we shall be able to do something for you.
-What is your particular line, Mr. Harris?"
-
-"I am an accountant," said Holmes.
-
-"Ah yes, we shall want something of the sort. And you, Mr. Price?"
-
-"A clerk," said I.
-
-"I have every hope that the company may accommodate you. I will let you
-know about it as soon as we come to any conclusion. And now I beg that
-you will go. For God's sake leave me to myself!"
-
-These last words were shot out of him, as though the constraint which
-he was evidently setting upon himself had suddenly and utterly burst
-asunder. Holmes and I glanced at each other, and Hall Pycroft took a
-step towards the table.
-
-"You forget, Mr. Pinner, that I am here by appointment to receive some
-directions from you," said he.
-
-"Certainly, Mr. Pycroft, certainly," the other resumed in a calmer tone.
-"You may wait here a moment; and there is no reason why your friends
-should not wait with you. I will be entirely at your service in three
-minutes, if I might trespass upon your patience so far." He rose with a
-very courteous air, and, bowing to us, he passed out through a door at
-the farther end of the room, which he closed behind him.
-
-"What now?" whispered Holmes. "Is he giving us the slip?"
-
-"Impossible," answered Pycroft.
-
-"Why so?"
-
-"That door leads into an inner room."
-
-"There is no exit?"
-
-"None."
-
-"Is it furnished?"
-
-"It was empty yesterday."
-
-"Then what on earth can he be doing? There is something which I don't
-understand in this manner. If ever a man was three parts mad with
-terror, that man's name is Pinner. What can have put the shivers on
-him?"
-
-"He suspects that we are detectives," I suggested.
-
-"That's it," cried Pycroft.
-
-Holmes shook his head. "He did not turn pale. He was pale when we
-entered the room," said he. "It is just possible that--"
-
-His words were interrupted by a sharp rat-tat from the direction of the
-inner door.
-
-"What the deuce is he knocking at his own door for?" cried the clerk.
-
-Again and much louder came the rat-tat-tat. We all gazed expectantly at
-the closed door. Glancing at Holmes, I saw his face turn rigid, and he
-leaned forward in intense excitement. Then suddenly came a low guggling,
-gargling sound, and a brisk drumming upon woodwork. Holmes sprang
-frantically across the room and pushed at the door. It was fastened on
-the inner side. Following his example, we threw ourselves upon it with
-all our weight. One hinge snapped, then the other, and down came the
-door with a crash. Rushing over it, we found ourselves in the inner
-room. It was empty.
-
-But it was only for a moment that we were at fault. At one corner, the
-corner nearest the room which we had left, there was a second door.
-Holmes sprang to it and pulled it open. A coat and waistcoat were lying
-on the floor, and from a hook behind the door, with his own braces
-round his neck, was hanging the managing director of the Franco-Midland
-Hardware Company. His knees were drawn up, his head hung at a dreadful
-angle to his body, and the clatter of his heels against the door made
-the noise which had broken in upon our conversation. In an instant I
-had caught him round the waist, and held him up while Holmes and Pycroft
-untied the elastic bands which had disappeared between the livid creases
-of skin. Then we carried him into the other room, where he lay with
-a clay-colored face, puffing his purple lips in and out with every
-breath--a dreadful wreck of all that he had been but five minutes
-before.
-
-"What do you think of him, Watson?" asked Holmes.
-
-I stooped over him and examined him. His pulse was feeble and
-intermittent, but his breathing grew longer, and there was a little
-shivering of his eyelids, which showed a thin white slit of ball
-beneath.
-
-"It has been touch and go with him," said I, "but he'll live now. Just
-open that window, and hand me the water carafe." I undid his collar,
-poured the cold water over his face, and raised and sank his arms until
-he drew a long, natural breath. "It's only a question of time now," said
-I, as I turned away from him.
-
-Holmes stood by the table, with his hands deep in his trouser's pockets
-and his chin upon his breast.
-
-"I suppose we ought to call the police in now," said he. "And yet I
-confess that I'd like to give them a complete case when they come."
-
-"It's a blessed mystery to me," cried Pycroft, scratching his head.
-"Whatever they wanted to bring me all the way up here for, and then--"
-
-"Pooh! All that is clear enough," said Holmes impatiently. "It is this
-last sudden move."
-
-"You understand the rest, then?"
-
-"I think that it is fairly obvious. What do you say, Watson?"
-
-I shrugged my shoulders. "I must confess that I am out of my depths,"
-said I.
-
-"Oh surely if you consider the events at first they can only point to
-one conclusion."
-
-"What do you make of them?"
-
-"Well, the whole thing hinges upon two points. The first is the making
-of Pycroft write a declaration by which he entered the service of this
-preposterous company. Do you not see how very suggestive that is?"
-
-"I am afraid I miss the point."
-
-"Well, why did they want him to do it? Not as a business matter, for
-these arrangements are usually verbal, and there was no earthly business
-reason why this should be an exception. Don't you see, my young friend,
-that they were very anxious to obtain a specimen of your handwriting,
-and had no other way of doing it?"
-
-"And why?"
-
-"Quite so. Why? When we answer that we have made some progress with our
-little problem. Why? There can be only one adequate reason. Some one
-wanted to learn to imitate your writing, and had to procure a specimen
-of it first. And now if we pass on to the second point we find that each
-throws light upon the other. That point is the request made by Pinner
-that you should not resign your place, but should leave the manager of
-this important business in the full expectation that a Mr. Hall Pycroft,
-whom he had never seen, was about to enter the office upon the Monday
-morning."
-
-"My God!" cried our client, "what a blind beetle I have been!"
-
-"Now you see the point about the handwriting. Suppose that some one
-turned up in your place who wrote a completely different hand from that
-in which you had applied for the vacancy, of course the game would have
-been up. But in the interval the rogue had learned to imitate you,
-and his position was therefore secure, as I presume that nobody in the
-office had ever set eyes upon you."
-
-"Not a soul," groaned Hall Pycroft.
-
-"Very good. Of course it was of the utmost importance to prevent you
-from thinking better of it, and also to keep you from coming into
-contact with any one who might tell you that your double was at work
-in Mawson's office. Therefore they gave you a handsome advance on your
-salary, and ran you off to the Midlands, where they gave you enough work
-to do to prevent your going to London, where you might have burst their
-little game up. That is all plain enough."
-
-"But why should this man pretend to be his own brother?"
-
-"Well, that is pretty clear also. There are evidently only two of them
-in it. The other is impersonating you at the office. This one acted
-as your engager, and then found that he could not find you an employer
-without admitting a third person into his plot. That he was most
-unwilling to do. He changed his appearance as far as he could, and
-trusted that the likeness, which you could not fail to observe, would be
-put down to a family resemblance. But for the happy chance of the gold
-stuffing, your suspicions would probably never have been aroused."
-
-Hall Pycroft shook his clinched hands in the air. "Good Lord!" he cried,
-"while I have been fooled in this way, what has this other Hall Pycroft
-been doing at Mawson's? What should we do, Mr. Holmes? Tell me what to
-do."
-
-"We must wire to Mawson's."
-
-"They shut at twelve on Saturdays."
-
-"Never mind. There may be some door-keeper or attendant--"
-
-"Ah yes, they keep a permanent guard there on account of the value of
-the securities that they hold. I remember hearing it talked of in the
-City."
-
-"Very good; we shall wire to him, and see if all is well, and if a clerk
-of your name is working there. That is clear enough; but what is not so
-clear is why at sight of us one of the rogues should instantly walk out
-of the room and hang himself."
-
-"The paper!" croaked a voice behind us. The man was sitting up, blanched
-and ghastly, with returning reason in his eyes, and hands which rubbed
-nervously at the broad red band which still encircled his throat.
-
-"The paper! Of course!" yelled Holmes, in a paroxysm of excitement.
-"Idiot that I was! I thought so much of our visit that the paper never
-entered my head for an instant. To be sure, the secret must be there."
-He flattened it out upon the table, and a cry of triumph burst from his
-lips. "Look at this, Watson," he cried. "It is a London paper, an early
-edition of the Evening Standard. Here is what we want. Look at the
-headlines: 'Crime in the City. Murder at Mawson & Williams's. Gigantic
-attempted Robbery. Capture of the Criminal.' Here, Watson, we are all
-equally anxious to hear it, so kindly read it aloud to us."
-
-It appeared from its position in the paper to have been the one event of
-importance in town, and the account of it ran in this way:
-
-"A desperate attempt at robbery, culminating in the death of one man and
-the capture of the criminal, occurred this afternoon in the City. For
-some time back Mawson & Williams, the famous financial house, have been
-the guardians of securities which amount in the aggregate to a sum of
-considerably over a million sterling. So conscious was the manager of
-the responsibility which devolved upon him in consequence of the great
-interests at stake that safes of the very latest construction have
-been employed, and an armed watchman has been left day and night in the
-building. It appears that last week a new clerk named Hall Pycroft was
-engaged by the firm. This person appears to have been none other that
-Beddington, the famous forger and cracksman, who, with his brother, had
-only recently emerged from a five years' spell of penal servitude. By
-some means, which are not yet clear, he succeeded in winning, under a
-false name, this official position in the office, which he utilized in
-order to obtain moulding of various locks, and a thorough knowledge of
-the position of the strong room and the safes.
-
-"It is customary at Mawson's for the clerks to leave at midday on
-Saturday. Sergeant Tuson, of the City Police, was somewhat surprised,
-therefore to see a gentleman with a carpet bag come down the steps at
-twenty minutes past one. His suspicions being aroused, the sergeant
-followed the man, and with the aid of Constable Pollock succeeded, after
-a most desperate resistance, in arresting him. It was at once clear
-that a daring and gigantic robbery had been committed. Nearly a hundred
-thousand pounds' worth of American railway bonds, with a large amount
-of scrip in mines and other companies, was discovered in the bag. On
-examining the premises the body of the unfortunate watchman was found
-doubled up and thrust into the largest of the safes, where it would not
-have been discovered until Monday morning had it not been for the prompt
-action of Sergeant Tuson. The man's skull had been shattered by a
-blow from a poker delivered from behind. There could be no doubt
-that Beddington had obtained entrance by pretending that he had left
-something behind him, and having murdered the watchman, rapidly rifled
-the large safe, and then made off with his booty. His brother, who
-usually works with him, has not appeared in this job as far as can
-at present be ascertained, although the police are making energetic
-inquiries as to his whereabouts."
-
-"Well, we may save the police some little trouble in that direction,"
-said Holmes, glancing at the haggard figure huddled up by the window.
-"Human nature is a strange mixture, Watson. You see that even a villain
-and murderer can inspire such affection that his brother turns to
-suicide when he learns that his neck is forfeited. However, we have
-no choice as to our action. The doctor and I will remain on guard, Mr.
-Pycroft, if you will have the kindness to step out for the police."
-
-
-
-
-Adventure IV. The "_Gloria Scott_"
-
-
-"I have some papers here," said my friend Sherlock Holmes, as we sat
-one winter's night on either side of the fire, "which I really think,
-Watson, that it would be worth your while to glance over. These are the
-documents in the extraordinary case of the Gloria Scott, and this is the
-message which struck Justice of the Peace Trevor dead with horror when
-he read it."
-
-He had picked from a drawer a little tarnished cylinder, and, undoing
-the tape, he handed me a short note scrawled upon a half-sheet of
-slate-gray paper.
-
-"The supply of game for London is going steadily up," it ran.
-"Head-keeper Hudson, we believe, has been now told to receive all orders
-for fly-paper and for preservation of your hen-pheasant's life."
-
-As I glanced up from reading this enigmatical message, I saw Holmes
-chuckling at the expression upon my face.
-
-"You look a little bewildered," said he.
-
-"I cannot see how such a message as this could inspire horror. It seems
-to me to be rather grotesque than otherwise."
-
-"Very likely. Yet the fact remains that the reader, who was a fine,
-robust old man, was knocked clean down by it as if it had been the butt
-end of a pistol."
-
-"You arouse my curiosity," said I. "But why did you say just now that
-there were very particular reasons why I should study this case?"
-
-"Because it was the first in which I was ever engaged."
-
-I had often endeavored to elicit from my companion what had first turned
-his mind in the direction of criminal research, but had never caught him
-before in a communicative humor. Now he sat forward in this arm-chair
-and spread out the documents upon his knees. Then he lit his pipe and
-sat for some time smoking and turning them over.
-
-"You never heard me talk of Victor Trevor?" he asked. "He was the only
-friend I made during the two years I was at college. I was never a very
-sociable fellow, Watson, always rather fond of moping in my rooms and
-working out my own little methods of thought, so that I never mixed
-much with the men of my year. Bar fencing and boxing I had few athletic
-tastes, and then my line of study was quite distinct from that of the
-other fellows, so that we had no points of contact at all. Trevor was
-the only man I knew, and that only through the accident of his bull
-terrier freezing on to my ankle one morning as I went down to chapel.
-
-"It was a prosaic way of forming a friendship, but it was effective.
-I was laid by the heels for ten days, but Trevor used to come in to
-inquire after me. At first it was only a minute's chat, but soon his
-visits lengthened, and before the end of the term we were close friends.
-He was a hearty, full-blooded fellow, full of spirits and energy,
-the very opposite to me in most respects, but we had some subjects
-in common, and it was a bond of union when I found that he was as
-friendless as I. Finally, he invited me down to his father's place at
-Donnithorpe, in Norfolk, and I accepted his hospitality for a month of
-the long vacation.
-
-"Old Trevor was evidently a man of some wealth and consideration, a
-J.P., and a landed proprietor. Donnithorpe is a little hamlet just to
-the north of Langmere, in the country of the Broads. The house was
-an old-fashioned, wide-spread, oak-beamed brick building, with a fine
-lime-lined avenue leading up to it. There was excellent wild-duck
-shooting in the fens, remarkably good fishing, a small but select
-library, taken over, as I understood, from a former occupant, and a
-tolerable cook, so that he would be a fastidious man who could not put
-in a pleasant month there.
-
-"Trevor senior was a widower, and my friend his only son.
-
-"There had been a daughter, I heard, but she had died of diphtheria
-while on a visit to Birmingham. The father interested me extremely.
-He was a man of little culture, but with a considerable amount of rude
-strength, both physically and mentally. He knew hardly any books, but
-he had traveled far, had seen much of the world. And had remembered
-all that he had learned. In person he was a thick-set, burly man with
-a shock of grizzled hair, a brown, weather-beaten face, and blue eyes
-which were keen to the verge of fierceness. Yet he had a reputation for
-kindness and charity on the country-side, and was noted for the leniency
-of his sentences from the bench.
-
-"One evening, shortly after my arrival, we were sitting over a glass of
-port after dinner, when young Trevor began to talk about those habits
-of observation and inference which I had already formed into a system,
-although I had not yet appreciated the part which they were to play in
-my life. The old man evidently thought that his son was exaggerating in
-his description of one or two trivial feats which I had performed.
-
-"'Come, now, Mr. Holmes,' said he, laughing good-humoredly. 'I'm an
-excellent subject, if you can deduce anything from me.'
-
-"'I fear there is not very much,' I answered; 'I might suggest that
-you have gone about in fear of some personal attack within the last
-twelvemonth.'
-
-"The laugh faded from his lips, and he stared at me in great surprise.
-
-"'Well, that's true enough,' said he. 'You know, Victor,' turning to his
-son, 'when we broke up that poaching gang they swore to knife us, and
-Sir Edward Holly has actually been attacked. I've always been on my
-guard since then, though I have no idea how you know it.'
-
-"'You have a very handsome stick,' I answered. 'By the inscription I
-observed that you had not had it more than a year. But you have taken
-some pains to bore the head of it and pour melted lead into the hole so
-as to make it a formidable weapon. I argued that you would not take such
-precautions unless you had some danger to fear.'
-
-"'Anything else?' he asked, smiling.
-
-"'You have boxed a good deal in your youth.'
-
-"'Right again. How did you know it? Is my nose knocked a little out of
-the straight?'
-
-"'No,' said I. 'It is your ears. They have the peculiar flattening and
-thickening which marks the boxing man.'
-
-"'Anything else?'
-
-"'You have done a good deal of digging by your callosities.'
-
-"'Made all my money at the gold fields.'
-
-"'You have been in New Zealand.'
-
-"'Right again.'
-
-"'You have visited Japan.'
-
-"'Quite true.'
-
-"'And you have been most intimately associated with some one whose
-initials were J. A., and whom you afterwards were eager to entirely
-forget.'
-
-"Mr. Trevor stood slowly up, fixed his large blue eyes upon me with a
-strange wild stare, and then pitched forward, with his face among the
-nutshells which strewed the cloth, in a dead faint.
-
-"You can imagine, Watson, how shocked both his son and I were. His
-attack did not last long, however, for when we undid his collar, and
-sprinkled the water from one of the finger-glasses over his face, he
-gave a gasp or two and sat up.
-
-"'Ah, boys,' said he, forcing a smile, 'I hope I haven't frightened you.
-Strong as I look, there is a weak place in my heart, and it does not
-take much to knock me over. I don't know how you manage this, Mr.
-Holmes, but it seems to me that all the detectives of fact and of fancy
-would be children in your hands. That's your line of life, sir, and you
-may take the word of a man who has seen something of the world.'
-
-"And that recommendation, with the exaggerated estimate of my ability
-with which he prefaced it, was, if you will believe me, Watson, the very
-first thing which ever made me feel that a profession might be made
-out of what had up to that time been the merest hobby. At the moment,
-however, I was too much concerned at the sudden illness of my host to
-think of anything else.
-
-"'I hope that I have said nothing to pain you?' said I.
-
-"'Well, you certainly touched upon rather a tender point. Might I ask
-how you know, and how much you know?' He spoke now in a half-jesting
-fashion, but a look of terror still lurked at the back of his eyes.
-
-"'It is simplicity itself,' said I. 'When you bared your arm to draw
-that fish into the boat I saw that J. A. Had been tattooed in the bend
-of the elbow. The letters were still legible, but it was perfectly clear
-from their blurred appearance, and from the staining of the skin round
-them, that efforts had been made to obliterate them. It was obvious,
-then, that those initials had once been very familiar to you, and that
-you had afterwards wished to forget them.'
-
-"What an eye you have!" he cried, with a sigh of relief. 'It is just as
-you say. But we won't talk of it. Of all ghosts the ghosts of our old
-lovers are the worst. Come into the billiard-room and have a quiet
-cigar.'
-
-
-"From that day, amid all his cordiality, there was always a touch of
-suspicion in Mr. Trevor's manner towards me. Even his son remarked it.
-'You've given the governor such a turn,' said he, 'that he'll never be
-sure again of what you know and what you don't know.' He did not mean
-to show it, I am sure, but it was so strongly in his mind that it peeped
-out at every action. At last I became so convinced that I was causing
-him uneasiness that I drew my visit to a close. On the very day,
-however, before I left, and incident occurred which proved in the sequel
-to be of importance.
-
-"We were sitting out upon the lawn on garden chairs, the three of us,
-basking in the sun and admiring the view across the Broads, when a maid
-came out to say that there was a man at the door who wanted to see Mr.
-Trevor.
-
-"'What is his name?' asked my host.
-
-"'He would not give any.'
-
-"'What does he want, then?'
-
-"'He says that you know him, and that he only wants a moment's
-conversation.'
-
-"'Show him round here.' An instant afterwards there appeared a little
-wizened fellow with a cringing manner and a shambling style of
-walking. He wore an open jacket, with a splotch of tar on the sleeve,
-a red-and-black check shirt, dungaree trousers, and heavy boots badly
-worn. His face was thin and brown and crafty, with a perpetual smile
-upon it, which showed an irregular line of yellow teeth, and his
-crinkled hands were half closed in a way that is distinctive of sailors.
-As he came slouching across the lawn I heard Mr. Trevor make a sort of
-hiccoughing noise in his throat, and jumping out of his chair, he ran
-into the house. He was back in a moment, and I smelt a strong reek of
-brandy as he passed me.
-
-"'Well, my man,' said he. 'What can I do for you?'
-
-"The sailor stood looking at him with puckered eyes, and with the same
-loose-lipped smile upon his face.
-
-"'You don't know me?' he asked.
-
-"'Why, dear me, it is surely Hudson,' said Mr. Trevor in a tone of
-surprise.
-
-"'Hudson it is, sir,' said the seaman. 'Why, it's thirty year and more
-since I saw you last. Here you are in your house, and me still picking
-my salt meat out of the harness cask.'
-
-"'Tut, you will find that I have not forgotten old times,' cried Mr.
-Trevor, and, walking towards the sailor, he said something in a low
-voice. 'Go into the kitchen,' he continued out loud, 'and you will get
-food and drink. I have no doubt that I shall find you a situation.'
-
-"'Thank you, sir,' said the seaman, touching his fore-lock. 'I'm just
-off a two-yearer in an eight-knot tramp, short-handed at that, and I
-wants a rest. I thought I'd get it either with Mr. Beddoes or with you.'
-
-"'Ah!' cried Trevor. 'You know where Mr. Beddoes is?'
-
-"'Bless you, sir, I know where all my old friends are,' said the
-fellow with a sinister smile, and he slouched off after the maid to the
-kitchen. Mr. Trevor mumbled something to us about having been shipmate
-with the man when he was going back to the diggings, and then, leaving
-us on the lawn, he went indoors. An hour later, when we entered the
-house, we found him stretched dead drunk upon the dining-room sofa. The
-whole incident left a most ugly impression upon my mind, and I was
-not sorry next day to leave Donnithorpe behind me, for I felt that my
-presence must be a source of embarrassment to my friend.
-
-"All this occurred during the first month of the long vacation. I went
-up to my London rooms, where I spent seven weeks working out a few
-experiments in organic chemistry. One day, however, when the autumn was
-far advanced and the vacation drawing to a close, I received a telegram
-from my friend imploring me to return to Donnithorpe, and saying that
-he was in great need of my advice and assistance. Of course I dropped
-everything and set out for the North once more.
-
-"He met me with the dog-cart at the station, and I saw at a glance that
-the last two months had been very trying ones for him. He had grown thin
-and careworn, and had lost the loud, cheery manner for which he had been
-remarkable.
-
-"'The governor is dying,' were the first words he said.
-
-"'Impossible!' I cried. 'What is the matter?'
-
-"'Apoplexy. Nervous shock, He's been on the verge all day. I doubt if we
-shall find him alive.'
-
-"I was, as you may think, Watson, horrified at this unexpected news.
-
-"'What has caused it?' I asked.
-
-"'Ah, that is the point. Jump in and we can talk it over while we drive.
-You remember that fellow who came upon the evening before you left us?'
-
-"'Perfectly.'
-
-"'Do you know who it was that we let into the house that day?'
-
-"'I have no idea.'
-
-"'It was the devil, Holmes,' he cried.
-
-"I stared at him in astonishment.
-
-"'Yes, it was the devil himself. We have not had a peaceful hour
-since--not one. The governor has never held up his head from that
-evening, and now the life has been crushed out of him and his heart
-broken, all through this accursed Hudson.'
-
-"'What power had he, then?'
-
-"'Ah, that is what I would give so much to know. The kindly, charitable,
-good old governor--how could he have fallen into the clutches of such a
-ruffian! But I am so glad that you have come, Holmes. I trust very much
-to your judgment and discretion, and I know that you will advise me for
-the best.'
-
-"We were dashing along the smooth white country road, with the long
-stretch of the Broads in front of us glimmering in the red light of the
-setting sun. From a grove upon our left I could already see the high
-chimneys and the flag-staff which marked the squire's dwelling.
-
-"'My father made the fellow gardener,' said my companion, 'and then, as
-that did not satisfy him, he was promoted to be butler. The house seemed
-to be at his mercy, and he wandered about and did what he chose in it.
-The maids complained of his drunken habits and his vile language. The
-dad raised their wages all round to recompense them for the annoyance.
-The fellow would take the boat and my father's best gun and treat
-himself to little shooting trips. And all this with such a sneering,
-leering, insolent face that I would have knocked him down twenty times
-over if he had been a man of my own age. I tell you, Holmes, I have
-had to keep a tight hold upon myself all this time; and now I am asking
-myself whether, if I had let myself go a little more, I might not have
-been a wiser man.
-
-"'Well, matters went from bad to worse with us, and this animal Hudson
-became more and more intrusive, until at last, on making some insolent
-reply to my father in my presence one day, I took him by the shoulders
-and turned him out of the room. He slunk away with a livid face and two
-venomous eyes which uttered more threats than his tongue could do. I
-don't know what passed between the poor dad and him after that, but the
-dad came to me next day and asked me whether I would mind apologizing to
-Hudson. I refused, as you can imagine, and asked my father how he
-could allow such a wretch to take such liberties with himself and his
-household.
-
-"'"Ah, my boy," said he, "it is all very well to talk, but you don't
-know how I am placed. But you shall know, Victor. I'll see that you
-shall know, come what may. You wouldn't believe harm of your poor old
-father, would you, lad?" He was very much moved, and shut himself up
-in the study all day, where I could see through the window that he was
-writing busily.
-
-"'That evening there came what seemed to me to be a grand release,
-for Hudson told us that he was going to leave us. He walked into the
-dining-room as we sat after dinner, and announced his intention in the
-thick voice of a half-drunken man.
-
-"'"I've had enough of Norfolk," said he. "I'll run down to Mr. Beddoes
-in Hampshire. He'll be as glad to see me as you were, I dare say."
-
-"'"You're not going away in an unkind spirit, Hudson, I hope," said my
-father, with a tameness which made my blood boil.
-
-"'"I've not had my 'pology," said he sulkily, glancing in my direction.
-
-"'"Victor, you will acknowledge that you have used this worthy fellow
-rather roughly," said the dad, turning to me.
-
-"'"On the contrary, I think that we have both shown extraordinary
-patience towards him," I answered.
-
-"'"Oh, you do, do you?" he snarls. "Very good, mate. We'll see about
-that!"
-
-"'He slouched out of the room, and half an hour afterwards left the
-house, leaving my father in a state of pitiable nervousness. Night after
-night I heard him pacing his room, and it was just as he was recovering
-his confidence that the blow did at last fall.'
-
-"'And how?' I asked eagerly.
-
-"'In a most extraordinary fashion. A letter arrived for my father
-yesterday evening, bearing the Fordingbridge post-mark. My father read
-it, clapped both his hands to his head, and began running round the room
-in little circles like a man who has been driven out of his senses. When
-I at last drew him down on to the sofa, his mouth and eyelids were all
-puckered on one side, and I saw that he had a stroke. Dr. Fordham came
-over at once. We put him to bed; but the paralysis has spread, he has
-shown no sign of returning consciousness, and I think that we shall
-hardly find him alive.'
-
-"'You horrify me, Trevor!' I cried. 'What then could have been in this
-letter to cause so dreadful a result?'
-
-"'Nothing. There lies the inexplicable part of it. The message was
-absurd and trivial. Ah, my God, it is as I feared!'
-
-"As he spoke we came round the curve of the avenue, and saw in the
-fading light that every blind in the house had been drawn down. As
-we dashed up to the door, my friend's face convulsed with grief, a
-gentleman in black emerged from it.
-
-"'When did it happen, doctor?' asked Trevor.
-
-"'Almost immediately after you left.'
-
-"'Did he recover consciousness?'
-
-"'For an instant before the end.'
-
-"'Any message for me.'
-
-"'Only that the papers were in the back drawer of the Japanese cabinet.'
-
-"My friend ascended with the doctor to the chamber of death, while I
-remained in the study, turning the whole matter over and over in my
-head, and feeling as sombre as ever I had done in my life. What was the
-past of this Trevor, pugilist, traveler, and gold-digger, and how had he
-placed himself in the power of this acid-faced seaman? Why, too, should
-he faint at an allusion to the half-effaced initials upon his arm, and
-die of fright when he had a letter from Fordingham? Then I remembered
-that Fordingham was in Hampshire, and that this Mr. Beddoes, whom the
-seaman had gone to visit and presumably to blackmail, had also been
-mentioned as living in Hampshire. The letter, then, might either come
-from Hudson, the seaman, saying that he had betrayed the guilty secret
-which appeared to exist, or it might come from Beddoes, warning an old
-confederate that such a betrayal was imminent. So far it seemed clear
-enough. But then how could this letter be trivial and grotesque, as
-describe by the son? He must have misread it. If so, it must have been
-one of those ingenious secret codes which mean one thing while they seem
-to mean another. I must see this letter. If there were a hidden meaning
-in it, I was confident that I could pluck it forth. For an hour I sat
-pondering over it in the gloom, until at last a weeping maid brought in
-a lamp, and close at her heels came my friend Trevor, pale but composed,
-with these very papers which lie upon my knee held in his grasp. He sat
-down opposite to me, drew the lamp to the edge of the table, and handed
-me a short note scribbled, as you see, upon a single sheet of gray
-paper. 'The supply of game for London is going steadily up,' it ran.
-'Head-keeper Hudson, we believe, has been now told to receive all orders
-for fly-paper and for preservation of your hen-pheasant's life.'
-
-"I dare say my face looked as bewildered as yours did just now when
-first I read this message. Then I reread it very carefully. It was
-evidently as I had thought, and some secret meaning must lie buried
-in this strange combination of words. Or could it be that there was
-a prearranged significance to such phrases as 'fly-paper' and
-'hen-pheasant'? Such a meaning would be arbitrary and could not be
-deduced in any way. And yet I was loath to believe that this was the
-case, and the presence of the word Hudson seemed to show that the
-subject of the message was as I had guessed, and that it was from
-Beddoes rather than the sailor. I tried it backwards, but the
-combination 'life pheasant's hen' was not encouraging. Then I tried
-alternate words, but neither 'the of for' nor 'supply game London'
-promised to throw any light upon it.
-
-"And then in an instant the key of the riddle was in my hands, and I saw
-that every third word, beginning with the first, would give a message
-which might well drive old Trevor to despair.
-
-"It was short and terse, the warning, as I now read it to my companion:
-
-"'The game is up. Hudson has told all. Fly for your life.'
-
-"Victor Trevor sank his face into his shaking hands. 'It must be that,
-I suppose,' said he. "This is worse than death, for it means disgrace
-as well. But what is the meaning of these "head-keepers" and
-"hen-pheasants"?'
-
-"'It means nothing to the message, but it might mean a good deal to us
-if we had no other means of discovering the sender. You see that he has
-begun by writing "The...game...is," and so on. Afterwards he had, to
-fulfill the prearranged cipher, to fill in any two words in each space.
-He would naturally use the first words which came to his mind, and
-if there were so many which referred to sport among them, you may
-be tolerably sure that he is either an ardent shot or interested in
-breeding. Do you know anything of this Beddoes?'
-
-"'Why, now that you mention it,' said he, 'I remember that my poor
-father used to have an invitation from him to shoot over his preserves
-every autumn.'
-
-"'Then it is undoubtedly from him that the note comes,' said I. 'It only
-remains for us to find out what this secret was which the sailor Hudson
-seems to have held over the heads of these two wealthy and respected
-men.'
-
-"'Alas, Holmes, I fear that it is one of sin and shame!' cried my
-friend. 'But from you I shall have no secrets. Here is the statement
-which was drawn up by my father when he knew that the danger from Hudson
-had become imminent. I found it in the Japanese cabinet, as he told the
-doctor. Take it and read it to me, for I have neither the strength nor
-the courage to do it myself.'
-
-"These are the very papers, Watson, which he handed to me, and I will
-read them to you, as I read them in the old study that night to him.
-They are endorsed outside, as you see, 'Some particulars of the voyage
-of the bark _Gloria Scott_, from her leaving Falmouth on the 8th
-October, 1855, to her destruction in N. Lat. 15 degrees 20', W. Long.
-25 degrees 14' on Nov. 6th.' It is in the form of a letter, and runs in
-this way:
-
-"'My dear, dear son, now that approaching disgrace begins to darken the
-closing years of my life, I can write with all truth and honesty that it
-is not the terror of the law, it is not the loss of my position in the
-county, nor is it my fall in the eyes of all who have known me, which
-cuts me to the heart; but it is the thought that you should come to
-blush for me--you who love me and who have seldom, I hope, had reason to
-do other than respect me. But if the blow falls which is forever hanging
-over me, then I should wish you to read this, that you may know straight
-from me how far I have been to blame. On the other hand, if all should
-go well (which may kind God Almighty grant!), then if by any chance this
-paper should be still undestroyed and should fall into your hands, I
-conjure you, by all you hold sacred, by the memory of your dear mother,
-and by the love which had been between us, to hurl it into the fire and
-to never give one thought to it again.
-
-"'If then your eye goes on to read this line, I know that I shall
-already have been exposed and dragged from my home, or as is more
-likely, for you know that my heart is weak, by lying with my tongue
-sealed forever in death. In either case the time for suppression is
-past, and every word which I tell you is the naked truth, and this I
-swear as I hope for mercy.
-
-"'My name, dear lad, is not Trevor. I was James Armitage in my younger
-days, and you can understand now the shock that it was to me a few weeks
-ago when your college friend addressed me in words which seemed to imply
-that he had surprised my secret. As Armitage it was that I entered a
-London banking-house, and as Armitage I was convicted of breaking my
-country's laws, and was sentenced to transportation. Do not think very
-harshly of me, laddie. It was a debt of honor, so called, which I had
-to pay, and I used money which was not my own to do it, in the certainty
-that I could replace it before there could be any possibility of its
-being missed. But the most dreadful ill-luck pursued me. The money which
-I had reckoned upon never came to hand, and a premature examination of
-accounts exposed my deficit. The case might have been dealt leniently
-with, but the laws were more harshly administered thirty years ago than
-now, and on my twenty-third birthday I found myself chained as a felon
-with thirty-seven other convicts in 'tween-decks of the bark _Gloria
-Scott_, bound for Australia.
-
-"'It was the year '55 when the Crimean war was at its height, and the
-old convict ships had been largely used as transports in the Black
-Sea. The government was compelled, therefore, to use smaller and less
-suitable vessels for sending out their prisoners. The Gloria Scott
-had been in the Chinese tea-trade, but she was an old-fashioned,
-heavy-bowed, broad-beamed craft, and the new clippers had cut her
-out. She was a five-hundred-ton boat; and besides her thirty-eight
-jail-birds, she carried twenty-six of a crew, eighteen soldiers, a
-captain, three mates, a doctor, a chaplain, and four warders. Nearly a
-hundred souls were in her, all told, when we set sail from Falmouth.
-
-"'The partitions between the cells of the convicts, instead of being of
-thick oak, as is usual in convict-ships, were quite thin and frail.
-The man next to me, upon the aft side, was one whom I had particularly
-noticed when we were led down the quay. He was a young man with a
-clear, hairless face, a long, thin nose, and rather nut-cracker jaws.
-He carried his head very jauntily in the air, had a swaggering style
-of walking, and was, above all else, remarkable for his extraordinary
-height. I don't think any of our heads would have come up to his
-shoulder, and I am sure that he could not have measured less than six
-and a half feet. It was strange among so many sad and weary faces to see
-one which was full of energy and resolution. The sight of it was to me
-like a fire in a snow-storm. I was glad, then, to find that he was my
-neighbor, and gladder still when, in the dead of the night, I heard a
-whisper close to my ear, and found that he had managed to cut an opening
-in the board which separated us.
-
-"'"Hullo, chummy!" said he, "what's your name, and what are you here
-for?"
-
-"'I answered him, and asked in turn who I was talking with.
-
-"'"I'm Jack Prendergast," said he, "and by God! You'll learn to bless my
-name before you've done with me."
-
-"'I remembered hearing of his case, for it was one which had made an
-immense sensation throughout the country some time before my own arrest.
-He was a man of good family and of great ability, but of incurably
-vicious habits, who had by an ingenious system of fraud obtained huge
-sums of money from the leading London merchants.
-
-"'"Ha, ha! You remember my case!" said he proudly.
-
-"'"Very well, indeed."
-
-"'"Then maybe you remember something queer about it?"
-
-"'"What was that, then?"
-
-"'"I'd had nearly a quarter of a million, hadn't I?"
-
-"'"So it was said."
-
-"'"But none was recovered, eh?"
-
-"'"No."
-
-"'"Well, where d'ye suppose the balance is?" he asked.
-
-"'"I have no idea," said I.
-
-"'"Right between my finger and thumb," he cried. "By God! I've got more
-pounds to my name than you've hairs on your head. And if you've money,
-my son, and know how to handle it and spread it, you can do anything.
-Now, you don't think it likely that a man who could do anything is going
-to wear his breeches out sitting in the stinking hold of a rat-gutted,
-beetle-ridden, mouldy old coffin of a Chin China coaster. No, sir, such
-a man will look after himself and will look after his chums. You may lay
-to that! You hold on to him, and you may kiss the book that he'll haul
-you through."
-
-"'That was his style of talk, and at first I thought it meant nothing;
-but after a while, when he had tested me and sworn me in with all
-possible solemnity, he let me understand that there really was a plot
-to gain command of the vessel. A dozen of the prisoners had hatched it
-before they came aboard, Prendergast was the leader, and his money was
-the motive power.
-
-"'"I'd a partner," said he, "a rare good man, as true as a stock to a
-barrel. He's got the dibbs, he has, and where do you think he is at this
-moment? Why, he's the chaplain of this ship--the chaplain, no less! He
-came aboard with a black coat, and his papers right, and money enough in
-his box to buy the thing right up from keel to main-truck. The crew
-are his, body and soul. He could buy 'em at so much a gross with a cash
-discount, and he did it before ever they signed on. He's got two of the
-warders and Mereer, the second mate, and he'd get the captain himself,
-if he thought him worth it."
-
-"'"What are we to do, then?" I asked.
-
-"'"What do you think?" said he. "We'll make the coats of some of these
-soldiers redder than ever the tailor did."
-
-"'"But they are armed," said I.
-
-"'"And so shall we be, my boy. There's a brace of pistols for every
-mother's son of us, and if we can't carry this ship, with the crew at
-our back, it's time we were all sent to a young misses' boarding-school.
-You speak to your mate upon the left to-night, and see if he is to be
-trusted."
-
-"'I did so, and found my other neighbor to be a young fellow in much
-the same position as myself, whose crime had been forgery. His name was
-Evans, but he afterwards changed it, like myself, and he is now a rich
-and prosperous man in the south of England. He was ready enough to join
-the conspiracy, as the only means of saving ourselves, and before we had
-crossed the Bay there were only two of the prisoners who were not in the
-secret. One of these was of weak mind, and we did not dare to trust him,
-and the other was suffering from jaundice, and could not be of any use
-to us.
-
-"'From the beginning there was really nothing to prevent us from taking
-possession of the ship. The crew were a set of ruffians, specially
-picked for the job. The sham chaplain came into our cells to exhort us,
-carrying a black bag, supposed to be full of tracts, and so often did
-he come that by the third day we had each stowed away at the foot of our
-beds a file, a brace of pistols, a pound of powder, and twenty slugs.
-Two of the warders were agents of Prendergast, and the second mate was
-his right-hand man. The captain, the two mates, two warders Lieutenant
-Martin, his eighteen soldiers, and the doctor were all that we had
-against us. Yet, safe as it was, we determined to neglect no precaution,
-and to make our attack suddenly by night. It came, however, more quickly
-than we expected, and in this way.
-
-"'One evening, about the third week after our start, the doctor had come
-down to see one of the prisoners who was ill, and putting his hand down
-on the bottom of his bunk he felt the outline of the pistols. If he had
-been silent he might have blown the whole thing, but he was a nervous
-little chap, so he gave a cry of surprise and turned so pale that the
-man knew what was up in an instant and seized him. He was gagged before
-he could give the alarm, and tied down upon the bed. He had unlocked
-the door that led to the deck, and we were through it in a rush. The two
-sentries were shot down, and so was a corporal who came running to see
-what was the matter. There were two more soldiers at the door of the
-state-room, and their muskets seemed not to be loaded, for they never
-fired upon us, and they were shot while trying to fix their bayonets.
-Then we rushed on into the captain's cabin, but as we pushed open the
-door there was an explosion from within, and there he lay with his
-brains smeared over the chart of the Atlantic which was pinned upon the
-table, while the chaplain stood with a smoking pistol in his hand at
-his elbow. The two mates had both been seized by the crew, and the whole
-business seemed to be settled.
-
-"'The state-room was next the cabin, and we flocked in there and flopped
-down on the settees, all speaking together, for we were just mad with
-the feeling that we were free once more. There were lockers all round,
-and Wilson, the sham chaplain, knocked one of them in, and pulled out a
-dozen of brown sherry. We cracked off the necks of the bottles, poured
-the stuff out into tumblers, and were just tossing them off, when in an
-instant without warning there came the roar of muskets in our ears, and
-the saloon was so full of smoke that we could not see across the table.
-When it cleared again the place was a shambles. Wilson and eight others
-were wriggling on the top of each other on the floor, and the blood and
-the brown sherry on that table turn me sick now when I think of it. We
-were so cowed by the sight that I think we should have given the job up
-if it had not been for Prendergast. He bellowed like a bull and rushed
-for the door with all that were left alive at his heels. Out we ran,
-and there on the poop were the lieutenant and ten of his men. The swing
-skylights above the saloon table had been a bit open, and they had fired
-on us through the slit. We got on them before they could load, and they
-stood to it like men; but we had the upper hand of them, and in five
-minutes it was all over. My God! Was there ever a slaughter-house
-like that ship! Prendergast was like a raging devil, and he picked the
-soldiers up as if they had been children and threw them overboard alive
-or dead. There was one sergeant that was horribly wounded and yet kept
-on swimming for a surprising time, until some one in mercy blew out his
-brains. When the fighting was over there was no one left of our enemies
-except just the warders the mates, and the doctor.
-
-"'It was over them that the great quarrel arose. There were many of us
-who were glad enough to win back our freedom, and yet who had no wish
-to have murder on our souls. It was one thing to knock the soldiers over
-with their muskets in their hands, and it was another to stand by while
-men were being killed in cold blood. Eight of us, five convicts and
-three sailors, said that we would not see it done. But there was no
-moving Prendergast and those who were with him. Our only chance of
-safety lay in making a clean job of it, said he, and he would not leave
-a tongue with power to wag in a witness-box. It nearly came to our
-sharing the fate of the prisoners, but at last he said that if we wished
-we might take a boat and go. We jumped at the offer, for we were already
-sick of these bloodthirsty doings, and we saw that there would be worse
-before it was done. We were given a suit of sailor togs each, a barrel
-of water, two casks, one of junk and one of biscuits, and a compass.
-Prendergast threw us over a chart, told us that we were shipwrecked
-mariners whose ship had foundered in Lat. 15 degrees and Long 25 degrees
-west, and then cut the painter and let us go.
-
-"'And now I come to the most surprising part of my story, my dear son.
-The seamen had hauled the fore-yard aback during the rising, but now as
-we left them they brought it square again, and as there was a light wind
-from the north and east the bark began to draw slowly away from us. Our
-boat lay, rising and falling, upon the long, smooth rollers, and Evans
-and I, who were the most educated of the party, were sitting in the
-sheets working out our position and planning what coast we should make
-for. It was a nice question, for the Cape de Verdes were about five
-hundred miles to the north of us, and the African coast about seven
-hundred to the east. On the whole, as the wind was coming round to the
-north, we thought that Sierra Leone might be best, and turned our head
-in that direction, the bark being at that time nearly hull down on our
-starboard quarter. Suddenly as we looked at her we saw a dense black
-cloud of smoke shoot up from her, which hung like a monstrous tree upon
-the sky line. A few seconds later a roar like thunder burst upon our
-ears, and as the smoke thinned away there was no sign left of the
-_Gloria Scott_. In an instant we swept the boat's head round again and
-pulled with all our strength for the place where the haze still trailing
-over the water marked the scene of this catastrophe.
-
-"'It was a long hour before we reached it, and at first we feared that
-we had come too late to save any one. A splintered boat and a number of
-crates and fragments of spars rising and falling on the waves showed us
-where the vessel had foundered; but there was no sign of life, and we
-had turned away in despair when we heard a cry for help, and saw at some
-distance a piece of wreckage with a man lying stretched across it. When
-we pulled him aboard the boat he proved to be a young seaman of the
-name of Hudson, who was so burned and exhausted that he could give us no
-account of what had happened until the following morning.
-
-"'It seemed that after we had left, Prendergast and his gang had
-proceeded to put to death the five remaining prisoners. The two warders
-had been shot and thrown overboard, and so also had the third mate.
-Prendergast then descended into the 'tween-decks and with his own hands
-cut the throat of the unfortunate surgeon. There only remained the first
-mate, who was a bold and active man. When he saw the convict approaching
-him with the bloody knife in his hand he kicked off his bonds, which he
-had somehow contrived to loosen, and rushing down the deck he plunged
-into the after-hold. A dozen convicts, who descended with their pistols
-in search of him, found him with a match-box in his hand seated beside
-an open powder-barrel, which was one of a hundred carried on board, and
-swearing that he would blow all hands up if he were in any way molested.
-An instant later the explosion occurred, though Hudson thought it was
-caused by the misdirected bullet of one of the convicts rather than the
-mate's match. Be the cause what it may, it was the end of the _Gloria
-Scott_ and of the rabble who held command of her.
-
-"'Such, in a few words, my dear boy, is the history of this terrible
-business in which I was involved. Next day we were picked up by the brig
-_Hotspur_, bound for Australia, whose captain found no difficulty in
-believing that we were the survivors of a passenger ship which had
-foundered. The transport ship Gloria Scott was set down by the Admiralty
-as being lost at sea, and no word has ever leaked out as to her true
-fate. After an excellent voyage the _Hotspur_ landed us at Sydney, where
-Evans and I changed our names and made our way to the diggings,
-where, among the crowds who were gathered from all nations, we had no
-difficulty in losing our former identities. The rest I need not relate.
-We prospered, we traveled, we came back as rich colonials to England,
-and we bought country estates. For more than twenty years we have
-led peaceful and useful lives, and we hoped that our past was forever
-buried. Imagine, then, my feelings when in the seaman who came to us I
-recognized instantly the man who had been picked off the wreck. He had
-tracked us down somehow, and had set himself to live upon our fears. You
-will understand now how it was that I strove to keep the peace with him,
-and you will in some measure sympathize with me in the fears which fill
-me, now that he has gone from me to his other victim with threats upon
-his tongue.'
-
-"Underneath is written in a hand so shaky as to be hardly legible,
-'Beddoes writes in cipher to say H. Has told all. Sweet Lord, have mercy
-on our souls!'
-
-"That was the narrative which I read that night to young Trevor, and I
-think, Watson, that under the circumstances it was a dramatic one.
-The good fellow was heart-broken at it, and went out to the Terai tea
-planting, where I hear that he is doing well. As to the sailor and
-Beddoes, neither of them was ever heard of again after that day on which
-the letter of warning was written. They both disappeared utterly and
-completely. No complaint had been lodged with the police, so that
-Beddoes had mistaken a threat for a deed. Hudson had been seen lurking
-about, and it was believed by the police that he had done away with
-Beddoes and had fled. For myself I believe that the truth was exactly
-the opposite. I think that it is most probable that Beddoes, pushed to
-desperation and believing himself to have been already betrayed, had
-revenged himself upon Hudson, and had fled from the country with as much
-money as he could lay his hands on. Those are the facts of the case,
-Doctor, and if they are of any use to your collection, I am sure that
-they are very heartily at your service."
-
-
-
-
-Adventure V. The Musgrave Ritual
-
-
-An anomaly which often struck me in the character of my friend Sherlock
-Holmes was that, although in his methods of thought he was the neatest
-and most methodical of mankind, and although also he affected a certain
-quiet primness of dress, he was none the less in his personal habits one
-of the most untidy men that ever drove a fellow-lodger to distraction.
-Not that I am in the least conventional in that respect myself. The
-rough-and-tumble work in Afghanistan, coming on the top of a natural
-Bohemianism of disposition, has made me rather more lax than befits a
-medical man. But with me there is a limit, and when I find a man who
-keeps his cigars in the coal-scuttle, his tobacco in the toe end of
-a Persian slipper, and his unanswered correspondence transfixed by a
-jack-knife into the very centre of his wooden mantelpiece, then I begin
-to give myself virtuous airs. I have always held, too, that pistol
-practice should be distinctly an open-air pastime; and when Holmes, in
-one of his queer humors, would sit in an arm-chair with his hair-trigger
-and a hundred Boxer cartridges, and proceed to adorn the opposite
-wall with a patriotic V. R. done in bullet-pocks, I felt strongly that
-neither the atmosphere nor the appearance of our room was improved by
-it.
-
-Our chambers were always full of chemicals and of criminal relics which
-had a way of wandering into unlikely positions, and of turning up in
-the butter-dish or in even less desirable places. But his papers were
-my great crux. He had a horror of destroying documents, especially those
-which were connected with his past cases, and yet it was only once in
-every year or two that he would muster energy to docket and arrange
-them; for, as I have mentioned somewhere in these incoherent memoirs,
-the outbursts of passionate energy when he performed the remarkable
-feats with which his name is associated were followed by reactions of
-lethargy during which he would lie about with his violin and his books,
-hardly moving save from the sofa to the table. Thus month after month
-his papers accumulated, until every corner of the room was stacked with
-bundles of manuscript which were on no account to be burned, and which
-could not be put away save by their owner. One winter's night, as we
-sat together by the fire, I ventured to suggest to him that, as he had
-finished pasting extracts into his common-place book, he might employ
-the next two hours in making our room a little more habitable. He could
-not deny the justice of my request, so with a rather rueful face he went
-off to his bedroom, from which he returned presently pulling a large tin
-box behind him. This he placed in the middle of the floor and, squatting
-down upon a stool in front of it, he threw back the lid. I could see
-that it was already a third full of bundles of paper tied up with red
-tape into separate packages.
-
-"There are cases enough here, Watson," said he, looking at me with
-mischievous eyes. "I think that if you knew all that I had in this box
-you would ask me to pull some out instead of putting others in."
-
-"These are the records of your early work, then?" I asked. "I have often
-wished that I had notes of those cases."
-
-"Yes, my boy, these were all done prematurely before my biographer
-had come to glorify me." He lifted bundle after bundle in a tender,
-caressing sort of way. "They are not all successes, Watson," said he.
-"But there are some pretty little problems among them. Here's the record
-of the Tarleton murders, and the case of Vamberry, the wine merchant,
-and the adventure of the old Russian woman, and the singular affair
-of the aluminium crutch, as well as a full account of Ricoletti of the
-club-foot, and his abominable wife. And here--ah, now, this really is
-something a little recherché."
-
-He dived his arm down to the bottom of the chest, and brought up a small
-wooden box with a sliding lid, such as children's toys are kept in. From
-within he produced a crumpled piece of paper, and old-fashioned brass
-key, a peg of wood with a ball of string attached to it, and three rusty
-old disks of metal.
-
-"Well, my boy, what do you make of this lot?" he asked, smiling at my
-expression.
-
-"It is a curious collection."
-
-"Very curious, and the story that hangs round it will strike you as
-being more curious still."
-
-"These relics have a history then?"
-
-"So much so that they are history."
-
-"What do you mean by that?"
-
-Sherlock Holmes picked them up one by one, and laid them along the edge
-of the table. Then he reseated himself in his chair and looked them over
-with a gleam of satisfaction in his eyes.
-
-"These," said he, "are all that I have left to remind me of the
-adventure of the Musgrave Ritual."
-
-I had heard him mention the case more than once, though I had never been
-able to gather the details. "I should be so glad," said I, "if you would
-give me an account of it."
-
-"And leave the litter as it is?" he cried, mischievously. "Your tidiness
-won't bear much strain after all, Watson. But I should be glad that you
-should add this case to your annals, for there are points in it which
-make it quite unique in the criminal records of this or, I believe,
-of any other country. A collection of my trifling achievements would
-certainly be incomplete which contained no account of this very singular
-business.
-
-"You may remember how the affair of the _Gloria Scott_, and my
-conversation with the unhappy man whose fate I told you of, first turned
-my attention in the direction of the profession which has become my
-life's work. You see me now when my name has become known far and
-wide, and when I am generally recognized both by the public and by the
-official force as being a final court of appeal in doubtful cases.
-Even when you knew me first, at the time of the affair which you have
-commemorated in 'A Study in Scarlet,' I had already established a
-considerable, though not a very lucrative, connection. You can hardly
-realize, then, how difficult I found it at first, and how long I had to
-wait before I succeeded in making any headway.
-
-"When I first came up to London I had rooms in Montague Street, just
-round the corner from the British Museum, and there I waited, filling in
-my too abundant leisure time by studying all those branches of science
-which might make me more efficient. Now and again cases came in my way,
-principally through the introduction of old fellow-students, for during
-my last years at the University there was a good deal of talk there
-about myself and my methods. The third of these cases was that of the
-Musgrave Ritual, and it is to the interest which was aroused by that
-singular chain of events, and the large issues which proved to be at
-stake, that I trace my first stride towards the position which I now
-hold.
-
-"Reginald Musgrave had been in the same college as myself, and I had
-some slight acquaintance with him. He was not generally popular among
-the undergraduates, though it always seemed to me that what was set down
-as pride was really an attempt to cover extreme natural diffidence.
-In appearance he was a man of exceedingly aristocratic type, thin,
-high-nosed, and large-eyed, with languid and yet courtly manners. He was
-indeed a scion of one of the very oldest families in the kingdom,
-though his branch was a cadet one which had separated from the northern
-Musgraves some time in the sixteenth century, and had established itself
-in western Sussex, where the Manor House of Hurlstone is perhaps the
-oldest inhabited building in the county. Something of his birth place
-seemed to cling to the man, and I never looked at his pale, keen face
-or the poise of his head without associating him with gray archways and
-mullioned windows and all the venerable wreckage of a feudal keep. Once
-or twice we drifted into talk, and I can remember that more than once he
-expressed a keen interest in my methods of observation and inference.
-
-"For four years I had seen nothing of him until one morning he walked
-into my room in Montague Street. He had changed little, was dressed like
-a young man of fashion--he was always a bit of a dandy--and preserved
-the same quiet, suave manner which had formerly distinguished him.
-
-"'How has all gone with you Musgrave?' I asked, after we had cordially
-shaken hands.
-
-"'You probably heard of my poor father's death,' said he; 'he was
-carried off about two years ago. Since then I have of course had the
-Hurlstone estates to manage, and as I am member for my district as well,
-my life has been a busy one. But I understand, Holmes, that you are
-turning to practical ends those powers with which you used to amaze us?'
-
-"'Yes,' said I, 'I have taken to living by my wits.'
-
-"'I am delighted to hear it, for your advice at present would be
-exceedingly valuable to me. We have had some very strange doings at
-Hurlstone, and the police have been able to throw no light upon the
-matter. It is really the most extraordinary and inexplicable business.'
-
-"You can imagine with what eagerness I listened to him, Watson, for
-the very chance for which I had been panting during all those months
-of inaction seemed to have come within my reach. In my inmost heart I
-believed that I could succeed where others failed, and now I had the
-opportunity to test myself.
-
-"'Pray, let me have the details,' I cried.
-
-"Reginald Musgrave sat down opposite to me, and lit the cigarette which
-I had pushed towards him.
-
-"'You must know,' said he, 'that though I am a bachelor, I have to keep
-up a considerable staff of servants at Hurlstone, for it is a rambling
-old place, and takes a good deal of looking after. I preserve, too, and
-in the pheasant months I usually have a house-party, so that it would
-not do to be short-handed. Altogether there are eight maids, the cook,
-the butler, two footmen, and a boy. The garden and the stables of course
-have a separate staff.
-
-"'Of these servants the one who had been longest in our service was
-Brunton the butler. He was a young school-master out of place when he
-was first taken up by my father, but he was a man of great energy and
-character, and he soon became quite invaluable in the household. He was
-a well-grown, handsome man, with a splendid forehead, and though he has
-been with us for twenty years he cannot be more than forty now. With
-his personal advantages and his extraordinary gifts--for he can speak
-several languages and play nearly every musical instrument--it is
-wonderful that he should have been satisfied so long in such a position,
-but I suppose that he was comfortable, and lacked energy to make any
-change. The butler of Hurlstone is always a thing that is remembered by
-all who visit us.
-
-"'But this paragon has one fault. He is a bit of a Don Juan, and you can
-imagine that for a man like him it is not a very difficult part to play
-in a quiet country district. When he was married it was all right, but
-since he has been a widower we have had no end of trouble with him. A
-few months ago we were in hopes that he was about to settle down again
-for he became engaged to Rachel Howells, our second house-maid; but he
-has thrown her over since then and taken up with Janet Tregellis, the
-daughter of the head game-keeper. Rachel--who is a very good girl, but
-of an excitable Welsh temperament--had a sharp touch of brain-fever,
-and goes about the house now--or did until yesterday--like a black-eyed
-shadow of her former self. That was our first drama at Hurlstone; but a
-second one came to drive it from our minds, and it was prefaced by the
-disgrace and dismissal of butler Brunton.
-
-"'This was how it came about. I have said that the man was intelligent,
-and this very intelligence has caused his ruin, for it seems to have
-led to an insatiable curiosity about things which did not in the least
-concern him. I had no idea of the lengths to which this would carry him,
-until the merest accident opened my eyes to it.
-
-"'I have said that the house is a rambling one. One day last week--on
-Thursday night, to be more exact--I found that I could not sleep,
-having foolishly taken a cup of strong café noir after my dinner. After
-struggling against it until two in the morning, I felt that it was quite
-hopeless, so I rose and lit the candle with the intention of continuing
-a novel which I was reading. The book, however, had been left in the
-billiard-room, so I pulled on my dressing-gown and started off to get
-it.
-
-"'In order to reach the billiard-room I had to descend a flight of
-stairs and then to cross the head of a passage which led to the library
-and the gun-room. You can imagine my surprise when, as I looked down
-this corridor, I saw a glimmer of light coming from the open door of the
-library. I had myself extinguished the lamp and closed the door before
-coming to bed. Naturally my first thought was of burglars. The corridors
-at Hurlstone have their walls largely decorated with trophies of old
-weapons. From one of these I picked a battle-axe, and then, leaving my
-candle behind me, I crept on tiptoe down the passage and peeped in at
-the open door.
-
-"'Brunton, the butler, was in the library. He was sitting, fully
-dressed, in an easy-chair, with a slip of paper which looked like a
-map upon his knee, and his forehead sunk forward upon his hand in deep
-thought. I stood dumb with astonishment, watching him from the darkness.
-A small taper on the edge of the table shed a feeble light which
-sufficed to show me that he was fully dressed. Suddenly, as I looked,
-he rose from his chair, and walking over to a bureau at the side, he
-unlocked it and drew out one of the drawers. From this he took a paper,
-and returning to his seat he flattened it out beside the taper on the
-edge of the table, and began to study it with minute attention. My
-indignation at this calm examination of our family documents overcame
-me so far that I took a step forward, and Brunton, looking up, saw me
-standing in the doorway. He sprang to his feet, his face turned livid
-with fear, and he thrust into his breast the chart-like paper which he
-had been originally studying.
-
-"'"So!" said I. "This is how you repay the trust which we have reposed
-in you. You will leave my service to-morrow."
-
-"'He bowed with the look of a man who is utterly crushed, and slunk past
-me without a word. The taper was still on the table, and by its light
-I glanced to see what the paper was which Brunton had taken from the
-bureau. To my surprise it was nothing of any importance at all,
-but simply a copy of the questions and answers in the singular old
-observance called the Musgrave Ritual. It is a sort of ceremony peculiar
-to our family, which each Musgrave for centuries past has gone through
-on his coming of age--a thing of private interest, and perhaps of some
-little importance to the archaeologist, like our own blazonings and
-charges, but of no practical use whatever.'
-
-"'We had better come back to the paper afterwards,' said I.
-
-"'If you think it really necessary,' he answered, with some hesitation.
-'To continue my statement, however: I relocked the bureau, using the key
-which Brunton had left, and I had turned to go when I was surprised to
-find that the butler had returned, and was standing before me.
-
-"'"Mr. Musgrave, sir," he cried, in a voice which was hoarse with
-emotion, "I can't bear disgrace, sir. I've always been proud above my
-station in life, and disgrace would kill me. My blood will be on your
-head, sir--it will, indeed--if you drive me to despair. If you cannot
-keep me after what has passed, then for God's sake let me give you
-notice and leave in a month, as if of my own free will. I could stand
-that, Mr. Musgrave, but not to be cast out before all the folk that I
-know so well."
-
-"'"You don't deserve much consideration, Brunton," I answered. "Your
-conduct has been most infamous. However, as you have been a long time in
-the family, I have no wish to bring public disgrace upon you. A month,
-however is too long. Take yourself away in a week, and give what reason
-you like for going."
-
-"'"Only a week, sir?" he cried, in a despairing voice. "A fortnight--say
-at least a fortnight!"
-
-"'"A week," I repeated, "and you may consider yourself to have been very
-leniently dealt with."
-
-"'He crept away, his face sunk upon his breast, like a broken man, while
-I put out the light and returned to my room.
-
-
-"'"For two days after this Brunton was most assiduous in his attention
-to his duties. I made no allusion to what had passed, and waited with
-some curiosity to see how he would cover his disgrace. On the third
-morning, however he did not appear, as was his custom, after breakfast
-to receive my instructions for the day. As I left the dining-room I
-happened to meet Rachel Howells, the maid. I have told you that she had
-only recently recovered from an illness, and was looking so wretchedly
-pale and wan that I remonstrated with her for being at work.
-
-"'"You should be in bed," I said. "Come back to your duties when you are
-stronger."
-
-"'She looked at me with so strange an expression that I began to suspect
-that her brain was affected.
-
-"'"I am strong enough, Mr. Musgrave," said she.
-
-"'"We will see what the doctor says," I answered. "You must stop work
-now, and when you go downstairs just say that I wish to see Brunton."
-
-"'"The butler is gone," said she.
-
-"'"Gone! Gone where?"
-
-"'"He is gone. No one has seen him. He is not in his room. Oh, yes, he
-is gone, he is gone!" She fell back against the wall with shriek after
-shriek of laughter, while I, horrified at this sudden hysterical attack,
-rushed to the bell to summon help. The girl was taken to her room, still
-screaming and sobbing, while I made inquiries about Brunton. There was
-no doubt about it that he had disappeared. His bed had not been slept
-in, he had been seen by no one since he had retired to his room the
-night before, and yet it was difficult to see how he could have left
-the house, as both windows and doors were found to be fastened in the
-morning. His clothes, his watch, and even his money were in his room,
-but the black suit which he usually wore was missing. His slippers,
-too, were gone, but his boots were left behind. Where then could butler
-Brunton have gone in the night, and what could have become of him now?
-
-"'Of course we searched the house from cellar to garret, but there was
-no trace of him. It is, as I have said, a labyrinth of an old house,
-especially the original wing, which is now practically uninhabited; but
-we ransacked every room and cellar without discovering the least sign
-of the missing man. It was incredible to me that he could have gone away
-leaving all his property behind him, and yet where could he be? I called
-in the local police, but without success. Rain had fallen on the night
-before and we examined the lawn and the paths all round the house, but
-in vain. Matters were in this state, when a new development quite drew
-our attention away from the original mystery.
-
-"'For two days Rachel Howells had been so ill, sometimes delirious,
-sometimes hysterical, that a nurse had been employed to sit up with her
-at night. On the third night after Brunton's disappearance, the nurse,
-finding her patient sleeping nicely, had dropped into a nap in the
-arm-chair, when she woke in the early morning to find the bed empty, the
-window open, and no signs of the invalid. I was instantly aroused, and,
-with the two footmen, started off at once in search of the missing girl.
-It was not difficult to tell the direction which she had taken, for,
-starting from under her window, we could follow her footmarks easily
-across the lawn to the edge of the mere, where they vanished close to
-the gravel path which leads out of the grounds. The lake there is eight
-feet deep, and you can imagine our feelings when we saw that the trail
-of the poor demented girl came to an end at the edge of it.
-
-"'Of course, we had the drags at once, and set to work to recover the
-remains, but no trace of the body could we find. On the other hand, we
-brought to the surface an object of a most unexpected kind. It was a
-linen bag which contained within it a mass of old rusted and discolored
-metal and several dull-colored pieces of pebble or glass. This strange
-find was all that we could get from the mere, and, although we made
-every possible search and inquiry yesterday, we know nothing of the fate
-either of Rachel Howells or of Richard Brunton. The county police are at
-their wits' end, and I have come up to you as a last resource.'
-
-"You can imagine, Watson, with what eagerness I listened to this
-extraordinary sequence of events, and endeavored to piece them together,
-and to devise some common thread upon which they might all hang. The
-butler was gone. The maid was gone. The maid had loved the butler, but
-had afterwards had cause to hate him. She was of Welsh blood, fiery
-and passionate. She had been terribly excited immediately after his
-disappearance. She had flung into the lake a bag containing some
-curious contents. These were all factors which had to be taken into
-consideration, and yet none of them got quite to the heart of the
-matter. What was the starting-point of this chain of events? There lay
-the end of this tangled line.
-
-"'I must see that paper, Musgrave,' said I, 'which this butler of your
-thought it worth his while to consult, even at the risk of the loss of
-his place.'
-
-"'It is rather an absurd business, this ritual of ours,' he answered.
-'But it has at least the saving grace of antiquity to excuse it. I have
-a copy of the questions and answers here if you care to run your eye
-over them.'
-
-"He handed me the very paper which I have here, Watson, and this is the
-strange catechism to which each Musgrave had to submit when he came to
-man's estate. I will read you the questions and answers as they stand.
-
-"'Whose was it?'
-
-"'His who is gone.'
-
-"'Who shall have it?'
-
-"'He who will come.'
-
-"'Where was the sun?'
-
-"'Over the oak.'
-
-"'Where was the shadow?'
-
-"'Under the elm.'
-
-"How was it stepped?'
-
-"'North by ten and by ten, east by five and by five, south by two and by
-two, west by one and by one, and so under.'
-
-"'What shall we give for it?'
-
-"'All that is ours.'
-
-"'Why should we give it?'
-
-"'For the sake of the trust.'
-
-"'The original has no date, but is in the spelling of the middle of the
-seventeenth century,' remarked Musgrave. 'I am afraid, however, that it
-can be of little help to you in solving this mystery.'
-
-"'At least,' said I, 'it gives us another mystery, and one which is even
-more interesting than the first. It may be that the solution of the one
-may prove to be the solution of the other. You will excuse me, Musgrave,
-if I say that your butler appears to me to have been a very clever man,
-and to have had a clearer insight than ten generations of his masters.'
-
-"'I hardly follow you,' said Musgrave. 'The paper seems to me to be of
-no practical importance.'
-
-"'But to me it seems immensely practical, and I fancy that Brunton took
-the same view. He had probably seen it before that night on which you
-caught him.'
-
-"'It is very possible. We took no pains to hide it.'
-
-"'He simply wished, I should imagine, to refresh his memory upon that
-last occasion. He had, as I understand, some sort of map or chart which
-he was comparing with the manuscript, and which he thrust into his
-pocket when you appeared.'
-
-"'That is true. But what could he have to do with this old family custom
-of ours, and what does this rigmarole mean?'
-
-"'I don't think that we should have much difficulty in determining
-that,' said I; 'with your permission we will take the first train down
-to Sussex, and go a little more deeply into the matter upon the spot.'
-
-
-"The same afternoon saw us both at Hurlstone. Possibly you have seen
-pictures and read descriptions of the famous old building, so I will
-confine my account of it to saying that it is built in the shape of
-an L, the long arm being the more modern portion, and the shorter the
-ancient nucleus, from which the other had developed. Over the low,
-heavily-lintelled door, in the centre of this old part, is chiseled the
-date, 1607, but experts are agreed that the beams and stone-work are
-really much older than this. The enormously thick walls and tiny windows
-of this part had in the last century driven the family into building the
-new wing, and the old one was used now as a store-house and a cellar,
-when it was used at all. A splendid park with fine old timber surrounds
-the house, and the lake, to which my client had referred, lay close to
-the avenue, about two hundred yards from the building.
-
-"I was already firmly convinced, Watson, that there were not three
-separate mysteries here, but one only, and that if I could read the
-Musgrave Ritual aright I should hold in my hand the clue which would
-lead me to the truth concerning both the butler Brunton and the maid
-Howells. To that then I turned all my energies. Why should this servant
-be so anxious to master this old formula? Evidently because he saw
-something in it which had escaped all those generations of country
-squires, and from which he expected some personal advantage. What was it
-then, and how had it affected his fate?
-
-"It was perfectly obvious to me, on reading the ritual, that the
-measurements must refer to some spot to which the rest of the document
-alluded, and that if we could find that spot, we should be in a fair way
-towards finding what the secret was which the old Musgraves had thought
-it necessary to embalm in so curious a fashion. There were two guides
-given us to start with, an oak and an elm. As to the oak there could be
-no question at all. Right in front of the house, upon the left-hand
-side of the drive, there stood a patriarch among oaks, one of the most
-magnificent trees that I have ever seen.
-
-"'That was there when your ritual was drawn up,' said I, as we drove
-past it.
-
-"'It was there at the Norman Conquest in all probability,' he answered.
-'It has a girth of twenty-three feet.'
-
-"'Have you any old elms?' I asked.
-
-"'There used to be a very old one over yonder but it was struck by
-lightning ten years ago, and we cut down the stump.'
-
-"'You can see where it used to be?'
-
-"'Oh, yes.'
-
-"'There are no other elms?'
-
-"'No old ones, but plenty of beeches.'
-
-"'I should like to see where it grew.'
-
-"We had driven up in a dog-cart, and my client led me away at once,
-without our entering the house, to the scar on the lawn where the
-elm had stood. It was nearly midway between the oak and the house. My
-investigation seemed to be progressing.
-
-"'I suppose it is impossible to find out how high the elm was?' I asked.
-
-"'I can give you it at once. It was sixty-four feet.'
-
-"'How do you come to know it?' I asked, in surprise.
-
-"'When my old tutor used to give me an exercise in trigonometry, it
-always took the shape of measuring heights. When I was a lad I worked
-out every tree and building in the estate.'
-
-"This was an unexpected piece of luck. My data were coming more quickly
-than I could have reasonably hoped.
-
-"'Tell me,' I asked, 'did your butler ever ask you such a question?'
-
-"Reginald Musgrave looked at me in astonishment. 'Now that you call it
-to my mind,' he answered, 'Brunton did ask me about the height of the
-tree some months ago, in connection with some little argument with the
-groom.'
-
-"This was excellent news, Watson, for it showed me that I was on the
-right road. I looked up at the sun. It was low in the heavens, and I
-calculated that in less than an hour it would lie just above the topmost
-branches of the old oak. One condition mentioned in the Ritual would
-then be fulfilled. And the shadow of the elm must mean the farther end
-of the shadow, otherwise the trunk would have been chosen as the guide.
-I had, then, to find where the far end of the shadow would fall when the
-sun was just clear of the oak."
-
-"That must have been difficult, Holmes, when the elm was no longer
-there."
-
-"Well, at least I knew that if Brunton could do it, I could also.
-Besides, there was no real difficulty. I went with Musgrave to his study
-and whittled myself this peg, to which I tied this long string with a
-knot at each yard. Then I took two lengths of a fishing-rod, which came
-to just six feet, and I went back with my client to where the elm had
-been. The sun was just grazing the top of the oak. I fastened the rod
-on end, marked out the direction of the shadow, and measured it. It was
-nine feet in length.
-
-"Of course the calculation now was a simple one. If a rod of six feet
-threw a shadow of nine, a tree of sixty-four feet would throw one of
-ninety-six, and the line of the one would of course be the line of the
-other. I measured out the distance, which brought me almost to the
-wall of the house, and I thrust a peg into the spot. You can imagine
-my exultation, Watson, when within two inches of my peg I saw a conical
-depression in the ground. I knew that it was the mark made by Brunton in
-his measurements, and that I was still upon his trail.
-
-"From this starting-point I proceeded to step, having first taken the
-cardinal points by my pocket-compass. Ten steps with each foot took me
-along parallel with the wall of the house, and again I marked my spot
-with a peg. Then I carefully paced off five to the east and two to the
-south. It brought me to the very threshold of the old door. Two steps
-to the west meant now that I was to go two paces down the stone-flagged
-passage, and this was the place indicated by the Ritual.
-
-"Never have I felt such a cold chill of disappointment, Watson. For a
-moment is seemed to me that there must be some radical mistake in my
-calculations. The setting sun shone full upon the passage floor, and I
-could see that the old, foot-worn gray stones with which it was paved
-were firmly cemented together, and had certainly not been moved for many
-a long year. Brunton had not been at work here. I tapped upon the floor,
-but it sounded the same all over, and there was no sign of any crack
-or crevice. But, fortunately, Musgrave, who had begun to appreciate the
-meaning of my proceedings, and who was now as excited as myself, took
-out his manuscript to check my calculation.
-
-"'And under,' he cried. 'You have omitted the "and under."'
-
-"I had thought that it meant that we were to dig, but now, of course,
-I saw at once that I was wrong. 'There is a cellar under this then?' I
-cried.
-
-"'Yes, and as old as the house. Down here, through this door.'
-
-"We went down a winding stone stair, and my companion, striking a match,
-lit a large lantern which stood on a barrel in the corner. In an instant
-it was obvious that we had at last come upon the true place, and that we
-had not been the only people to visit the spot recently.
-
-"It had been used for the storage of wood, but the billets, which had
-evidently been littered over the floor, were now piled at the sides, so
-as to leave a clear space in the middle. In this space lay a large and
-heavy flagstone with a rusted iron ring in the centre to which a thick
-shepherd's-check muffler was attached.
-
-"'By Jove!' cried my client. 'That's Brunton's muffler. I have seen it
-on him, and could swear to it. What has the villain been doing here?'
-
-"At my suggestion a couple of the county police were summoned to be
-present, and I then endeavored to raise the stone by pulling on the
-cravat. I could only move it slightly, and it was with the aid of one
-of the constables that I succeeded at last in carrying it to one side.
-A black hole yawned beneath into which we all peered, while Musgrave,
-kneeling at the side, pushed down the lantern.
-
-"A small chamber about seven feet deep and four feet square lay open to
-us. At one side of this was a squat, brass-bound wooden box, the lid of
-which was hinged upwards, with this curious old-fashioned key projecting
-from the lock. It was furred outside by a thick layer of dust, and damp
-and worms had eaten through the wood, so that a crop of livid fungi
-was growing on the inside of it. Several discs of metal, old coins
-apparently, such as I hold here, were scattered over the bottom of the
-box, but it contained nothing else.
-
-"At the moment, however, we had no thought for the old chest, for our
-eyes were riveted upon that which crouched beside it. It was the figure
-of a man, clad in a suit of black, who squatted down upon his hams with
-his forehead sunk upon the edge of the box and his two arms thrown out
-on each side of it. The attitude had drawn all the stagnant blood to
-the face, and no man could have recognized that distorted liver-colored
-countenance; but his height, his dress, and his hair were all sufficient
-to show my client, when we had drawn the body up, that it was indeed his
-missing butler. He had been dead some days, but there was no wound or
-bruise upon his person to show how he had met his dreadful end. When
-his body had been carried from the cellar we found ourselves still
-confronted with a problem which was almost as formidable as that with
-which we had started.
-
-"I confess that so far, Watson, I had been disappointed in my
-investigation. I had reckoned upon solving the matter when once I had
-found the place referred to in the Ritual; but now I was there, and was
-apparently as far as ever from knowing what it was which the family had
-concealed with such elaborate precautions. It is true that I had thrown
-a light upon the fate of Brunton, but now I had to ascertain how that
-fate had come upon him, and what part had been played in the matter by
-the woman who had disappeared. I sat down upon a keg in the corner and
-thought the whole matter carefully over.
-
-"You know my methods in such cases, Watson. I put myself in the man's
-place and, having first gauged his intelligence, I try to imagine how I
-should myself have proceeded under the same circumstances. In this
-case the matter was simplified by Brunton's intelligence being quite
-first-rate, so that it was unnecessary to make any allowance for the
-personal equation, as the astronomers have dubbed it. He knew that
-something valuable was concealed. He had spotted the place. He found
-that the stone which covered it was just too heavy for a man to move
-unaided. What would he do next? He could not get help from outside, even
-if he had some one whom he could trust, without the unbarring of doors
-and considerable risk of detection. It was better, if he could, to have
-his helpmate inside the house. But whom could he ask? This girl had been
-devoted to him. A man always finds it hard to realize that he may have
-finally lost a woman's love, however badly he may have treated her. He
-would try by a few attentions to make his peace with the girl Howells,
-and then would engage her as his accomplice. Together they would come at
-night to the cellar, and their united force would suffice to raise the
-stone. So far I could follow their actions as if I had actually seen
-them.
-
-"But for two of them, and one a woman, it must have been heavy work the
-raising of that stone. A burly Sussex policeman and I had found it no
-light job. What would they do to assist them? Probably what I should
-have done myself. I rose and examined carefully the different billets
-of wood which were scattered round the floor. Almost at once I came
-upon what I expected. One piece, about three feet in length, had a very
-marked indentation at one end, while several were flattened at the sides
-as if they had been compressed by some considerable weight. Evidently,
-as they had dragged the stone up they had thrust the chunks of wood into
-the chink, until at last, when the opening was large enough to crawl
-through, they would hold it open by a billet placed lengthwise, which
-might very well become indented at the lower end, since the whole weight
-of the stone would press it down on to the edge of this other slab. So
-far I was still on safe ground.
-
-"And now how was I to proceed to reconstruct this midnight drama?
-Clearly, only one could fit into the hole, and that one was Brunton. The
-girl must have waited above. Brunton then unlocked the box, handed up
-the contents presumably--since they were not to be found--and then--and
-then what happened?
-
-"What smouldering fire of vengeance had suddenly sprung into flame in
-this passionate Celtic woman's soul when she saw the man who had wronged
-her--wronged her, perhaps, far more than we suspected--in her power?
-Was it a chance that the wood had slipped, and that the stone had shut
-Brunton into what had become his sepulchre? Had she only been guilty of
-silence as to his fate? Or had some sudden blow from her hand dashed the
-support away and sent the slab crashing down into its place? Be that
-as it might, I seemed to see that woman's figure still clutching at her
-treasure trove and flying wildly up the winding stair, with her ears
-ringing perhaps with the muffled screams from behind her and with the
-drumming of frenzied hands against the slab of stone which was choking
-her faithless lover's life out.
-
-"Here was the secret of her blanched face, her shaken nerves, her peals
-of hysterical laughter on the next morning. But what had been in the
-box? What had she done with that? Of course, it must have been the old
-metal and pebbles which my client had dragged from the mere. She had
-thrown them in there at the first opportunity to remove the last trace
-of her crime.
-
-"For twenty minutes I had sat motionless, thinking the matter out.
-Musgrave still stood with a very pale face, swinging his lantern and
-peering down into the hole.
-
-"'These are coins of Charles the First,' said he, holding out the few
-which had been in the box; 'you see we were right in fixing our date for
-the Ritual.'
-
-"'We may find something else of Charles the First,' I cried, as the
-probable meaning of the first two questions of the Ritual broke suddenly
-upon me. 'Let me see the contents of the bag which you fished from the
-mere.'
-
-
-"We ascended to his study, and he laid the debris before me. I could
-understand his regarding it as of small importance when I looked at it,
-for the metal was almost black and the stones lustreless and dull. I
-rubbed one of them on my sleeve, however, and it glowed afterwards like
-a spark in the dark hollow of my hand. The metal work was in the form
-of a double ring, but it had been bent and twisted out of its original
-shape.
-
-"'You must bear in mind,' said I, 'that the royal party made head in
-England even after the death of the king, and that when they at last
-fled they probably left many of their most precious possessions buried
-behind them, with the intention of returning for them in more peaceful
-times.'
-
-"'My ancestor, Sir Ralph Musgrave, was a prominent Cavalier and the
-right-hand man of Charles the Second in his wanderings,' said my friend.
-
-"'Ah, indeed!' I answered. 'Well now, I think that really should give us
-the last link that we wanted. I must congratulate you on coming into
-the possession, though in rather a tragic manner of a relic which is of
-great intrinsic value, but of even greater importance as an historical
-curiosity.'
-
-"'What is it, then?' he gasped in astonishment.
-
-"'It is nothing less than the ancient crown of the kings of England.'
-
-"'The crown!'
-
-"'Precisely. Consider what the Ritual says: How does it run? "Whose was
-it?" "His who is gone." That was after the execution of Charles. Then,
-"Who shall have it?" "He who will come." That was Charles the Second,
-whose advent was already foreseen. There can, I think, be no doubt that
-this battered and shapeless diadem once encircled the brows of the royal
-Stuarts.'
-
-"'And how came it in the pond?'
-
-"'Ah, that is a question that will take some time to answer.' And with
-that I sketched out to him the whole long chain of surmise and of proof
-which I had constructed. The twilight had closed in and the moon was
-shining brightly in the sky before my narrative was finished.
-
-"'And how was it then that Charles did not get his crown when he
-returned?' asked Musgrave, pushing back the relic into its linen bag.
-
-"'Ah, there you lay your finger upon the one point which we shall
-probably never be able to clear up. It is likely that the Musgrave who
-held the secret died in the interval, and by some oversight left this
-guide to his descendant without explaining the meaning of it. From that
-day to this it has been handed down from father to son, until at last
-it came within reach of a man who tore its secret out of it and lost his
-life in the venture.'
-
-
-"And that's the story of the Musgrave Ritual, Watson. They have the
-crown down at Hurlstone--though they had some legal bother and a
-considerable sum to pay before they were allowed to retain it. I am sure
-that if you mentioned my name they would be happy to show it to you. Of
-the woman nothing was ever heard, and the probability is that she got
-away out of England and carried herself and the memory of her crime to
-some land beyond the seas."
-
-
-
-
-Adventure VI. The Reigate Puzzle
-
-
-It was some time before the health of my friend Mr. Sherlock Holmes
-recovered from the strain caused by his immense exertions in the spring
-of '87. The whole question of the Netherland-Sumatra Company and of the
-colossal schemes of Baron Maupertuis are too recent in the minds of the
-public, and are too intimately concerned with politics and finance to be
-fitting subjects for this series of sketches. They led, however, in an
-indirect fashion to a singular and complex problem which gave my friend
-an opportunity of demonstrating the value of a fresh weapon among the
-many with which he waged his life-long battle against crime.
-
-On referring to my notes I see that it was upon the 14th of April that
-I received a telegram from Lyons which informed me that Holmes was
-lying ill in the Hotel Dulong. Within twenty-four hours I was in his
-sick-room, and was relieved to find that there was nothing formidable in
-his symptoms. Even his iron constitution, however, had broken down
-under the strain of an investigation which had extended over two months,
-during which period he had never worked less than fifteen hours a day,
-and had more than once, as he assured me, kept to his task for five days
-at a stretch. Even the triumphant issue of his labors could not save him
-from reaction after so terrible an exertion, and at a time when Europe
-was ringing with his name and when his room was literally ankle-deep
-with congratulatory telegrams I found him a prey to the blackest
-depression. Even the knowledge that he had succeeded where the police of
-three countries had failed, and that he had outmanoeuvred at every point
-the most accomplished swindler in Europe, was insufficient to rouse him
-from his nervous prostration.
-
-Three days later we were back in Baker Street together; but it was
-evident that my friend would be much the better for a change, and the
-thought of a week of spring time in the country was full of attractions
-to me also. My old friend, Colonel Hayter, who had come under my
-professional care in Afghanistan, had now taken a house near Reigate in
-Surrey, and had frequently asked me to come down to him upon a visit. On
-the last occasion he had remarked that if my friend would only come
-with me he would be glad to extend his hospitality to him also. A little
-diplomacy was needed, but when Holmes understood that the establishment
-was a bachelor one, and that he would be allowed the fullest freedom,
-he fell in with my plans and a week after our return from Lyons we were
-under the Colonel's roof. Hayter was a fine old soldier who had seen
-much of the world, and he soon found, as I had expected, that Holmes and
-he had much in common.
-
-On the evening of our arrival we were sitting in the Colonel's gun-room
-after dinner, Holmes stretched upon the sofa, while Hayter and I looked
-over his little armory of Eastern weapons.
-
-"By the way," said he suddenly, "I think I'll take one of these pistols
-upstairs with me in case we have an alarm."
-
-"An alarm!" said I.
-
-"Yes, we've had a scare in this part lately. Old Acton, who is one of
-our county magnates, had his house broken into last Monday. No great
-damage done, but the fellows are still at large."
-
-"No clue?" asked Holmes, cocking his eye at the Colonel.
-
-"None as yet. But the affair is a petty one, one of our little country
-crimes, which must seem too small for your attention, Mr. Holmes, after
-this great international affair."
-
-Holmes waved away the compliment, though his smile showed that it had
-pleased him.
-
-"Was there any feature of interest?"
-
-"I fancy not. The thieves ransacked the library and got very little for
-their pains. The whole place was turned upside down, drawers burst open,
-and presses ransacked, with the result that an odd volume of Pope's
-'Homer,' two plated candlesticks, an ivory letter-weight, a small oak
-barometer, and a ball of twine are all that have vanished."
-
-"What an extraordinary assortment!" I exclaimed.
-
-"Oh, the fellows evidently grabbed hold of everything they could get."
-
-Holmes grunted from the sofa.
-
-"The county police ought to make something of that," said he; "why, it
-is surely obvious that--"
-
-But I held up a warning finger.
-
-"You are here for a rest, my dear fellow. For Heaven's sake don't get
-started on a new problem when your nerves are all in shreds."
-
-Holmes shrugged his shoulders with a glance of comic resignation towards
-the Colonel, and the talk drifted away into less dangerous channels.
-
-It was destined, however, that all my professional caution should be
-wasted, for next morning the problem obtruded itself upon us in such a
-way that it was impossible to ignore it, and our country visit took a
-turn which neither of us could have anticipated. We were at breakfast
-when the Colonel's butler rushed in with all his propriety shaken out of
-him.
-
-"Have you heard the news, sir?" he gasped. "At the Cunningham's sir!"
-
-"Burglary!" cried the Colonel, with his coffee-cup in mid-air.
-
-"Murder!"
-
-The Colonel whistled. "By Jove!" said he. "Who's killed, then? The J.P.
-or his son?"
-
-"Neither, sir. It was William the coachman. Shot through the heart, sir,
-and never spoke again."
-
-"Who shot him, then?"
-
-"The burglar, sir. He was off like a shot and got clean away. He'd just
-broke in at the pantry window when William came on him and met his end
-in saving his master's property."
-
-"What time?"
-
-"It was last night, sir, somewhere about twelve."
-
-"Ah, then, we'll step over afterwards," said the Colonel, coolly
-settling down to his breakfast again. "It's a baddish business," he
-added when the butler had gone; "he's our leading man about here, is old
-Cunningham, and a very decent fellow too. He'll be cut up over this, for
-the man has been in his service for years and was a good servant. It's
-evidently the same villains who broke into Acton's."
-
-"And stole that very singular collection," said Holmes, thoughtfully.
-
-"Precisely."
-
-"Hum! It may prove the simplest matter in the world, but all the same
-at first glance this is just a little curious, is it not? A gang of
-burglars acting in the country might be expected to vary the scene of
-their operations, and not to crack two cribs in the same district within
-a few days. When you spoke last night of taking precautions I remember
-that it passed through my mind that this was probably the last parish
-in England to which the thief or thieves would be likely to turn their
-attention--which shows that I have still much to learn."
-
-"I fancy it's some local practitioner," said the Colonel. "In that case,
-of course, Acton's and Cunningham's are just the places he would go for,
-since they are far the largest about here."
-
-"And richest?"
-
-"Well, they ought to be, but they've had a lawsuit for some years which
-has sucked the blood out of both of them, I fancy. Old Acton has some
-claim on half Cunningham's estate, and the lawyers have been at it with
-both hands."
-
-"If it's a local villain there should not be much difficulty in running
-him down," said Holmes with a yawn. "All right, Watson, I don't intend
-to meddle."
-
-"Inspector Forrester, sir," said the butler, throwing open the door.
-
-The official, a smart, keen-faced young fellow, stepped into the room.
-"Good-morning, Colonel," said he; "I hope I don't intrude, but we hear
-that Mr. Holmes of Baker Street is here."
-
-The Colonel waved his hand towards my friend, and the Inspector bowed.
-
-"We thought that perhaps you would care to step across, Mr. Holmes."
-
-"The fates are against you, Watson," said he, laughing. "We were
-chatting about the matter when you came in, Inspector. Perhaps you
-can let us have a few details." As he leaned back in his chair in the
-familiar attitude I knew that the case was hopeless.
-
-"We had no clue in the Acton affair. But here we have plenty to go on,
-and there's no doubt it is the same party in each case. The man was
-seen."
-
-"Ah!"
-
-"Yes, sir. But he was off like a deer after the shot that killed poor
-William Kirwan was fired. Mr. Cunningham saw him from the bedroom
-window, and Mr. Alec Cunningham saw him from the back passage. It was
-quarter to twelve when the alarm broke out. Mr. Cunningham had just got
-into bed, and Mr. Alec was smoking a pipe in his dressing-gown. They
-both heard William the coachman calling for help, and Mr. Alec ran down
-to see what was the matter. The back door was open, and as he came to
-the foot of the stairs he saw two men wrestling together outside. One of
-them fired a shot, the other dropped, and the murderer rushed across the
-garden and over the hedge. Mr. Cunningham, looking out of his bedroom,
-saw the fellow as he gained the road, but lost sight of him at once. Mr.
-Alec stopped to see if he could help the dying man, and so the villain
-got clean away. Beyond the fact that he was a middle-sized man and
-dressed in some dark stuff, we have no personal clue; but we are making
-energetic inquiries, and if he is a stranger we shall soon find him
-out."
-
-"What was this William doing there? Did he say anything before he died?"
-
-"Not a word. He lives at the lodge with his mother, and as he was a
-very faithful fellow we imagine that he walked up to the house with
-the intention of seeing that all was right there. Of course this Acton
-business has put every one on their guard. The robber must have just
-burst open the door--the lock has been forced--when William came upon
-him."
-
-"Did William say anything to his mother before going out?"
-
-"She is very old and deaf, and we can get no information from her. The
-shock has made her half-witted, but I understand that she was never
-very bright. There is one very important circumstance, however. Look at
-this!"
-
-He took a small piece of torn paper from a note-book and spread it out
-upon his knee.
-
-"This was found between the finger and thumb of the dead man. It appears
-to be a fragment torn from a larger sheet. You will observe that the
-hour mentioned upon it is the very time at which the poor fellow met his
-fate. You see that his murderer might have torn the rest of the sheet
-from him or he might have taken this fragment from the murderer. It
-reads almost as though it were an appointment."
-
-Holmes took up the scrap of paper, a fac-simile of which is here
-reproduced.
-
- d at quarter to twelve learn what maybe
-
-"Presuming that it is an appointment," continued the Inspector, "it is
-of course a conceivable theory that this William Kirwan--though he had
-the reputation of being an honest man, may have been in league with the
-thief. He may have met him there, may even have helped him to break in
-the door, and then they may have fallen out between themselves."
-
-"This writing is of extraordinary interest," said Holmes, who had been
-examining it with intense concentration. "These are much deeper waters
-than I had thought." He sank his head upon his hands, while the Inspector
-smiled at the effect which his case had had upon the famous London
-specialist.
-
-"Your last remark," said Holmes, presently, "as to the possibility of
-there being an understanding between the burglar and the servant, and
-this being a note of appointment from one to the other, is an ingenious
-and not entirely impossible supposition. But this writing opens up--" He
-sank his head into his hands again and remained for some minutes in the
-deepest thought. When he raised his face again, I was surprised to see
-that his cheek was tinged with color, and his eyes as bright as before
-his illness. He sprang to his feet with all his old energy.
-
-"I'll tell you what," said he, "I should like to have a quiet little
-glance into the details of this case. There is something in it which
-fascinates me extremely. If you will permit me, Colonel, I will leave my
-friend Watson and you, and I will step round with the Inspector to test
-the truth of one or two little fancies of mine. I will be with you again
-in half an hour."
-
-An hour and half had elapsed before the Inspector returned alone.
-
-"Mr. Holmes is walking up and down in the field outside," said he. "He
-wants us all four to go up to the house together."
-
-"To Mr. Cunningham's?"
-
-"Yes, sir."
-
-"What for?"
-
-The Inspector shrugged his shoulders. "I don't quite know, sir. Between
-ourselves, I think Mr. Holmes had not quite got over his illness yet.
-He's been behaving very queerly, and he is very much excited."
-
-"I don't think you need alarm yourself," said I. "I have usually found
-that there was method in his madness."
-
-"Some folks might say there was madness in his method," muttered the
-Inspector. "But he's all on fire to start, Colonel, so we had best go
-out if you are ready."
-
-We found Holmes pacing up and down in the field, his chin sunk upon his
-breast, and his hands thrust into his trousers pockets.
-
-"The matter grows in interest," said he. "Watson, your country-trip has
-been a distinct success. I have had a charming morning."
-
-"You have been up to the scene of the crime, I understand," said the
-Colonel.
-
-"Yes; the Inspector and I have made quite a little reconnaissance
-together."
-
-"Any success?"
-
-"Well, we have seen some very interesting things. I'll tell you what we
-did as we walk. First of all, we saw the body of this unfortunate man.
-He certainly died from a revolver wound as reported."
-
-"Had you doubted it, then?"
-
-"Oh, it is as well to test everything. Our inspection was not wasted. We
-then had an interview with Mr. Cunningham and his son, who were able
-to point out the exact spot where the murderer had broken through the
-garden-hedge in his flight. That was of great interest."
-
-"Naturally."
-
-"Then we had a look at this poor fellow's mother. We could get no
-information from her, however, as she is very old and feeble."
-
-"And what is the result of your investigations?"
-
-"The conviction that the crime is a very peculiar one. Perhaps our visit
-now may do something to make it less obscure. I think that we are both
-agreed, Inspector that the fragment of paper in the dead man's hand,
-bearing, as it does, the very hour of his death written upon it, is of
-extreme importance."
-
-"It should give a clue, Mr. Holmes."
-
-"It does give a clue. Whoever wrote that note was the man who brought
-William Kirwan out of his bed at that hour. But where is the rest of
-that sheet of paper?"
-
-"I examined the ground carefully in the hope of finding it," said the
-Inspector.
-
-"It was torn out of the dead man's hand. Why was some one so anxious to
-get possession of it? Because it incriminated him. And what would he do
-with it? Thrust it into his pocket, most likely, never noticing that a
-corner of it had been left in the grip of the corpse. If we could get
-the rest of that sheet it is obvious that we should have gone a long way
-towards solving the mystery."
-
-"Yes, but how can we get at the criminal's pocket before we catch the
-criminal?"
-
-"Well, well, it was worth thinking over. Then there is another obvious
-point. The note was sent to William. The man who wrote it could not have
-taken it; otherwise, of course, he might have delivered his own message
-by word of mouth. Who brought the note, then? Or did it come through the
-post?"
-
-"I have made inquiries," said the Inspector. "William received a letter
-by the afternoon post yesterday. The envelope was destroyed by him."
-
-"Excellent!" cried Holmes, clapping the Inspector on the back. "You've
-seen the postman. It is a pleasure to work with you. Well, here is the
-lodge, and if you will come up, Colonel, I will show you the scene of
-the crime."
-
-We passed the pretty cottage where the murdered man had lived, and
-walked up an oak-lined avenue to the fine old Queen Anne house, which
-bears the date of Malplaquet upon the lintel of the door. Holmes and
-the Inspector led us round it until we came to the side gate, which is
-separated by a stretch of garden from the hedge which lines the road. A
-constable was standing at the kitchen door.
-
-"Throw the door open, officer," said Holmes. "Now, it was on those
-stairs that young Mr. Cunningham stood and saw the two men struggling
-just where we are. Old Mr. Cunningham was at that window--the second on
-the left--and he saw the fellow get away just to the left of that bush.
-Then Mr. Alec ran out and knelt beside the wounded man. The ground is
-very hard, you see, and there are no marks to guide us." As he spoke two
-men came down the garden path, from round the angle of the house. The
-one was an elderly man, with a strong, deep-lined, heavy-eyed face; the
-other a dashing young fellow, whose bright, smiling expression and showy
-dress were in strange contract with the business which had brought us
-there.
-
-"Still at it, then?" said he to Holmes. "I thought you Londoners were
-never at fault. You don't seem to be so very quick, after all."
-
-"Ah, you must give us a little time," said Holmes good-humoredly.
-
-"You'll want it," said young Alec Cunningham. "Why, I don't see that we
-have any clue at all."
-
-"There's only one," answered the Inspector. "We thought that if we could
-only find--Good heavens, Mr. Holmes! What is the matter?"
-
-My poor friend's face had suddenly assumed the most dreadful expression.
-His eyes rolled upwards, his features writhed in agony, and with a
-suppressed groan he dropped on his face upon the ground. Horrified
-at the suddenness and severity of the attack, we carried him into the
-kitchen, where he lay back in a large chair, and breathed heavily for
-some minutes. Finally, with a shamefaced apology for his weakness, he
-rose once more.
-
-"Watson would tell you that I have only just recovered from a severe
-illness," he explained. "I am liable to these sudden nervous attacks."
-
-"Shall I send you home in my trap?" asked old Cunningham.
-
-"Well, since I am here, there is one point on which I should like to
-feel sure. We can very easily verify it."
-
-"What was it?"
-
-"Well, it seems to me that it is just possible that the arrival of
-this poor fellow William was not before, but after, the entrance of
-the burglary into the house. You appear to take it for granted that,
-although the door was forced, the robber never got in."
-
-"I fancy that is quite obvious," said Mr. Cunningham, gravely. "Why, my
-son Alec had not yet gone to bed, and he would certainly have heard any
-one moving about."
-
-"Where was he sitting?"
-
-"I was smoking in my dressing-room."
-
-"Which window is that?"
-
-"The last on the left next my father's."
-
-"Both of your lamps were lit, of course?"
-
-"Undoubtedly."
-
-"There are some very singular points here," said Holmes, smiling. "Is
-it not extraordinary that a burglary--and a burglar who had had some
-previous experience--should deliberately break into a house at a time
-when he could see from the lights that two of the family were still
-afoot?"
-
-"He must have been a cool hand."
-
-"Well, of course, if the case were not an odd one we should not have
-been driven to ask you for an explanation," said young Mr. Alec. "But as
-to your ideas that the man had robbed the house before William tackled
-him, I think it a most absurd notion. Wouldn't we have found the place
-disarranged, and missed the things which he had taken?"
-
-"It depends on what the things were," said Holmes. "You must remember
-that we are dealing with a burglar who is a very peculiar fellow, and
-who appears to work on lines of his own. Look, for example, at the
-queer lot of things which he took from Acton's--what was it?--a ball of
-string, a letter-weight, and I don't know what other odds and ends."
-
-"Well, we are quite in your hands, Mr. Holmes," said old Cunningham.
-"Anything which you or the Inspector may suggest will most certainly be
-done."
-
-"In the first place," said Holmes, "I should like you to offer a
-reward--coming from yourself, for the officials may take a little time
-before they would agree upon the sum, and these things cannot be done
-too promptly. I have jotted down the form here, if you would not mind
-signing it. Fifty pounds was quite enough, I thought."
-
-"I would willingly give five hundred," said the J.P., taking the slip
-of paper and the pencil which Holmes handed to him. "This is not quite
-correct, however," he added, glancing over the document.
-
-"I wrote it rather hurriedly."
-
-"You see you begin, 'Whereas, at about a quarter to one on Tuesday
-morning an attempt was made,' and so on. It was at a quarter to twelve,
-as a matter of fact."
-
-I was pained at the mistake, for I knew how keenly Holmes would feel any
-slip of the kind. It was his specialty to be accurate as to fact, but
-his recent illness had shaken him, and this one little incident was
-enough to show me that he was still far from being himself. He was
-obviously embarrassed for an instant, while the Inspector raised his
-eyebrows, and Alec Cunningham burst into a laugh. The old gentleman
-corrected the mistake, however, and handed the paper back to Holmes.
-
-"Get it printed as soon as possible," he said; "I think your idea is an
-excellent one."
-
-Holmes put the slip of paper carefully away into his pocket-book.
-
-"And now," said he, "it really would be a good thing that we should all
-go over the house together and make certain that this rather erratic
-burglar did not, after all, carry anything away with him."
-
-Before entering, Holmes made an examination of the door which had been
-forced. It was evident that a chisel or strong knife had been thrust
-in, and the lock forced back with it. We could see the marks in the wood
-where it had been pushed in.
-
-"You don't use bars, then?" he asked.
-
-"We have never found it necessary."
-
-"You don't keep a dog?"
-
-"Yes, but he is chained on the other side of the house."
-
-"When do the servants go to bed?"
-
-"About ten."
-
-"I understand that William was usually in bed also at that hour."
-
-"Yes."
-
-"It is singular that on this particular night he should have been up.
-Now, I should be very glad if you would have the kindness to show us
-over the house, Mr. Cunningham."
-
-A stone-flagged passage, with the kitchens branching away from it, led
-by a wooden staircase directly to the first floor of the house. It came
-out upon the landing opposite to a second more ornamental stair which
-came up from the front hall. Out of this landing opened the drawing-room
-and several bedrooms, including those of Mr. Cunningham and his son.
-Holmes walked slowly, taking keen note of the architecture of the house.
-I could tell from his expression that he was on a hot scent, and yet
-I could not in the least imagine in what direction his inferences were
-leading him.
-
-"My good sir," said Mr. Cunningham with some impatience, "this is surely
-very unnecessary. That is my room at the end of the stairs, and my
-son's is the one beyond it. I leave it to your judgment whether it was
-possible for the thief to have come up here without disturbing us."
-
-"You must try round and get on a fresh scent, I fancy," said the son
-with a rather malicious smile.
-
-"Still, I must ask you to humor me a little further. I should like, for
-example, to see how far the windows of the bedrooms command the front.
-This, I understand is your son's room"--he pushed open the door--"and
-that, I presume, is the dressing-room in which he sat smoking when the
-alarm was given. Where does the window of that look out to?" He stepped
-across the bedroom, pushed open the door, and glanced round the other
-chamber.
-
-"I hope that you are satisfied now?" said Mr. Cunningham, tartly.
-
-"Thank you, I think I have seen all that I wished."
-
-"Then if it is really necessary we can go into my room."
-
-"If it is not too much trouble."
-
-The J. P. shrugged his shoulders, and led the way into his own chamber,
-which was a plainly furnished and commonplace room. As we moved across
-it in the direction of the window, Holmes fell back until he and I were
-the last of the group. Near the foot of the bed stood a dish of oranges
-and a carafe of water. As we passed it Holmes, to my unutterable
-astonishment, leaned over in front of me and deliberately knocked the
-whole thing over. The glass smashed into a thousand pieces and the fruit
-rolled about into every corner of the room.
-
-"You've done it now, Watson," said he, coolly. "A pretty mess you've
-made of the carpet."
-
-I stooped in some confusion and began to pick up the fruit,
-understanding for some reason my companion desired me to take the blame
-upon myself. The others did the same, and set the table on its legs
-again.
-
-"Hullo!" cried the Inspector, "where's he got to?"
-
-Holmes had disappeared.
-
-"Wait here an instant," said young Alec Cunningham. "The fellow is off
-his head, in my opinion. Come with me, father, and see where he has got
-to!"
-
-They rushed out of the room, leaving the Inspector, the Colonel, and me
-staring at each other.
-
-"'Pon my word, I am inclined to agree with Master Alec," said the
-official. "It may be the effect of this illness, but it seems to me
-that--"
-
-His words were cut short by a sudden scream of "Help! Help! Murder!"
-With a thrill I recognized the voice of that of my friend. I rushed
-madly from the room on to the landing. The cries, which had sunk down
-into a hoarse, inarticulate shouting, came from the room which we had
-first visited. I dashed in, and on into the dressing-room beyond. The
-two Cunninghams were bending over the prostrate figure of Sherlock
-Holmes, the younger clutching his throat with both hands, while the
-elder seemed to be twisting one of his wrists. In an instant the three
-of us had torn them away from him, and Holmes staggered to his feet,
-very pale and evidently greatly exhausted.
-
-"Arrest these men, Inspector," he gasped.
-
-"On what charge?"
-
-"That of murdering their coachman, William Kirwan."
-
-The Inspector stared about him in bewilderment. "Oh, come now, Mr.
-Holmes," said he at last, "I'm sure you don't really mean to--"
-
-"Tut, man, look at their faces!" cried Holmes, curtly.
-
-Never certainly have I seen a plainer confession of guilt upon human
-countenances. The older man seemed numbed and dazed with a heavy, sullen
-expression upon his strongly-marked face. The son, on the other hand,
-had dropped all that jaunty, dashing style which had characterized him,
-and the ferocity of a dangerous wild beast gleamed in his dark eyes
-and distorted his handsome features. The Inspector said nothing, but,
-stepping to the door, he blew his whistle. Two of his constables came at
-the call.
-
-"I have no alternative, Mr. Cunningham," said he. "I trust that this may
-all prove to be an absurd mistake, but you can see that--Ah, would you?
-Drop it!" He struck out with his hand, and a revolver which the younger
-man was in the act of cocking clattered down upon the floor.
-
-"Keep that," said Holmes, quietly putting his foot upon it; "you will
-find it useful at the trial. But this is what we really wanted." He held
-up a little crumpled piece of paper.
-
-"The remainder of the sheet!" cried the Inspector.
-
-"Precisely."
-
-"And where was it?"
-
-"Where I was sure it must be. I'll make the whole matter clear to you
-presently. I think, Colonel, that you and Watson might return now, and
-I will be with you again in an hour at the furthest. The Inspector and I
-must have a word with the prisoners, but you will certainly see me back
-at luncheon time."
-
-
-Sherlock Holmes was as good as his word, for about one o'clock he
-rejoined us in the Colonel's smoking-room. He was accompanied by a
-little elderly gentleman, who was introduced to me as the Mr. Acton
-whose house had been the scene of the original burglary.
-
-"I wished Mr. Acton to be present while I demonstrated this small matter
-to you," said Holmes, "for it is natural that he should take a keen
-interest in the details. I am afraid, my dear Colonel, that you must
-regret the hour that you took in such a stormy petrel as I am."
-
-"On the contrary," answered the Colonel, warmly, "I consider it the
-greatest privilege to have been permitted to study your methods of
-working. I confess that they quite surpass my expectations, and that I
-am utterly unable to account for your result. I have not yet seen the
-vestige of a clue."
-
-"I am afraid that my explanation may disillusion you but it has always
-been my habit to hide none of my methods, either from my friend Watson
-or from any one who might take an intelligent interest in them. But,
-first, as I am rather shaken by the knocking about which I had in
-the dressing-room, I think that I shall help myself to a dash of your
-brandy, Colonel. My strength had been rather tried of late."
-
-"I trust that you had no more of those nervous attacks."
-
-Sherlock Holmes laughed heartily. "We will come to that in its turn,"
-said he. "I will lay an account of the case before you in its due order,
-showing you the various points which guided me in my decision. Pray
-interrupt me if there is any inference which is not perfectly clear to
-you.
-
-"It is of the highest importance in the art of detection to be able
-to recognize, out of a number of facts, which are incidental and which
-vital. Otherwise your energy and attention must be dissipated instead of
-being concentrated. Now, in this case there was not the slightest doubt
-in my mind from the first that the key of the whole matter must be
-looked for in the scrap of paper in the dead man's hand.
-
-"Before going into this, I would draw your attention to the fact that,
-if Alec Cunningham's narrative was correct, and if the assailant, after
-shooting William Kirwan, had instantly fled, then it obviously could not
-be he who tore the paper from the dead man's hand. But if it was not he,
-it must have been Alec Cunningham himself, for by the time that the old
-man had descended several servants were upon the scene. The point is a
-simple one, but the Inspector had overlooked it because he had started
-with the supposition that these county magnates had had nothing to do
-with the matter. Now, I make a point of never having any prejudices,
-and of following docilely wherever fact may lead me, and so, in the
-very first stage of the investigation, I found myself looking a little
-askance at the part which had been played by Mr. Alec Cunningham.
-
-"And now I made a very careful examination of the corner of paper which
-the Inspector had submitted to us. It was at once clear to me that it
-formed part of a very remarkable document. Here it is. Do you not now
-observe something very suggestive about it?"
-
-"It has a very irregular look," said the Colonel.
-
-"My dear sir," cried Holmes, "there cannot be the least doubt in the
-world that it has been written by two persons doing alternate words.
-When I draw your attention to the strong t's of 'at' and 'to', and ask
-you to compare them with the weak ones of 'quarter' and 'twelve,' you
-will instantly recognize the fact. A very brief analysis of these
-four words would enable you to say with the utmost confidence that the
-'learn' and the 'maybe' are written in the stronger hand, and the 'what'
-in the weaker."
-
-"By Jove, it's as clear as day!" cried the Colonel. "Why on earth should
-two men write a letter in such a fashion?"
-
-"Obviously the business was a bad one, and one of the men who distrusted
-the other was determined that, whatever was done, each should have an
-equal hand in it. Now, of the two men, it is clear that the one who
-wrote the 'at' and 'to' was the ringleader."
-
-"How do you get at that?"
-
-"We might deduce it from the mere character of the one hand as compared
-with the other. But we have more assured reasons than that for supposing
-it. If you examine this scrap with attention you will come to the
-conclusion that the man with the stronger hand wrote all his words
-first, leaving blanks for the other to fill up. These blanks were not
-always sufficient, and you can see that the second man had a squeeze
-to fit his 'quarter' in between the 'at' and the 'to,' showing that the
-latter were already written. The man who wrote all his words first is
-undoubtedly the man who planned the affair."
-
-"Excellent!" cried Mr. Acton.
-
-"But very superficial," said Holmes. "We come now, however, to a point
-which is of importance. You may not be aware that the deduction of a
-man's age from his writing is one which has brought to considerable
-accuracy by experts. In normal cases one can place a man in his true
-decade with tolerable confidence. I say normal cases, because ill-health
-and physical weakness reproduce the signs of old age, even when the
-invalid is a youth. In this case, looking at the bold, strong hand of
-the one, and the rather broken-backed appearance of the other, which
-still retains its legibility although the t's have begun to lose their
-crossing, we can say that the one was a young man and the other was
-advanced in years without being positively decrepit."
-
-"Excellent!" cried Mr. Acton again.
-
-"There is a further point, however, which is subtler and of greater
-interest. There is something in common between these hands. They belong
-to men who are blood-relatives. It may be most obvious to you in the
-Greek e's, but to me there are many small points which indicate the same
-thing. I have no doubt at all that a family mannerism can be traced in
-these two specimens of writing. I am only, of course, giving you
-the leading results now of my examination of the paper. There were
-twenty-three other deductions which would be of more interest to experts
-than to you. They all tend to deepen the impression upon my mind that
-the Cunninghams, father and son, had written this letter.
-
-"Having got so far, my next step was, of course, to examine into the
-details of the crime, and to see how far they would help us. I went up
-to the house with the Inspector, and saw all that was to be seen. The
-wound upon the dead man was, as I was able to determine with absolute
-confidence, fired from a revolver at the distance of something over
-four yards. There was no powder-blackening on the clothes. Evidently,
-therefore, Alec Cunningham had lied when he said that the two men were
-struggling when the shot was fired. Again, both father and son agreed
-as to the place where the man escaped into the road. At that point,
-however, as it happens, there is a broadish ditch, moist at the bottom.
-As there were no indications of bootmarks about this ditch, I was
-absolutely sure not only that the Cunninghams had again lied, but that
-there had never been any unknown man upon the scene at all.
-
-"And now I have to consider the motive of this singular crime. To get
-at this, I endeavored first of all to solve the reason of the original
-burglary at Mr. Acton's. I understood, from something which the Colonel
-told us, that a lawsuit had been going on between you, Mr. Acton, and
-the Cunninghams. Of course, it instantly occurred to me that they had
-broken into your library with the intention of getting at some document
-which might be of importance in the case."
-
-"Precisely so," said Mr. Acton. "There can be no possible doubt as to
-their intentions. I have the clearest claim upon half of their present
-estate, and if they could have found a single paper--which, fortunately,
-was in the strong-box of my solicitors--they would undoubtedly have
-crippled our case."
-
-"There you are," said Holmes, smiling. "It was a dangerous, reckless
-attempt, in which I seem to trace the influence of young Alec. Having
-found nothing they tried to divert suspicion by making it appear to be
-an ordinary burglary, to which end they carried off whatever they could
-lay their hands upon. That is all clear enough, but there was much that
-was still obscure. What I wanted above all was to get the missing part
-of that note. I was certain that Alec had torn it out of the dead man's
-hand, and almost certain that he must have thrust it into the pocket of
-his dressing-gown. Where else could he have put it? The only question
-was whether it was still there. It was worth an effort to find out, and
-for that object we all went up to the house.
-
-"The Cunninghams joined us, as you doubtless remember, outside the
-kitchen door. It was, of course, of the very first importance that they
-should not be reminded of the existence of this paper, otherwise they
-would naturally destroy it without delay. The Inspector was about to
-tell them the importance which we attached to it when, by the luckiest
-chance in the world, I tumbled down in a sort of fit and so changed the
-conversation.
-
-"Good heavens!" cried the Colonel, laughing, "do you mean to say all our
-sympathy was wasted and your fit an imposture?"
-
-"Speaking professionally, it was admirably done," cried I, looking in
-amazement at this man who was forever confounding me with some new phase
-of his astuteness.
-
-"It is an art which is often useful," said he. "When I recovered I
-managed, by a device which had perhaps some little merit of ingenuity,
-to get old Cunningham to write the word 'twelve,' so that I might
-compare it with the 'twelve' upon the paper."
-
-"Oh, what an ass I have been!" I exclaimed.
-
-"I could see that you were commiserating me over my weakness," said
-Holmes, laughing. "I was sorry to cause you the sympathetic pain which
-I know that you felt. We then went upstairs together, and having entered
-the room and seen the dressing-gown hanging up behind the door, I
-contrived, by upsetting a table, to engage their attention for the
-moment, and slipped back to examine the pockets. I had hardly got the
-paper, however--which was, as I had expected, in one of them--when the
-two Cunninghams were on me, and would, I verily believe, have murdered
-me then and there but for your prompt and friendly aid. As it is, I feel
-that young man's grip on my throat now, and the father has twisted my
-wrist round in the effort to get the paper out of my hand. They saw that
-I must know all about it, you see, and the sudden change from absolute
-security to complete despair made them perfectly desperate.
-
-"I had a little talk with old Cunningham afterwards as to the motive of
-the crime. He was tractable enough, though his son was a perfect demon,
-ready to blow out his own or anybody else's brains if he could have got
-to his revolver. When Cunningham saw that the case against him was so
-strong he lost all heart and made a clean breast of everything. It seems
-that William had secretly followed his two masters on the night when
-they made their raid upon Mr. Acton's, and having thus got them into
-his power, proceeded, under threats of exposure, to levy blackmail upon
-them. Mr. Alec, however, was a dangerous man to play games of that
-sort with. It was a stroke of positive genius on his part to see in the
-burglary scare which was convulsing the country side an opportunity of
-plausibly getting rid of the man whom he feared. William was decoyed up
-and shot, and had they only got the whole of the note and paid a little
-more attention to detail in the accessories, it is very possible that
-suspicion might never have been aroused."
-
-"And the note?" I asked.
-
-Sherlock Holmes placed the subjoined paper before us.
-
- If you will only come around to the east gate you it will
- very much surprise you and be of the greatest service to you
- and also to Annie Morrison. But say nothing to anyone upon
- the matter.
-
-"It is very much the sort of thing that I expected," said he. "Of
-course, we do not yet know what the relations may have been between Alec
-Cunningham, William Kirwan, and Annie Morrison. The results shows that
-the trap was skillfully baited. I am sure that you cannot fail to be
-delighted with the traces of heredity shown in the p's and in the tails
-of the g's. The absence of the i-dots in the old man's writing is also
-most characteristic. Watson, I think our quiet rest in the country has
-been a distinct success, and I shall certainly return much invigorated
-to Baker Street to-morrow."
-
-
-
-
-Adventure VII. The Crooked Man
-
-
-One summer night, a few months after my marriage, I was seated by my own
-hearth smoking a last pipe and nodding over a novel, for my day's work
-had been an exhausting one. My wife had already gone upstairs, and the
-sound of the locking of the hall door some time before told me that the
-servants had also retired. I had risen from my seat and was knocking out
-the ashes of my pipe when I suddenly heard the clang of the bell.
-
-I looked at the clock. It was a quarter to twelve. This could not be
-a visitor at so late an hour. A patient, evidently, and possibly an
-all-night sitting. With a wry face I went out into the hall and opened
-the door. To my astonishment it was Sherlock Holmes who stood upon my
-step.
-
-"Ah, Watson," said he, "I hoped that I might not be too late to catch
-you."
-
-"My dear fellow, pray come in."
-
-"You look surprised, and no wonder! Relieved, too, I fancy! Hum! You
-still smoke the Arcadia mixture of your bachelor days then! There's no
-mistaking that fluffy ash upon your coat. It's easy to tell that you
-have been accustomed to wear a uniform, Watson. You'll never pass as
-a pure-bred civilian as long as you keep that habit of carrying your
-handkerchief in your sleeve. Could you put me up to-night?"
-
-"With pleasure."
-
-"You told me that you had bachelor quarters for one, and I see that you
-have no gentleman visitor at present. Your hat-stand proclaims as much."
-
-"I shall be delighted if you will stay."
-
-"Thank you. I'll fill the vacant peg then. Sorry to see that you've had
-the British workman in the house. He's a token of evil. Not the drains,
-I hope?"
-
-"No, the gas."
-
-"Ah! He has left two nail-marks from his boot upon your linoleum
-just where the light strikes it. No, thank you, I had some supper at
-Waterloo, but I'll smoke a pipe with you with pleasure."
-
-I handed him my pouch, and he seated himself opposite to me and smoked
-for some time in silence. I was well aware that nothing but business
-of importance would have brought him to me at such an hour, so I waited
-patiently until he should come round to it.
-
-"I see that you are professionally rather busy just now," said he,
-glancing very keenly across at me.
-
-"Yes, I've had a busy day," I answered. "It may seem very foolish in
-your eyes," I added, "but really I don't know how you deduced it."
-
-Holmes chuckled to himself.
-
-"I have the advantage of knowing your habits, my dear Watson," said he.
-"When your round is a short one you walk, and when it is a long one you
-use a hansom. As I perceive that your boots, although used, are by
-no means dirty, I cannot doubt that you are at present busy enough to
-justify the hansom."
-
-"Excellent!" I cried.
-
-"Elementary," said he. "It is one of those instances where the reasoner
-can produce an effect which seems remarkable to his neighbor, because
-the latter has missed the one little point which is the basis of the
-deduction. The same may be said, my dear fellow, for the effect of
-some of these little sketches of yours, which is entirely meretricious,
-depending as it does upon your retaining in your own hands some factors
-in the problem which are never imparted to the reader. Now, at present
-I am in the position of these same readers, for I hold in this hand
-several threads of one of the strangest cases which ever perplexed a
-man's brain, and yet I lack the one or two which are needful to complete
-my theory. But I'll have them, Watson, I'll have them!" His eyes kindled
-and a slight flush sprang into his thin cheeks. For an instant only.
-When I glanced again his face had resumed that red-Indian composure
-which had made so many regard him as a machine rather than a man.
-
-"The problem presents features of interest," said he. "I may even say
-exceptional features of interest. I have already looked into the matter,
-and have come, as I think, within sight of my solution. If you could
-accompany me in that last step you might be of considerable service to
-me."
-
-"I should be delighted."
-
-"Could you go as far as Aldershot to-morrow?"
-
-"I have no doubt Jackson would take my practice."
-
-"Very good. I want to start by the 11.10 from Waterloo."
-
-"That would give me time."
-
-"Then, if you are not too sleepy, I will give you a sketch of what has
-happened, and of what remains to be done."
-
-"I was sleepy before you came. I am quite wakeful now."
-
-"I will compress the story as far as may be done without omitting
-anything vital to the case. It is conceivable that you may even have
-read some account of the matter. It is the supposed murder of Colonel
-Barclay, of the Royal Munsters, at Aldershot, which I am investigating."
-
-"I have heard nothing of it."
-
-"It has not excited much attention yet, except locally. The facts are
-only two days old. Briefly they are these:
-
-"The Royal Munsters is, as you know, one of the most famous Irish
-regiments in the British army. It did wonders both in the Crimea and the
-Mutiny, and has since that time distinguished itself upon every possible
-occasion. It was commanded up to Monday night by James Barclay,
-a gallant veteran, who started as a full private, was raised to
-commissioned rank for his bravery at the time of the Mutiny, and so
-lived to command the regiment in which he had once carried a musket.
-
-"Colonel Barclay had married at the time when he was a sergeant, and
-his wife, whose maiden name was Miss Nancy Devoy, was the daughter of a
-former color-sergeant in the same corps. There was, therefore, as can
-be imagined, some little social friction when the young couple (for
-they were still young) found themselves in their new surroundings. They
-appear, however, to have quickly adapted themselves, and Mrs. Barclay
-has always, I understand, been as popular with the ladies of the
-regiment as her husband was with his brother officers. I may add that
-she was a woman of great beauty, and that even now, when she has been
-married for upwards of thirty years, she is still of a striking and
-queenly appearance.
-
-"Colonel Barclay's family life appears to have been a uniformly happy
-one. Major Murphy, to whom I owe most of my facts, assures me that he
-has never heard of any misunderstanding between the pair. On the whole,
-he thinks that Barclay's devotion to his wife was greater than his
-wife's to Barclay. He was acutely uneasy if he were absent from her for
-a day. She, on the other hand, though devoted and faithful, was less
-obtrusively affectionate. But they were regarded in the regiment as
-the very model of a middle-aged couple. There was absolutely nothing in
-their mutual relations to prepare people for the tragedy which was to
-follow.
-
-"Colonel Barclay himself seems to have had some singular traits in his
-character. He was a dashing, jovial old soldier in his usual mood,
-but there were occasions on which he seemed to show himself capable
-of considerable violence and vindictiveness. This side of his nature,
-however, appears never to have been turned towards his wife. Another
-fact, which had struck Major Murphy and three out of five of the other
-officers with whom I conversed, was the singular sort of depression
-which came upon him at times. As the major expressed it, the smile had
-often been struck from his mouth, as if by some invisible hand, when he
-has been joining the gayeties and chaff of the mess-table. For days on
-end, when the mood was on him, he has been sunk in the deepest gloom.
-This and a certain tinge of superstition were the only unusual traits
-in his character which his brother officers had observed. The latter
-peculiarity took the form of a dislike to being left alone, especially
-after dark. This puerile feature in a nature which was conspicuously
-manly had often given rise to comment and conjecture.
-
-"The first battalion of the Royal Munsters (which is the old 117th) has
-been stationed at Aldershot for some years. The married officers live
-out of barracks, and the Colonel has during all this time occupied a
-villa called Lachine, about half a mile from the north camp. The house
-stands in its own grounds, but the west side of it is not more than
-thirty yards from the high-road. A coachman and two maids form the
-staff of servants. These with their master and mistress were the sole
-occupants of Lachine, for the Barclays had no children, nor was it usual
-for them to have resident visitors.
-
-"Now for the events at Lachine between nine and ten on the evening of
-last Monday."
-
-"Mrs. Barclay was, it appears, a member of the Roman Catholic Church,
-and had interested herself very much in the establishment of the Guild
-of St. George, which was formed in connection with the Watt Street
-Chapel for the purpose of supplying the poor with cast-off clothing.
-A meeting of the Guild had been held that evening at eight, and Mrs.
-Barclay had hurried over her dinner in order to be present at it. When
-leaving the house she was heard by the coachman to make some commonplace
-remark to her husband, and to assure him that she would be back before
-very long. She then called for Miss Morrison, a young lady who lives
-in the next villa, and the two went off together to their meeting. It
-lasted forty minutes, and at a quarter-past nine Mrs. Barclay returned
-home, having left Miss Morrison at her door as she passed.
-
-"There is a room which is used as a morning-room at Lachine. This faces
-the road and opens by a large glass folding-door on to the lawn. The
-lawn is thirty yards across, and is only divided from the highway by
-a low wall with an iron rail above it. It was into this room that Mrs.
-Barclay went upon her return. The blinds were not down, for the room was
-seldom used in the evening, but Mrs. Barclay herself lit the lamp and
-then rang the bell, asking Jane Stewart, the house-maid, to bring her
-a cup of tea, which was quite contrary to her usual habits. The Colonel
-had been sitting in the dining-room, but hearing that his wife had
-returned he joined her in the morning-room. The coachman saw him cross
-the hall and enter it. He was never seen again alive.
-
-"The tea which had been ordered was brought up at the end of ten
-minutes; but the maid, as she approached the door, was surprised to
-hear the voices of her master and mistress in furious altercation. She
-knocked without receiving any answer, and even turned the handle, but
-only to find that the door was locked upon the inside. Naturally enough
-she ran down to tell the cook, and the two women with the coachman came
-up into the hall and listened to the dispute which was still raging.
-They all agreed that only two voices were to be heard, those of Barclay
-and of his wife. Barclay's remarks were subdued and abrupt, so that none
-of them were audible to the listeners. The lady's, on the other hand,
-were most bitter, and when she raised her voice could be plainly heard.
-'You coward!' she repeated over and over again. 'What can be done now?
-What can be done now? Give me back my life. I will never so much as
-breathe the same air with you again! You coward! You coward!' Those were
-scraps of her conversation, ending in a sudden dreadful cry in the man's
-voice, with a crash, and a piercing scream from the woman. Convinced
-that some tragedy had occurred, the coachman rushed to the door and
-strove to force it, while scream after scream issued from within. He was
-unable, however, to make his way in, and the maids were too distracted
-with fear to be of any assistance to him. A sudden thought struck him,
-however, and he ran through the hall door and round to the lawn upon
-which the long French windows open. One side of the window was open,
-which I understand was quite usual in the summer-time, and he passed
-without difficulty into the room. His mistress had ceased to scream and
-was stretched insensible upon a couch, while with his feet tilted over
-the side of an arm-chair, and his head upon the ground near the corner
-of the fender, was lying the unfortunate soldier stone dead in a pool of
-his own blood.
-
-"Naturally, the coachman's first thought, on finding that he could do
-nothing for his master, was to open the door. But here an unexpected and
-singular difficulty presented itself. The key was not in the inner side
-of the door, nor could he find it anywhere in the room. He went out
-again, therefore, through the window, and having obtained the help of
-a policeman and of a medical man, he returned. The lady, against whom
-naturally the strongest suspicion rested, was removed to her room, still
-in a state of insensibility. The Colonel's body was then placed upon the
-sofa, and a careful examination made of the scene of the tragedy.
-
-"The injury from which the unfortunate veteran was suffering was found
-to be a jagged cut some two inches long at the back part of his head,
-which had evidently been caused by a violent blow from a blunt weapon.
-Nor was it difficult to guess what that weapon may have been. Upon the
-floor, close to the body, was lying a singular club of hard carved wood
-with a bone handle. The Colonel possessed a varied collection of weapons
-brought from the different countries in which he had fought, and it
-is conjectured by the police that his club was among his trophies. The
-servants deny having seen it before, but among the numerous curiosities
-in the house it is possible that it may have been overlooked. Nothing
-else of importance was discovered in the room by the police, save the
-inexplicable fact that neither upon Mrs. Barclay's person nor upon that
-of the victim nor in any part of the room was the missing key to
-be found. The door had eventually to be opened by a locksmith from
-Aldershot.
-
-"That was the state of things, Watson, when upon the Tuesday morning I,
-at the request of Major Murphy, went down to Aldershot to supplement
-the efforts of the police. I think that you will acknowledge that the
-problem was already one of interest, but my observations soon made me
-realize that it was in truth much more extraordinary than would at first
-sight appear.
-
-"Before examining the room I cross-questioned the servants, but only
-succeeded in eliciting the facts which I have already stated. One other
-detail of interest was remembered by Jane Stewart, the housemaid. You
-will remember that on hearing the sound of the quarrel she descended and
-returned with the other servants. On that first occasion, when she was
-alone, she says that the voices of her master and mistress were sunk
-so low that she could hear hardly anything, and judged by their tones
-rather than their words that they had fallen out. On my pressing her,
-however, she remembered that she heard the word David uttered twice by
-the lady. The point is of the utmost importance as guiding us towards
-the reason of the sudden quarrel. The Colonel's name, you remember, was
-James.
-
-"There was one thing in the case which had made the deepest impression
-both upon the servants and the police. This was the contortion of the
-Colonel's face. It had set, according to their account, into the most
-dreadful expression of fear and horror which a human countenance is
-capable of assuming. More than one person fainted at the mere sight
-of him, so terrible was the effect. It was quite certain that he had
-foreseen his fate, and that it had caused him the utmost horror. This,
-of course, fitted in well enough with the police theory, if the Colonel
-could have seen his wife making a murderous attack upon him. Nor was
-the fact of the wound being on the back of his head a fatal objection to
-this, as he might have turned to avoid the blow. No information could
-be got from the lady herself, who was temporarily insane from an acute
-attack of brain-fever.
-
-"From the police I learned that Miss Morrison, who you remember went out
-that evening with Mrs. Barclay, denied having any knowledge of what it
-was which had caused the ill-humor in which her companion had returned.
-
-"Having gathered these facts, Watson, I smoked several pipes over them,
-trying to separate those which were crucial from others which were
-merely incidental. There could be no question that the most distinctive
-and suggestive point in the case was the singular disappearance of the
-door-key. A most careful search had failed to discover it in the room.
-Therefore it must have been taken from it. But neither the Colonel
-nor the Colonel's wife could have taken it. That was perfectly clear.
-Therefore a third person must have entered the room. And that third
-person could only have come in through the window. It seemed to me that
-a careful examination of the room and the lawn might possibly reveal
-some traces of this mysterious individual. You know my methods, Watson.
-There was not one of them which I did not apply to the inquiry. And it
-ended by my discovering traces, but very different ones from those which
-I had expected. There had been a man in the room, and he had crossed
-the lawn coming from the road. I was able to obtain five very clear
-impressions of his foot-marks: one in the roadway itself, at the point
-where he had climbed the low wall, two on the lawn, and two very faint
-ones upon the stained boards near the window where he had entered.
-He had apparently rushed across the lawn, for his toe-marks were much
-deeper than his heels. But it was not the man who surprised me. It was
-his companion."
-
-"His companion!"
-
-Holmes pulled a large sheet of tissue-paper out of his pocket and
-carefully unfolded it upon his knee.
-
-"What do you make of that?" he asked.
-
-The paper was covered with he tracings of the foot-marks of some small
-animal. It had five well-marked foot-pads, an indication of long nails,
-and the whole print might be nearly as large as a dessert-spoon.
-
-"It's a dog," said I.
-
-"Did you ever hear of a dog running up a curtain? I found distinct
-traces that this creature had done so."
-
-"A monkey, then?"
-
-"But it is not the print of a monkey."
-
-"What can it be, then?"
-
-"Neither dog nor cat nor monkey nor any creature that we are familiar
-with. I have tried to reconstruct it from the measurements. Here are
-four prints where the beast has been standing motionless. You see that
-it is no less than fifteen inches from fore-foot to hind. Add to that
-the length of neck and head, and you get a creature not much less than
-two feet long--probably more if there is any tail. But now observe this
-other measurement. The animal has been moving, and we have the length
-of its stride. In each case it is only about three inches. You have an
-indication, you see, of a long body with very short legs attached to it.
-It has not been considerate enough to leave any of its hair behind it.
-But its general shape must be what I have indicated, and it can run up a
-curtain, and it is carnivorous."
-
-"How do you deduce that?"
-
-"Because it ran up the curtain. A canary's cage was hanging in the
-window, and its aim seems to have been to get at the bird."
-
-"Then what was the beast?"
-
-"Ah, if I could give it a name it might go a long way towards solving
-the case. On the whole, it was probably some creature of the weasel and
-stoat tribe--and yet it is larger than any of these that I have seen."
-
-"But what had it to do with the crime?"
-
-"That, also, is still obscure. But we have learned a good deal, you
-perceive. We know that a man stood in the road looking at the quarrel
-between the Barclays--the blinds were up and the room lighted. We know,
-also, that he ran across the lawn, entered the room, accompanied by a
-strange animal, and that he either struck the Colonel or, as is equally
-possible, that the Colonel fell down from sheer fright at the sight of
-him, and cut his head on the corner of the fender. Finally, we have the
-curious fact that the intruder carried away the key with him when he
-left."
-
-"Your discoveries seem to have left the business more obscure that it
-was before," said I.
-
-"Quite so. They undoubtedly showed that the affair was much deeper than
-was at first conjectured. I thought the matter over, and I came to
-the conclusion that I must approach the case from another aspect. But
-really, Watson, I am keeping you up, and I might just as well tell you
-all this on our way to Aldershot to-morrow."
-
-"Thank you, you have gone rather too far to stop."
-
-"It is quite certain that when Mrs. Barclay left the house at half-past
-seven she was on good terms with her husband. She was never, as I think
-I have said, ostentatiously affectionate, but she was heard by the
-coachman chatting with the Colonel in a friendly fashion. Now, it was
-equally certain that, immediately on her return, she had gone to the
-room in which she was least likely to see her husband, had flown to tea
-as an agitated woman will, and finally, on his coming in to her, had
-broken into violent recriminations. Therefore something had occurred
-between seven-thirty and nine o'clock which had completely altered her
-feelings towards him. But Miss Morrison had been with her during the
-whole of that hour and a half. It was absolutely certain, therefore, in
-spite of her denial, that she must know something of the matter.
-
-"My first conjecture was, that possibly there had been some passages
-between this young lady and the old soldier, which the former had now
-confessed to the wife. That would account for the angry return, and
-also for the girl's denial that anything had occurred. Nor would it be
-entirely incompatible with most of the words overhead. But there was the
-reference to David, and there was the known affection of the Colonel for
-his wife, to weigh against it, to say nothing of the tragic intrusion
-of this other man, which might, of course, be entirely disconnected with
-what had gone before. It was not easy to pick one's steps, but, on the
-whole, I was inclined to dismiss the idea that there had been anything
-between the Colonel and Miss Morrison, but more than ever convinced that
-the young lady held the clue as to what it was which had turned Mrs.
-Barclay to hatred of her husband. I took the obvious course, therefore,
-of calling upon Miss M., of explaining to her that I was perfectly
-certain that she held the facts in her possession, and of assuring her
-that her friend, Mrs. Barclay, might find herself in the dock upon a
-capital charge unless the matter were cleared up.
-
-"Miss Morrison is a little ethereal slip of a girl, with timid eyes
-and blond hair, but I found her by no means wanting in shrewdness and
-common-sense. She sat thinking for some time after I had spoken, and
-then, turning to me with a brisk air of resolution, she broke into a
-remarkable statement which I will condense for your benefit.
-
-"'I promised my friend that I would say nothing of the matter, and a
-promise is a promise,' said she; 'but if I can really help her when
-so serious a charge is laid against her, and when her own mouth, poor
-darling, is closed by illness, then I think I am absolved from my
-promise. I will tell you exactly what happened upon Monday evening.
-
-"'We were returning from the Watt Street Mission about a quarter to nine
-o'clock. On our way we had to pass through Hudson Street, which is
-a very quiet thoroughfare. There is only one lamp in it, upon the
-left-hand side, and as we approached this lamp I saw a man coming
-towards us with his back very bent, and something like a box slung over
-one of his shoulders. He appeared to be deformed, for he carried his
-head low and walked with his knees bent. We were passing him when he
-raised his face to look at us in the circle of light thrown by the lamp,
-and as he did so he stopped and screamed out in a dreadful voice, "My
-God, it's Nancy!" Mrs. Barclay turned as white as death, and would have
-fallen down had the dreadful-looking creature not caught hold of her. I
-was going to call for the police, but she, to my surprise, spoke quite
-civilly to the fellow.
-
-"'"I thought you had been dead this thirty years, Henry," said she, in a
-shaking voice.
-
-"'"So I have," said he, and it was awful to hear the tones that he said
-it in. He had a very dark, fearsome face, and a gleam in his eyes that
-comes back to me in my dreams. His hair and whiskers were shot with
-gray, and his face was all crinkled and puckered like a withered apple.
-
-"'"Just walk on a little way, dear," said Mrs. Barclay; "I want to have
-a word with this man. There is nothing to be afraid of." She tried to
-speak boldly, but she was still deadly pale and could hardly get her
-words out for the trembling of her lips.
-
-"'I did as she asked me, and they talked together for a few minutes.
-Then she came down the street with her eyes blazing, and I saw the
-crippled wretch standing by the lamp-post and shaking his clenched fists
-in the air as if he were mad with rage. She never said a word until we
-were at the door here, when she took me by the hand and begged me to
-tell no one what had happened.
-
-"'"It's an old acquaintance of mine who has come down in the world,"
-said she. When I promised her I would say nothing she kissed me, and I
-have never seen her since. I have told you now the whole truth, and if
-I withheld it from the police it is because I did not realize then the
-danger in which my dear friend stood. I know that it can only be to her
-advantage that everything should be known.'
-
-"There was her statement, Watson, and to me, as you can imagine, it was
-like a light on a dark night. Everything which had been disconnected
-before began at once to assume its true place, and I had a shadowy
-presentiment of the whole sequence of events. My next step obviously was
-to find the man who had produced such a remarkable impression upon Mrs.
-Barclay. If he were still in Aldershot it should not be a very difficult
-matter. There are not such a very great number of civilians, and a
-deformed man was sure to have attracted attention. I spent a day in the
-search, and by evening--this very evening, Watson--I had run him down.
-The man's name is Henry Wood, and he lives in lodgings in this same
-street in which the ladies met him. He has only been five days in the
-place. In the character of a registration-agent I had a most interesting
-gossip with his landlady. The man is by trade a conjurer and performer,
-going round the canteens after nightfall, and giving a little
-entertainment at each. He carries some creature about with him in that
-box; about which the landlady seemed to be in considerable trepidation,
-for she had never seen an animal like it. He uses it in some of his
-tricks according to her account. So much the woman was able to tell me,
-and also that it was a wonder the man lived, seeing how twisted he was,
-and that he spoke in a strange tongue sometimes, and that for the last
-two nights she had heard him groaning and weeping in his bedroom. He
-was all right, as far as money went, but in his deposit he had given her
-what looked like a bad florin. She showed it to me, Watson, and it was
-an Indian rupee.
-
-"So now, my dear fellow, you see exactly how we stand and why it is I
-want you. It is perfectly plain that after the ladies parted from this
-man he followed them at a distance, that he saw the quarrel between
-husband and wife through the window, that he rushed in, and that
-the creature which he carried in his box got loose. That is all very
-certain. But he is the only person in this world who can tell us exactly
-what happened in that room."
-
-"And you intend to ask him?"
-
-"Most certainly--but in the presence of a witness."
-
-"And I am the witness?"
-
-"If you will be so good. If he can clear the matter up, well and good.
-If he refuses, we have no alternative but to apply for a warrant."
-
-"But how do you know he'll be there when we return?"
-
-"You may be sure that I took some precautions. I have one of my Baker
-Street boys mounting guard over him who would stick to him like a burr,
-go where he might. We shall find him in Hudson Street to-morrow, Watson,
-and meanwhile I should be the criminal myself if I kept you out of bed
-any longer."
-
-It was midday when we found ourselves at the scene of the tragedy, and,
-under my companion's guidance, we made our way at once to Hudson Street.
-In spite of his capacity for concealing his emotions, I could easily see
-that Holmes was in a state of suppressed excitement, while I was myself
-tingling with that half-sporting, half-intellectual pleasure which
-I invariably experienced when I associated myself with him in his
-investigations.
-
-"This is the street," said he, as we turned into a short thoroughfare
-lined with plain two-storied brick houses. "Ah, here is Simpson to
-report."
-
-"He's in all right, Mr. Holmes," cried a small street Arab, running up
-to us.
-
-"Good, Simpson!" said Holmes, patting him on the head. "Come along,
-Watson. This is the house." He sent in his card with a message that he
-had come on important business, and a moment later we were face to face
-with the man whom we had come to see. In spite of the warm weather he
-was crouching over a fire, and the little room was like an oven. The
-man sat all twisted and huddled in his chair in a way which gave an
-indescribably impression of deformity; but the face which he turned
-towards us, though worn and swarthy, must at some time have been
-remarkable for its beauty. He looked suspiciously at us now out of
-yellow-shot, bilious eyes, and, without speaking or rising, he waved
-towards two chairs.
-
-"Mr. Henry Wood, late of India, I believe," said Holmes, affably. "I've
-come over this little matter of Colonel Barclay's death."
-
-"What should I know about that?"
-
-"That's what I want to ascertain. You know, I suppose, that unless the
-matter is cleared up, Mrs. Barclay, who is an old friend of yours, will
-in all probability be tried for murder."
-
-The man gave a violent start.
-
-"I don't know who you are," he cried, "nor how you come to know what you
-do know, but will you swear that this is true that you tell me?"
-
-"Why, they are only waiting for her to come to her senses to arrest
-her."
-
-"My God! Are you in the police yourself?"
-
-"No."
-
-"What business is it of yours, then?"
-
-"It's every man's business to see justice done."
-
-"You can take my word that she is innocent."
-
-"Then you are guilty."
-
-"No, I am not."
-
-"Who killed Colonel James Barclay, then?"
-
-"It was a just providence that killed him. But, mind you this, that if
-I had knocked his brains out, as it was in my heart to do, he would have
-had no more than his due from my hands. If his own guilty conscience had
-not struck him down it is likely enough that I might have had his blood
-upon my soul. You want me to tell the story. Well, I don't know why I
-shouldn't, for there's no cause for me to be ashamed of it.
-
-"It was in this way, sir. You see me now with my back like a camel and
-my ribs all awry, but there was a time when Corporal Henry Wood was the
-smartest man in the 117th foot. We were in India then, in cantonments,
-at a place we'll call Bhurtee. Barclay, who died the other day, was
-sergeant in the same company as myself, and the belle of the regiment,
-ay, and the finest girl that ever had the breath of life between her
-lips, was Nancy Devoy, the daughter of the color-sergeant. There were
-two men that loved her, and one that she loved, and you'll smile when
-you look at this poor thing huddled before the fire, and hear me say
-that it was for my good looks that she loved me.
-
-"Well, though I had her heart, her father was set upon her marrying
-Barclay. I was a harum-scarum, reckless lad, and he had had an
-education, and was already marked for the sword-belt. But the girl held
-true to me, and it seemed that I would have had her when the Mutiny
-broke out, and all hell was loose in the country.
-
-"We were shut up in Bhurtee, the regiment of us with half a battery of
-artillery, a company of Sikhs, and a lot of civilians and women-folk.
-There were ten thousand rebels round us, and they were as keen as a set
-of terriers round a rat-cage. About the second week of it our water gave
-out, and it was a question whether we could communicate with General
-Neill's column, which was moving up country. It was our only chance, for
-we could not hope to fight our way out with all the women and children,
-so I volunteered to go out and to warn General Neill of our danger. My
-offer was accepted, and I talked it over with Sergeant Barclay, who was
-supposed to know the ground better than any other man, and who drew up
-a route by which I might get through the rebel lines. At ten o'clock the
-same night I started off upon my journey. There were a thousand lives to
-save, but it was of only one that I was thinking when I dropped over the
-wall that night.
-
-"My way ran down a dried-up watercourse, which we hoped would screen
-me from the enemy's sentries; but as I crept round the corner of it
-I walked right into six of them, who were crouching down in the dark
-waiting for me. In an instant I was stunned with a blow and bound hand
-and foot. But the real blow was to my heart and not to my head, for as
-I came to and listened to as much as I could understand of their talk,
-I heard enough to tell me that my comrade, the very man who had arranged
-the way that I was to take, had betrayed me by means of a native servant
-into the hands of the enemy.
-
-"Well, there's no need for me to dwell on that part of it. You know now
-what James Barclay was capable of. Bhurtee was relieved by Neill next
-day, but the rebels took me away with them in their retreat, and it was
-many a long year before ever I saw a white face again. I was tortured
-and tried to get away, and was captured and tortured again. You can see
-for yourselves the state in which I was left. Some of them that fled
-into Nepaul took me with them, and then afterwards I was up past
-Darjeeling. The hill-folk up there murdered the rebels who had me, and
-I became their slave for a time until I escaped; but instead of going
-south I had to go north, until I found myself among the Afghans. There
-I wandered about for many a year, and at last came back to the Punjab,
-where I lived mostly among the natives and picked up a living by the
-conjuring tricks that I had learned. What use was it for me, a wretched
-cripple, to go back to England or to make myself known to my old
-comrades? Even my wish for revenge would not make me do that. I had
-rather that Nancy and my old pals should think of Harry Wood as having
-died with a straight back, than see him living and crawling with a stick
-like a chimpanzee. They never doubted that I was dead, and I meant that
-they never should. I heard that Barclay had married Nancy, and that he
-was rising rapidly in the regiment, but even that did not make me speak.
-
-"But when one gets old one has a longing for home. For years I've been
-dreaming of the bright green fields and the hedges of England. At last I
-determined to see them before I died. I saved enough to bring me across,
-and then I came here where the soldiers are, for I know their ways and
-how to amuse them and so earn enough to keep me."
-
-"Your narrative is most interesting," said Sherlock Holmes. "I have
-already heard of your meeting with Mrs. Barclay, and your mutual
-recognition. You then, as I understand, followed her home and saw
-through the window an altercation between her husband and her, in which
-she doubtless cast his conduct to you in his teeth. Your own feelings
-overcame you, and you ran across the lawn and broke in upon them."
-
-"I did, sir, and at the sight of me he looked as I have never seen a man
-look before, and over he went with his head on the fender. But he was
-dead before he fell. I read death on his face as plain as I can read
-that text over the fire. The bare sight of me was like a bullet through
-his guilty heart."
-
-"And then?"
-
-"Then Nancy fainted, and I caught up the key of the door from her hand,
-intending to unlock it and get help. But as I was doing it it seemed to
-me better to leave it alone and get away, for the thing might look black
-against me, and any way my secret would be out if I were taken. In my
-haste I thrust the key into my pocket, and dropped my stick while I was
-chasing Teddy, who had run up the curtain. When I got him into his box,
-from which he had slipped, I was off as fast as I could run."
-
-"Who's Teddy?" asked Holmes.
-
-The man leaned over and pulled up the front of a kind of hutch in
-the corner. In an instant out there slipped a beautiful reddish-brown
-creature, thin and lithe, with the legs of a stoat, a long, thin nose,
-and a pair of the finest red eyes that ever I saw in an animal's head.
-
-"It's a mongoose," I cried.
-
-"Well, some call them that, and some call them ichneumon," said the
-man. "Snake-catcher is what I call them, and Teddy is amazing quick on
-cobras. I have one here without the fangs, and Teddy catches it every
-night to please the folk in the canteen.
-
-"Any other point, sir?"
-
-"Well, we may have to apply to you again if Mrs. Barclay should prove to
-be in serious trouble."
-
-"In that case, of course, I'd come forward."
-
-"But if not, there is no object in raking up this scandal against a
-dead man, foully as he has acted. You have at least the satisfaction
-of knowing that for thirty years of his life his conscience bitterly
-reproached him for this wicked deed. Ah, there goes Major Murphy on the
-other side of the street. Good-by, Wood. I want to learn if anything has
-happened since yesterday."
-
-We were in time to overtake the major before he reached the corner.
-
-"Ah, Holmes," he said: "I suppose you have heard that all this fuss has
-come to nothing?"
-
-"What then?"
-
-"The inquest is just over. The medical evidence showed conclusively
-that death was due to apoplexy. You see it was quite a simple case after
-all."
-
-"Oh, remarkably superficial," said Holmes, smiling. "Come, Watson, I
-don't think we shall be wanted in Aldershot any more."
-
-"There's one thing," said I, as we walked down to the station. "If the
-husband's name was James, and the other was Henry, what was this talk
-about David?"
-
-"That one word, my dear Watson, should have told me the whole story had
-I been the ideal reasoner which you are so fond of depicting. It was
-evidently a term of reproach."
-
-"Of reproach?"
-
-"Yes; David strayed a little occasionally, you know, and on one occasion
-in the same direction as Sergeant James Barclay. You remember the small
-affair of Uriah and Bathsheba? My biblical knowledge is a trifle rusty,
-I fear, but you will find the story in the first or second of Samuel."
-
-
-
-
-Adventure VIII. The Resident Patient
-
-
-Glancing over the somewhat incoherent series of Memoirs with which I
-have endeavored to illustrate a few of the mental peculiarities of my
-friend Mr. Sherlock Holmes, I have been struck by the difficulty which I
-have experienced in picking out examples which shall in every way answer
-my purpose. For in those cases in which Holmes has performed some tour
-de force of analytical reasoning, and has demonstrated the value of his
-peculiar methods of investigation, the facts themselves have often been
-so slight or so commonplace that I could not feel justified in laying
-them before the public. On the other hand, it has frequently happened
-that he has been concerned in some research where the facts have been of
-the most remarkable and dramatic character, but where the share which he
-has himself taken in determining their causes has been less pronounced
-than I, as his biographer, could wish. The small matter which I have
-chronicled under the heading of "A Study in Scarlet," and that other
-later one connected with the loss of the Gloria Scott, may serve as
-examples of this Scylla and Charybdis which are forever threatening the
-historian. It may be that in the business of which I am now about to
-write the part which my friend played is not sufficiently accentuated;
-and yet the whole train of circumstances is so remarkable that I cannot
-bring myself to omit it entirely from this series.
-
-It had been a close, rainy day in October. Our blinds were half-drawn,
-and Holmes lay curled upon the sofa, reading and re-reading a letter
-which he had received by the morning post. For myself, my term of
-service in India had trained me to stand heat better than cold, and
-a thermometer of 90 was no hardship. But the paper was uninteresting.
-Parliament had risen. Everybody was out of town, and I yearned for the
-glades of the New Forest or the shingle of Southsea. A depleted bank
-account had caused me to postpone my holiday, and as to my companion,
-neither the country nor the sea presented the slightest attraction to
-him. He loved to lie in the very centre of five millions of people, with
-his filaments stretching out and running through them, responsive to
-every little rumor or suspicion of unsolved crime. Appreciation of
-Nature found no place among his many gifts, and his only change was
-when he turned his mind from the evil-doer of the town to track down his
-brother of the country.
-
-Finding that Holmes was too absorbed for conversation, I had tossed
-aside the barren paper, and leaning back in my chair, I fell into a
-brown study. Suddenly my companion's voice broke in upon my thoughts.
-
-"You are right, Watson," said he. "It does seem a very preposterous way
-of settling a dispute."
-
-"Most preposterous!" I exclaimed, and then, suddenly realizing how
-he had echoed the inmost thought of my soul, I sat up in my chair and
-stared at him in blank amazement.
-
-"What is this, Holmes?" I cried. "This is beyond anything which I could
-have imagined."
-
-He laughed heartily at my perplexity.
-
-"You remember," said he, "that some little time ago, when I read you the
-passage in one of Poe's sketches, in which a close reasoner follows the
-unspoken thought of his companion, you were inclined to treat the
-matter as a mere tour de force of the author. On my remarking that I
-was constantly in the habit of doing the same thing you expressed
-incredulity."
-
-"Oh, no!"
-
-"Perhaps not with your tongue, my dear Watson, but certainly with your
-eyebrows. So when I saw you throw down your paper and enter upon a train
-of thought, I was very happy to have the opportunity of reading it
-off, and eventually of breaking into it, as a proof that I had been in
-rapport with you."
-
-But I was still far from satisfied. "In the example which you read to
-me," said I, "the reasoner drew his conclusions from the actions of the
-man whom he observed. If I remember right, he stumbled over a heap
-of stones, looked up at the stars, and so on. But I have been seated
-quietly in my chair, and what clues can I have given you?"
-
-"You do yourself an injustice. The features are given to man as the
-means by which he shall express his emotions, and yours are faithful
-servants."
-
-"Do you mean to say that you read my train of thoughts from my
-features?"
-
-"Your features, and especially your eyes. Perhaps you cannot yourself
-recall how your reverie commenced?"
-
-"No, I cannot."
-
-"Then I will tell you. After throwing down your paper, which was the
-action which drew my attention to you, you sat for half a minute with
-a vacant expression. Then your eyes fixed themselves upon your
-newly-framed picture of General Gordon, and I saw by the alteration in
-your face that a train of thought had been started. But it did not lead
-very far. Your eyes turned across to the unframed portrait of Henry Ward
-Beecher which stands upon the top of your books. You then glanced up at
-the wall, and of course your meaning was obvious. You were thinking
-that if the portrait were framed it would just cover that bare space and
-correspond with Gordon's picture over there."
-
-"You have followed me wonderfully!" I exclaimed.
-
-"So far I could hardly have gone astray. But now your thoughts went
-back to Beecher, and you looked hard across as if you were studying
-the character in his features. Then your eyes ceased to pucker, but
-you continued to look across, and your face was thoughtful. You were
-recalling the incidents of Beecher's career. I was well aware that you
-could not do this without thinking of the mission which he undertook
-on behalf of the North at the time of the Civil War, for I remember
-you expressing your passionate indignation at the way in which he was
-received by the more turbulent of our people. You felt so strongly about
-it that I knew you could not think of Beecher without thinking of that
-also. When a moment later I saw your eyes wander away from the picture,
-I suspected that your mind had now turned to the Civil War, and when
-I observed that your lips set, your eyes sparkled, and your hands
-clinched, I was positive that you were indeed thinking of the gallantry
-which was shown by both sides in that desperate struggle. But then,
-again, your face grew sadder; you shook your head. You were dwelling
-upon the sadness and horror and useless waste of life. Your hand stole
-towards your own old wound, and a smile quivered on your lips,
-which showed me that the ridiculous side of this method of settling
-international questions had forced itself upon your mind. At this point
-I agreed with you that it was preposterous, and was glad to find that
-all my deductions had been correct."
-
-"Absolutely!" said I. "And now that you have explained it, I confess
-that I am as amazed as before."
-
-"It was very superficial, my dear Watson, I assure you. I should not
-have intruded it upon your attention had you not shown some incredulity
-the other day. But the evening has brought a breeze with it. What do you
-say to a ramble through London?"
-
-I was weary of our little sitting-room and gladly acquiesced. For
-three hours we strolled about together, watching the ever-changing
-kaleidoscope of life as it ebbs and flows through Fleet Street and the
-Strand. His characteristic talk, with its keen observance of detail
-and subtle power of inference held me amused and enthralled. It was ten
-o'clock before we reached Baker Street again. A brougham was waiting at
-our door.
-
-"Hum! A doctor's--general practitioner, I perceive," said Holmes. "Not
-been long in practice, but has had a good deal to do. Come to consult
-us, I fancy! Lucky we came back!"
-
-I was sufficiently conversant with Holmes's methods to be able to follow
-his reasoning, and to see that the nature and state of the various
-medical instruments in the wicker basket which hung in the lamplight
-inside the brougham had given him the data for his swift deduction.
-The light in our window above showed that this late visit was indeed
-intended for us. With some curiosity as to what could have sent a
-brother medico to us at such an hour, I followed Holmes into our
-sanctum.
-
-A pale, taper-faced man with sandy whiskers rose up from a chair by the
-fire as we entered. His age may not have been more than three or four
-and thirty, but his haggard expression and unhealthy hue told of a life
-which has sapped his strength and robbed him of his youth. His manner
-was nervous and shy, like that of a sensitive gentleman, and the thin
-white hand which he laid on the mantelpiece as he rose was that of an
-artist rather than of a surgeon. His dress was quiet and sombre--a black
-frock-coat, dark trousers, and a touch of color about his necktie.
-
-"Good-evening, doctor," said Holmes, cheerily. "I am glad to see that
-you have only been waiting a very few minutes."
-
-"You spoke to my coachman, then?"
-
-"No, it was the candle on the side-table that told me. Pray resume your
-seat and let me know how I can serve you."
-
-"My name is Doctor Percy Trevelyan," said our visitor, "and I live at
-403 Brook Street."
-
-"Are you not the author of a monograph upon obscure nervous lesions?" I
-asked.
-
-His pale cheeks flushed with pleasure at hearing that his work was known
-to me.
-
-"I so seldom hear of the work that I thought it was quite dead," said
-he. "My publishers gave me a most discouraging account of its sale. You
-are yourself, I presume, a medical man?"
-
-"A retired army surgeon."
-
-"My own hobby has always been nervous disease. I should wish to make it
-an absolute specialty, but, of course, a man must take what he can get
-at first. This, however, is beside the question, Mr. Sherlock Holmes,
-and I quite appreciate how valuable your time is. The fact is that a
-very singular train of events has occurred recently at my house in Brook
-Street, and to-night they came to such a head that I felt it was quite
-impossible for me to wait another hour before asking for your advice and
-assistance."
-
-Sherlock Holmes sat down and lit his pipe. "You are very welcome
-to both," said he. "Pray let me have a detailed account of what the
-circumstances are which have disturbed you."
-
-"One or two of them are so trivial," said Dr. Trevelyan, "that really
-I am almost ashamed to mention them. But the matter is so inexplicable,
-and the recent turn which it has taken is so elaborate, that I shall
-lay it all before you, and you shall judge what is essential and what is
-not.
-
-"I am compelled, to begin with, to say something of my own college
-career. I am a London University man, you know, and I am sure that your
-will not think that I am unduly singing my own praises if I say that my
-student career was considered by my professors to be a very promising
-one. After I had graduated I continued to devote myself to research,
-occupying a minor position in King's College Hospital, and I was
-fortunate enough to excite considerable interest by my research into the
-pathology of catalepsy, and finally to win the Bruce Pinkerton prize and
-medal by the monograph on nervous lesions to which your friend has
-just alluded. I should not go too far if I were to say that there was a
-general impression at that time that a distinguished career lay before
-me.
-
-"But the one great stumbling-block lay in my want of capital. As you
-will readily understand, a specialist who aims high is compelled to
-start in one of a dozen streets in the Cavendish Square quarter, all
-of which entail enormous rents and furnishing expenses. Besides this
-preliminary outlay, he must be prepared to keep himself for some years,
-and to hire a presentable carriage and horse. To do this was quite
-beyond my power, and I could only hope that by economy I might in ten
-years' time save enough to enable me to put up my plate. Suddenly,
-however, an unexpected incident opened up quite a new prospect to me.
-
-"This was a visit from a gentleman of the name of Blessington, who was a
-complete stranger to me. He came up to my room one morning, and plunged
-into business in an instant.
-
-"'You are the same Percy Trevelyan who has had so distinguished a career
-and won a great prize lately?' said he.
-
-"I bowed.
-
-"'Answer me frankly,' he continued, 'for you will find it to your
-interest to do so. You have all the cleverness which makes a successful
-man. Have you the tact?'
-
-"I could not help smiling at the abruptness of the question.
-
-"'I trust that I have my share,' I said.
-
-"'Any bad habits? Not drawn towards drink, eh?'
-
-"'Really, sir!' I cried.
-
-"'Quite right! That's all right! But I was bound to ask. With all these
-qualities, why are you not in practice?'
-
-"I shrugged my shoulders.
-
-"'Come, come!' said he, in his bustling way. 'It's the old story. More
-in your brains than in your pocket, eh? What would you say if I were to
-start you in Brook Street?'
-
-"I stared at him in astonishment.
-
-"'Oh, it's for my sake, not for yours,' he cried. 'I'll be perfectly
-frank with you, and if it suits you it will suit me very well. I have a
-few thousands to invest, d'ye see, and I think I'll sink them in you.'
-
-"'But why?' I gasped.
-
-"'Well, it's just like any other speculation, and safer than most.'
-
-"'What am I to do, then?'
-
-"'I'll tell you. I'll take the house, furnish it, pay the maids, and run
-the whole place. All you have to do is just to wear out your chair in
-the consulting-room. I'll let you have pocket-money and everything. Then
-you hand over to me three quarters of what you earn, and you keep the
-other quarter for yourself.'
-
-"This was the strange proposal, Mr. Holmes, with which the man
-Blessington approached me. I won't weary you with the account of how
-we bargained and negotiated. It ended in my moving into the house next
-Lady-day, and starting in practice on very much the same conditions as
-he had suggested. He came himself to live with me in the character of a
-resident patient. His heart was weak, it appears, and he needed constant
-medical supervision. He turned the two best rooms of the first floor
-into a sitting-room and bedroom for himself. He was a man of singular
-habits, shunning company and very seldom going out. His life was
-irregular, but in one respect he was regularity itself. Every evening,
-at the same hour, he walked into the consulting-room, examined the
-books, put down five and three-pence for every guinea that I had earned,
-and carried the rest off to the strong-box in his own room.
-
-"I may say with confidence that he never had occasion to regret his
-speculation. From the first it was a success. A few good cases and the
-reputation which I had won in the hospital brought me rapidly to the
-front, and during the last few years I have made him a rich man.
-
-"So much, Mr. Holmes, for my past history and my relations with Mr.
-Blessington. It only remains for me now to tell you what has occurred to
-bring me here to-night.
-
-"Some weeks ago Mr. Blessington came down to me in, as it seemed to me,
-a state of considerable agitation. He spoke of some burglary which, he
-said, had been committed in the West End, and he appeared, I remember,
-to be quite unnecessarily excited about it, declaring that a day should
-not pass before we should add stronger bolts to our windows and doors.
-For a week he continued to be in a peculiar state of restlessness,
-peering continually out of the windows, and ceasing to take the short
-walk which had usually been the prelude to his dinner. From his manner
-it struck me that he was in mortal dread of something or somebody, but
-when I questioned him upon the point he became so offensive that I was
-compelled to drop the subject. Gradually, as time passed, his fears
-appeared to die away, and he had renewed his former habits, when a fresh
-event reduced him to the pitiable state of prostration in which he now
-lies.
-
-"What happened was this. Two days ago I received the letter which I now
-read to you. Neither address nor date is attached to it.
-
-"'A Russian nobleman who is now resident in England,' it runs, 'would
-be glad to avail himself of the professional assistance of Dr. Percy
-Trevelyan. He has been for some years a victim to cataleptic attacks, on
-which, as is well known, Dr. Trevelyan is an authority. He proposes to
-call at about quarter past six to-morrow evening, if Dr. Trevelyan will
-make it convenient to be at home.'
-
-"This letter interested me deeply, because the chief difficulty in the
-study of catalepsy is the rareness of the disease. You may believe,
-then, that I was in my consulting-room when, at the appointed hour, the
-page showed in the patient.
-
-"He was an elderly man, thin, demure, and commonplace--by no means the
-conception one forms of a Russian nobleman. I was much more struck by
-the appearance of his companion. This was a tall young man, surprisingly
-handsome, with a dark, fierce face, and the limbs and chest of a
-Hercules. He had his hand under the other's arm as they entered, and
-helped him to a chair with a tenderness which one would hardly have
-expected from his appearance.
-
-"'You will excuse my coming in, doctor,' said he to me, speaking English
-with a slight lisp. 'This is my father, and his health is a matter of
-the most overwhelming importance to me.'
-
-"I was touched by this filial anxiety. 'You would, perhaps, care to
-remain during the consultation?' said I.
-
-"'Not for the world,' he cried with a gesture of horror. 'It is more
-painful to me than I can express. If I were to see my father in one of
-these dreadful seizures I am convinced that I should never survive
-it. My own nervous system is an exceptionally sensitive one. With your
-permission, I will remain in the waiting-room while you go into my
-father's case.'
-
-"To this, of course, I assented, and the young man withdrew. The patient
-and I then plunged into a discussion of his case, of which I took
-exhaustive notes. He was not remarkable for intelligence, and his
-answers were frequently obscure, which I attributed to his limited
-acquaintance with our language. Suddenly, however, as I sat writing,
-he ceased to give any answer at all to my inquiries, and on my turning
-towards him I was shocked to see that he was sitting bolt upright in his
-chair, staring at me with a perfectly blank and rigid face. He was again
-in the grip of his mysterious malady.
-
-"My first feeling, as I have just said, was one of pity and horror.
-My second, I fear, was rather one of professional satisfaction. I made
-notes of my patient's pulse and temperature, tested the rigidity of his
-muscles, and examined his reflexes. There was nothing markedly abnormal
-in any of these conditions, which harmonized with my former experiences.
-I had obtained good results in such cases by the inhalation of nitrite
-of amyl, and the present seemed an admirable opportunity of testing
-its virtues. The bottle was downstairs in my laboratory, so leaving my
-patient seated in his chair, I ran down to get it. There was some little
-delay in finding it--five minutes, let us say--and then I returned.
-Imagine my amazement to find the room empty and the patient gone.
-
-"Of course, my first act was to run into the waiting-room. The son had
-gone also. The hall door had been closed, but not shut. My page who
-admits patients is a new boy and by no means quick. He waits downstairs,
-and runs up to show patients out when I ring the consulting-room bell.
-He had heard nothing, and the affair remained a complete mystery. Mr.
-Blessington came in from his walk shortly afterwards, but I did not say
-anything to him upon the subject, for, to tell the truth, I have got in
-the way of late of holding as little communication with him as possible.
-
-"Well, I never thought that I should see anything more of the Russian
-and his son, so you can imagine my amazement when, at the very same hour
-this evening, they both came marching into my consulting-room, just as
-they had done before.
-
-"'I feel that I owe you a great many apologies for my abrupt departure
-yesterday, doctor,' said my patient.
-
-"'I confess that I was very much surprised at it,' said I.
-
-"'Well, the fact is,' he remarked, 'that when I recover from these
-attacks my mind is always very clouded as to all that has gone before. I
-woke up in a strange room, as it seemed to me, and made my way out into
-the street in a sort of dazed way when you were absent.'
-
-"'And I,' said the son, 'seeing my father pass the door of the
-waiting-room, naturally thought that the consultation had come to an
-end. It was not until we had reached home that I began to realize the
-true state of affairs.'
-
-"'Well,' said I, laughing, 'there is no harm done except that you
-puzzled me terribly; so if you, sir, would kindly step into the
-waiting-room I shall be happy to continue our consultation which was
-brought to so abrupt an ending.'
-
-"'For half an hour or so I discussed that old gentleman's symptoms with
-him, and then, having prescribed for him, I saw him go off upon the arm
-of his son.
-
-"I have told you that Mr. Blessington generally chose this hour of the
-day for his exercise. He came in shortly afterwards and passed upstairs.
-An instant later I heard him running down, and he burst into my
-consulting-room like a man who is mad with panic.
-
-"'Who has been in my room?' he cried.
-
-"'No one,' said I.
-
-"'It's a lie! He yelled. 'Come up and look!'
-
-"I passed over the grossness of his language, as he seemed half out of
-his mind with fear. When I went upstairs with him he pointed to several
-footprints upon the light carpet.
-
-"'D'you mean to say those are mine?' he cried.
-
-"They were certainly very much larger than any which he could have made,
-and were evidently quite fresh. It rained hard this afternoon, as you
-know, and my patients were the only people who called. It must have been
-the case, then, that the man in the waiting-room had, for some unknown
-reason, while I was busy with the other, ascended to the room of my
-resident patient. Nothing had been touched or taken, but there were the
-footprints to prove that the intrusion was an undoubted fact.
-
-"Mr. Blessington seemed more excited over the matter than I should have
-thought possible, though of course it was enough to disturb anybody's
-peace of mind. He actually sat crying in an arm-chair, and I could
-hardly get him to speak coherently. It was his suggestion that I should
-come round to you, and of course I at once saw the propriety of it,
-for certainly the incident is a very singular one, though he appears to
-completely overrate its importance. If you would only come back with me
-in my brougham, you would at least be able to soothe him, though I
-can hardly hope that you will be able to explain this remarkable
-occurrence."
-
-Sherlock Holmes had listened to this long narrative with an intentness
-which showed me that his interest was keenly aroused. His face was as
-impassive as ever, but his lids had drooped more heavily over his eyes,
-and his smoke had curled up more thickly from his pipe to emphasize each
-curious episode in the doctor's tale. As our visitor concluded, Holmes
-sprang up without a word, handed me my hat, picked his own from the
-table, and followed Dr. Trevelyan to the door. Within a quarter of an
-hour we had been dropped at the door of the physician's residence
-in Brook Street, one of those sombre, flat-faced houses which one
-associates with a West-End practice. A small page admitted us, and we
-began at once to ascend the broad, well-carpeted stair.
-
-But a singular interruption brought us to a standstill. The light at
-the top was suddenly whisked out, and from the darkness came a reedy,
-quivering voice.
-
-"I have a pistol," it cried. "I give you my word that I'll fire if you
-come any nearer."
-
-"This really grows outrageous, Mr. Blessington," cried Dr. Trevelyan.
-
-"Oh, then it is you, doctor," said the voice, with a great heave of
-relief. "But those other gentlemen, are they what they pretend to be?"
-
-We were conscious of a long scrutiny out of the darkness.
-
-"Yes, yes, it's all right," said the voice at last. "You can come up,
-and I am sorry if my precautions have annoyed you."
-
-He relit the stair gas as he spoke, and we saw before us a
-singular-looking man, whose appearance, as well as his voice, testified
-to his jangled nerves. He was very fat, but had apparently at some time
-been much fatter, so that the skin hung about his face in loose pouches,
-like the cheeks of a blood-hound. He was of a sickly color, and his
-thin, sandy hair seemed to bristle up with the intensity of his emotion.
-In his hand he held a pistol, but he thrust it into his pocket as we
-advanced.
-
-"Good-evening, Mr. Holmes," said he. "I am sure I am very much obliged
-to you for coming round. No one ever needed your advice more than I do.
-I suppose that Dr. Trevelyan has told you of this most unwarrantable
-intrusion into my rooms."
-
-"Quite so," said Holmes. "Who are these two men Mr. Blessington, and why
-do they wish to molest you?"
-
-"Well, well," said the resident patient, in a nervous fashion, "of
-course it is hard to say that. You can hardly expect me to answer that,
-Mr. Holmes."
-
-"Do you mean that you don't know?"
-
-"Come in here, if you please. Just have the kindness to step in here."
-
-He led the way into his bedroom, which was large and comfortably
-furnished.
-
-"You see that," said he, pointing to a big black box at the end of his
-bed. "I have never been a very rich man, Mr. Holmes--never made but
-one investment in my life, as Dr. Trevelyan would tell you. But I don't
-believe in bankers. I would never trust a banker, Mr. Holmes. Between
-ourselves, what little I have is in that box, so you can understand what
-it means to me when unknown people force themselves into my rooms."
-
-Holmes looked at Blessington in his questioning way and shook his head.
-
-"I cannot possibly advise you if you try to deceive me," said he.
-
-"But I have told you everything."
-
-Holmes turned on his heel with a gesture of disgust. "Good-night, Dr.
-Trevelyan," said he.
-
-"And no advice for me?" cried Blessington, in a breaking voice.
-
-"My advice to you, sir, is to speak the truth."
-
-A minute later we were in the street and walking for home. We had
-crossed Oxford Street and were half way down Harley Street before I
-could get a word from my companion.
-
-"Sorry to bring you out on such a fool's errand, Watson," he said at
-last. "It is an interesting case, too, at the bottom of it."
-
-"I can make little of it," I confessed.
-
-"Well, it is quite evident that there are two men--more, perhaps, but
-at least two--who are determined for some reason to get at this fellow
-Blessington. I have no doubt in my mind that both on the first and on
-the second occasion that young man penetrated to Blessington's room,
-while his confederate, by an ingenious device, kept the doctor from
-interfering."
-
-"And the catalepsy?"
-
-"A fraudulent imitation, Watson, though I should hardly dare to hint as
-much to our specialist. It is a very easy complaint to imitate. I have
-done it myself."
-
-"And then?"
-
-"By the purest chance Blessington was out on each occasion. Their reason
-for choosing so unusual an hour for a consultation was obviously to
-insure that there should be no other patient in the waiting-room. It
-just happened, however, that this hour coincided with Blessington's
-constitutional, which seems to show that they were not very well
-acquainted with his daily routine. Of course, if they had been merely
-after plunder they would at least have made some attempt to search for
-it. Besides, I can read in a man's eye when it is his own skin that he
-is frightened for. It is inconceivable that this fellow could have made
-two such vindictive enemies as these appear to be without knowing of it.
-I hold it, therefore, to be certain that he does know who these men are,
-and that for reasons of his own he suppresses it. It is just possible
-that to-morrow may find him in a more communicative mood."
-
-"Is there not one alternative," I suggested, "grotesquely improbably,
-no doubt, but still just conceivable? Might the whole story of the
-cataleptic Russian and his son be a concoction of Dr. Trevelyan's, who
-has, for his own purposes, been in Blessington's rooms?"
-
-I saw in the gaslight that Holmes wore an amused smile at this brilliant
-departure of mine.
-
-"My dear fellow," said he, "it was one of the first solutions which
-occurred to me, but I was soon able to corroborate the doctor's tale.
-This young man has left prints upon the stair-carpet which made it quite
-superfluous for me to ask to see those which he had made in the room.
-When I tell you that his shoes were square-toed instead of being pointed
-like Blessington's, and were quite an inch and a third longer than the
-doctor's, you will acknowledge that there can be no doubt as to his
-individuality. But we may sleep on it now, for I shall be surprised if
-we do not hear something further from Brook Street in the morning."
-
-
-Sherlock Holmes's prophecy was soon fulfilled, and in a dramatic
-fashion. At half-past seven next morning, in the first glimmer of
-daylight, I found him standing by my bedside in his dressing-gown.
-
-"There's a brougham waiting for us, Watson," said he.
-
-"What's the matter, then?"
-
-"The Brook Street business."
-
-"Any fresh news?"
-
-"Tragic, but ambiguous," said he, pulling up the blind. "Look at this--a
-sheet from a note-book, with 'For God's sake come at once--P. T.,'
-scrawled upon it in pencil. Our friend, the doctor, was hard put to
-it when he wrote this. Come along, my dear fellow, for it's an urgent
-call."
-
-In a quarter of an hour or so we were back at the physician's house. He
-came running out to meet us with a face of horror.
-
-"Oh, such a business!" he cried, with his hands to his temples.
-
-"What then?"
-
-"Blessington has committed suicide!"
-
-Holmes whistled.
-
-"Yes, he hanged himself during the night."
-
-We had entered, and the doctor had preceded us into what was evidently
-his waiting-room.
-
-"I really hardly know what I am doing," he cried. "The police are
-already upstairs. It has shaken me most dreadfully."
-
-"When did you find it out?"
-
-"He has a cup of tea taken in to him early every morning. When the maid
-entered, about seven, there the unfortunate fellow was hanging in the
-middle of the room. He had tied his cord to the hook on which the heavy
-lamp used to hang, and he had jumped off from the top of the very box
-that he showed us yesterday."
-
-Holmes stood for a moment in deep thought.
-
-"With your permission," said he at last, "I should like to go upstairs
-and look into the matter."
-
-We both ascended, followed by the doctor.
-
-It was a dreadful sight which met us as we entered the bedroom door. I
-have spoken of the impression of flabbiness which this man Blessington
-conveyed. As he dangled from the hook it was exaggerated and intensified
-until he was scarce human in his appearance. The neck was drawn out
-like a plucked chicken's, making the rest of him seem the more obese and
-unnatural by the contrast. He was clad only in his long night-dress, and
-his swollen ankles and ungainly feet protruded starkly from beneath it.
-Beside him stood a smart-looking police-inspector, who was taking notes
-in a pocket-book.
-
-"Ah, Mr. Holmes," said he, heartily, as my friend entered, "I am
-delighted to see you."
-
-"Good-morning, Lanner," answered Holmes; "you won't think me an
-intruder, I am sure. Have you heard of the events which led up to this
-affair?"
-
-"Yes, I heard something of them."
-
-"Have you formed any opinion?"
-
-"As far as I can see, the man has been driven out of his senses by
-fright. The bed has been well slept in, you see. There's his impression
-deep enough. It's about five in the morning, you know, that suicides are
-most common. That would be about his time for hanging himself. It seems
-to have been a very deliberate affair."
-
-"I should say that he has been dead about three hours, judging by the
-rigidity of the muscles," said I.
-
-"Noticed anything peculiar about the room?" asked Holmes.
-
-"Found a screw-driver and some screws on the wash-hand stand. Seems to
-have smoked heavily during the night, too. Here are four cigar-ends that
-I picked out of the fireplace."
-
-"Hum!" said Holmes, "have you got his cigar-holder?"
-
-"No, I have seen none."
-
-"His cigar-case, then?"
-
-"Yes, it was in his coat-pocket."
-
-Holmes opened it and smelled the single cigar which it contained.
-
-"Oh, this is an Havana, and these others are cigars of the peculiar sort
-which are imported by the Dutch from their East Indian colonies. They
-are usually wrapped in straw, you know, and are thinner for their length
-than any other brand." He picked up the four ends and examined them with
-his pocket-lens.
-
-"Two of these have been smoked from a holder and two without," said he.
-"Two have been cut by a not very sharp knife, and two have had the ends
-bitten off by a set of excellent teeth. This is no suicide, Mr. Lanner.
-It is a very deeply planned and cold-blooded murder."
-
-"Impossible!" cried the inspector.
-
-"And why?"
-
-"Why should any one murder a man in so clumsy a fashion as by hanging
-him?"
-
-"That is what we have to find out."
-
-"How could they get in?"
-
-"Through the front door."
-
-"It was barred in the morning."
-
-"Then it was barred after them."
-
-"How do you know?"
-
-"I saw their traces. Excuse me a moment, and I may be able to give you
-some further information about it."
-
-He went over to the door, and turning the lock he examined it in his
-methodical way. Then he took out the key, which was on the inside, and
-inspected that also. The bed, the carpet, the chairs the mantelpiece,
-the dead body, and the rope were each in turn examined, until at last he
-professed himself satisfied, and with my aid and that of the inspector
-cut down the wretched object and laid it reverently under a sheet.
-
-"How about this rope?" he asked.
-
-"It is cut off this," said Dr. Trevelyan, drawing a large coil from
-under the bed. "He was morbidly nervous of fire, and always kept this
-beside him, so that he might escape by the window in case the stairs
-were burning."
-
-"That must have saved them trouble," said Holmes, thoughtfully. "Yes,
-the actual facts are very plain, and I shall be surprised if by the
-afternoon I cannot give you the reasons for them as well. I will take
-this photograph of Blessington, which I see upon the mantelpiece, as it
-may help me in my inquiries."
-
-"But you have told us nothing!" cried the doctor.
-
-"Oh, there can be no doubt as to the sequence of events," said Holmes.
-"There were three of them in it: the young man, the old man, and a
-third, to whose identity I have no clue. The first two, I need hardly
-remark, are the same who masqueraded as the Russian count and his son,
-so we can give a very full description of them. They were admitted by
-a confederate inside the house. If I might offer you a word of advice,
-Inspector, it would be to arrest the page, who, as I understand, has
-only recently come into your service, Doctor."
-
-"The young imp cannot be found," said Dr. Trevelyan; "the maid and the
-cook have just been searching for him."
-
-Holmes shrugged his shoulders.
-
-"He has played a not unimportant part in this drama," said he. "The
-three men having ascended the stairs, which they did on tiptoe, the
-elder man first, the younger man second, and the unknown man in the
-rear--"
-
-"My dear Holmes!" I ejaculated.
-
-"Oh, there could be no question as to the superimposing of the
-footmarks. I had the advantage of learning which was which last night.
-They ascended, then, to Mr. Blessington's room, the door of which they
-found to be locked. With the help of a wire, however, they forced round
-the key. Even without the lens you will perceive, by the scratches on
-this ward, where the pressure was applied.
-
-"On entering the room their first proceeding must have been to gag Mr.
-Blessington. He may have been asleep, or he may have been so paralyzed
-with terror as to have been unable to cry out. These walls are thick,
-and it is conceivable that his shriek, if he had time to utter one, was
-unheard.
-
-"Having secured him, it is evident to me that a consultation of some
-sort was held. Probably it was something in the nature of a judicial
-proceeding. It must have lasted for some time, for it was then that
-these cigars were smoked. The older man sat in that wicker chair; it
-was he who used the cigar-holder. The younger man sat over yonder; he
-knocked his ash off against the chest of drawers. The third fellow paced
-up and down. Blessington, I think, sat upright in the bed, but of that I
-cannot be absolutely certain.
-
-"Well, it ended by their taking Blessington and hanging him. The matter
-was so prearranged that it is my belief that they brought with them
-some sort of block or pulley which might serve as a gallows. That
-screw-driver and those screws were, as I conceive, for fixing it up.
-Seeing the hook, however they naturally saved themselves the trouble.
-Having finished their work they made off, and the door was barred behind
-them by their confederate."
-
-We had all listened with the deepest interest to this sketch of the
-night's doings, which Holmes had deduced from signs so subtle and minute
-that, even when he had pointed them out to us, we could scarcely follow
-him in his reasoning. The inspector hurried away on the instant to make
-inquiries about the page, while Holmes and I returned to Baker Street
-for breakfast.
-
-"I'll be back by three," said he, when we had finished our meal. "Both
-the inspector and the doctor will meet me here at that hour, and I hope
-by that time to have cleared up any little obscurity which the case may
-still present."
-
-
-Our visitors arrived at the appointed time, but it was a quarter to
-four before my friend put in an appearance. From his expression as he
-entered, however, I could see that all had gone well with him.
-
-"Any news, Inspector?"
-
-"We have got the boy, sir."
-
-"Excellent, and I have got the men."
-
-"You have got them!" we cried, all three.
-
-"Well, at least I have got their identity. This so-called Blessington
-is, as I expected, well known at headquarters, and so are his
-assailants. Their names are Biddle, Hayward, and Moffat."
-
-"The Worthingdon bank gang," cried the inspector.
-
-"Precisely," said Holmes.
-
-"Then Blessington must have been Sutton."
-
-"Exactly," said Holmes.
-
-"Why, that makes it as clear as crystal," said the inspector.
-
-But Trevelyan and I looked at each other in bewilderment.
-
-"You must surely remember the great Worthingdon bank business," said
-Holmes. "Five men were in it--these four and a fifth called Cartwright.
-Tobin, the care-taker, was murdered, and the thieves got away with seven
-thousand pounds. This was in 1875. They were all five arrested, but the
-evidence against them was by no means conclusive. This Blessington or
-Sutton, who was the worst of the gang, turned informer. On his evidence
-Cartwright was hanged and the other three got fifteen years apiece. When
-they got out the other day, which was some years before their full term,
-they set themselves, as you perceive, to hunt down the traitor and to
-avenge the death of their comrade upon him. Twice they tried to get at
-him and failed; a third time, you see, it came off. Is there anything
-further which I can explain, Dr. Trevelyan?"
-
-"I think you have made it all remarkable clear," said the doctor. "No
-doubt the day on which he was perturbed was the day when he had seen of
-their release in the newspapers."
-
-"Quite so. His talk about a burglary was the merest blind."
-
-"But why could he not tell you this?"
-
-"Well, my dear sir, knowing the vindictive character of his old
-associates, he was trying to hide his own identity from everybody as
-long as he could. His secret was a shameful one, and he could not bring
-himself to divulge it. However, wretch as he was, he was still living
-under the shield of British law, and I have no doubt, Inspector, that
-you will see that, though that shield may fail to guard, the sword of
-justice is still there to avenge."
-
-
-Such were the singular circumstances in connection with the Resident
-Patient and the Brook Street Doctor. From that night nothing has
-been seen of the three murderers by the police, and it is surmised
-at Scotland Yard that they were among the passengers of the ill-fated
-steamer Norah Creina, which was lost some years ago with all hands
-upon the Portuguese coast, some leagues to the north of Oporto. The
-proceedings against the page broke down for want of evidence, and the
-Brook Street Mystery, as it was called, has never until now been fully
-dealt with in any public print.
-
-
-
-
-Adventure IX. The Greek Interpreter
-
-
-During my long and intimate acquaintance with Mr. Sherlock Holmes I had
-never heard him refer to his relations, and hardly ever to his own early
-life. This reticence upon his part had increased the somewhat inhuman
-effect which he produced upon me, until sometimes I found myself
-regarding him as an isolated phenomenon, a brain without a heart, as
-deficient in human sympathy as he was pre-eminent in intelligence. His
-aversion to women and his disinclination to form new friendships were
-both typical of his unemotional character, but not more so than his
-complete suppression of every reference to his own people. I had come to
-believe that he was an orphan with no relatives living, but one day, to
-my very great surprise, he began to talk to me about his brother.
-
-It was after tea on a summer evening, and the conversation, which had
-roamed in a desultory, spasmodic fashion from golf clubs to the causes
-of the change in the obliquity of the ecliptic, came round at last
-to the question of atavism and hereditary aptitudes. The point under
-discussion was, how far any singular gift in an individual was due to
-his ancestry and how far to his own early training.
-
-"In your own case," said I, "from all that you have told me, it seems
-obvious that your faculty of observation and your peculiar facility for
-deduction are due to your own systematic training."
-
-"To some extent," he answered, thoughtfully. "My ancestors were country
-squires, who appear to have led much the same life as is natural to
-their class. But, none the less, my turn that way is in my veins, and
-may have come with my grandmother, who was the sister of Vernet, the
-French artist. Art in the blood is liable to take the strangest forms."
-
-"But how do you know that it is hereditary?"
-
-"Because my brother Mycroft possesses it in a larger degree than I do."
-
-This was news to me indeed. If there were another man with such singular
-powers in England, how was it that neither police nor public had heard
-of him? I put the question, with a hint that it was my companion's
-modesty which made him acknowledge his brother as his superior. Holmes
-laughed at my suggestion.
-
-"My dear Watson," said he, "I cannot agree with those who rank modesty
-among the virtues. To the logician all things should be seen exactly as
-they are, and to underestimate one's self is as much a departure from
-truth as to exaggerate one's own powers. When I say, therefore, that
-Mycroft has better powers of observation than I, you may take it that I
-am speaking the exact and literal truth."
-
-"Is he your junior?"
-
-"Seven years my senior."
-
-"How comes it that he is unknown?"
-
-"Oh, he is very well known in his own circle."
-
-"Where, then?"
-
-"Well, in the Diogenes Club, for example."
-
-I had never heard of the institution, and my face must have proclaimed
-as much, for Sherlock Holmes pulled out his watch.
-
-"The Diogenes Club is the queerest club in London, and Mycroft one of
-the queerest men. He's always there from quarter to five to twenty to
-eight. It's six now, so if you care for a stroll this beautiful evening
-I shall be very happy to introduce you to two curiosities."
-
-Five minutes later we were in the street, walking towards Regent's
-Circus.
-
-"You wonder," said my companion, "why it is that Mycroft does not use
-his powers for detective work. He is incapable of it."
-
-"But I thought you said--"
-
-"I said that he was my superior in observation and deduction. If the
-art of the detective began and ended in reasoning from an arm-chair, my
-brother would be the greatest criminal agent that ever lived. But he has
-no ambition and no energy. He will not even go out of his way to verify
-his own solutions, and would rather be considered wrong than take the
-trouble to prove himself right. Again and again I have taken a problem
-to him, and have received an explanation which has afterwards proved to
-be the correct one. And yet he was absolutely incapable of working out
-the practical points which must be gone into before a case could be laid
-before a judge or jury."
-
-"It is not his profession, then?"
-
-"By no means. What is to me a means of livelihood is to him the merest
-hobby of a dilettante. He has an extraordinary faculty for figures, and
-audits the books in some of the government departments. Mycroft lodges
-in Pall Mall, and he walks round the corner into Whitehall every morning
-and back every evening. From year's end to year's end he takes no other
-exercise, and is seen nowhere else, except only in the Diogenes Club,
-which is just opposite his rooms."
-
-"I cannot recall the name."
-
-"Very likely not. There are many men in London, you know, who, some from
-shyness, some from misanthropy, have no wish for the company of their
-fellows. Yet they are not averse to comfortable chairs and the latest
-periodicals. It is for the convenience of these that the Diogenes Club
-was started, and it now contains the most unsociable and unclubable men
-in town. No member is permitted to take the least notice of any
-other one. Save in the Stranger's Room, no talking is, under any
-circumstances, allowed, and three offences, if brought to the notice of
-the committee, render the talker liable to expulsion. My brother was one
-of the founders, and I have myself found it a very soothing atmosphere."
-
-We had reached Pall Mall as we talked, and were walking down it from the
-St. James's end. Sherlock Holmes stopped at a door some little distance
-from the Carlton, and, cautioning me not to speak, he led the way into
-the hall. Through the glass paneling I caught a glimpse of a large and
-luxurious room, in which a considerable number of men were sitting about
-and reading papers, each in his own little nook. Holmes showed me into a
-small chamber which looked out into Pall Mall, and then, leaving me for
-a minute, he came back with a companion whom I knew could only be his
-brother.
-
-Mycroft Holmes was a much larger and stouter man than Sherlock. His body
-was absolutely corpulent, but his face, though massive, had preserved
-something of the sharpness of expression which was so remarkable in that
-of his brother. His eyes, which were of a peculiarly light, watery gray,
-seemed to always retain that far-away, introspective look which I had
-only observed in Sherlock's when he was exerting his full powers.
-
-"I am glad to meet you, sir," said he, putting out a broad, fat hand
-like the flipper of a seal. "I hear of Sherlock everywhere since you
-became his chronicler. By the way, Sherlock, I expected to see you round
-last week, to consult me over that Manor House case. I thought you might
-be a little out of your depth."
-
-"No, I solved it," said my friend, smiling.
-
-"It was Adams, of course."
-
-"Yes, it was Adams."
-
-"I was sure of it from the first." The two sat down together in the
-bow-window of the club. "To any one who wishes to study mankind this is
-the spot," said Mycroft. "Look at the magnificent types! Look at these
-two men who are coming towards us, for example."
-
-"The billiard-marker and the other?"
-
-"Precisely. What do you make of the other?"
-
-The two men had stopped opposite the window. Some chalk marks over the
-waistcoat pocket were the only signs of billiards which I could see
-in one of them. The other was a very small, dark fellow, with his hat
-pushed back and several packages under his arm.
-
-"An old soldier, I perceive," said Sherlock.
-
-"And very recently discharged," remarked the brother.
-
-"Served in India, I see."
-
-"And a non-commissioned officer."
-
-"Royal Artillery, I fancy," said Sherlock.
-
-"And a widower."
-
-"But with a child."
-
-"Children, my dear boy, children."
-
-"Come," said I, laughing, "this is a little too much."
-
-"Surely," answered Holmes, "it is not hard to say that a man with that
-bearing, expression of authority, and sunbaked skin, is a soldier, is
-more than a private, and is not long from India."
-
-"That he has not left the service long is shown by his still wearing his
-ammunition boots, as they are called," observed Mycroft.
-
-"He had not the cavalry stride, yet he wore his hat on one side, as
-is shown by the lighter skin of that side of his brow. His weight is
-against his being a sapper. He is in the artillery."
-
-"Then, of course, his complete mourning shows that he has lost some one
-very dear. The fact that he is doing his own shopping looks as though
-it were his wife. He has been buying things for children, you perceive.
-There is a rattle, which shows that one of them is very young. The wife
-probably died in childbed. The fact that he has a picture-book under his
-arm shows that there is another child to be thought of."
-
-I began to understand what my friend meant when he said that his brother
-possessed even keener faculties that he did himself. He glanced across
-at me and smiled. Mycroft took snuff from a tortoise-shell box, and
-brushed away the wandering grains from his coat front with a large, red
-silk handkerchief.
-
-"By the way, Sherlock," said he, "I have had something quite after your
-own heart--a most singular problem--submitted to my judgment. I really
-had not the energy to follow it up save in a very incomplete fashion,
-but it gave me a basis for some pleasing speculation. If you would care
-to hear the facts--"
-
-"My dear Mycroft, I should be delighted."
-
-The brother scribbled a note upon a leaf of his pocket-book, and,
-ringing the bell, he handed it to the waiter.
-
-"I have asked Mr. Melas to step across," said he. "He lodges on the
-floor above me, and I have some slight acquaintance with him, which led
-him to come to me in his perplexity. Mr. Melas is a Greek by extraction,
-as I understand, and he is a remarkable linguist. He earns his living
-partly as interpreter in the law courts and partly by acting as guide to
-any wealthy Orientals who may visit the Northumberland Avenue hotels. I
-think I will leave him to tell his very remarkable experience in his own
-fashion."
-
-A few minutes later we were joined by a short, stout man whose olive
-face and coal-black hair proclaimed his Southern origin, though his
-speech was that of an educated Englishman. He shook hands eagerly
-with Sherlock Holmes, and his dark eyes sparkled with pleasure when he
-understood that the specialist was anxious to hear his story.
-
-"I do not believe that the police credit me--on my word, I do not," said
-he in a wailing voice. "Just because they have never heard of it before,
-they think that such a thing cannot be. But I know that I shall never
-be easy in my mind until I know what has become of my poor man with the
-sticking-plaster upon his face."
-
-"I am all attention," said Sherlock Holmes.
-
-"This is Wednesday evening," said Mr. Melas. "Well then, it was Monday
-night--only two days ago, you understand--that all this happened. I am
-an interpreter, as perhaps my neighbor there has told you. I interpret
-all languages--or nearly all--but as I am a Greek by birth and with a
-Grecian name, it is with that particular tongue that I am principally
-associated. For many years I have been the chief Greek interpreter in
-London, and my name is very well known in the hotels.
-
-"It happens not unfrequently that I am sent for at strange hours by
-foreigners who get into difficulties, or by travelers who arrive late
-and wish my services. I was not surprised, therefore, on Monday night
-when a Mr. Latimer, a very fashionably dressed young man, came up to my
-rooms and asked me to accompany him in a cab which was waiting at the
-door. A Greek friend had come to see him upon business, he said, and
-as he could speak nothing but his own tongue, the services of an
-interpreter were indispensable. He gave me to understand that his house
-was some little distance off, in Kensington, and he seemed to be in a
-great hurry, bustling me rapidly into the cab when we had descended to
-the street.
-
-"I say into the cab, but I soon became doubtful as to whether it was not
-a carriage in which I found myself. It was certainly more roomy than
-the ordinary four-wheeled disgrace to London, and the fittings, though
-frayed, were of rich quality. Mr. Latimer seated himself opposite to me
-and we started off through Charing Cross and up the Shaftesbury Avenue.
-We had come out upon Oxford Street and I had ventured some remark as to
-this being a roundabout way to Kensington, when my words were arrested
-by the extraordinary conduct of my companion.
-
-"He began by drawing a most formidable-looking bludgeon loaded with lead
-from his pocket, and switching it backward and forward several times,
-as if to test its weight and strength. Then he placed it without a word
-upon the seat beside him. Having done this, he drew up the windows on
-each side, and I found to my astonishment that they were covered with
-paper so as to prevent my seeing through them.
-
-"'I am sorry to cut off your view, Mr. Melas,' said he. 'The fact is
-that I have no intention that you should see what the place is to which
-we are driving. It might possibly be inconvenient to me if you could
-find your way there again.'
-
-"As you can imagine, I was utterly taken aback by such an address. My
-companion was a powerful, broad-shouldered young fellow, and, apart from
-the weapon, I should not have had the slightest chance in a struggle
-with him.
-
-"'This is very extraordinary conduct, Mr. Latimer,' I stammered. 'You
-must be aware that what you are doing is quite illegal.'
-
-"'It is somewhat of a liberty, no doubt,' said he, 'but we'll make it
-up to you. I must warn you, however, Mr. Melas, that if at any time
-to-night you attempt to raise an alarm or do anything which is against
-my interests, you will find it a very serious thing. I beg you to
-remember that no one knows where you are, and that, whether you are in
-this carriage or in my house, you are equally in my power.'
-
-"His words were quiet, but he had a rasping way of saying them which
-was very menacing. I sat in silence wondering what on earth could be
-his reason for kidnapping me in this extraordinary fashion. Whatever it
-might be, it was perfectly clear that there was no possible use in my
-resisting, and that I could only wait to see what might befall.
-
-"For nearly two hours we drove without my having the least clue as to
-where we were going. Sometimes the rattle of the stones told of a paved
-causeway, and at others our smooth, silent course suggested asphalt;
-but, save by this variation in sound, there was nothing at all which
-could in the remotest way help me to form a guess as to where we were.
-The paper over each window was impenetrable to light, and a blue curtain
-was drawn across the glass work in front. It was a quarter-past seven
-when we left Pall Mall, and my watch showed me that it was ten minutes
-to nine when we at last came to a standstill. My companion let down
-the window, and I caught a glimpse of a low, arched doorway with a lamp
-burning above it. As I was hurried from the carriage it swung open, and
-I found myself inside the house, with a vague impression of a lawn
-and trees on each side of me as I entered. Whether these were private
-grounds, however, or bona-fide country was more than I could possibly
-venture to say.
-
-"There was a colored gas-lamp inside which was turned so low that I
-could see little save that the hall was of some size and hung with
-pictures. In the dim light I could make out that the person who had
-opened the door was a small, mean-looking, middle-aged man with rounded
-shoulders. As he turned towards us the glint of the light showed me that
-he was wearing glasses.
-
-"'Is this Mr. Melas, Harold?' said he.
-
-"'Yes.'
-
-"'Well done, well done! No ill-will, Mr. Melas, I hope, but we could not
-get on without you. If you deal fair with us you'll not regret it,
-but if you try any tricks, God help you!' He spoke in a nervous, jerky
-fashion, and with little giggling laughs in between, but somehow he
-impressed me with fear more than the other.
-
-"'What do you want with me?' I asked.
-
-"'Only to ask a few questions of a Greek gentleman who is visiting us,
-and to let us have the answers. But say no more than you are told to
-say, or--' here came the nervous giggle again--'you had better never
-have been born.'
-
-"As he spoke he opened a door and showed the way into a room which
-appeared to be very richly furnished, but again the only light was
-afforded by a single lamp half-turned down. The chamber was certainly
-large, and the way in which my feet sank into the carpet as I stepped
-across it told me of its richness. I caught glimpses of velvet chairs, a
-high white marble mantel-piece, and what seemed to be a suit of Japanese
-armor at one side of it. There was a chair just under the lamp, and the
-elderly man motioned that I should sit in it. The younger had left
-us, but he suddenly returned through another door, leading with him
-a gentleman clad in some sort of loose dressing-gown who moved slowly
-towards us. As he came into the circle of dim light which enables me to
-see him more clearly I was thrilled with horror at his appearance. He
-was deadly pale and terribly emaciated, with the protruding, brilliant
-eyes of a man whose spirit was greater than his strength. But what
-shocked me more than any signs of physical weakness was that his face
-was grotesquely criss-crossed with sticking-plaster, and that one large
-pad of it was fastened over his mouth.
-
-"'Have you the slate, Harold?' cried the older man, as this strange
-being fell rather than sat down into a chair. 'Are his hands loose? Now,
-then, give him the pencil. You are to ask the questions, Mr. Melas, and
-he will write the answers. Ask him first of all whether he is prepared
-to sign the papers?'
-
-"The man's eyes flashed fire.
-
-"'Never!' he wrote in Greek upon the slate.
-
-"'On no condition?' I asked, at the bidding of our tyrant.
-
-"'Only if I see her married in my presence by a Greek priest whom I
-know.'
-
-"The man giggled in his venomous way.
-
-"'You know what awaits you, then?'
-
-"'I care nothing for myself.'
-
-"These are samples of the questions and answers which made up our
-strange half-spoken, half-written conversation. Again and again I had to
-ask him whether he would give in and sign the documents. Again and again
-I had the same indignant reply. But soon a happy thought came to me. I
-took to adding on little sentences of my own to each question, innocent
-ones at first, to test whether either of our companions knew anything
-of the matter, and then, as I found that they showed no signs I played a
-more dangerous game. Our conversation ran something like this:
-
-"'You can do no good by this obstinacy. Who are you?'
-
-"'I care not. I am a stranger in London.'
-
-"'Your fate will be upon your own head. How long have you been here?'
-
-"'Let it be so. Three weeks.'
-
-"'The property can never be yours. What ails you?'
-
-"'It shall not go to villains. They are starving me.'
-
-"'You shall go free if you sign. What house is this?'
-
-"'I will never sign. I do not know.'
-
-"'You are not doing her any service. What is your name?'
-
-"'Let me hear her say so. Kratides.'
-
-"'You shall see her if you sign. Where are you from?'
-
-"'Then I shall never see her. Athens.'
-
-"Another five minutes, Mr. Holmes, and I should have wormed out the
-whole story under their very noses. My very next question might have
-cleared the matter up, but at that instant the door opened and a woman
-stepped into the room. I could not see her clearly enough to know more
-than that she was tall and graceful, with black hair, and clad in some
-sort of loose white gown.
-
-"'Harold,' said she, speaking English with a broken accent. 'I could not
-stay away longer. It is so lonely up there with only--Oh, my God, it is
-Paul!'
-
-"These last words were in Greek, and at the same instant the man with
-a convulsive effort tore the plaster from his lips, and screaming out
-'Sophy! Sophy!' rushed into the woman's arms. Their embrace was but for
-an instant, however, for the younger man seized the woman and pushed
-her out of the room, while the elder easily overpowered his emaciated
-victim, and dragged him away through the other door. For a moment I was
-left alone in the room, and I sprang to my feet with some vague idea
-that I might in some way get a clue to what this house was in which I
-found myself. Fortunately, however, I took no steps, for looking up I
-saw that the older man was standing in the door-way with his eyes fixed
-upon me.
-
-"'That will do, Mr. Melas,' said he. 'You perceive that we have taken
-you into our confidence over some very private business. We should not
-have troubled you, only that our friend who speaks Greek and who began
-these negotiations has been forced to return to the East. It was
-quite necessary for us to find some one to take his place, and we were
-fortunate in hearing of your powers.'
-
-"I bowed.
-
-"'There are five sovereigns here,' said he, walking up to me, 'which
-will, I hope, be a sufficient fee. But remember,' he added, tapping me
-lightly on the chest and giggling, 'if you speak to a human soul about
-this--one human soul, mind--well, may God have mercy upon your soul!"
-
-"I cannot tell you the loathing and horror with which this
-insignificant-looking man inspired me. I could see him better now as the
-lamp-light shone upon him. His features were peaky and sallow, and his
-little pointed beard was thready and ill-nourished. He pushed his face
-forward as he spoke and his lips and eyelids were continually twitching
-like a man with St. Vitus's dance. I could not help thinking that his
-strange, catchy little laugh was also a symptom of some nervous malady.
-The terror of his face lay in his eyes, however, steel gray, and
-glistening coldly with a malignant, inexorable cruelty in their depths.
-
-"'We shall know if you speak of this,' said he. 'We have our own means
-of information. Now you will find the carriage waiting, and my friend
-will see you on your way.'
-
-"I was hurried through the hall and into the vehicle, again obtaining
-that momentary glimpse of trees and a garden. Mr. Latimer followed
-closely at my heels, and took his place opposite to me without a word.
-In silence we again drove for an interminable distance with the windows
-raised, until at last, just after midnight, the carriage pulled up.
-
-"'You will get down here, Mr. Melas,' said my companion. 'I am sorry
-to leave you so far from your house, but there is no alternative. Any
-attempt upon your part to follow the carriage can only end in injury to
-yourself.'
-
-"He opened the door as he spoke, and I had hardly time to spring out
-when the coachman lashed the horse and the carriage rattled away. I
-looked around me in astonishment. I was on some sort of a heathy common
-mottled over with dark clumps of furze-bushes. Far away stretched a
-line of houses, with a light here and there in the upper windows. On the
-other side I saw the red signal-lamps of a railway.
-
-"The carriage which had brought me was already out of sight. I stood
-gazing round and wondering where on earth I might be, when I saw some
-one coming towards me in the darkness. As he came up to me I made out
-that he was a railway porter.
-
-"'Can you tell me what place this is?' I asked.
-
-"'Wandsworth Common,' said he.
-
-"'Can I get a train into town?'
-
-"'If you walk on a mile or so to Clapham Junction,' said he, 'you'll
-just be in time for the last to Victoria.'
-
-"So that was the end of my adventure, Mr. Holmes. I do not know where I
-was, nor whom I spoke with, nor anything save what I have told you. But
-I know that there is foul play going on, and I want to help that unhappy
-man if I can. I told the whole story to Mr. Mycroft Holmes next morning,
-and subsequently to the police."
-
-We all sat in silence for some little time after listening to this
-extraordinary narrative. Then Sherlock looked across at his brother.
-
-"Any steps?" he asked.
-
-Mycroft picked up the Daily News, which was lying on the side-table.
-
-"'Anybody supplying any information to the whereabouts of a Greek
-gentleman named Paul Kratides, from Athens, who is unable to speak
-English, will be rewarded. A similar reward paid to any one giving
-information about a Greek lady whose first name is Sophy. X 2473.' That
-was in all the dailies. No answer."
-
-"How about the Greek Legation?"
-
-"I have inquired. They know nothing."
-
-"A wire to the head of the Athens police, then?"
-
-"Sherlock has all the energy of the family," said Mycroft, turning to
-me. "Well, you take the case up by all means, and let me know if you do
-any good."
-
-"Certainly," answered my friend, rising from his chair. "I'll let you
-know, and Mr. Melas also. In the meantime, Mr. Melas, I should certainly
-be on my guard, if I were you, for of course they must know through
-these advertisements that you have betrayed them."
-
-As we walked home together, Holmes stopped at a telegraph office and
-sent off several wires.
-
-"You see, Watson," he remarked, "our evening has been by no means
-wasted. Some of my most interesting cases have come to me in this way
-through Mycroft. The problem which we have just listened to, although
-it can admit of but one explanation, has still some distinguishing
-features."
-
-"You have hopes of solving it?"
-
-"Well, knowing as much as we do, it will be singular indeed if we fail
-to discover the rest. You must yourself have formed some theory which
-will explain the facts to which we have listened."
-
-"In a vague way, yes."
-
-"What was your idea, then?"
-
-"It seemed to me to be obvious that this Greek girl had been carried off
-by the young Englishman named Harold Latimer."
-
-"Carried off from where?"
-
-"Athens, perhaps."
-
-Sherlock Holmes shook his head. "This young man could not talk a word of
-Greek. The lady could talk English fairly well. Inference--that she had
-been in England some little time, but he had not been in Greece."
-
-"Well, then, we will presume that she had come on a visit to England,
-and that this Harold had persuaded her to fly with him."
-
-"That is more probable."
-
-"Then the brother--for that, I fancy, must be the relationship--comes
-over from Greece to interfere. He imprudently puts himself into the
-power of the young man and his older associate. They seize him and use
-violence towards him in order to make him sign some papers to make over
-the girl's fortune--of which he may be trustee--to them. This he refuses
-to do. In order to negotiate with him they have to get an interpreter,
-and they pitch upon this Mr. Melas, having used some other one before.
-The girl is not told of the arrival of her brother, and finds it out by
-the merest accident."
-
-"Excellent, Watson!" cried Holmes. "I really fancy that you are not far
-from the truth. You see that we hold all the cards, and we have only to
-fear some sudden act of violence on their part. If they give us time we
-must have them."
-
-"But how can we find where this house lies?"
-
-"Well, if our conjecture is correct and the girl's name is or was Sophy
-Kratides, we should have no difficulty in tracing her. That must be our
-main hope, for the brother is, of course, a complete stranger. It is
-clear that some time has elapsed since this Harold established these
-relations with the girl--some weeks, at any rate--since the brother in
-Greece has had time to hear of it and come across. If they have been
-living in the same place during this time, it is probable that we shall
-have some answer to Mycroft's advertisement."
-
-We had reached our house in Baker Street while we had been talking.
-Holmes ascended the stair first, and as he opened the door of our room
-he gave a start of surprise. Looking over his shoulder, I was equally
-astonished. His brother Mycroft was sitting smoking in the arm-chair.
-
-"Come in, Sherlock! Come in, sir," said he blandly, smiling at our
-surprised faces. "You don't expect such energy from me, do you,
-Sherlock? But somehow this case attracts me."
-
-"How did you get here?"
-
-"I passed you in a hansom."
-
-"There has been some new development?"
-
-"I had an answer to my advertisement."
-
-"Ah!"
-
-"Yes, it came within a few minutes of your leaving."
-
-"And to what effect?"
-
-Mycroft Holmes took out a sheet of paper.
-
-"Here it is," said he, "written with a J pen on royal cream paper by a
-middle-aged man with a weak constitution. 'Sir,' he says, 'in answer to
-your advertisement of to-day's date, I beg to inform you that I know the
-young lady in question very well. If you should care to call upon me I
-could give you some particulars as to her painful history. She is living
-at present at The Myrtles, Beckenham. Yours faithfully, J. Davenport.'
-
-"He writes from Lower Brixton," said Mycroft Holmes. "Do you not think
-that we might drive to him now, Sherlock, and learn these particulars?"
-
-"My dear Mycroft, the brother's life is more valuable than the sister's
-story. I think we should call at Scotland Yard for Inspector Gregson,
-and go straight out to Beckenham. We know that a man is being done to
-death, and every hour may be vital."
-
-"Better pick up Mr. Melas on our way," I suggested. "We may need an
-interpreter."
-
-"Excellent," said Sherlock Holmes. "Send the boy for a four-wheeler, and
-we shall be off at once." He opened the table-drawer as he spoke, and I
-noticed that he slipped his revolver into his pocket. "Yes," said he, in
-answer to my glance; "I should say from what we have heard, that we are
-dealing with a particularly dangerous gang."
-
-It was almost dark before we found ourselves in Pall Mall, at the rooms
-of Mr. Melas. A gentleman had just called for him, and he was gone.
-
-"Can you tell me where?" asked Mycroft Holmes.
-
-"I don't know, sir," answered the woman who had opened the door; "I only
-know that he drove away with the gentleman in a carriage."
-
-"Did the gentleman give a name?"
-
-"No, sir."
-
-"He wasn't a tall, handsome, dark young man?"
-
-"Oh, no, sir. He was a little gentleman, with glasses, thin in the face,
-but very pleasant in his ways, for he was laughing all the time that he
-was talking."
-
-"Come along!" cried Sherlock Holmes, abruptly. "This grows serious,"
-he observed, as we drove to Scotland Yard. "These men have got hold of
-Melas again. He is a man of no physical courage, as they are well
-aware from their experience the other night. This villain was able to
-terrorize him the instant that he got into his presence. No doubt
-they want his professional services, but, having used him, they may be
-inclined to punish him for what they will regard as his treachery."
-
-Our hope was that, by taking train, we might get to Beckenham as soon
-or sooner than the carriage. On reaching Scotland Yard, however, it was
-more than an hour before we could get Inspector Gregson and comply with
-the legal formalities which would enable us to enter the house. It was a
-quarter to ten before we reached London Bridge, and half past before the
-four of us alighted on the Beckenham platform. A drive of half a mile
-brought us to The Myrtles--a large, dark house standing back from the
-road in its own grounds. Here we dismissed our cab, and made our way up
-the drive together.
-
-"The windows are all dark," remarked the inspector. "The house seems
-deserted."
-
-"Our birds are flown and the nest empty," said Holmes.
-
-"Why do you say so?"
-
-"A carriage heavily loaded with luggage has passed out during the last
-hour."
-
-The inspector laughed. "I saw the wheel-tracks in the light of the
-gate-lamp, but where does the luggage come in?"
-
-"You may have observed the same wheel-tracks going the other way. But
-the outward-bound ones were very much deeper--so much so that we can
-say for a certainty that there was a very considerable weight on the
-carriage."
-
-"You get a trifle beyond me there," said the inspector, shrugging his
-shoulder. "It will not be an easy door to force, but we will try if we
-cannot make some one hear us."
-
-He hammered loudly at the knocker and pulled at the bell, but without
-any success. Holmes had slipped away, but he came back in a few minutes.
-
-"I have a window open," said he.
-
-"It is a mercy that you are on the side of the force, and not against
-it, Mr. Holmes," remarked the inspector, as he noted the clever way in
-which my friend had forced back the catch. "Well, I think that under the
-circumstances we may enter without an invitation."
-
-One after the other we made our way into a large apartment, which was
-evidently that in which Mr. Melas had found himself. The inspector
-had lit his lantern, and by its light we could see the two doors, the
-curtain, the lamp, and the suit of Japanese mail as he had described
-them. On the table lay two glasses, and empty brandy-bottle, and the
-remains of a meal.
-
-"What is that?" asked Holmes, suddenly.
-
-We all stood still and listened. A low moaning sound was coming from
-somewhere over our heads. Holmes rushed to the door and out into the
-hall. The dismal noise came from upstairs. He dashed up, the inspector
-and I at his heels, while his brother Mycroft followed as quickly as his
-great bulk would permit.
-
-Three doors faced up upon the second floor, and it was from the central
-of these that the sinister sounds were issuing, sinking sometimes into a
-dull mumble and rising again into a shrill whine. It was locked, but the
-key had been left on the outside. Holmes flung open the door and rushed
-in, but he was out again in an instant, with his hand to his throat.
-
-"It's charcoal," he cried. "Give it time. It will clear."
-
-Peering in, we could see that the only light in the room came from a
-dull blue flame which flickered from a small brass tripod in the centre.
-It threw a livid, unnatural circle upon the floor, while in the shadows
-beyond we saw the vague loom of two figures which crouched against the
-wall. From the open door there reeked a horrible poisonous exhalation
-which set us gasping and coughing. Holmes rushed to the top of the
-stairs to draw in the fresh air, and then, dashing into the room, he
-threw up the window and hurled the brazen tripod out into the garden.
-
-"We can enter in a minute," he gasped, darting out again. "Where is a
-candle? I doubt if we could strike a match in that atmosphere. Hold the
-light at the door and we shall get them out, Mycroft, now!"
-
-With a rush we got to the poisoned men and dragged them out into the
-well-lit hall. Both of them were blue-lipped and insensible, with
-swollen, congested faces and protruding eyes. Indeed, so distorted were
-their features that, save for his black beard and stout figure, we might
-have failed to recognize in one of them the Greek interpreter who had
-parted from us only a few hours before at the Diogenes Club. His hands
-and feet were securely strapped together, and he bore over one eye
-the marks of a violent blow. The other, who was secured in a similar
-fashion, was a tall man in the last stage of emaciation, with several
-strips of sticking-plaster arranged in a grotesque pattern over his
-face. He had ceased to moan as we laid him down, and a glance showed
-me that for him at least our aid had come too late. Mr. Melas, however,
-still lived, and in less than an hour, with the aid of ammonia and
-brandy I had the satisfaction of seeing him open his eyes, and of
-knowing that my hand had drawn him back from that dark valley in which
-all paths meet.
-
-It was a simple story which he had to tell, and one which did but
-confirm our own deductions. His visitor, on entering his rooms, had
-drawn a life-preserver from his sleeve, and had so impressed him with
-the fear of instant and inevitable death that he had kidnapped him for
-the second time. Indeed, it was almost mesmeric, the effect which this
-giggling ruffian had produced upon the unfortunate linguist, for he
-could not speak of him save with trembling hands and a blanched cheek.
-He had been taken swiftly to Beckenham, and had acted as interpreter in
-a second interview, even more dramatic than the first, in which the two
-Englishmen had menaced their prisoner with instant death if he did not
-comply with their demands. Finally, finding him proof against every
-threat, they had hurled him back into his prison, and after
-reproaching Melas with his treachery, which appeared from the newspaper
-advertisement, they had stunned him with a blow from a stick, and he
-remembered nothing more until he found us bending over him.
-
-And this was the singular case of the Grecian Interpreter, the
-explanation of which is still involved in some mystery. We were able
-to find out, by communicating with the gentleman who had answered the
-advertisement, that the unfortunate young lady came of a wealthy Grecian
-family, and that she had been on a visit to some friends in England.
-While there she had met a young man named Harold Latimer, who had
-acquired an ascendancy over he and had eventually persuaded her to fly
-with him. Her friends, shocked at the event, had contented themselves
-with informing her brother at Athens, and had then washed their hands
-of the matter. The brother, on his arrival in England, had imprudently
-placed himself in the power of Latimer and of his associate, whose name
-was Wilson Kemp--a man of the foulest antecedents. These two, finding
-that through his ignorance of the language he was helpless in their
-hands, had kept him a prisoner, and had endeavored by cruelty and
-starvation to make him sign away his own and his sister's property. They
-had kept him in the house without the girl's knowledge, and the plaster
-over the face had been for the purpose of making recognition difficult
-in case she should ever catch a glimpse of him. Her feminine perception,
-however, had instantly seen through the disguise when, on the occasion
-of the interpreter's visit, she had seen him for the first time. The
-poor girl, however, was herself a prisoner, for there was no one about
-the house except the man who acted as coachman, and his wife, both of
-whom were tools of the conspirators. Finding that their secret was out,
-and that their prisoner was not to be coerced, the two villains with the
-girl had fled away at a few hours' notice from the furnished house which
-they had hired, having first, as they thought, taken vengeance both upon
-the man who had defied and the one who had betrayed them.
-
-Months afterwards a curious newspaper cutting reached us from
-Buda-Pesth. It told how two Englishmen who had been traveling with a
-woman had met with a tragic end. They had each been stabbed, it seems,
-and the Hungarian police were of opinion that they had quarreled and had
-inflicted mortal injuries upon each other. Holmes, however, is, I fancy,
-of a different way of thinking, and holds to this day that, if one could
-find the Grecian girl, one might learn how the wrongs of herself and her
-brother came to be avenged.
-
-
-
-
-Adventure X. The Naval Treaty
-
-
-The July which immediately succeeded my marriage was made memorable
-by three cases of interest, in which I had the privilege of being
-associated with Sherlock Holmes and of studying his methods. I find them
-recorded in my notes under the headings of "The Adventure of the Second
-Stain," "The Adventure of the Naval Treaty," and "The Adventure of the
-Tired Captain." The first of these, however, deals with interest of such
-importance and implicates so many of the first families in the kingdom
-that for many years it will be impossible to make it public. No case,
-however, in which Holmes was engaged has ever illustrated the value
-of his analytical methods so clearly or has impressed those who were
-associated with him so deeply. I still retain an almost verbatim report
-of the interview in which he demonstrated the true facts of the case
-to Monsieur Dubugue of the Paris police, and Fritz von Waldbaum, the
-well-known specialist of Dantzig, both of whom had wasted their energies
-upon what proved to be side-issues. The new century will have come,
-however, before the story can be safely told. Meanwhile I pass on to
-the second on my list, which promised also at one time to be of national
-importance, and was marked by several incidents which give it a quite
-unique character.
-
-During my school-days I had been intimately associated with a lad named
-Percy Phelps, who was of much the same age as myself, though he was two
-classes ahead of me. He was a very brilliant boy, and carried away every
-prize which the school had to offer, finished his exploits by winning
-a scholarship which sent him on to continue his triumphant career at
-Cambridge. He was, I remember, extremely well connected, and even when
-we were all little boys together we knew that his mother's brother
-was Lord Holdhurst, the great conservative politician. This gaudy
-relationship did him little good at school. On the contrary, it seemed
-rather a piquant thing to us to chevy him about the playground and hit
-him over the shins with a wicket. But it was another thing when he
-came out into the world. I heard vaguely that his abilities and the
-influences which he commanded had won him a good position at the Foreign
-Office, and then he passed completely out of my mind until the following
-letter recalled his existence:
-
-
-Briarbrae, Woking. My dear Watson,--I have no doubt that you can
-remember "Tadpole" Phelps, who was in the fifth form when you were in
-the third. It is possible even that you may have heard that through my
-uncle's influence I obtained a good appointment at the Foreign Office,
-and that I was in a situation of trust and honor until a horrible
-misfortune came suddenly to blast my career.
-
-There is no use writing of the details of that dreadful event. In the
-event of your acceding to my request it is probably that I shall have
-to narrate them to you. I have only just recovered from nine weeks of
-brain-fever, and am still exceedingly weak. Do you think that you could
-bring your friend Mr. Holmes down to see me? I should like to have his
-opinion of the case, though the authorities assure me that nothing more
-can be done. Do try to bring him down, and as soon as possible. Every
-minute seems an hour while I live in this state of horrible suspense.
-Assure him that if I have not asked his advice sooner it was not because
-I did not appreciate his talents, but because I have been off my head
-ever since the blow fell. Now I am clear again, though I dare not think
-of it too much for fear of a relapse. I am still so weak that I have to
-write, as you see, by dictating. Do try to bring him.
-
-Your old school-fellow,
-
-Percy Phelps.
-
-
-There was something that touched me as I read this letter, something
-pitiable in the reiterated appeals to bring Holmes. So moved was I
-that even had it been a difficult matter I should have tried it, but
-of course I knew well that Holmes loved his art, so that he was ever
-as ready to bring his aid as his client could be to receive it. My wife
-agreed with me that not a moment should be lost in laying the matter
-before him, and so within an hour of breakfast-time I found myself back
-once more in the old rooms in Baker Street.
-
-Holmes was seated at his side-table clad in his dressing-gown, and
-working hard over a chemical investigation. A large curved retort
-was boiling furiously in the bluish flame of a Bunsen burner, and the
-distilled drops were condensing into a two-litre measure. My friend
-hardly glanced up as I entered, and I, seeing that his investigation
-must be of importance, seated myself in an arm-chair and waited. He
-dipped into this bottle or that, drawing out a few drops of each with
-his glass pipette, and finally brought a test-tube containing a solution
-over to the table. In his right hand he held a slip of litmus-paper.
-
-"You come at a crisis, Watson," said he. "If this paper remains blue,
-all is well. If it turns red, it means a man's life." He dipped it into
-the test-tube and it flushed at once into a dull, dirty crimson. "Hum!
-I thought as much!" he cried. "I will be at your service in an instant,
-Watson. You will find tobacco in the Persian slipper." He turned to his
-desk and scribbled off several telegrams, which were handed over to the
-page-boy. Then he threw himself down into the chair opposite, and drew
-up his knees until his fingers clasped round his long, thin shins.
-
-"A very commonplace little murder," said he. "You've got something
-better, I fancy. You are the stormy petrel of crime, Watson. What is
-it?"
-
-I handed him the letter, which he read with the most concentrated
-attention.
-
-"It does not tell us very much, does it?" he remarked, as he handed it
-back to me.
-
-"Hardly anything."
-
-"And yet the writing is of interest."
-
-"But the writing is not his own."
-
-"Precisely. It is a woman's."
-
-"A man's surely," I cried.
-
-"No, a woman's, and a woman of rare character. You see, at the
-commencement of an investigation it is something to know that your
-client is in close contact with some one who, for good or evil, has an
-exceptional nature. My interest is already awakened in the case. If you
-are ready we will start at once for Woking, and see this diplomatist who
-is in such evil case, and the lady to whom he dictates his letters."
-
-We were fortunate enough to catch an early train at Waterloo, and in
-a little under an hour we found ourselves among the fir-woods and
-the heather of Woking. Briarbrae proved to be a large detached house
-standing in extensive grounds within a few minutes' walk of the station.
-On sending in our cards we were shown into an elegantly appointed
-drawing-room, where we were joined in a few minutes by a rather stout
-man who received us with much hospitality. His age may have been nearer
-forty than thirty, but his cheeks were so ruddy and his eyes so merry
-that he still conveyed the impression of a plump and mischievous boy.
-
-"I am so glad that you have come," said he, shaking our hands with
-effusion. "Percy has been inquiring for you all morning. Ah, poor old
-chap, he clings to any straw! His father and his mother asked me to see
-you, for the mere mention of the subject is very painful to them."
-
-"We have had no details yet," observed Holmes. "I perceive that you are
-not yourself a member of the family."
-
-Our acquaintance looked surprised, and then, glancing down, he began to
-laugh.
-
-"Of course you saw the J H monogram on my locket," said he. "For a
-moment I thought you had done something clever. Joseph Harrison is my
-name, and as Percy is to marry my sister Annie I shall at least be a
-relation by marriage. You will find my sister in his room, for she has
-nursed him hand-and-foot this two months back. Perhaps we'd better go in
-at once, for I know how impatient he is."
-
-The chamber in which we were shown was on the same floor as the
-drawing-room. It was furnished partly as a sitting and partly as a
-bedroom, with flowers arranged daintily in every nook and corner. A
-young man, very pale and worn, was lying upon a sofa near the open
-window, through which came the rich scent of the garden and the balmy
-summer air. A woman was sitting beside him, who rose as we entered.
-
-"Shall I leave, Percy?" she asked.
-
-He clutched her hand to detain her. "How are you, Watson?" said he,
-cordially. "I should never have known you under that moustache, and I
-dare say you would not be prepared to swear to me. This I presume is
-your celebrated friend, Mr. Sherlock Holmes?"
-
-I introduced him in a few words, and we both sat down. The stout young
-man had left us, but his sister still remained with her hand in that of
-the invalid. She was a striking-looking woman, a little short and
-thick for symmetry, but with a beautiful olive complexion, large, dark,
-Italian eyes, and a wealth of deep black hair. Her rich tints made the
-white face of her companion the more worn and haggard by the contrast.
-
-"I won't waste your time," said he, raising himself upon the sofa.
-"I'll plunge into the matter without further preamble. I was a happy
-and successful man, Mr. Holmes, and on the eve of being married, when a
-sudden and dreadful misfortune wrecked all my prospects in life.
-
-"I was, as Watson may have told you, in the Foreign Office, and
-through the influences of my uncle, Lord Holdhurst, I rose rapidly to
-a responsible position. When my uncle became foreign minister in this
-administration he gave me several missions of trust, and as I always
-brought them to a successful conclusion, he came at last to have the
-utmost confidence in my ability and tact.
-
-"Nearly ten weeks ago--to be more accurate, on the 23d of May--he called
-me into his private room, and, after complimenting me on the good work
-which I had done, he informed me that he had a new commission of trust
-for me to execute.
-
-"'This,' said he, taking a gray roll of paper from his bureau, 'is the
-original of that secret treaty between England and Italy of which, I
-regret to say, some rumors have already got into the public press. It is
-of enormous importance that nothing further should leak out. The French
-or the Russian embassy would pay an immense sum to learn the contents
-of these papers. They should not leave my bureau were it not that it
-is absolutely necessary to have them copied. You have a desk in your
-office?"
-
-"'Yes, sir.'
-
-"'Then take the treaty and lock it up there. I shall give directions
-that you may remain behind when the others go, so that you may copy
-it at your leisure without fear of being overlooked. When you have
-finished, relock both the original and the draft in the desk, and hand
-them over to me personally to-morrow morning.'
-
-"I took the papers and--"
-
-"Excuse me an instant," said Holmes. "Were you alone during this
-conversation?"
-
-"Absolutely."
-
-"In a large room?"
-
-"Thirty feet each way."
-
-"In the centre?"
-
-"Yes, about it."
-
-"And speaking low?"
-
-"My uncle's voice is always remarkably low. I hardly spoke at all."
-
-"Thank you," said Holmes, shutting his eyes; "pray go on."
-
-"I did exactly what he indicated, and waited until the other clerks had
-departed. One of them in my room, Charles Gorot, had some arrears
-of work to make up, so I left him there and went out to dine. When I
-returned he was gone. I was anxious to hurry my work, for I knew that
-Joseph--the Mr. Harrison whom you saw just now--was in town, and that he
-would travel down to Woking by the eleven-o'clock train, and I wanted if
-possible to catch it.
-
-"When I came to examine the treaty I saw at once that it was of such
-importance that my uncle had been guilty of no exaggeration in what
-he had said. Without going into details, I may say that it defined the
-position of Great Britain towards the Triple Alliance, and fore-shadowed
-the policy which this country would pursue in the event of the
-French fleet gaining a complete ascendancy over that of Italy in the
-Mediterranean. The questions treated in it were purely naval. At the end
-were the signatures of the high dignitaries who had signed it. I glanced
-my eyes over it, and then settled down to my task of copying.
-
-"It was a long document, written in the French language, and containing
-twenty-six separate articles. I copied as quickly as I could, but at
-nine o'clock I had only done nine articles, and it seemed hopeless for
-me to attempt to catch my train. I was feeling drowsy and stupid, partly
-from my dinner and also from the effects of a long day's work. A cup of
-coffee would clear my brain. A commissionnaire remains all night in a
-little lodge at the foot of the stairs, and is in the habit of making
-coffee at his spirit-lamp for any of the officials who may be working
-over time. I rang the bell, therefore, to summon him.
-
-"To my surprise, it was a woman who answered the summons, a large,
-coarse-faced, elderly woman, in an apron. She explained that she was the
-commissionnaire's wife, who did the charing, and I gave her the order
-for the coffee.
-
-"I wrote two more articles and then, feeling more drowsy than ever, I
-rose and walked up and down the room to stretch my legs. My coffee had
-not yet come, and I wondered what was the cause of the delay could be.
-Opening the door, I started down the corridor to find out. There was a
-straight passage, dimly lighted, which led from the room in which I
-had been working, and was the only exit from it. It ended in a curving
-staircase, with the commissionnaire's lodge in the passage at the
-bottom. Half way down this staircase is a small landing, with another
-passage running into it at right angles. This second one leads by means
-of a second small stair to a side door, used by servants, and also as
-a short cut by clerks when coming from Charles Street. Here is a rough
-chart of the place."
-
-"Thank you. I think that I quite follow you," said Sherlock Holmes.
-
-"It is of the utmost importance that you should notice this point.
-I went down the stairs and into the hall, where I found the
-commissionnaire fast asleep in his box, with the kettle boiling
-furiously upon the spirit-lamp. I took off the kettle and blew out the
-lamp, for the water was spurting over the floor. Then I put out my hand
-and was about to shake the man, who was still sleeping soundly, when a
-bell over his head rang loudly, and he woke with a start.
-
-"'Mr. Phelps, sir!' said he, looking at me in bewilderment.
-
-"'I came down to see if my coffee was ready.'
-
-"'I was boiling the kettle when I fell asleep, sir.' He looked at me and
-then up at the still quivering bell with an ever-growing astonishment
-upon his face.
-
-"'If you was here, sir, then who rang the bell?' he asked.
-
-"'The bell!' I cried. 'What bell is it?'
-
-"'It's the bell of the room you were working in.'
-
-"A cold hand seemed to close round my heart. Some one, then, was in that
-room where my precious treaty lay upon the table. I ran frantically up
-the stair and along the passage. There was no one in the corridors, Mr.
-Holmes. There was no one in the room. All was exactly as I left it, save
-only that the papers which had been committed to my care had been taken
-from the desk on which they lay. The copy was there, and the original
-was gone."
-
-Holmes sat up in his chair and rubbed his hands. I could see that the
-problem was entirely to his heart. "Pray, what did you do then?" he
-murmured.
-
-"I recognized in an instant that the thief must have come up the stairs
-from the side door. Of course I must have met him if he had come the
-other way."
-
-"You were satisfied that he could not have been concealed in the room
-all the time, or in the corridor which you have just described as dimly
-lighted?"
-
-"It is absolutely impossible. A rat could not conceal himself either in
-the room or the corridor. There is no cover at all."
-
-"Thank you. Pray proceed."
-
-"The commissionnaire, seeing by my pale face that something was to be
-feared, had followed me upstairs. Now we both rushed along the corridor
-and down the steep steps which led to Charles Street. The door at the
-bottom was closed, but unlocked. We flung it open and rushed out. I can
-distinctly remember that as we did so there came three chimes from a
-neighboring clock. It was quarter to ten."
-
-"That is of enormous importance," said Holmes, making a note upon his
-shirt-cuff.
-
-"The night was very dark, and a thin, warm rain was falling. There was
-no one in Charles Street, but a great traffic was going on, as usual, in
-Whitehall, at the extremity. We rushed along the pavement, bare-headed
-as we were, and at the far corner we found a policeman standing.
-
-"'A robbery has been committed,' I gasped. 'A document of immense value
-has been stolen from the Foreign Office. Has any one passed this way?'
-
-"'I have been standing here for a quarter of an hour, sir,' said he;
-'only one person has passed during that time--a woman, tall and elderly,
-with a Paisley shawl.'
-
-"'Ah, that is only my wife,' cried the commissionnaire; 'has no one else
-passed?'
-
-"'No one.'
-
-"'Then it must be the other way that the thief took,' cried the fellow,
-tugging at my sleeve.
-
-"'But I was not satisfied, and the attempts which he made to draw me
-away increased my suspicions.
-
-"'Which way did the woman go?' I cried.
-
-"'I don't know, sir. I noticed her pass, but I had no special reason for
-watching her. She seemed to be in a hurry.'
-
-"'How long ago was it?'
-
-"'Oh, not very many minutes.'
-
-"'Within the last five?'
-
-"'Well, it could not be more than five.'
-
-"'You're only wasting your time, sir, and every minute now is of
-importance,' cried the commissionnaire; 'take my word for it that my old
-woman has nothing to do with it, and come down to the other end of the
-street. Well, if you won't, I will.' And with that he rushed off in the
-other direction.
-
-"But I was after him in an instant and caught him by the sleeve.
-
-"'Where do you live?' said I.
-
-"'16 Ivy Lane, Brixton,' he answered. 'But don't let yourself be drawn
-away upon a false scent, Mr. Phelps. Come to the other end of the street
-and let us see if we can hear of anything.'
-
-"Nothing was to be lost by following his advice. With the policeman we
-both hurried down, but only to find the street full of traffic, many
-people coming and going, but all only too eager to get to a place of
-safety upon so wet a night. There was no lounger who could tell us who
-had passed.
-
-"Then we returned to the office, and searched the stairs and the passage
-without result. The corridor which led to the room was laid down with
-a kind of creamy linoleum which shows an impression very easily. We
-examined it very carefully, but found no outline of any footmark."
-
-"Had it been raining all evening?"
-
-"Since about seven."
-
-"How is it, then, that the woman who came into the room about nine left
-no traces with her muddy boots?"
-
-"I am glad you raised the point. It occurred to me at the time.
-The charwomen are in the habit of taking off their boots at the
-commissionnaire's office, and putting on list slippers."
-
-"That is very clear. There were no marks, then, though the night was a
-wet one? The chain of events is certainly one of extraordinary interest.
-What did you do next?
-
-"We examined the room also. There is no possibility of a secret door,
-and the windows are quite thirty feet from the ground. Both of them
-were fastened on the inside. The carpet prevents any possibility of a
-trap-door, and the ceiling is of the ordinary whitewashed kind. I will
-pledge my life that whoever stole my papers could only have come through
-the door."
-
-"How about the fireplace?"
-
-"They use none. There is a stove. The bell-rope hangs from the wire just
-to the right of my desk. Whoever rang it must have come right up to the
-desk to do it. But why should any criminal wish to ring the bell? It is
-a most insoluble mystery."
-
-"Certainly the incident was unusual. What were your next steps? You
-examined the room, I presume, to see if the intruder had left any
-traces--any cigar-end or dropped glove or hairpin or other trifle?"
-
-"There was nothing of the sort."
-
-"No smell?"
-
-"Well, we never thought of that."
-
-"Ah, a scent of tobacco would have been worth a great deal to us in such
-an investigation."
-
-"I never smoke myself, so I think I should have observed it if there had
-been any smell of tobacco. There was absolutely no clue of any kind. The
-only tangible fact was that the commissionnaire's wife--Mrs. Tangey was
-the name--had hurried out of the place. He could give no explanation
-save that it was about the time when the woman always went home. The
-policeman and I agreed that our best plan would be to seize the woman
-before she could get rid of the papers, presuming that she had them.
-
-"The alarm had reached Scotland Yard by this time, and Mr. Forbes, the
-detective, came round at once and took up the case with a great deal of
-energy. We hired a hansom, and in half an hour we were at the address
-which had been given to us. A young woman opened the door, who proved to
-be Mrs. Tangey's eldest daughter. Her mother had not come back yet, and
-we were shown into the front room to wait.
-
-"About ten minutes later a knock came at the door, and here we made the
-one serious mistake for which I blame myself. Instead of opening the
-door ourselves, we allowed the girl to do so. We heard her say, 'Mother,
-there are two men in the house waiting to see you,' and an instant
-afterwards we heard the patter of feet rushing down the passage. Forbes
-flung open the door, and we both ran into the back room or kitchen, but
-the woman had got there before us. She stared at us with defiant
-eyes, and then, suddenly recognizing me, an expression of absolute
-astonishment came over her face.
-
-"'Why, if it isn't Mr. Phelps, of the office!' she cried.
-
-"'Come, come, who did you think we were when you ran away from us?'
-asked my companion.
-
-"'I thought you were the brokers,' said she, 'we have had some trouble
-with a tradesman.'
-
-"'That's not quite good enough,' answered Forbes. 'We have reason to
-believe that you have taken a paper of importance from the Foreign
-Office, and that you ran in here to dispose of it. You must come back
-with us to Scotland Yard to be searched.'
-
-"It was in vain that she protested and resisted. A four-wheeler was
-brought, and we all three drove back in it. We had first made an
-examination of the kitchen, and especially of the kitchen fire, to see
-whether she might have made away with the papers during the instant that
-she was alone. There were no signs, however, of any ashes or scraps.
-When we reached Scotland Yard she was handed over at once to the female
-searcher. I waited in an agony of suspense until she came back with her
-report. There were no signs of the papers.
-
-"Then for the first time the horror of my situation came in its full
-force. Hitherto I had been acting, and action had numbed thought. I had
-been so confident of regaining the treaty at once that I had not dared
-to think of what would be the consequence if I failed to do so. But
-now there was nothing more to be done, and I had leisure to realize
-my position. It was horrible. Watson there would tell you that I was a
-nervous, sensitive boy at school. It is my nature. I thought of my uncle
-and of his colleagues in the Cabinet, of the shame which I had brought
-upon him, upon myself, upon every one connected with me. What though I
-was the victim of an extraordinary accident? No allowance is made
-for accidents where diplomatic interests are at stake. I was ruined,
-shamefully, hopelessly ruined. I don't know what I did. I fancy I must
-have made a scene. I have a dim recollection of a group of officials who
-crowded round me, endeavoring to soothe me. One of them drove down with
-me to Waterloo, and saw me into the Woking train. I believe that he
-would have come all the way had it not been that Dr. Ferrier, who lives
-near me, was going down by that very train. The doctor most kindly took
-charge of me, and it was well he did so, for I had a fit in the station,
-and before we reached home I was practically a raving maniac.
-
-"You can imagine the state of things here when they were roused from
-their beds by the doctor's ringing and found me in this condition. Poor
-Annie here and my mother were broken-hearted. Dr. Ferrier had just heard
-enough from the detective at the station to be able to give an idea of
-what had happened, and his story did not mend matters. It was evident to
-all that I was in for a long illness, so Joseph was bundled out of this
-cheery bedroom, and it was turned into a sick-room for me. Here I have
-lain, Mr. Holmes, for over nine weeks, unconscious, and raving with
-brain-fever. If it had not been for Miss Harrison here and for the
-doctor's care I should not be speaking to you now. She has nursed me by
-day and a hired nurse has looked after me by night, for in my mad fits
-I was capable of anything. Slowly my reason has cleared, but it is only
-during the last three days that my memory has quite returned. Sometimes
-I wish that it never had. The first thing that I did was to wire to
-Mr. Forbes, who had the case in hand. He came out, and assures me that,
-though everything has been done, no trace of a clue has been discovered.
-The commissionnaire and his wife have been examined in every way without
-any light being thrown upon the matter. The suspicions of the police
-then rested upon young Gorot, who, as you may remember, stayed over time
-in the office that night. His remaining behind and his French name were
-really the only two points which could suggest suspicion; but, as a
-matter of fact, I did not begin work until he had gone, and his people
-are of Huguenot extraction, but as English in sympathy and tradition as
-you and I are. Nothing was found to implicate him in any way, and there
-the matter dropped. I turn to you, Mr. Holmes, as absolutely my last
-hope. If you fail me, then my honor as well as my position are forever
-forfeited."
-
-The invalid sank back upon his cushions, tired out by this long recital,
-while his nurse poured him out a glass of some stimulating medicine.
-Holmes sat silently, with his head thrown back and his eyes closed, in
-an attitude which might seem listless to a stranger, but which I knew
-betokened the most intense self-absorption.
-
-"You statement has been so explicit," said he at last, "that you have
-really left me very few questions to ask. There is one of the very
-utmost importance, however. Did you tell any one that you had this
-special task to perform?"
-
-"No one."
-
-"Not Miss Harrison here, for example?"
-
-"No. I had not been back to Woking between getting the order and
-executing the commission."
-
-"And none of your people had by chance been to see you?"
-
-"None."
-
-"Did any of them know their way about in the office?"
-
-"Oh, yes, all of them had been shown over it."
-
-"Still, of course, if you said nothing to any one about the treaty these
-inquiries are irrelevant."
-
-"I said nothing."
-
-"Do you know anything of the commissionnaire?"
-
-"Nothing except that he is an old soldier."
-
-"What regiment?"
-
-"Oh, I have heard--Coldstream Guards."
-
-"Thank you. I have no doubt I can get details from Forbes. The
-authorities are excellent at amassing facts, though they do not always
-use them to advantage. What a lovely thing a rose is!"
-
-He walked past the couch to the open window, and held up the drooping
-stalk of a moss-rose, looking down at the dainty blend of crimson and
-green. It was a new phase of his character to me, for I had never before
-seen him show any keen interest in natural objects.
-
-"There is nothing in which deduction is so necessary as in religion,"
-said he, leaning with his back against the shutters. "It can be built
-up as an exact science by the reasoner. Our highest assurance of the
-goodness of Providence seems to me to rest in the flowers. All other
-things, our powers our desires, our food, are all really necessary for
-our existence in the first instance. But this rose is an extra. Its
-smell and its color are an embellishment of life, not a condition of it.
-It is only goodness which gives extras, and so I say again that we have
-much to hope from the flowers."
-
-Percy Phelps and his nurse looked at Holmes during this demonstration
-with surprise and a good deal of disappointment written upon their
-faces. He had fallen into a reverie, with the moss-rose between his
-fingers. It had lasted some minutes before the young lady broke in upon
-it.
-
-"Do you see any prospect of solving this mystery, Mr. Holmes?" she
-asked, with a touch of asperity in her voice.
-
-"Oh, the mystery!" he answered, coming back with a start to the
-realities of life. "Well, it would be absurd to deny that the case is
-a very abstruse and complicated one, but I can promise you that I will
-look into the matter and let you know any points which may strike me."
-
-"Do you see any clue?"
-
-"You have furnished me with seven, but, of course, I must test them
-before I can pronounce upon their value."
-
-"You suspect some one?"
-
-"I suspect myself."
-
-"What!"
-
-"Of coming to conclusions too rapidly."
-
-"Then go to London and test your conclusions."
-
-"Your advice is very excellent, Miss Harrison," said Holmes, rising. "I
-think, Watson, we cannot do better. Do not allow yourself to indulge in
-false hopes, Mr. Phelps. The affair is a very tangled one."
-
-"I shall be in a fever until I see you again," cried the diplomatist.
-
-"Well, I'll come out by the same train to-morrow, though it's more than
-likely that my report will be a negative one."
-
-"God bless you for promising to come," cried our client. "It gives me
-fresh life to know that something is being done. By the way, I have had
-a letter from Lord Holdhurst."
-
-"Ha! What did he say?"
-
-"He was cold, but not harsh. I dare say my severe illness prevented
-him from being that. He repeated that the matter was of the utmost
-importance, and added that no steps would be taken about my future--by
-which he means, of course, my dismissal--until my health was restored
-and I had an opportunity of repairing my misfortune."
-
-"Well, that was reasonable and considerate," said Holmes. "Come, Watson,
-for we have a good day's work before us in town."
-
-Mr. Joseph Harrison drove us down to the station, and we were soon
-whirling up in a Portsmouth train. Holmes was sunk in profound thought,
-and hardly opened his mouth until we had passed Clapham Junction.
-
-"It's a very cheery thing to come into London by any of these lines
-which run high, and allow you to look down upon the houses like this."
-
-I thought he was joking, for the view was sordid enough, but he soon
-explained himself.
-
-"Look at those big, isolated clumps of building rising up above the
-slates, like brick islands in a lead-colored sea."
-
-"The board-schools."
-
-"Light-houses, my boy! Beacons of the future! Capsules with hundreds of
-bright little seeds in each, out of which will spring the wise, better
-England of the future. I suppose that man Phelps does not drink?"
-
-"I should not think so."
-
-"Nor should I, but we are bound to take every possibility into account.
-The poor devil has certainly got himself into very deep water, and it's
-a question whether we shall ever be able to get him ashore. What did you
-think of Miss Harrison?"
-
-"A girl of strong character."
-
-"Yes, but she is a good sort, or I am mistaken. She and her brother are
-the only children of an iron-master somewhere up Northumberland way. He
-got engaged to her when traveling last winter, and she came down to
-be introduced to his people, with her brother as escort. Then came
-the smash, and she stayed on to nurse her lover, while brother Joseph,
-finding himself pretty snug, stayed on too. I've been making a few
-independent inquiries, you see. But to-day must be a day of inquiries."
-
-"My practice--" I began.
-
-"Oh, if you find your own cases more interesting than mine--" said
-Holmes, with some asperity.
-
-"I was going to say that my practice could get along very well for a day
-or two, since it is the slackest time in the year."
-
-"Excellent," said he, recovering his good-humor. "Then we'll look into
-this matter together. I think that we should begin by seeing Forbes.
-He can probably tell us all the details we want until we know from what
-side the case is to be approached."
-
-"You said you had a clue?"
-
-"Well, we have several, but we can only test their value by further
-inquiry. The most difficult crime to track is the one which is
-purposeless. Now this is not purposeless. Who is it who profits by it?
-There is the French ambassador, there is the Russian, there is whoever
-might sell it to either of these, and there is Lord Holdhurst."
-
-"Lord Holdhurst!"
-
-"Well, it is just conceivable that a statesman might find himself in
-a position where he was not sorry to have such a document accidentally
-destroyed."
-
-"Not a statesman with the honorable record of Lord Holdhurst?"
-
-"It is a possibility and we cannot afford to disregard it. We shall see
-the noble lord to-day and find out if he can tell us anything. Meanwhile
-I have already set inquiries on foot."
-
-"Already?"
-
-"Yes, I sent wires from Woking station to every evening paper in London.
-This advertisement will appear in each of them."
-
-He handed over a sheet torn from a note-book. On it was scribbled in
-pencil: "L10 reward. The number of the cab which dropped a fare at or
-about the door of the Foreign Office in Charles Street at quarter to ten
-in the evening of May 23d. Apply 221 B, Baker Street."
-
-"You are confident that the thief came in a cab?"
-
-"If not, there is no harm done. But if Mr. Phelps is correct in stating
-that there is no hiding-place either in the room or the corridors, then
-the person must have come from outside. If he came from outside on so
-wet a night, and yet left no trace of damp upon the linoleum, which
-was examined within a few minutes of his passing, then it is exceeding
-probable that he came in a cab. Yes, I think that we may safely deduce a
-cab."
-
-"It sounds plausible."
-
-"That is one of the clues of which I spoke. It may lead us to something.
-And then, of course, there is the bell--which is the most distinctive
-feature of the case. Why should the bell ring? Was it the thief who did
-it out of bravado? Or was it some one who was with the thief who did it
-in order to prevent the crime? Or was it an accident? Or was it--?" He
-sank back into the state of intense and silent thought from which he
-had emerged; but it seemed to me, accustomed as I was to his every mood,
-that some new possibility had dawned suddenly upon him.
-
-It was twenty past three when we reached our terminus, and after a hasty
-luncheon at the buffet we pushed on at once to Scotland Yard. Holmes
-had already wired to Forbes, and we found him waiting to receive us--a
-small, foxy man with a sharp but by no means amiable expression. He
-was decidedly frigid in his manner to us, especially when he heard the
-errand upon which we had come.
-
-"I've heard of your methods before now, Mr. Holmes," said he, tartly.
-"You are ready enough to use all the information that the police can lay
-at your disposal, and then you try to finish the case yourself and bring
-discredit on them."
-
-"On the contrary," said Holmes, "out of my last fifty-three cases my
-name has only appeared in four, and the police have had all the credit
-in forty-nine. I don't blame you for not knowing this, for you are young
-and inexperienced, but if you wish to get on in your new duties you will
-work with me and not against me."
-
-"I'd be very glad of a hint or two," said the detective, changing his
-manner. "I've certainly had no credit from the case so far."
-
-"What steps have you taken?"
-
-"Tangey, the commissionnaire, has been shadowed. He left the Guards with
-a good character and we can find nothing against him. His wife is a bad
-lot, though. I fancy she knows more about this than appears."
-
-"Have you shadowed her?"
-
-"We have set one of our women on to her. Mrs. Tangey drinks, and our
-woman has been with her twice when she was well on, but she could get
-nothing out of her."
-
-"I understand that they have had brokers in the house?"
-
-"Yes, but they were paid off."
-
-"Where did the money come from?"
-
-"That was all right. His pension was due. They have not shown any sign
-of being in funds."
-
-"What explanation did she give of having answered the bell when Mr.
-Phelps rang for the coffee?"
-
-"She said that he husband was very tired and she wished to relieve him."
-
-"Well, certainly that would agree with his being found a little later
-asleep in his chair. There is nothing against them then but the woman's
-character. Did you ask her why she hurried away that night? Her haste
-attracted the attention of the police constable."
-
-"She was later than usual and wanted to get home."
-
-"Did you point out to her that you and Mr. Phelps, who started at least
-twenty minutes after her, got home before her?"
-
-"She explains that by the difference between a 'bus and a hansom."
-
-"Did she make it clear why, on reaching her house, she ran into the back
-kitchen?"
-
-"Because she had the money there with which to pay off the brokers."
-
-"She has at least an answer for everything. Did you ask her whether in
-leaving she met any one or saw any one loitering about Charles Street?"
-
-"She saw no one but the constable."
-
-"Well, you seem to have cross-examined her pretty thoroughly. What else
-have you done?"
-
-"The clerk Gorot has been shadowed all these nine weeks, but without
-result. We can show nothing against him."
-
-"Anything else?"
-
-"Well, we have nothing else to go upon--no evidence of any kind."
-
-"Have you formed a theory about how that bell rang?"
-
-"Well, I must confess that it beats me. It was a cool hand, whoever it
-was, to go and give the alarm like that."
-
-"Yes, it was queer thing to do. Many thanks to you for what you have
-told me. If I can put the man into your hands you shall hear from me.
-Come along, Watson."
-
-"Where are we going to now?" I asked, as we left the office.
-
-"We are now going to interview Lord Holdhurst, the cabinet minister and
-future premier of England."
-
-We were fortunate in finding that Lord Holdhurst was still in his
-chambers in Downing Street, and on Holmes sending in his card we were
-instantly shown up. The statesman received us with that old-fashioned
-courtesy for which he is remarkable, and seated us on the two luxuriant
-lounges on either side of the fireplace. Standing on the rug between us,
-with his slight, tall figure, his sharp features, thoughtful face, and
-curling hair prematurely tinged with gray, he seemed to represent that
-not too common type, a nobleman who is in truth noble.
-
-"Your name is very familiar to me, Mr. Holmes," said he, smiling. "And,
-of course, I cannot pretend to be ignorant of the object of your visit.
-There has only been one occurrence in these offices which could call for
-your attention. In whose interest are you acting, may I ask?"
-
-"In that of Mr. Percy Phelps," answered Holmes.
-
-"Ah, my unfortunate nephew! You can understand that our kinship makes
-it the more impossible for me to screen him in any way. I fear that the
-incident must have a very prejudicial effect upon his career."
-
-"But if the document is found?"
-
-"Ah, that, of course, would be different."
-
-"I had one or two questions which I wished to ask you, Lord Holdhurst."
-
-"I shall be happy to give you any information in my power."
-
-"Was it in this room that you gave your instructions as to the copying
-of the document?"
-
-"It was."
-
-"Then you could hardly have been overheard?"
-
-"It is out of the question."
-
-"Did you ever mention to any one that it was your intention to give any
-one the treaty to be copied?"
-
-"Never."
-
-"You are certain of that?"
-
-"Absolutely."
-
-"Well, since you never said so, and Mr. Phelps never said so, and nobody
-else knew anything of the matter, then the thief's presence in the room
-was purely accidental. He saw his chance and he took it."
-
-The statesman smiled. "You take me out of my province there," said he.
-
-Holmes considered for a moment. "There is another very important
-point which I wish to discuss with you," said he. "You feared, as I
-understand, that very grave results might follow from the details of
-this treaty becoming known."
-
-A shadow passed over the expressive face of the statesman. "Very grave
-results indeed."
-
-"Any have they occurred?"
-
-"Not yet."
-
-"If the treaty had reached, let us say, the French or Russian Foreign
-Office, you would expect to hear of it?"
-
-"I should," said Lord Holdhurst, with a wry face.
-
-"Since nearly ten weeks have elapsed, then, and nothing has been heard,
-it is not unfair to suppose that for some reason the treaty has not
-reached them."
-
-Lord Holdhurst shrugged his shoulders.
-
-"We can hardly suppose, Mr. Holmes, that the thief took the treaty in
-order to frame it and hang it up."
-
-"Perhaps he is waiting for a better price."
-
-"If he waits a little longer he will get no price at all. The treaty
-will cease to be secret in a few months."
-
-"That is most important," said Holmes. "Of course, it is a possible
-supposition that the thief has had a sudden illness--"
-
-"An attack of brain-fever, for example?" asked the statesman, flashing a
-swift glance at him.
-
-"I did not say so," said Holmes, imperturbably. "And now, Lord
-Holdhurst, we have already taken up too much of your valuable time, and
-we shall wish you good-day."
-
-"Every success to your investigation, be the criminal who it may,"
-answered the nobleman, as he bowed us out the door.
-
-"He's a fine fellow," said Holmes, as we came out into Whitehall. "But
-he has a struggle to keep up his position. He is far from rich and has
-many calls. You noticed, of course, that his boots had been resoled.
-Now, Watson, I won't detain you from your legitimate work any longer.
-I shall do nothing more to-day, unless I have an answer to my cab
-advertisement. But I should be extremely obliged to you if you would
-come down with me to Woking to-morrow, by the same train which we took
-yesterday."
-
-
-I met him accordingly next morning and we traveled down to Woking
-together. He had had no answer to his advertisement, he said, and no
-fresh light had been thrown upon the case. He had, when he so willed
-it, the utter immobility of countenance of a red Indian, and I could
-not gather from his appearance whether he was satisfied or not with
-the position of the case. His conversation, I remember, was about the
-Bertillon system of measurements, and he expressed his enthusiastic
-admiration of the French savant.
-
-We found our client still under the charge of his devoted nurse, but
-looking considerably better than before. He rose from the sofa and
-greeted us without difficulty when we entered.
-
-"Any news?" he asked, eagerly.
-
-"My report, as I expected, is a negative one," said Holmes. "I have seen
-Forbes, and I have seen your uncle, and I have set one or two trains of
-inquiry upon foot which may lead to something."
-
-"You have not lost heart, then?"
-
-"By no means."
-
-"God bless you for saying that!" cried Miss Harrison. "If we keep our
-courage and our patience the truth must come out."
-
-"We have more to tell you than you have for us," said Phelps, reseating
-himself upon the couch.
-
-"I hoped you might have something."
-
-"Yes, we have had an adventure during the night, and one which might
-have proved to be a serious one." His expression grew very grave as he
-spoke, and a look of something akin to fear sprang up in his eyes. "Do
-you know," said he, "that I begin to believe that I am the unconscious
-centre of some monstrous conspiracy, and that my life is aimed at as
-well as my honor?"
-
-"Ah!" cried Holmes.
-
-"It sounds incredible, for I have not, as far as I know, an enemy in
-the world. Yet from last night's experience I can come to no other
-conclusion."
-
-"Pray let me hear it."
-
-"You must know that last night was the very first night that I have ever
-slept without a nurse in the room. I was so much better that I thought
-I could dispense with one. I had a night-light burning, however. Well,
-about two in the morning I had sunk into a light sleep when I was
-suddenly aroused by a slight noise. It was like the sound which a mouse
-makes when it is gnawing a plank, and I lay listening to it for some
-time under the impression that it must come from that cause. Then it
-grew louder, and suddenly there came from the window a sharp metallic
-snick. I sat up in amazement. There could be no doubt what the sounds
-were now. The first ones had been caused by some one forcing an
-instrument through the slit between the sashes, and the second by the
-catch being pressed back.
-
-"There was a pause then for about ten minutes, as if the person were
-waiting to see whether the noise had awakened me. Then I heard a gentle
-creaking as the window was very slowly opened. I could stand it no
-longer, for my nerves are not what they used to be. I sprang out of bed
-and flung open the shutters. A man was crouching at the window. I could
-see little of him, for he was gone like a flash. He was wrapped in some
-sort of cloak which came across the lower part of his face. One thing
-only I am sure of, and that is that he had some weapon in his hand. It
-looked to me like a long knife. I distinctly saw the gleam of it as he
-turned to run."
-
-"This is most interesting," said Holmes. "Pray what did you do then?"
-
-"I should have followed him through the open window if I had been
-stronger. As it was, I rang the bell and roused the house. It took me
-some little time, for the bell rings in the kitchen and the servants all
-sleep upstairs. I shouted, however, and that brought Joseph down, and he
-roused the others. Joseph and the groom found marks on the bed outside
-the window, but the weather has been so dry lately that they found it
-hopeless to follow the trail across the grass. There's a place, however,
-on the wooden fence which skirts the road which shows signs, they tell
-me, as if some one had got over, and had snapped the top of the rail in
-doing so. I have said nothing to the local police yet, for I thought I
-had best have your opinion first."
-
-This tale of our client's appeared to have an extraordinary effect upon
-Sherlock Holmes. He rose from his chair and paced about the room in
-uncontrollable excitement.
-
-"Misfortunes never come single," said Phelps, smiling, though it was
-evident that his adventure had somewhat shaken him.
-
-"You have certainly had your share," said Holmes. "Do you think you
-could walk round the house with me?"
-
-"Oh, yes, I should like a little sunshine. Joseph will come, too."
-
-"And I also," said Miss Harrison.
-
-"I am afraid not," said Holmes, shaking his head. "I think I must ask
-you to remain sitting exactly where you are."
-
-The young lady resumed her seat with an air of displeasure. Her brother,
-however, had joined us and we set off all four together. We passed round
-the lawn to the outside of the young diplomatist's window. There were,
-as he had said, marks upon the bed, but they were hopelessly blurred and
-vague. Holmes stopped over them for an instant, and then rose shrugging
-his shoulders.
-
-"I don't think any one could make much of this," said he. "Let us go
-round the house and see why this particular room was chosen by the
-burglar. I should have thought those larger windows of the drawing-room
-and dining-room would have had more attractions for him."
-
-"They are more visible from the road," suggested Mr. Joseph Harrison.
-
-"Ah, yes, of course. There is a door here which he might have attempted.
-What is it for?"
-
-"It is the side entrance for trades-people. Of course it is locked at
-night."
-
-"Have you ever had an alarm like this before?"
-
-"Never," said our client.
-
-"Do you keep plate in the house, or anything to attract burglars?"
-
-"Nothing of value."
-
-Holmes strolled round the house with his hands in his pockets and a
-negligent air which was unusual with him.
-
-"By the way," said he to Joseph Harrison, "you found some place, I
-understand, where the fellow scaled the fence. Let us have a look at
-that!"
-
-The plump young man led us to a spot where the top of one of the wooden
-rails had been cracked. A small fragment of the wood was hanging down.
-Holmes pulled it off and examined it critically.
-
-"Do you think that was done last night? It looks rather old, does it
-not?"
-
-"Well, possibly so."
-
-"There are no marks of any one jumping down upon the other side. No, I
-fancy we shall get no help here. Let us go back to the bedroom and talk
-the matter over."
-
-Percy Phelps was walking very slowly, leaning upon the arm of his future
-brother-in-law. Holmes walked swiftly across the lawn, and we were at
-the open window of the bedroom long before the others came up.
-
-"Miss Harrison," said Holmes, speaking with the utmost intensity of
-manner, "you must stay where you are all day. Let nothing prevent you
-from staying where you are all day. It is of the utmost importance."
-
-"Certainly, if you wish it, Mr. Holmes," said the girl in astonishment.
-
-"When you go to bed lock the door of this room on the outside and keep
-the key. Promise to do this."
-
-"But Percy?"
-
-"He will come to London with us."
-
-"And am I to remain here?"
-
-"It is for his sake. You can serve him. Quick! Promise!"
-
-She gave a quick nod of assent just as the other two came up.
-
-"Why do you sit moping there, Annie?" cried her brother. "Come out into
-the sunshine!"
-
-"No, thank you, Joseph. I have a slight headache and this room is
-deliciously cool and soothing."
-
-"What do you propose now, Mr. Holmes?" asked our client.
-
-"Well, in investigating this minor affair we must not lose sight of our
-main inquiry. It would be a very great help to me if you would come up
-to London with us."
-
-"At once?"
-
-"Well, as soon as you conveniently can. Say in an hour."
-
-"I feel quite strong enough, if I can really be of any help."
-
-"The greatest possible."
-
-"Perhaps you would like me to stay there to-night?"
-
-"I was just going to propose it."
-
-"Then, if my friend of the night comes to revisit me, he will find the
-bird flown. We are all in your hands, Mr. Holmes, and you must tell us
-exactly what you would like done. Perhaps you would prefer that Joseph
-came with us so as to look after me?"
-
-"Oh, no; my friend Watson is a medical man, you know, and he'll look
-after you. We'll have our lunch here, if you will permit us, and then we
-shall all three set off for town together."
-
-It was arranged as he suggested, though Miss Harrison excused herself
-from leaving the bedroom, in accordance with Holmes's suggestion. What
-the object of my friend's manoeuvres was I could not conceive, unless it
-were to keep the lady away from Phelps, who, rejoiced by his
-returning health and by the prospect of action, lunched with us in the
-dining-room. Holmes had a still more startling surprise for us, however,
-for, after accompanying us down to the station and seeing us into
-our carriage, he calmly announced that he had no intention of leaving
-Woking.
-
-"There are one or two small points which I should desire to clear up
-before I go," said he. "Your absence, Mr. Phelps, will in some ways
-rather assist me. Watson, when you reach London you would oblige me by
-driving at once to Baker Street with our friend here, and remaining
-with him until I see you again. It is fortunate that you are old
-school-fellows, as you must have much to talk over. Mr. Phelps can
-have the spare bedroom to-night, and I will be with you in time for
-breakfast, for there is a train which will take me into Waterloo at
-eight."
-
-"But how about our investigation in London?" asked Phelps, ruefully.
-
-"We can do that to-morrow. I think that just at present I can be of more
-immediate use here."
-
-"You might tell them at Briarbrae that I hope to be back to-morrow
-night," cried Phelps, as we began to move from the platform.
-
-"I hardly expect to go back to Briarbrae," answered Holmes, and waved
-his hand to us cheerily as we shot out from the station.
-
-Phelps and I talked it over on our journey, but neither of us could
-devise a satisfactory reason for this new development.
-
-"I suppose he wants to find out some clue as to the burglary last night,
-if a burglar it was. For myself, I don't believe it was an ordinary
-thief."
-
-"What is your own idea, then?"
-
-"Upon my word, you may put it down to my weak nerves or not, but I
-believe there is some deep political intrigue going on around me, and
-that for some reason that passes my understanding my life is aimed at
-by the conspirators. It sounds high-flown and absurd, but consider the
-facts! Why should a thief try to break in at a bedroom window, where
-there could be no hope of any plunder, and why should he come with a
-long knife in his hand?"
-
-"You are sure it was not a house-breaker's jimmy?"
-
-"Oh, no, it was a knife. I saw the flash of the blade quite distinctly."
-
-"But why on earth should you be pursued with such animosity?"
-
-"Ah, that is the question."
-
-"Well, if Holmes takes the same view, that would account for his action,
-would it not? Presuming that your theory is correct, if he can lay his
-hands upon the man who threatened you last night he will have gone a
-long way towards finding who took the naval treaty. It is absurd to
-suppose that you have two enemies, one of whom robs you, while the other
-threatens your life."
-
-"But Holmes said that he was not going to Briarbrae."
-
-"I have known him for some time," said I, "but I never knew him do
-anything yet without a very good reason," and with that our conversation
-drifted off on to other topics.
-
-But it was a weary day for me. Phelps was still weak after his long
-illness, and his misfortune made him querulous and nervous. In vain
-I endeavored to interest him in Afghanistan, in India, in social
-questions, in anything which might take his mind out of the groove.
-He would always come back to his lost treaty, wondering, guessing,
-speculating, as to what Holmes was doing, what steps Lord Holdhurst was
-taking, what news we should have in the morning. As the evening wore on
-his excitement became quite painful.
-
-"You have implicit faith in Holmes?" he asked.
-
-"I have seen him do some remarkable things."
-
-"But he never brought light into anything quite so dark as this?"
-
-"Oh, yes; I have known him solve questions which presented fewer clues
-than yours."
-
-"But not where such large interests are at stake?"
-
-"I don't know that. To my certain knowledge he has acted on behalf of
-three of the reigning houses of Europe in very vital matters."
-
-"But you know him well, Watson. He is such an inscrutable fellow that I
-never quite know what to make of him. Do you think he is hopeful? Do you
-think he expects to make a success of it?"
-
-"He has said nothing."
-
-"That is a bad sign."
-
-"On the contrary, I have noticed that when he is off the trail he
-generally says so. It is when he is on a scent and is not quite
-absolutely sure yet that it is the right one that he is most taciturn.
-Now, my dear fellow, we can't help matters by making ourselves nervous
-about them, so let me implore you to go to bed and so be fresh for
-whatever may await us to-morrow."
-
-I was able at last to persuade my companion to take my advice, though I
-knew from his excited manner that there was not much hope of sleep for
-him. Indeed, his mood was infectious, for I lay tossing half the night
-myself, brooding over this strange problem, and inventing a hundred
-theories, each of which was more impossible than the last. Why had
-Holmes remained at Woking? Why had he asked Miss Harrison to remain
-in the sick-room all day? Why had he been so careful not to inform the
-people at Briarbrae that he intended to remain near them? I cudgelled
-my brains until I fell asleep in the endeavor to find some explanation
-which would cover all these facts.
-
-It was seven o'clock when I awoke, and I set off at once for Phelps's
-room, to find him haggard and spent after a sleepless night. His first
-question was whether Holmes had arrived yet.
-
-"He'll be here when he promised," said I, "and not an instant sooner or
-later."
-
-And my words were true, for shortly after eight a hansom dashed up to
-the door and our friend got out of it. Standing in the window we saw
-that his left hand was swathed in a bandage and that his face was very
-grim and pale. He entered the house, but it was some little time before
-he came upstairs.
-
-"He looks like a beaten man," cried Phelps.
-
-I was forced to confess that he was right. "After all," said I, "the
-clue of the matter lies probably here in town."
-
-Phelps gave a groan.
-
-"I don't know how it is," said he, "but I had hoped for so much from his
-return. But surely his hand was not tied up like that yesterday. What
-can be the matter?"
-
-"You are not wounded, Holmes?" I asked, as my friend entered the room.
-
-"Tut, it is only a scratch through my own clumsiness," he answered,
-nodding his good-mornings to us. "This case of yours, Mr. Phelps, is
-certainly one of the darkest which I have ever investigated."
-
-"I feared that you would find it beyond you."
-
-"It has been a most remarkable experience."
-
-"That bandage tells of adventures," said I. "Won't you tell us what has
-happened?"
-
-"After breakfast, my dear Watson. Remember that I have breathed thirty
-miles of Surrey air this morning. I suppose that there has been no
-answer from my cabman advertisement? Well, well, we cannot expect to
-score every time."
-
-The table was all laid, and just as I was about to ring Mrs. Hudson
-entered with the tea and coffee. A few minutes later she brought in
-three covers, and we all drew up to the table, Holmes ravenous, I
-curious, and Phelps in the gloomiest state of depression.
-
-"Mrs. Hudson has risen to the occasion," said Holmes, uncovering a dish
-of curried chicken. "Her cuisine is a little limited, but she has
-as good an idea of breakfast as a Scotch-woman. What have you here,
-Watson?"
-
-"Ham and eggs," I answered.
-
-"Good! What are you going to take, Mr. Phelps--curried fowl or eggs, or
-will you help yourself?"
-
-"Thank you. I can eat nothing," said Phelps.
-
-"Oh, come! Try the dish before you."
-
-"Thank you, I would really rather not."
-
-"Well, then," said Holmes, with a mischievous twinkle, "I suppose that
-you have no objection to helping me?"
-
-Phelps raised the cover, and as he did so he uttered a scream, and sat
-there staring with a face as white as the plate upon which he looked.
-Across the centre of it was lying a little cylinder of blue-gray paper.
-He caught it up, devoured it with his eyes, and then danced madly about
-the room, pressing it to his bosom and shrieking out in his delight.
-Then he fell back into an arm-chair so limp and exhausted with his own
-emotions that we had to pour brandy down his throat to keep him from
-fainting.
-
-"There! there!" said Holmes, soothing, patting him upon the shoulder.
-"It was too bad to spring it on you like this, but Watson here will tell
-you that I never can resist a touch of the dramatic."
-
-Phelps seized his hand and kissed it. "God bless you!" he cried. "You
-have saved my honor."
-
-"Well, my own was at stake, you know," said Holmes. "I assure you it is
-just as hateful to me to fail in a case as it can be to you to blunder
-over a commission."
-
-Phelps thrust away the precious document into the innermost pocket of
-his coat.
-
-"I have not the heart to interrupt your breakfast any further, and yet I
-am dying to know how you got it and where it was."
-
-Sherlock Holmes swallowed a cup of coffee, and turned his attention to
-the ham and eggs. Then he rose, lit his pipe, and settled himself down
-into his chair.
-
-"I'll tell you what I did first, and how I came to do it afterwards,"
-said he. "After leaving you at the station I went for a charming walk
-through some admirable Surrey scenery to a pretty little village called
-Ripley, where I had my tea at an inn, and took the precaution of filling
-my flask and of putting a paper of sandwiches in my pocket. There I
-remained until evening, when I set off for Woking again, and found
-myself in the high-road outside Briarbrae just after sunset.
-
-"Well, I waited until the road was clear--it is never a very frequented
-one at any time, I fancy--and then I clambered over the fence into the
-grounds."
-
-"Surely the gate was open!" ejaculated Phelps.
-
-"Yes, but I have a peculiar taste in these matters. I chose the place
-where the three fir-trees stand, and behind their screen I got over
-without the least chance of any one in the house being able to see me.
-I crouched down among the bushes on the other side, and crawled from one
-to the other--witness the disreputable state of my trouser knees--until
-I had reached the clump of rhododendrons just opposite to your bedroom
-window. There I squatted down and awaited developments.
-
-"The blind was not down in your room, and I could see Miss Harrison
-sitting there reading by the table. It was quarter-past ten when she
-closed her book, fastened the shutters, and retired.
-
-"I heard her shut the door, and felt quite sure that she had turned the
-key in the lock."
-
-"The key!" ejaculated Phelps.
-
-"Yes; I had given Miss Harrison instructions to lock the door on the
-outside and take the key with her when she went to bed. She carried out
-every one of my injunctions to the letter, and certainly without her
-cooperation you would not have that paper in you coat-pocket. She
-departed then and the lights went out, and I was left squatting in the
-rhododendron-bush.
-
-"The night was fine, but still it was a very weary vigil. Of course it
-has the sort of excitement about it that the sportsman feels when he
-lies beside the water-course and waits for the big game. It was very
-long, though--almost as long, Watson, as when you and I waited in that
-deadly room when we looked into the little problem of the Speckled Band.
-There was a church-clock down at Woking which struck the quarters, and I
-thought more than once that it had stopped. At last however about two
-in the morning, I suddenly heard the gentle sound of a bolt being pushed
-back and the creaking of a key. A moment later the servants' door was
-opened, and Mr. Joseph Harrison stepped out into the moonlight."
-
-"Joseph!" ejaculated Phelps.
-
-"He was bare-headed, but he had a black coat thrown over his shoulder so
-that he could conceal his face in an instant if there were any alarm. He
-walked on tiptoe under the shadow of the wall, and when he reached the
-window he worked a long-bladed knife through the sash and pushed back
-the catch. Then he flung open the window, and putting his knife through
-the crack in the shutters, he thrust the bar up and swung them open.
-
-"From where I lay I had a perfect view of the inside of the room and of
-every one of his movements. He lit the two candles which stood upon the
-mantelpiece, and then he proceeded to turn back the corner of the carpet
-in the neighborhood of the door. Presently he stopped and picked out a
-square piece of board, such as is usually left to enable plumbers to get
-at the joints of the gas-pipes. This one covered, as a matter of
-fact, the T joint which gives off the pipe which supplies the kitchen
-underneath. Out of this hiding-place he drew that little cylinder
-of paper, pushed down the board, rearranged the carpet, blew out the
-candles, and walked straight into my arms as I stood waiting for him
-outside the window.
-
-"Well, he has rather more viciousness than I gave him credit for, has
-Master Joseph. He flew at me with his knife, and I had to grasp him
-twice, and got a cut over the knuckles, before I had the upper hand of
-him. He looked murder out of the only eye he could see with when we had
-finished, but he listened to reason and gave up the papers. Having
-got them I let my man go, but I wired full particulars to Forbes this
-morning. If he is quick enough to catch his bird, well and good. But
-if, as I shrewdly suspect, he finds the nest empty before he gets there,
-why, all the better for the government. I fancy that Lord Holdhurst for
-one, and Mr. Percy Phelps for another, would very much rather that the
-affair never got as far as a police-court.
-
-"My God!" gasped our client. "Do you tell me that during these long ten
-weeks of agony the stolen papers were within the very room with me all
-the time?"
-
-"So it was."
-
-"And Joseph! Joseph a villain and a thief!"
-
-"Hum! I am afraid Joseph's character is a rather deeper and more
-dangerous one than one might judge from his appearance. From what I
-have heard from him this morning, I gather that he has lost heavily in
-dabbling with stocks, and that he is ready to do anything on earth to
-better his fortunes. Being an absolutely selfish man, when a chance
-presented itself he did not allow either his sister's happiness or your
-reputation to hold his hand."
-
-Percy Phelps sank back in his chair. "My head whirls," said he. "Your
-words have dazed me."
-
-"The principal difficulty in your case," remarked Holmes, in his
-didactic fashion, "lay in the fact of there being too much evidence.
-What was vital was overlaid and hidden by what was irrelevant. Of all
-the facts which were presented to us we had to pick just those which we
-deemed to be essential, and then piece them together in their order, so
-as to reconstruct this very remarkable chain of events. I had already
-begun to suspect Joseph, from the fact that you had intended to travel
-home with him that night, and that therefore it was a likely enough
-thing that he should call for you, knowing the Foreign Office well, upon
-his way. When I heard that some one had been so anxious to get into the
-bedroom, in which no one but Joseph could have concealed anything--you
-told us in your narrative how you had turned Joseph out when you arrived
-with the doctor--my suspicions all changed to certainties, especially as
-the attempt was made on the first night upon which the nurse was absent,
-showing that the intruder was well acquainted with the ways of the
-house."
-
-"How blind I have been!"
-
-"The facts of the case, as far as I have worked them out, are these:
-this Joseph Harrison entered the office through the Charles Street door,
-and knowing his way he walked straight into your room the instant after
-you left it. Finding no one there he promptly rang the bell, and at
-the instant that he did so his eyes caught the paper upon the table.
-A glance showed him that chance had put in his way a State document of
-immense value, and in an instant he had thrust it into his pocket and
-was gone. A few minutes elapsed, as you remember, before the sleepy
-commissionnaire drew your attention to the bell, and those were just
-enough to give the thief time to make his escape.
-
-"He made his way to Woking by the first train, and having examined his
-booty and assured himself that it really was of immense value, he
-had concealed it in what he thought was a very safe place, with the
-intention of taking it out again in a day or two, and carrying it to the
-French embassy, or wherever he thought that a long price was to be
-had. Then came your sudden return. He, without a moment's warning, was
-bundled out of his room, and from that time onward there were always at
-least two of you there to prevent him from regaining his treasure. The
-situation to him must have been a maddening one. But at last he thought
-he saw his chance. He tried to steal in, but was baffled by your
-wakefulness. You remember that you did not take your usual draught that
-night."
-
-"I remember."
-
-"I fancy that he had taken steps to make that draught efficacious,
-and that he quite relied upon your being unconscious. Of course, I
-understood that he would repeat the attempt whenever it could be done
-with safety. Your leaving the room gave him the chance he wanted. I kept
-Miss Harrison in it all day so that he might not anticipate us. Then,
-having given him the idea that the coast was clear, I kept guard as
-I have described. I already knew that the papers were probably in the
-room, but I had no desire to rip up all the planking and skirting in
-search of them. I let him take them, therefore, from the hiding-place,
-and so saved myself an infinity of trouble. Is there any other point
-which I can make clear?"
-
-"Why did he try the window on the first occasion," I asked, "when he
-might have entered by the door?"
-
-"In reaching the door he would have to pass seven bedrooms. On the other
-hand, he could get out on to the lawn with ease. Anything else?"
-
-"You do not think," asked Phelps, "that he had any murderous intention?
-The knife was only meant as a tool."
-
-"It may be so," answered Holmes, shrugging his shoulders. "I can only
-say for certain that Mr. Joseph Harrison is a gentleman to whose mercy I
-should be extremely unwilling to trust."
-
-
-
-
-Adventure XI. The Final Problem
-
-
-It is with a heavy heart that I take up my pen to write these the last
-words in which I shall ever record the singular gifts by which my friend
-Mr. Sherlock Holmes was distinguished. In an incoherent and, as I deeply
-feel, an entirely inadequate fashion, I have endeavored to give some
-account of my strange experiences in his company from the chance which
-first brought us together at the period of the "Study in Scarlet," up
-to the time of his interference in the matter of the "Naval Treaty"--an
-interference which had the unquestionable effect of preventing a serious
-international complication. It was my intention to have stopped there,
-and to have said nothing of that event which has created a void in my
-life which the lapse of two years has done little to fill. My hand
-has been forced, however, by the recent letters in which Colonel James
-Moriarty defends the memory of his brother, and I have no choice but to
-lay the facts before the public exactly as they occurred. I alone know
-the absolute truth of the matter, and I am satisfied that the time has
-come when no good purpose is to be served by its suppression. As far as
-I know, there have been only three accounts in the public press: that
-in the Journal de Geneve on May 6th, 1891, the Reuter's despatch in the
-English papers on May 7th, and finally the recent letter to which I have
-alluded. Of these the first and second were extremely condensed, while
-the last is, as I shall now show, an absolute perversion of the facts.
-It lies with me to tell for the first time what really took place
-between Professor Moriarty and Mr. Sherlock Holmes.
-
-It may be remembered that after my marriage, and my subsequent start in
-private practice, the very intimate relations which had existed between
-Holmes and myself became to some extent modified. He still came to me
-from time to time when he desired a companion in his investigation, but
-these occasions grew more and more seldom, until I find that in the year
-1890 there were only three cases of which I retain any record. During
-the winter of that year and the early spring of 1891, I saw in the
-papers that he had been engaged by the French government upon a matter
-of supreme importance, and I received two notes from Holmes, dated from
-Narbonne and from Nimes, from which I gathered that his stay in France
-was likely to be a long one. It was with some surprise, therefore, that
-I saw him walk into my consulting-room upon the evening of April 24th.
-It struck me that he was looking even paler and thinner than usual.
-
-"Yes, I have been using myself up rather too freely," he remarked, in
-answer to my look rather than to my words; "I have been a little pressed
-of late. Have you any objection to my closing your shutters?"
-
-The only light in the room came from the lamp upon the table at which I
-had been reading. Holmes edged his way round the wall and flinging the
-shutters together, he bolted them securely.
-
-"You are afraid of something?" I asked.
-
-"Well, I am."
-
-"Of what?"
-
-"Of air-guns."
-
-"My dear Holmes, what do you mean?"
-
-"I think that you know me well enough, Watson, to understand that I am
-by no means a nervous man. At the same time, it is stupidity rather than
-courage to refuse to recognize danger when it is close upon you. Might
-I trouble you for a match?" He drew in the smoke of his cigarette as if
-the soothing influence was grateful to him.
-
-"I must apologize for calling so late," said he, "and I must further beg
-you to be so unconventional as to allow me to leave your house presently
-by scrambling over your back garden wall."
-
-"But what does it all mean?" I asked.
-
-He held out his hand, and I saw in the light of the lamp that two of his
-knuckles were burst and bleeding.
-
-"It is not an airy nothing, you see," said he, smiling. "On the
-contrary, it is solid enough for a man to break his hand over. Is Mrs.
-Watson in?"
-
-"She is away upon a visit."
-
-"Indeed! You are alone?"
-
-"Quite."
-
-"Then it makes it the easier for me to propose that you should come away
-with me for a week to the Continent."
-
-"Where?"
-
-"Oh, anywhere. It's all the same to me."
-
-There was something very strange in all this. It was not Holmes's nature
-to take an aimless holiday, and something about his pale, worn face told
-me that his nerves were at their highest tension. He saw the question in
-my eyes, and, putting his finger-tips together and his elbows upon his
-knees, he explained the situation.
-
-"You have probably never heard of Professor Moriarty?" said he.
-
-"Never."
-
-"Aye, there's the genius and the wonder of the thing!" he cried. "The
-man pervades London, and no one has heard of him. That's what puts
-him on a pinnacle in the records of crime. I tell you, Watson, in all
-seriousness, that if I could beat that man, if I could free society
-of him, I should feel that my own career had reached its summit, and
-I should be prepared to turn to some more placid line in life. Between
-ourselves, the recent cases in which I have been of assistance to the
-royal family of Scandinavia, and to the French republic, have left me in
-such a position that I could continue to live in the quiet fashion
-which is most congenial to me, and to concentrate my attention upon my
-chemical researches. But I could not rest, Watson, I could not sit quiet
-in my chair, if I thought that such a man as Professor Moriarty were
-walking the streets of London unchallenged."
-
-"What has he done, then?"
-
-"His career has been an extraordinary one. He is a man of good birth and
-excellent education, endowed by nature with a phenomenal mathematical
-faculty. At the age of twenty-one he wrote a treatise upon the Binomial
-Theorem, which has had a European vogue. On the strength of it he won
-the Mathematical Chair at one of our smaller universities, and had, to
-all appearances, a most brilliant career before him. But the man had
-hereditary tendencies of the most diabolical kind. A criminal strain
-ran in his blood, which, instead of being modified, was increased and
-rendered infinitely more dangerous by his extraordinary mental powers.
-Dark rumors gathered round him in the university town, and eventually he
-was compelled to resign his chair and to come down to London, where he
-set up as an army coach. So much is known to the world, but what I am
-telling you now is what I have myself discovered.
-
-"As you are aware, Watson, there is no one who knows the higher criminal
-world of London so well as I do. For years past I have continually been
-conscious of some power behind the malefactor, some deep organizing
-power which forever stands in the way of the law, and throws its shield
-over the wrong-doer. Again and again in cases of the most varying
-sorts--forgery cases, robberies, murders--I have felt the presence of
-this force, and I have deduced its action in many of those undiscovered
-crimes in which I have not been personally consulted. For years I have
-endeavored to break through the veil which shrouded it, and at last
-the time came when I seized my thread and followed it, until it led
-me, after a thousand cunning windings, to ex-Professor Moriarty of
-mathematical celebrity.
-
-"He is the Napoleon of crime, Watson. He is the organizer of half that
-is evil and of nearly all that is undetected in this great city. He is a
-genius, a philosopher, an abstract thinker. He has a brain of the first
-order. He sits motionless, like a spider in the center of its web, but
-that web has a thousand radiations, and he knows well every quiver of
-each of them. He does little himself. He only plans. But his agents are
-numerous and splendidly organized. Is there a crime to be done, a
-paper to be abstracted, we will say, a house to be rifled, a man to be
-removed--the word is passed to the Professor, the matter is organized
-and carried out. The agent may be caught. In that case money is found
-for his bail or his defence. But the central power which uses the agent
-is never caught--never so much as suspected. This was the organization
-which I deduced, Watson, and which I devoted my whole energy to exposing
-and breaking up.
-
-"But the Professor was fenced round with safeguards so cunningly devised
-that, do what I would, it seemed impossible to get evidence which would
-convict in a court of law. You know my powers, my dear Watson, and yet
-at the end of three months I was forced to confess that I had at last
-met an antagonist who was my intellectual equal. My horror at his crimes
-was lost in my admiration at his skill. But at last he made a trip--only
-a little, little trip--but it was more than he could afford when I was
-so close upon him. I had my chance, and, starting from that point, I
-have woven my net round him until now it is all ready to close. In three
-days--that is to say, on Monday next--matters will be ripe, and the
-Professor, with all the principal members of his gang, will be in the
-hands of the police. Then will come the greatest criminal trial of the
-century, the clearing up of over forty mysteries, and the rope for all
-of them; but if we move at all prematurely, you understand, they may
-slip out of our hands even at the last moment.
-
-"Now, if I could have done this without the knowledge of Professor
-Moriarty, all would have been well. But he was too wily for that. He saw
-every step which I took to draw my toils round him. Again and again
-he strove to break away, but I as often headed him off. I tell you,
-my friend, that if a detailed account of that silent contest could
-be written, it would take its place as the most brilliant bit of
-thrust-and-parry work in the history of detection. Never have I risen to
-such a height, and never have I been so hard pressed by an opponent. He
-cut deep, and yet I just undercut him. This morning the last steps were
-taken, and three days only were wanted to complete the business. I was
-sitting in my room thinking the matter over, when the door opened and
-Professor Moriarty stood before me.
-
-"My nerves are fairly proof, Watson, but I must confess to a start when
-I saw the very man who had been so much in my thoughts standing there on
-my threshhold. His appearance was quite familiar to me. He is extremely
-tall and thin, his forehead domes out in a white curve, and his two
-eyes are deeply sunken in his head. He is clean-shaven, pale, and
-ascetic-looking, retaining something of the professor in his features.
-His shoulders are rounded from much study, and his face protrudes
-forward, and is forever slowly oscillating from side to side in a
-curiously reptilian fashion. He peered at me with great curiosity in his
-puckered eyes.
-
-"'You have less frontal development than I should have expected,' said
-he, at last. 'It is a dangerous habit to finger loaded firearms in the
-pocket of one's dressing-gown.'
-
-"The fact is that upon his entrance I had instantly recognized the
-extreme personal danger in which I lay. The only conceivable escape for
-him lay in silencing my tongue. In an instant I had slipped the revolver
-from the drawer into my pocket, and was covering him through the cloth.
-At his remark I drew the weapon out and laid it cocked upon the table.
-He still smiled and blinked, but there was something about his eyes
-which made me feel very glad that I had it there.
-
-"'You evidently don't know me,' said he.
-
-"'On the contrary,' I answered, 'I think it is fairly evident that I do.
-Pray take a chair. I can spare you five minutes if you have anything to
-say.'
-
-"'All that I have to say has already crossed your mind,' said he.
-
-"'Then possibly my answer has crossed yours,' I replied.
-
-"'You stand fast?'
-
-"'Absolutely.'
-
-"He clapped his hand into his pocket, and I raised the pistol from
-the table. But he merely drew out a memorandum-book in which he had
-scribbled some dates.
-
-"'You crossed my path on the 4th of January,' said he. 'On the 23d you
-incommoded me; by the middle of February I was seriously inconvenienced
-by you; at the end of March I was absolutely hampered in my plans; and
-now, at the close of April, I find myself placed in such a position
-through your continual persecution that I am in positive danger of
-losing my liberty. The situation is becoming an impossible one.'
-
-"'Have you any suggestion to make?' I asked.
-
-"'You must drop it, Mr. Holmes,' said he, swaying his face about. 'You
-really must, you know.'
-
-"'After Monday,' said I.
-
-"'Tut, tut,' said he. 'I am quite sure that a man of your intelligence
-will see that there can be but one outcome to this affair. It is
-necessary that you should withdraw. You have worked things in such a
-fashion that we have only one resource left. It has been an intellectual
-treat to me to see the way in which you have grappled with this affair,
-and I say, unaffectedly, that it would be a grief to me to be forced
-to take any extreme measure. You smile, sir, but I assure you that it
-really would.'
-
-"'Danger is part of my trade,' I remarked.
-
-"'That is not danger,' said he. 'It is inevitable destruction. You stand
-in the way not merely of an individual, but of a mighty organization,
-the full extent of which you, with all your cleverness, have been unable
-to realize. You must stand clear, Mr. Holmes, or be trodden under foot.'
-
-"'I am afraid,' said I, rising, 'that in the pleasure of this
-conversation I am neglecting business of importance which awaits me
-elsewhere.'
-
-"He rose also and looked at me in silence, shaking his head sadly.
-
-"'Well, well,' said he, at last. 'It seems a pity, but I have done
-what I could. I know every move of your game. You can do nothing before
-Monday. It has been a duel between you and me, Mr. Holmes. You hope to
-place me in the dock. I tell you that I will never stand in the dock.
-You hope to beat me. I tell you that you will never beat me. If you are
-clever enough to bring destruction upon me, rest assured that I shall do
-as much to you.'
-
-"'You have paid me several compliments, Mr. Moriarty,' said I. 'Let me
-pay you one in return when I say that if I were assured of the former
-eventuality I would, in the interests of the public, cheerfully accept
-the latter.'
-
-"'I can promise you the one, but not the other,' he snarled, and so
-turned his rounded back upon me, and went peering and blinking out of
-the room.
-
-"That was my singular interview with Professor Moriarty. I confess that
-it left an unpleasant effect upon my mind. His soft, precise fashion
-of speech leaves a conviction of sincerity which a mere bully could
-not produce. Of course, you will say: 'Why not take police precautions
-against him?' the reason is that I am well convinced that it is from his
-agents the blow will fall. I have the best proofs that it would be so."
-
-"You have already been assaulted?"
-
-"My dear Watson, Professor Moriarty is not a man who lets the grass grow
-under his feet. I went out about mid-day to transact some business in
-Oxford Street. As I passed the corner which leads from Bentinck Street
-on to the Welbeck Street crossing a two-horse van furiously driven
-whizzed round and was on me like a flash. I sprang for the foot-path
-and saved myself by the fraction of a second. The van dashed round by
-Marylebone Lane and was gone in an instant. I kept to the pavement after
-that, Watson, but as I walked down Vere Street a brick came down from
-the roof of one of the houses, and was shattered to fragments at my
-feet. I called the police and had the place examined. There were slates
-and bricks piled up on the roof preparatory to some repairs, and they
-would have me believe that the wind had toppled over one of these. Of
-course I knew better, but I could prove nothing. I took a cab after that
-and reached my brother's rooms in Pall Mall, where I spent the day. Now
-I have come round to you, and on my way I was attacked by a rough with a
-bludgeon. I knocked him down, and the police have him in custody; but
-I can tell you with the most absolute confidence that no possible
-connection will ever be traced between the gentleman upon whose front
-teeth I have barked my knuckles and the retiring mathematical coach, who
-is, I dare say, working out problems upon a black-board ten miles away.
-You will not wonder, Watson, that my first act on entering your rooms
-was to close your shutters, and that I have been compelled to ask your
-permission to leave the house by some less conspicuous exit than the
-front door."
-
-I had often admired my friend's courage, but never more than now, as he
-sat quietly checking off a series of incidents which must have combined
-to make up a day of horror.
-
-"You will spend the night here?" I said.
-
-"No, my friend, you might find me a dangerous guest. I have my plans
-laid, and all will be well. Matters have gone so far now that they can
-move without my help as far as the arrest goes, though my presence is
-necessary for a conviction. It is obvious, therefore, that I cannot do
-better than get away for the few days which remain before the police are
-at liberty to act. It would be a great pleasure to me, therefore, if you
-could come on to the Continent with me."
-
-"The practice is quiet," said I, "and I have an accommodating neighbor.
-I should be glad to come."
-
-"And to start to-morrow morning?"
-
-"If necessary."
-
-"Oh yes, it is most necessary. Then these are your instructions, and I
-beg, my dear Watson, that you will obey them to the letter, for you are
-now playing a double-handed game with me against the cleverest rogue and
-the most powerful syndicate of criminals in Europe. Now listen! You
-will dispatch whatever luggage you intend to take by a trusty messenger
-unaddressed to Victoria to-night. In the morning you will send for a
-hansom, desiring your man to take neither the first nor the second which
-may present itself. Into this hansom you will jump, and you will drive
-to the Strand end of the Lowther Arcade, handing the address to the
-cabman upon a slip of paper, with a request that he will not throw it
-away. Have your fare ready, and the instant that your cab stops,
-dash through the Arcade, timing yourself to reach the other side at a
-quarter-past nine. You will find a small brougham waiting close to the
-curb, driven by a fellow with a heavy black cloak tipped at the collar
-with red. Into this you will step, and you will reach Victoria in time
-for the Continental express."
-
-"Where shall I meet you?"
-
-"At the station. The second first-class carriage from the front will be
-reserved for us."
-
-"The carriage is our rendezvous, then?"
-
-"Yes."
-
-It was in vain that I asked Holmes to remain for the evening. It was
-evident to me that he thought he might bring trouble to the roof he was
-under, and that that was the motive which impelled him to go. With a few
-hurried words as to our plans for the morrow he rose and came out with
-me into the garden, clambering over the wall which leads into Mortimer
-Street, and immediately whistling for a hansom, in which I heard him
-drive away.
-
-In the morning I obeyed Holmes's injunctions to the letter. A hansom was
-procured with such precaution as would prevent its being one which was
-placed ready for us, and I drove immediately after breakfast to the
-Lowther Arcade, through which I hurried at the top of my speed. A
-brougham was waiting with a very massive driver wrapped in a dark cloak,
-who, the instant that I had stepped in, whipped up the horse and rattled
-off to Victoria Station. On my alighting there he turned the carriage,
-and dashed away again without so much as a look in my direction.
-
-So far all had gone admirably. My luggage was waiting for me, and I had
-no difficulty in finding the carriage which Holmes had indicated, the
-less so as it was the only one in the train which was marked "Engaged."
-My only source of anxiety now was the non-appearance of Holmes. The
-station clock marked only seven minutes from the time when we were
-due to start. In vain I searched among the groups of travellers and
-leave-takers for the lithe figure of my friend. There was no sign of
-him. I spent a few minutes in assisting a venerable Italian priest, who
-was endeavoring to make a porter understand, in his broken English,
-that his luggage was to be booked through to Paris. Then, having taken
-another look round, I returned to my carriage, where I found that the
-porter, in spite of the ticket, had given me my decrepit Italian friend
-as a traveling companion. It was useless for me to explain to him that
-his presence was an intrusion, for my Italian was even more limited than
-his English, so I shrugged my shoulders resignedly, and continued to
-look out anxiously for my friend. A chill of fear had come over me, as I
-thought that his absence might mean that some blow had fallen during the
-night. Already the doors had all been shut and the whistle blown, when--
-
-"My dear Watson," said a voice, "you have not even condescended to say
-good-morning."
-
-I turned in uncontrollable astonishment. The aged ecclesiastic had
-turned his face towards me. For an instant the wrinkles were smoothed
-away, the nose drew away from the chin, the lower lip ceased to protrude
-and the mouth to mumble, the dull eyes regained their fire, the drooping
-figure expanded. The next the whole frame collapsed again, and Holmes
-had gone as quickly as he had come.
-
-"Good heavens!" I cried; "how you startled me!"
-
-"Every precaution is still necessary," he whispered. "I have reason to
-think that they are hot upon our trail. Ah, there is Moriarty himself."
-
-The train had already begun to move as Holmes spoke. Glancing back, I
-saw a tall man pushing his way furiously through the crowd, and waving
-his hand as if he desired to have the train stopped. It was too late,
-however, for we were rapidly gathering momentum, and an instant later
-had shot clear of the station.
-
-"With all our precautions, you see that we have cut it rather fine,"
-said Holmes, laughing. He rose, and throwing off the black cassock and
-hat which had formed his disguise, he packed them away in a hand-bag.
-
-"Have you seen the morning paper, Watson?"
-
-"No."
-
-"You haven't' seen about Baker Street, then?"
-
-"Baker Street?"
-
-"They set fire to our rooms last night. No great harm was done."
-
-"Good heavens, Holmes! this is intolerable."
-
-"They must have lost my track completely after their bludgeon-man was
-arrested. Otherwise they could not have imagined that I had returned
-to my rooms. They have evidently taken the precaution of watching you,
-however, and that is what has brought Moriarty to Victoria. You could
-not have made any slip in coming?"
-
-"I did exactly what you advised."
-
-"Did you find your brougham?"
-
-"Yes, it was waiting."
-
-"Did you recognize your coachman?"
-
-"No."
-
-"It was my brother Mycroft. It is an advantage to get about in such a
-case without taking a mercenary into your confidence. But we must plan
-what we are to do about Moriarty now."
-
-"As this is an express, and as the boat runs in connection with it, I
-should think we have shaken him off very effectively."
-
-"My dear Watson, you evidently did not realize my meaning when I said
-that this man may be taken as being quite on the same intellectual plane
-as myself. You do not imagine that if I were the pursuer I should allow
-myself to be baffled by so slight an obstacle. Why, then, should you
-think so meanly of him?"
-
-"What will he do?"
-
-"What I should do?"
-
-"What would you do, then?"
-
-"Engage a special."
-
-"But it must be late."
-
-"By no means. This train stops at Canterbury; and there is always at
-least a quarter of an hour's delay at the boat. He will catch us there."
-
-"One would think that we were the criminals. Let us have him arrested on
-his arrival."
-
-"It would be to ruin the work of three months. We should get the big
-fish, but the smaller would dart right and left out of the net. On
-Monday we should have them all. No, an arrest is inadmissible."
-
-"What then?"
-
-"We shall get out at Canterbury."
-
-"And then?"
-
-"Well, then we must make a cross-country journey to Newhaven, and so
-over to Dieppe. Moriarty will again do what I should do. He will get on
-to Paris, mark down our luggage, and wait for two days at the depot.
-In the meantime we shall treat ourselves to a couple of carpet-bags,
-encourage the manufactures of the countries through which we travel, and
-make our way at our leisure into Switzerland, via Luxembourg and Basle."
-
-At Canterbury, therefore, we alighted, only to find that we should have
-to wait an hour before we could get a train to Newhaven.
-
-I was still looking rather ruefully after the rapidly disappearing
-luggage-van which contained my wardrobe, when Holmes pulled my sleeve
-and pointed up the line.
-
-"Already, you see," said he.
-
-Far away, from among the Kentish woods there rose a thin spray of smoke.
-A minute later a carriage and engine could be seen flying along the open
-curve which leads to the station. We had hardly time to take our place
-behind a pile of luggage when it passed with a rattle and a roar,
-beating a blast of hot air into our faces.
-
-"There he goes," said Holmes, as we watched the carriage swing and
-rock over the points. "There are limits, you see, to our friend's
-intelligence. It would have been a coup-de-maitre had he deduced what I
-would deduce and acted accordingly."
-
-"And what would he have done had he overtaken us?"
-
-"There cannot be the least doubt that he would have made a murderous
-attack upon me. It is, however, a game at which two may play. The
-question now is whether we should take a premature lunch here, or run
-our chance of starving before we reach the buffet at Newhaven."
-
-
-We made our way to Brussels that night and spent two days there, moving
-on upon the third day as far as Strasburg. On the Monday morning Holmes
-had telegraphed to the London police, and in the evening we found a
-reply waiting for us at our hotel. Holmes tore it open, and then with a
-bitter curse hurled it into the grate.
-
-"I might have known it!" he groaned. "He has escaped!"
-
-"Moriarty?"
-
-"They have secured the whole gang with the exception of him. He has
-given them the slip. Of course, when I had left the country there was no
-one to cope with him. But I did think that I had put the game in their
-hands. I think that you had better return to England, Watson."
-
-"Why?"
-
-"Because you will find me a dangerous companion now. This man's
-occupation is gone. He is lost if he returns to London. If I read his
-character right he will devote his whole energies to revenging himself
-upon me. He said as much in our short interview, and I fancy that he
-meant it. I should certainly recommend you to return to your practice."
-
-It was hardly an appeal to be successful with one who was an
-old campaigner as well as an old friend. We sat in the Strasburg
-salle-à-manger arguing the question for half an hour, but the same night
-we had resumed our journey and were well on our way to Geneva.
-
-For a charming week we wandered up the Valley of the Rhone, and then,
-branching off at Leuk, we made our way over the Gemmi Pass, still deep
-in snow, and so, by way of Interlaken, to Meiringen. It was a lovely
-trip, the dainty green of the spring below, the virgin white of the
-winter above; but it was clear to me that never for one instant did
-Holmes forget the shadow which lay across him. In the homely Alpine
-villages or in the lonely mountain passes, I could tell by his quick
-glancing eyes and his sharp scrutiny of every face that passed us,
-that he was well convinced that, walk where we would, we could not walk
-ourselves clear of the danger which was dogging our footsteps.
-
-Once, I remember, as we passed over the Gemmi, and walked along
-the border of the melancholy Daubensee, a large rock which had been
-dislodged from the ridge upon our right clattered down and roared into
-the lake behind us. In an instant Holmes had raced up on to the ridge,
-and, standing upon a lofty pinnacle, craned his neck in every direction.
-It was in vain that our guide assured him that a fall of stones was a
-common chance in the spring-time at that spot. He said nothing, but
-he smiled at me with the air of a man who sees the fulfillment of that
-which he had expected.
-
-And yet for all his watchfulness he was never depressed. On the
-contrary, I can never recollect having seen him in such exuberant
-spirits. Again and again he recurred to the fact that if he could
-be assured that society was freed from Professor Moriarty he would
-cheerfully bring his own career to a conclusion.
-
-"I think that I may go so far as to say, Watson, that I have not lived
-wholly in vain," he remarked. "If my record were closed to-night I could
-still survey it with equanimity. The air of London is the sweeter for my
-presence. In over a thousand cases I am not aware that I have ever used
-my powers upon the wrong side. Of late I have been tempted to look into
-the problems furnished by nature rather than those more superficial ones
-for which our artificial state of society is responsible. Your memoirs
-will draw to an end, Watson, upon the day that I crown my career by
-the capture or extinction of the most dangerous and capable criminal in
-Europe."
-
-I shall be brief, and yet exact, in the little which remains for me to
-tell. It is not a subject on which I would willingly dwell, and yet I am
-conscious that a duty devolves upon me to omit no detail.
-
-It was on the 3d of May that we reached the little village of Meiringen,
-where we put up at the Englischer Hof, then kept by Peter Steiler the
-elder. Our landlord was an intelligent man, and spoke excellent English,
-having served for three years as waiter at the Grosvenor Hotel in
-London. At his advice, on the afternoon of the 4th we set off together,
-with the intention of crossing the hills and spending the night at the
-hamlet of Rosenlaui. We had strict injunctions, however, on no account
-to pass the falls of Reichenbach, which are about half-way up the hill,
-without making a small detour to see them.
-
-It is indeed, a fearful place. The torrent, swollen by the melting snow,
-plunges into a tremendous abyss, from which the spray rolls up like the
-smoke from a burning house. The shaft into which the river hurls itself
-is an immense chasm, lined by glistening coal-black rock, and narrowing
-into a creaming, boiling pit of incalculable depth, which brims over and
-shoots the stream onward over its jagged lip. The long sweep of green
-water roaring forever down, and the thick flickering curtain of spray
-hissing forever upward, turn a man giddy with their constant whirl and
-clamor. We stood near the edge peering down at the gleam of the breaking
-water far below us against the black rocks, and listening to the
-half-human shout which came booming up with the spray out of the abyss.
-
-The path has been cut half-way round the fall to afford a complete view,
-but it ends abruptly, and the traveler has to return as he came. We had
-turned to do so, when we saw a Swiss lad come running along it with
-a letter in his hand. It bore the mark of the hotel which we had just
-left, and was addressed to me by the landlord. It appeared that within a
-very few minutes of our leaving, an English lady had arrived who was in
-the last stage of consumption. She had wintered at Davos Platz, and was
-journeying now to join her friends at Lucerne, when a sudden hemorrhage
-had overtaken her. It was thought that she could hardly live a few
-hours, but it would be a great consolation to her to see an English
-doctor, and, if I would only return, etc. The good Steiler assured me
-in a postscript that he would himself look upon my compliance as a very
-great favor, since the lady absolutely refused to see a Swiss physician,
-and he could not but feel that he was incurring a great responsibility.
-
-The appeal was one which could not be ignored. It was impossible to
-refuse the request of a fellow-countrywoman dying in a strange land. Yet
-I had my scruples about leaving Holmes. It was finally agreed, however,
-that he should retain the young Swiss messenger with him as guide and
-companion while I returned to Meiringen. My friend would stay some
-little time at the fall, he said, and would then walk slowly over the
-hill to Rosenlaui, where I was to rejoin him in the evening. As I turned
-away I saw Holmes, with his back against a rock and his arms folded,
-gazing down at the rush of the waters. It was the last that I was ever
-destined to see of him in this world.
-
-When I was near the bottom of the descent I looked back. It was
-impossible, from that position, to see the fall, but I could see the
-curving path which winds over the shoulder of the hill and leads to it.
-Along this a man was, I remember, walking very rapidly.
-
-I could see his black figure clearly outlined against the green behind
-him. I noted him, and the energy with which he walked but he passed from
-my mind again as I hurried on upon my errand.
-
-It may have been a little over an hour before I reached Meiringen. Old
-Steiler was standing at the porch of his hotel.
-
-"Well," said I, as I came hurrying up, "I trust that she is no worse?"
-
-A look of surprise passed over his face, and at the first quiver of his
-eyebrows my heart turned to lead in my breast.
-
-"You did not write this?" I said, pulling the letter from my pocket.
-"There is no sick Englishwoman in the hotel?"
-
-"Certainly not!" he cried. "But it has the hotel mark upon it! Ha, it
-must have been written by that tall Englishman who came in after you had
-gone. He said--"
-
-But I waited for none of the landlord's explanations. In a tingle of
-fear I was already running down the village street, and making for the
-path which I had so lately descended. It had taken me an hour to come
-down. For all my efforts two more had passed before I found myself at
-the fall of Reichenbach once more. There was Holmes's Alpine-stock still
-leaning against the rock by which I had left him. But there was no sign
-of him, and it was in vain that I shouted. My only answer was my own
-voice reverberating in a rolling echo from the cliffs around me.
-
-It was the sight of that Alpine-stock which turned me cold and sick.
-He had not gone to Rosenlaui, then. He had remained on that three-foot
-path, with sheer wall on one side and sheer drop on the other, until his
-enemy had overtaken him. The young Swiss had gone too. He had probably
-been in the pay of Moriarty, and had left the two men together. And then
-what had happened? Who was to tell us what had happened then?
-
-I stood for a minute or two to collect myself, for I was dazed with the
-horror of the thing. Then I began to think of Holmes's own methods and
-to try to practise them in reading this tragedy. It was, alas, only too
-easy to do. During our conversation we had not gone to the end of the
-path, and the Alpine-stock marked the place where we had stood. The
-blackish soil is kept forever soft by the incessant drift of spray,
-and a bird would leave its tread upon it. Two lines of footmarks were
-clearly marked along the farther end of the path, both leading away from
-me. There were none returning. A few yards from the end the soil was
-all ploughed up into a patch of mud, and the branches and ferns which
-fringed the chasm were torn and bedraggled. I lay upon my face and
-peered over with the spray spouting up all around me. It had darkened
-since I left, and now I could only see here and there the glistening of
-moisture upon the black walls, and far away down at the end of the shaft
-the gleam of the broken water. I shouted; but only the same half-human
-cry of the fall was borne back to my ears.
-
-But it was destined that I should after all have a last word of greeting
-from my friend and comrade. I have said that his Alpine-stock had been
-left leaning against a rock which jutted on to the path. From the top of
-this bowlder the gleam of something bright caught my eye, and, raising
-my hand, I found that it came from the silver cigarette-case which he
-used to carry. As I took it up a small square of paper upon which it
-had lain fluttered down on to the ground. Unfolding it, I found that it
-consisted of three pages torn from his note-book and addressed to me. It
-was characteristic of the man that the direction was a precise, and the
-writing as firm and clear, as though it had been written in his study.
-
-My dear Watson [it said], I write these few lines through the courtesy
-of Mr. Moriarty, who awaits my convenience for the final discussion of
-those questions which lie between us. He has been giving me a sketch
-of the methods by which he avoided the English police and kept himself
-informed of our movements. They certainly confirm the very high opinion
-which I had formed of his abilities. I am pleased to think that I shall
-be able to free society from any further effects of his presence, though
-I fear that it is at a cost which will give pain to my friends, and
-especially, my dear Watson, to you. I have already explained to you,
-however, that my career had in any case reached its crisis, and that
-no possible conclusion to it could be more congenial to me than this.
-Indeed, if I may make a full confession to you, I was quite convinced
-that the letter from Meiringen was a hoax, and I allowed you to depart
-on that errand under the persuasion that some development of this sort
-would follow. Tell Inspector Patterson that the papers which he needs
-to convict the gang are in pigeonhole M., done up in a blue envelope
-and inscribed "Moriarty." I made every disposition of my property before
-leaving England, and handed it to my brother Mycroft. Pray give my
-greetings to Mrs. Watson, and believe me to be, my dear fellow,
-
-Very sincerely yours,
-
-Sherlock Holmes
-
-
-A few words may suffice to tell the little that remains. An examination
-by experts leaves little doubt that a personal contest between the two
-men ended, as it could hardly fail to end in such a situation, in their
-reeling over, locked in each other's arms. Any attempt at recovering the
-bodies was absolutely hopeless, and there, deep down in that dreadful
-caldron of swirling water and seething foam, will lie for all time the
-most dangerous criminal and the foremost champion of the law of their
-generation. The Swiss youth was never found again, and there can be no
-doubt that he was one of the numerous agents whom Moriarty kept in this
-employ. As to the gang, it will be within the memory of the public
-how completely the evidence which Holmes had accumulated exposed their
-organization, and how heavily the hand of the dead man weighed
-upon them. Of their terrible chief few details came out during the
-proceedings, and if I have now been compelled to make a clear statement
-of his career it is due to those injudicious champions who have
-endeavored to clear his memory by attacks upon him whom I shall ever
-regard as the best and the wisest man whom I have ever known.
-
-
-
-
-
-End of the Project Gutenberg EBook of Memoirs of Sherlock Holmes, by
-Sir Arthur Conan Doyle
-
-*** END OF THIS PROJECT GUTENBERG EBOOK MEMOIRS OF SHERLOCK HOLMES ***
-
-***** This file should be named 834-8.txt or 834-8.zip *****
-This and all associated files of various formats will be found in:
- http://www.gutenberg.org/8/3/834/
-
-Produced by Angela M. Cable
-
-Updated editions will replace the previous one--the old editions
-will be renamed.
-
-Creating the works from public domain print editions means that no
-one owns a United States copyright in these works, so the Foundation
-(and you!) can copy and distribute it in the United States without
-permission and without paying copyright royalties. Special rules,
-set forth in the General Terms of Use part of this license, apply to
-copying and distributing Project Gutenberg-tm electronic works to
-protect the PROJECT GUTENBERG-tm concept and trademark. Project
-Gutenberg is a registered trademark, and may not be used if you
-charge for the eBooks, unless you receive specific permission. If you
-do not charge anything for copies of this eBook, complying with the
-rules is very easy. You may use this eBook for nearly any purpose
-such as creation of derivative works, reports, performances and
-research. They may be modified and printed and given away--you may do
-practically ANYTHING with public domain eBooks. Redistribution is
-subject to the trademark license, especially commercial
-redistribution.
-
-
-
-*** START: FULL LICENSE ***
-
-THE FULL PROJECT GUTENBERG LICENSE
-PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
-
-To protect the Project Gutenberg-tm mission of promoting the free
-distribution of electronic works, by using or distributing this work
-(or any other work associated in any way with the phrase "Project
-Gutenberg"), you agree to comply with all the terms of the Full Project
-Gutenberg-tm License (available with this file or online at
-http://gutenberg.org/license).
-
-
-Section 1. General Terms of Use and Redistributing Project Gutenberg-tm
-electronic works
-
-1.A. By reading or using any part of this Project Gutenberg-tm
-electronic work, you indicate that you have read, understand, agree to
-and accept all the terms of this license and intellectual property
-(trademark/copyright) agreement. If you do not agree to abide by all
-the terms of this agreement, you must cease using and return or destroy
-all copies of Project Gutenberg-tm electronic works in your possession.
-If you paid a fee for obtaining a copy of or access to a Project
-Gutenberg-tm electronic work and you do not agree to be bound by the
-terms of this agreement, you may obtain a refund from the person or
-entity to whom you paid the fee as set forth in paragraph 1.E.8.
-
-1.B. "Project Gutenberg" is a registered trademark. It may only be
-used on or associated in any way with an electronic work by people who
-agree to be bound by the terms of this agreement. There are a few
-things that you can do with most Project Gutenberg-tm electronic works
-even without complying with the full terms of this agreement. See
-paragraph 1.C below. There are a lot of things you can do with Project
-Gutenberg-tm electronic works if you follow the terms of this agreement
-and help preserve free future access to Project Gutenberg-tm electronic
-works. See paragraph 1.E below.
-
-1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation"
-or PGLAF), owns a compilation copyright in the collection of Project
-Gutenberg-tm electronic works. Nearly all the individual works in the
-collection are in the public domain in the United States. If an
-individual work is in the public domain in the United States and you are
-located in the United States, we do not claim a right to prevent you from
-copying, distributing, performing, displaying or creating derivative
-works based on the work as long as all references to Project Gutenberg
-are removed. Of course, we hope that you will support the Project
-Gutenberg-tm mission of promoting free access to electronic works by
-freely sharing Project Gutenberg-tm works in compliance with the terms of
-this agreement for keeping the Project Gutenberg-tm name associated with
-the work. You can easily comply with the terms of this agreement by
-keeping this work in the same format with its attached full Project
-Gutenberg-tm License when you share it without charge with others.
-
-1.D. The copyright laws of the place where you are located also govern
-what you can do with this work. Copyright laws in most countries are in
-a constant state of change. If you are outside the United States, check
-the laws of your country in addition to the terms of this agreement
-before downloading, copying, displaying, performing, distributing or
-creating derivative works based on this work or any other Project
-Gutenberg-tm work. The Foundation makes no representations concerning
-the copyright status of any work in any country outside the United
-States.
-
-1.E. Unless you have removed all references to Project Gutenberg:
-
-1.E.1. The following sentence, with active links to, or other immediate
-access to, the full Project Gutenberg-tm License must appear prominently
-whenever any copy of a Project Gutenberg-tm work (any work on which the
-phrase "Project Gutenberg" appears, or with which the phrase "Project
-Gutenberg" is associated) is accessed, displayed, performed, viewed,
-copied or distributed:
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever. You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.org
-
-1.E.2. If an individual Project Gutenberg-tm electronic work is derived
-from the public domain (does not contain a notice indicating that it is
-posted with permission of the copyright holder), the work can be copied
-and distributed to anyone in the United States without paying any fees
-or charges. If you are redistributing or providing access to a work
-with the phrase "Project Gutenberg" associated with or appearing on the
-work, you must comply either with the requirements of paragraphs 1.E.1
-through 1.E.7 or obtain permission for the use of the work and the
-Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or
-1.E.9.
-
-1.E.3. If an individual Project Gutenberg-tm electronic work is posted
-with the permission of the copyright holder, your use and distribution
-must comply with both paragraphs 1.E.1 through 1.E.7 and any additional
-terms imposed by the copyright holder. Additional terms will be linked
-to the Project Gutenberg-tm License for all works posted with the
-permission of the copyright holder found at the beginning of this work.
-
-1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm
-License terms from this work, or any files containing a part of this
-work or any other work associated with Project Gutenberg-tm.
-
-1.E.5. Do not copy, display, perform, distribute or redistribute this
-electronic work, or any part of this electronic work, without
-prominently displaying the sentence set forth in paragraph 1.E.1 with
-active links or immediate access to the full terms of the Project
-Gutenberg-tm License.
-
-1.E.6. You may convert to and distribute this work in any binary,
-compressed, marked up, nonproprietary or proprietary form, including any
-word processing or hypertext form. However, if you provide access to or
-distribute copies of a Project Gutenberg-tm work in a format other than
-"Plain Vanilla ASCII" or other format used in the official version
-posted on the official Project Gutenberg-tm web site (www.gutenberg.org),
-you must, at no additional cost, fee or expense to the user, provide a
-copy, a means of exporting a copy, or a means of obtaining a copy upon
-request, of the work in its original "Plain Vanilla ASCII" or other
-form. Any alternate format must include the full Project Gutenberg-tm
-License as specified in paragraph 1.E.1.
-
-1.E.7. Do not charge a fee for access to, viewing, displaying,
-performing, copying or distributing any Project Gutenberg-tm works
-unless you comply with paragraph 1.E.8 or 1.E.9.
-
-1.E.8. You may charge a reasonable fee for copies of or providing
-access to or distributing Project Gutenberg-tm electronic works provided
-that
-
-- You pay a royalty fee of 20% of the gross profits you derive from
- the use of Project Gutenberg-tm works calculated using the method
- you already use to calculate your applicable taxes. The fee is
- owed to the owner of the Project Gutenberg-tm trademark, but he
- has agreed to donate royalties under this paragraph to the
- Project Gutenberg Literary Archive Foundation. Royalty payments
- must be paid within 60 days following each date on which you
- prepare (or are legally required to prepare) your periodic tax
- returns. Royalty payments should be clearly marked as such and
- sent to the Project Gutenberg Literary Archive Foundation at the
- address specified in Section 4, "Information about donations to
- the Project Gutenberg Literary Archive Foundation."
-
-- You provide a full refund of any money paid by a user who notifies
- you in writing (or by e-mail) within 30 days of receipt that s/he
- does not agree to the terms of the full Project Gutenberg-tm
- License. You must require such a user to return or
- destroy all copies of the works possessed in a physical medium
- and discontinue all use of and all access to other copies of
- Project Gutenberg-tm works.
-
-- You provide, in accordance with paragraph 1.F.3, a full refund of any
- money paid for a work or a replacement copy, if a defect in the
- electronic work is discovered and reported to you within 90 days
- of receipt of the work.
-
-- You comply with all other terms of this agreement for free
- distribution of Project Gutenberg-tm works.
-
-1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm
-electronic work or group of works on different terms than are set
-forth in this agreement, you must obtain permission in writing from
-both the Project Gutenberg Literary Archive Foundation and Michael
-Hart, the owner of the Project Gutenberg-tm trademark. Contact the
-Foundation as set forth in Section 3 below.
-
-1.F.
-
-1.F.1. Project Gutenberg volunteers and employees expend considerable
-effort to identify, do copyright research on, transcribe and proofread
-public domain works in creating the Project Gutenberg-tm
-collection. Despite these efforts, Project Gutenberg-tm electronic
-works, and the medium on which they may be stored, may contain
-"Defects," such as, but not limited to, incomplete, inaccurate or
-corrupt data, transcription errors, a copyright or other intellectual
-property infringement, a defective or damaged disk or other medium, a
-computer virus, or computer codes that damage or cannot be read by
-your equipment.
-
-1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right
-of Replacement or Refund" described in paragraph 1.F.3, the Project
-Gutenberg Literary Archive Foundation, the owner of the Project
-Gutenberg-tm trademark, and any other party distributing a Project
-Gutenberg-tm electronic work under this agreement, disclaim all
-liability to you for damages, costs and expenses, including legal
-fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
-LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE
-PROVIDED IN PARAGRAPH F3. YOU AGREE THAT THE FOUNDATION, THE
-TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE
-LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
-INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a
-defect in this electronic work within 90 days of receiving it, you can
-receive a refund of the money (if any) you paid for it by sending a
-written explanation to the person you received the work from. If you
-received the work on a physical medium, you must return the medium with
-your written explanation. The person or entity that provided you with
-the defective work may elect to provide a replacement copy in lieu of a
-refund. If you received the work electronically, the person or entity
-providing it to you may choose to give you a second opportunity to
-receive the work electronically in lieu of a refund. If the second copy
-is also defective, you may demand a refund in writing without further
-opportunities to fix the problem.
-
-1.F.4. Except for the limited right of replacement or refund set forth
-in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER
-WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE.
-
-1.F.5. Some states do not allow disclaimers of certain implied
-warranties or the exclusion or limitation of certain types of damages.
-If any disclaimer or limitation set forth in this agreement violates the
-law of the state applicable to this agreement, the agreement shall be
-interpreted to make the maximum disclaimer or limitation permitted by
-the applicable state law. The invalidity or unenforceability of any
-provision of this agreement shall not void the remaining provisions.
-
-1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the
-trademark owner, any agent or employee of the Foundation, anyone
-providing copies of Project Gutenberg-tm electronic works in accordance
-with this agreement, and any volunteers associated with the production,
-promotion and distribution of Project Gutenberg-tm electronic works,
-harmless from all liability, costs and expenses, including legal fees,
-that arise directly or indirectly from any of the following which you do
-or cause to occur: (a) distribution of this or any Project Gutenberg-tm
-work, (b) alteration, modification, or additions or deletions to any
-Project Gutenberg-tm work, and (c) any Defect you cause.
-
-
-Section 2. Information about the Mission of Project Gutenberg-tm
-
-Project Gutenberg-tm is synonymous with the free distribution of
-electronic works in formats readable by the widest variety of computers
-including obsolete, old, middle-aged and new computers. It exists
-because of the efforts of hundreds of volunteers and donations from
-people in all walks of life.
-
-Volunteers and financial support to provide volunteers with the
-assistance they need, is critical to reaching Project Gutenberg-tm's
-goals and ensuring that the Project Gutenberg-tm collection will
-remain freely available for generations to come. In 2001, the Project
-Gutenberg Literary Archive Foundation was created to provide a secure
-and permanent future for Project Gutenberg-tm and future generations.
-To learn more about the Project Gutenberg Literary Archive Foundation
-and how your efforts and donations can help, see Sections 3 and 4
-and the Foundation web page at http://www.pglaf.org.
-
-
-Section 3. Information about the Project Gutenberg Literary Archive
-Foundation
-
-The Project Gutenberg Literary Archive Foundation is a non profit
-501(c)(3) educational corporation organized under the laws of the
-state of Mississippi and granted tax exempt status by the Internal
-Revenue Service. The Foundation's EIN or federal tax identification
-number is 64-6221541. Its 501(c)(3) letter is posted at
-http://pglaf.org/fundraising. Contributions to the Project Gutenberg
-Literary Archive Foundation are tax deductible to the full extent
-permitted by U.S. federal laws and your state's laws.
-
-The Foundation's principal office is located at 4557 Melan Dr. S.
-Fairbanks, AK, 99712., but its volunteers and employees are scattered
-throughout numerous locations. Its business office is located at
-809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email
-business@pglaf.org. Email contact links and up to date contact
-information can be found at the Foundation's web site and official
-page at http://pglaf.org
-
-For additional contact information:
- Dr. Gregory B. Newby
- Chief Executive and Director
- gbnewby@pglaf.org
-
-
-Section 4. Information about Donations to the Project Gutenberg
-Literary Archive Foundation
-
-Project Gutenberg-tm depends upon and cannot survive without wide
-spread public support and donations to carry out its mission of
-increasing the number of public domain and licensed works that can be
-freely distributed in machine readable form accessible by the widest
-array of equipment including outdated equipment. Many small donations
-($1 to $5,000) are particularly important to maintaining tax exempt
-status with the IRS.
-
-The Foundation is committed to complying with the laws regulating
-charities and charitable donations in all 50 states of the United
-States. Compliance requirements are not uniform and it takes a
-considerable effort, much paperwork and many fees to meet and keep up
-with these requirements. We do not solicit donations in locations
-where we have not received written confirmation of compliance. To
-SEND DONATIONS or determine the status of compliance for any
-particular state visit http://pglaf.org
-
-While we cannot and do not solicit contributions from states where we
-have not met the solicitation requirements, we know of no prohibition
-against accepting unsolicited donations from donors in such states who
-approach us with offers to donate.
-
-International donations are gratefully accepted, but we cannot make
-any statements concerning tax treatment of donations received from
-outside the United States. U.S. laws alone swamp our small staff.
-
-Please check the Project Gutenberg Web pages for current donation
-methods and addresses. Donations are accepted in a number of other
-ways including checks, online payments and credit card donations.
-To donate, please visit: http://pglaf.org/donate
-
-
-Section 5. General Information About Project Gutenberg-tm electronic
-works.
-
-Professor Michael S. Hart is the originator of the Project Gutenberg-tm
-concept of a library of electronic works that could be freely shared
-with anyone. For thirty years, he produced and distributed Project
-Gutenberg-tm eBooks with only a loose network of volunteer support.
-
-
-Project Gutenberg-tm eBooks are often created from several printed
-editions, all of which are confirmed as Public Domain in the U.S.
-unless a copyright notice is included. Thus, we do not necessarily
-keep eBooks in compliance with any particular paper edition.
-
-
-Most people start at our Web site which has the main PG search facility:
-
- http://www.gutenberg.org
-
-This Web site includes information about Project Gutenberg-tm,
-including how to make donations to the Project Gutenberg Literary
-Archive Foundation, how to help produce our new eBooks, and how to
-subscribe to our email newsletter to hear about new eBooks.
diff --git a/hyracks/hyracks-examples/text-example/textapp/pom.xml b/hyracks/hyracks-examples/text-example/textapp/pom.xml
deleted file mode 100644
index 27dc508..0000000
--- a/hyracks/hyracks-examples/text-example/textapp/pom.xml
+++ /dev/null
@@ -1,187 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>edu.uci.ics.hyracks.examples.text</groupId>
- <artifactId>textapp</artifactId>
- <name>textapp</name>
-
- <parent>
- <groupId>edu.uci.ics.hyracks.examples</groupId>
- <artifactId>text-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- </parent>
-
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <versionRange>[1.0.0,)</versionRange>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore />
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>target/application/lib</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
- <executions>
- <execution>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/app-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>edu.uci.ics.hyracks</groupId>
- <artifactId>hyracks-virtualcluster-maven-plugin</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <configuration>
- <hyracksServerHome>${basedir}/../../../hyracks-server/target/hyracks-server-${project.version}-binary-assembly</hyracksServerHome>
- <hyracksCLIHome>${basedir}/../../../hyracks-cli/target/hyracks-cli-${project.version}-binary-assembly</hyracksCLIHome>
- <jvmOptions>${jvm.extraargs}</jvmOptions>
- </configuration>
- <executions>
- <execution>
- <id>hyracks-cc-start</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-cc</goal>
- </goals>
- </execution>
- <execution>
- <id>hyracks-nc1-start</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-nc</goal>
- </goals>
- <configuration>
- <nodeId>NC1</nodeId>
- <dataIpAddress>127.0.0.1</dataIpAddress>
- <ccHost>localhost</ccHost>
- </configuration>
- </execution>
- <execution>
- <id>hyracks-nc2-start</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start-nc</goal>
- </goals>
- <configuration>
- <nodeId>NC2</nodeId>
- <dataIpAddress>127.0.0.1</dataIpAddress>
- <ccHost>localhost</ccHost>
- </configuration>
- </execution>
- <execution>
- <id>deploy-app</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>deploy-app</goal>
- </goals>
- <configuration>
- <ccHost>localhost</ccHost>
- <appName>text</appName>
- <harFile>${project.build.directory}/textapp-${project.version}-app-assembly.zip</harFile>
- </configuration>
- </execution>
- <execution>
- <id>stop-services</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>stop-services</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <fork>true</fork>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <version>2.8.1</version>
- <executions>
- <execution>
- <id>it</id>
- <phase>integration-test</phase>
- <goals>
- <goal>integration-test</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>edu.uci.ics.hyracks.examples.text</groupId>
- <artifactId>texthelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>edu.uci.ics.hyracks.examples.text</groupId>
- <artifactId>textclient</artifactId>
- <version>0.2.3-SNAPSHOT</version>
- <type>jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.2</version>
- <type>jar</type>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
diff --git a/hyracks/hyracks-examples/text-example/textapp/src/main/assembly/app-assembly.xml b/hyracks/hyracks-examples/text-example/textapp/src/main/assembly/app-assembly.xml
deleted file mode 100644
index 43ace6c..0000000
--- a/hyracks/hyracks-examples/text-example/textapp/src/main/assembly/app-assembly.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<assembly>
- <id>app-assembly</id>
- <formats>
- <format>zip</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/application/lib</directory>
- <outputDirectory>lib</outputDirectory>
- </fileSet>
- </fileSets>
-</assembly>
diff --git a/hyracks/hyracks-examples/text-example/textapp/src/test/java/edu/uci/ics/hyracks/examples/text/test/WordCountIT.java b/hyracks/hyracks-examples/text-example/textapp/src/test/java/edu/uci/ics/hyracks/examples/text/test/WordCountIT.java
deleted file mode 100644
index 9659288..0000000
--- a/hyracks/hyracks-examples/text-example/textapp/src/test/java/edu/uci/ics/hyracks/examples/text/test/WordCountIT.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package edu.uci.ics.hyracks.examples.text.test;
-
-import java.io.File;
-
-import org.junit.Test;
-
-import edu.uci.ics.hyracks.examples.text.client.WordCountMain;
-
-public class WordCountIT {
- @Test
- public void runWordCount() throws Exception {
- WordCountMain.main(new String[] { "-host", "localhost", "-infile-splits", getInfileSplits(), "-outfile-splits",
- getOutfileSplits(), "-algo", "-hash", "-app", "text" });
- }
-
- private String getInfileSplits() {
- return "NC1:" + new File("data/file1.txt").getAbsolutePath() + ",NC2:"
- + new File("data/file2.txt").getAbsolutePath();
- }
-
- private String getOutfileSplits() {
- return "NC1:" + new File("target/wc1.txt").getAbsolutePath() + ",NC2:"
- + new File("target/wc2.txt").getAbsolutePath();
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-examples/text-example/textclient/pom.xml b/hyracks/hyracks-examples/text-example/textclient/pom.xml
index 796c95c..633f480 100644
--- a/hyracks/hyracks-examples/text-example/textclient/pom.xml
+++ b/hyracks/hyracks-examples/text-example/textclient/pom.xml
@@ -7,20 +7,20 @@
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>text-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks.examples.text</groupId>
<artifactId>texthelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -32,8 +32,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-examples/text-example/texthelper/pom.xml b/hyracks/hyracks-examples/text-example/texthelper/pom.xml
index 121c785..5cf5da3 100644
--- a/hyracks/hyracks-examples/text-example/texthelper/pom.xml
+++ b/hyracks/hyracks-examples/text-example/texthelper/pom.xml
@@ -7,26 +7,26 @@
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>text-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
@@ -36,8 +36,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-examples/text-example/textserver/pom.xml b/hyracks/hyracks-examples/text-example/textserver/pom.xml
index 1b1f2d4..bfbb0f4 100644
--- a/hyracks/hyracks-examples/text-example/textserver/pom.xml
+++ b/hyracks/hyracks-examples/text-example/textserver/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks.examples.text</groupId>
<artifactId>textserver</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>textserver</name>
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>text-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -60,7 +60,7 @@
<plugin>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-virtualcluster-maven-plugin</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<configuration>
<hyracksServerHome>${basedir}/target/textserver-${project.version}-binary-assembly</hyracksServerHome>
<jvmOptions>${jvm.extraargs}</jvmOptions>
@@ -135,27 +135,27 @@
<dependency>
<groupId>edu.uci.ics.hyracks.examples.text</groupId>
<artifactId>texthelper</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks.examples.text</groupId>
<artifactId>textclient</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>test</scope>
</dependency>
diff --git a/hyracks/hyracks-examples/tpch-example/pom.xml b/hyracks/hyracks-examples/tpch-example/pom.xml
index 7d676dc..5389ca3 100644
--- a/hyracks/hyracks-examples/tpch-example/pom.xml
+++ b/hyracks/hyracks-examples/tpch-example/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-examples</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-examples/tpch-example/tpchclient/pom.xml b/hyracks/hyracks-examples/tpch-example/tpchclient/pom.xml
index 1e5e3c0..d6f1d17 100644
--- a/hyracks/hyracks-examples/tpch-example/tpchclient/pom.xml
+++ b/hyracks/hyracks-examples/tpch-example/tpchclient/pom.xml
@@ -6,20 +6,20 @@
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>tpch-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
@@ -29,8 +29,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-examples/tpch-example/tpchserver/pom.xml b/hyracks/hyracks-examples/tpch-example/tpchserver/pom.xml
index 94d897a..0110fc4 100644
--- a/hyracks/hyracks-examples/tpch-example/tpchserver/pom.xml
+++ b/hyracks/hyracks-examples/tpch-example/tpchserver/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks.examples.tpch</groupId>
<artifactId>tpchserver</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>tpchserver</name>
<parent>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>tpch-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -63,25 +63,25 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-hadoop-compat/pom.xml b/hyracks/hyracks-hadoop-compat/pom.xml
index 426a333..09d3127 100644
--- a/hyracks/hyracks-hadoop-compat/pom.xml
+++ b/hyracks/hyracks-hadoop-compat/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hadoop-compat</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-hadoop-compat</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -82,7 +82,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-hadoop</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-hdfs/hyracks-hdfs-0.20.2/pom.xml b/hyracks/hyracks-hdfs/hyracks-hdfs-0.20.2/pom.xml
index 3eb2316..c708b0d 100644
--- a/hyracks/hyracks-hdfs/hyracks-hdfs-0.20.2/pom.xml
+++ b/hyracks/hyracks-hdfs/hyracks-hdfs-0.20.2/pom.xml
@@ -1,14 +1,12 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>hyracks-hdfs-0.20.2</artifactId>
<name>hyracks-hdfs-0.20.2</name>
<parent>
<artifactId>hyracks-hdfs</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -100,7 +98,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-hdfs/hyracks-hdfs-0.23.1/pom.xml b/hyracks/hyracks-hdfs/hyracks-hdfs-0.23.1/pom.xml
index 2b05f44..9f96ac1 100644
--- a/hyracks/hyracks-hdfs/hyracks-hdfs-0.23.1/pom.xml
+++ b/hyracks/hyracks-hdfs/hyracks-hdfs-0.23.1/pom.xml
@@ -1,14 +1,12 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>hyracks-hdfs-0.23.1</artifactId>
<name>hyracks-hdfs-0.23.1</name>
<parent>
<artifactId>hyracks-hdfs</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
<plugins>
@@ -17,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -204,7 +202,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml b/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml
index bb0601f..2a4b0d1 100644
--- a/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml
+++ b/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml
@@ -1,14 +1,12 @@
<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>hyracks-hdfs-core</artifactId>
<name>hyracks-hdfs-core</name>
<parent>
<artifactId>hyracks-hdfs</artifactId>
<groupId>edu.uci.ics.hyracks</groupId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +16,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -67,7 +65,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-0.20.2</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -86,7 +84,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-0.20.2</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -105,7 +103,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-0.23.1</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -124,7 +122,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-0.23.1</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -143,7 +141,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-0.23.1</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -162,7 +160,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-0.23.1</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -180,31 +178,31 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/hyracks/hyracks-hdfs/hyracks-hdfs-core/src/main/java/edu/uci/ics/hyracks/hdfs/scheduler/RackAwareNcCollectionBuilder.java b/hyracks/hyracks-hdfs/hyracks-hdfs-core/src/main/java/edu/uci/ics/hyracks/hdfs/scheduler/RackAwareNcCollectionBuilder.java
index 2b9e899..fa5e7ae 100644
--- a/hyracks/hyracks-hdfs/hyracks-hdfs-core/src/main/java/edu/uci/ics/hyracks/hdfs/scheduler/RackAwareNcCollectionBuilder.java
+++ b/hyracks/hyracks-hdfs/hyracks-hdfs-core/src/main/java/edu/uci/ics/hyracks/hdfs/scheduler/RackAwareNcCollectionBuilder.java
@@ -38,6 +38,11 @@
String ipAddress = InetAddress.getByAddress(
ncNameToNcInfos.get(NCs[i]).getNetworkAddress().getIpAddress()).getHostAddress();
topology.lookupNetworkTerminal(ipAddress, path);
+ if (path.size() <= 0) {
+ // if the hyracks nc is not in the defined cluster
+ path.add(Integer.MIN_VALUE);
+ LOGGER.info(NCs[i] + "'s IP address is not in the cluster toplogy file!");
+ }
List<String> ncs = pathToNCs.get(path);
if (ncs == null) {
ncs = new ArrayList<String>();
@@ -70,6 +75,10 @@
String ipAddress = InetAddress.getByAddress(
ncNameToNcInfos.get(NCs[i]).getNetworkAddress().getIpAddress()).getHostAddress();
topology.lookupNetworkTerminal(ipAddress, path);
+ if (path.size() <= 0) {
+ // if the hyracks nc is not in the defined cluster
+ path.add(Integer.MIN_VALUE);
+ }
IntWritable availableSlot = availableIpsToSlots.get(path);
if (availableSlot == null) {
availableSlot = new IntWritable(slotLimit - workloads[i]);
diff --git a/hyracks/hyracks-hdfs/pom.xml b/hyracks/hyracks-hdfs/pom.xml
index 5ed76e9..bea1244 100644
--- a/hyracks/hyracks-hdfs/pom.xml
+++ b/hyracks/hyracks-hdfs/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-ipc/pom.xml b/hyracks/hyracks-ipc/pom.xml
index f12e10c..14121fd 100644
--- a/hyracks/hyracks-ipc/pom.xml
+++ b/hyracks/hyracks-ipc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -15,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-maven-plugins/hyracks-virtualcluster-maven-plugin/pom.xml b/hyracks/hyracks-maven-plugins/hyracks-virtualcluster-maven-plugin/pom.xml
index 64a3616..e8342a3 100644
--- a/hyracks/hyracks-maven-plugins/hyracks-virtualcluster-maven-plugin/pom.xml
+++ b/hyracks/hyracks-maven-plugins/hyracks-virtualcluster-maven-plugin/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-maven-plugins</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -17,8 +17,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-maven-plugins/pom.xml b/hyracks/hyracks-maven-plugins/pom.xml
index d9223ba..ee97d58 100644
--- a/hyracks/hyracks-maven-plugins/pom.xml
+++ b/hyracks/hyracks-maven-plugins/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<dependencies>
diff --git a/hyracks/hyracks-net/pom.xml b/hyracks/hyracks-net/pom.xml
index d2962c4..de2a2a0 100644
--- a/hyracks/hyracks-net/pom.xml
+++ b/hyracks/hyracks-net/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -15,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
diff --git a/hyracks/hyracks-server/pom.xml b/hyracks/hyracks-server/pom.xml
index 66d1c8d..85af7f2 100644
--- a/hyracks/hyracks-server/pom.xml
+++ b/hyracks/hyracks-server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -15,8 +15,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -74,14 +74,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-storage-am-btree/pom.xml b/hyracks/hyracks-storage-am-btree/pom.xml
index a1f362e..4555ea4 100644
--- a/hyracks/hyracks-storage-am-btree/pom.xml
+++ b/hyracks/hyracks-storage-am-btree/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-am-btree</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -29,28 +29,28 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-storage-am-common/pom.xml b/hyracks/hyracks-storage-am-common/pom.xml
index 93f2e90..48f91fa 100644
--- a/hyracks/hyracks-storage-am-common/pom.xml
+++ b/hyracks/hyracks-storage-am-common/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-am-common</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -29,28 +29,28 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-storage-am-invertedindex/pom.xml b/hyracks/hyracks-storage-am-invertedindex/pom.xml
index b8a7b7c..8fc8855 100644
--- a/hyracks/hyracks-storage-am-invertedindex/pom.xml
+++ b/hyracks/hyracks-storage-am-invertedindex/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-invertedindex</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-am-invertedindex</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -29,28 +29,28 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-storage-am-rtree/pom.xml b/hyracks/hyracks-storage-am-rtree/pom.xml
index fd432ff..74d8927 100644
--- a/hyracks/hyracks-storage-am-rtree/pom.xml
+++ b/hyracks/hyracks-storage-am-rtree/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-rtree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-am-rtree</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -29,21 +29,21 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-storage-common/pom.xml b/hyracks/hyracks-storage-common/pom.xml
index 834c7d3..568b0ba 100644
--- a/hyracks/hyracks-storage-common/pom.xml
+++ b/hyracks/hyracks-storage-common/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-common</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -29,7 +29,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-test-support/pom.xml b/hyracks/hyracks-test-support/pom.xml
index 0cc8762..1ddd1df 100644
--- a/hyracks/hyracks-test-support/pom.xml
+++ b/hyracks/hyracks-test-support/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-test-support</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-test-support</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -29,33 +29,33 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-rtree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-invertedindex</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-tests/hyracks-storage-am-btree-test/pom.xml b/hyracks/hyracks-tests/hyracks-storage-am-btree-test/pom.xml
index bf8c478..880cba5 100644
--- a/hyracks/hyracks-tests/hyracks-storage-am-btree-test/pom.xml
+++ b/hyracks/hyracks-tests/hyracks-storage-am-btree-test/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree-test</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-am-btree-test</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-tests</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -36,14 +36,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-test-support</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>test</scope>
</dependency>
diff --git a/hyracks/hyracks-tests/hyracks-storage-am-invertedindex-test/pom.xml b/hyracks/hyracks-tests/hyracks-storage-am-invertedindex-test/pom.xml
index 03490c7..5eda528 100644
--- a/hyracks/hyracks-tests/hyracks-storage-am-invertedindex-test/pom.xml
+++ b/hyracks/hyracks-tests/hyracks-storage-am-invertedindex-test/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-invertedindex-test</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-am-invertedindex-test</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-tests</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<encoding>UTF-8</encoding>
<fork>true</fork>
</configuration>
@@ -30,14 +30,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-invertedindex</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-test-support</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>test</scope>
</dependency>
diff --git a/hyracks/hyracks-tests/hyracks-storage-am-rtree-test/pom.xml b/hyracks/hyracks-tests/hyracks-storage-am-rtree-test/pom.xml
index ba6da6d..5031dba 100644
--- a/hyracks/hyracks-tests/hyracks-storage-am-rtree-test/pom.xml
+++ b/hyracks/hyracks-tests/hyracks-storage-am-rtree-test/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-rtree-test</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-am-rtree-test</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-tests</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -36,14 +36,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-rtree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-test-support</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>test</scope>
</dependency>
diff --git a/hyracks/hyracks-tests/hyracks-storage-common-test/pom.xml b/hyracks/hyracks-tests/hyracks-storage-common-test/pom.xml
index d7b6288..72d76e0 100644
--- a/hyracks/hyracks-tests/hyracks-storage-common-test/pom.xml
+++ b/hyracks/hyracks-tests/hyracks-storage-common-test/pom.xml
@@ -2,13 +2,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-common-test</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<name>hyracks-storage-common-test</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-tests</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -18,8 +18,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -36,13 +36,13 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-test-support</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/hyracks/hyracks-tests/pom.xml b/hyracks/hyracks-tests/pom.xml
index 054ec68..5a3d594 100644
--- a/hyracks/hyracks-tests/pom.xml
+++ b/hyracks/hyracks-tests/pom.xml
@@ -2,14 +2,14 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-tests</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>hyracks-tests</name>
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<modules>
diff --git a/hyracks/hyracks-yarn/hyracks-yarn-am/pom.xml b/hyracks/hyracks-yarn/hyracks-yarn-am/pom.xml
index 9e453a6..d33ddc5 100644
--- a/hyracks/hyracks-yarn/hyracks-yarn-am/pom.xml
+++ b/hyracks/hyracks-yarn/hyracks-yarn-am/pom.xml
@@ -14,8 +14,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
<plugin>
diff --git a/hyracks/hyracks-yarn/hyracks-yarn-client/pom.xml b/hyracks/hyracks-yarn/hyracks-yarn-client/pom.xml
index 08935a7..649aa6c 100644
--- a/hyracks/hyracks-yarn/hyracks-yarn-client/pom.xml
+++ b/hyracks/hyracks-yarn/hyracks-yarn-client/pom.xml
@@ -14,8 +14,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
<plugin>
diff --git a/hyracks/hyracks-yarn/hyracks-yarn-common/pom.xml b/hyracks/hyracks-yarn/hyracks-yarn-common/pom.xml
index 3aaf4a2..fe210fd 100644
--- a/hyracks/hyracks-yarn/hyracks-yarn-common/pom.xml
+++ b/hyracks/hyracks-yarn/hyracks-yarn-common/pom.xml
@@ -14,8 +14,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
</plugins>
diff --git a/hyracks/pom.xml b/hyracks/pom.xml
index 9c324df..6c84eb8 100644
--- a/hyracks/pom.xml
+++ b/hyracks/pom.xml
@@ -3,12 +3,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>hyracks</name>
<properties>
- <jvm.extraargs/>
+ <jvm.extraargs />
</properties>
<build>
diff --git a/pom.xml b/pom.xml
index e4920b3..367101e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>fullstack</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>hyracks-ecosystem-full-stack</name>
diff --git a/pregelix/pom.xml b/pregelix/pom.xml
index 6e28021..5c01e31 100644
--- a/pregelix/pom.xml
+++ b/pregelix/pom.xml
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>pregelix</name>
diff --git a/pregelix/pregelix-api/pom.xml b/pregelix/pregelix-api/pom.xml
index 2770e25..85f6ea2 100644
--- a/pregelix/pregelix-api/pom.xml
+++ b/pregelix/pregelix-api/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<properties>
@@ -21,8 +21,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -68,7 +68,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -81,7 +81,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-core</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/pregelix/pregelix-core/pom.xml b/pregelix/pregelix-core/pom.xml
index e14ac41..7b247a8 100644
--- a/pregelix/pregelix-core/pom.xml
+++ b/pregelix/pregelix-core/pom.xml
@@ -1,5 +1,4 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>pregelix-core</artifactId>
<packaging>jar</packaging>
@@ -8,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
@@ -66,8 +65,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -196,84 +195,84 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-dataflow</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-runtime</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
@@ -287,7 +286,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks.examples</groupId>
<artifactId>hyracks-integration-tests</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -307,7 +306,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-ipc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java b/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java
index d9b267d..72256f9 100644
--- a/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java
+++ b/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java
@@ -75,11 +75,17 @@
try {
/** add hadoop configurations */
URL hadoopCore = job.getClass().getClassLoader().getResource("core-site.xml");
- job.getConfiguration().addResource(hadoopCore);
+ if (hadoopCore != null) {
+ job.getConfiguration().addResource(hadoopCore);
+ }
URL hadoopMapRed = job.getClass().getClassLoader().getResource("mapred-site.xml");
- job.getConfiguration().addResource(hadoopMapRed);
+ if (hadoopMapRed != null) {
+ job.getConfiguration().addResource(hadoopMapRed);
+ }
URL hadoopHdfs = job.getClass().getClassLoader().getResource("hdfs-site.xml");
- job.getConfiguration().addResource(hadoopHdfs);
+ if (hadoopHdfs != null) {
+ job.getConfiguration().addResource(hadoopHdfs);
+ }
ClusterConfig.loadClusterConfig(ipAddress, port);
LOG.info("job started");
diff --git a/pregelix/pregelix-core/src/main/resources/conf/topology-template.xml b/pregelix/pregelix-core/src/main/resources/conf/topology-template.xml
new file mode 100755
index 0000000..4710706
--- /dev/null
+++ b/pregelix/pregelix-core/src/main/resources/conf/topology-template.xml
@@ -0,0 +1,7 @@
+<cluster-topology>
+ <network-switch name="Global">
+ <network-switch name="local">
+ <terminal name="127.0.0.1"/>
+ </network-switch>
+ </network-switch>
+</cluster-topology>
\ No newline at end of file
diff --git a/pregelix/pregelix-core/src/main/resources/scripts/pregelix b/pregelix/pregelix-core/src/main/resources/scripts/pregelix
index 6997078..b1a2f74 100644
--- a/pregelix/pregelix-core/src/main/resources/scripts/pregelix
+++ b/pregelix/pregelix-core/src/main/resources/scripts/pregelix
@@ -91,7 +91,7 @@
REPO="$BASEDIR"/lib
fi
-CLASSPATH=$CLASSPATH_PREFIX:"$HADOOP_HOME"/conf:"$BASEDIR"/etc:$1
+CLASSPATH=$CLASSPATH_PREFIX:"$HADOOP_HOME"/conf:/etc/hadoop/conf:"$BASEDIR"/etc:$1
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
diff --git a/pregelix/pregelix-core/src/main/resources/scripts/startcc.sh b/pregelix/pregelix-core/src/main/resources/scripts/startcc.sh
index efb79ce..133b604 100644
--- a/pregelix/pregelix-core/src/main/resources/scripts/startcc.sh
+++ b/pregelix/pregelix-core/src/main/resources/scripts/startcc.sh
@@ -20,6 +20,12 @@
export JAVA_HOME=$JAVA_HOME
export JAVA_OPTS=$CCJAVA_OPTS
-#Launch hyracks cc script
+
chmod -R 755 $HYRACKS_HOME
+if [ -f "conf/topology.xml" ]; then
+#Launch hyracks cc script with topology
+$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyrackscc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 0 -cluster-topology "conf/topology.xml" &> $CCLOGS_DIR/cc.log &
+else
+#Launch hyracks cc script without toplogy
$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyrackscc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 0 &> $CCLOGS_DIR/cc.log &
+fi
diff --git a/pregelix/pregelix-core/src/test/resources/topology.xml b/pregelix/pregelix-core/src/test/resources/topology.xml
new file mode 100755
index 0000000..4710706
--- /dev/null
+++ b/pregelix/pregelix-core/src/test/resources/topology.xml
@@ -0,0 +1,7 @@
+<cluster-topology>
+ <network-switch name="Global">
+ <network-switch name="local">
+ <terminal name="127.0.0.1"/>
+ </network-switch>
+ </network-switch>
+</cluster-topology>
\ No newline at end of file
diff --git a/pregelix/pregelix-dataflow-std-base/pom.xml b/pregelix/pregelix-dataflow-std-base/pom.xml
index dce6a40..6222a04 100644
--- a/pregelix/pregelix-dataflow-std-base/pom.xml
+++ b/pregelix/pregelix-dataflow-std-base/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
@@ -22,8 +22,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -74,14 +74,14 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/pregelix/pregelix-dataflow-std/pom.xml b/pregelix/pregelix-dataflow-std/pom.xml
index 7f401f5..aa77ad3 100644
--- a/pregelix/pregelix-dataflow-std/pom.xml
+++ b/pregelix/pregelix-dataflow-std/pom.xml
@@ -1,5 +1,4 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>pregelix-dataflow-std</artifactId>
<packaging>jar</packaging>
@@ -8,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
@@ -23,8 +22,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -75,77 +74,77 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-dataflow-std-base</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-hdfs-core</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-ipc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/pregelix/pregelix-dataflow/pom.xml b/pregelix/pregelix-dataflow/pom.xml
index 7001387..37abe57 100644
--- a/pregelix/pregelix-dataflow/pom.xml
+++ b/pregelix/pregelix-dataflow/pom.xml
@@ -1,5 +1,4 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>pregelix-dataflow</artifactId>
<packaging>jar</packaging>
@@ -8,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
@@ -23,8 +22,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -75,68 +74,68 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-dataflow-std-base</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-ipc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/pregelix/pregelix-dist/pom.xml b/pregelix/pregelix-dist/pom.xml
index aa3d541..e9aef12 100644
--- a/pregelix/pregelix-dist/pom.xml
+++ b/pregelix/pregelix-dist/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<artifactId>pregelix-dist</artifactId>
<name>pregelix-dist</name>
@@ -19,8 +19,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
</configuration>
</plugin>
<plugin>
@@ -69,13 +69,13 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-core</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-example</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
diff --git a/pregelix/pregelix-example/pom.xml b/pregelix/pregelix-example/pom.xml
index ea09178..20c45ec 100644
--- a/pregelix/pregelix-example/pom.xml
+++ b/pregelix/pregelix-example/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
<build>
@@ -17,8 +17,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -105,7 +105,7 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-core</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
diff --git a/pregelix/pregelix-example/src/test/resources/topology.xml b/pregelix/pregelix-example/src/test/resources/topology.xml
new file mode 100755
index 0000000..2a6c380
--- /dev/null
+++ b/pregelix/pregelix-example/src/test/resources/topology.xml
@@ -0,0 +1,7 @@
+<cluster-topology>
+ <network-switch name="Global">
+ <network-switch name="local">
+ <terminal name="127.1.0.1"/>
+ </network-switch>
+ </network-switch>
+</cluster-topology>
\ No newline at end of file
diff --git a/pregelix/pregelix-runtime/pom.xml b/pregelix/pregelix-runtime/pom.xml
index 5d1c251..29b6ba7 100644
--- a/pregelix/pregelix-runtime/pom.xml
+++ b/pregelix/pregelix-runtime/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</parent>
@@ -22,8 +22,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.7</source>
+ <target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
@@ -74,82 +74,82 @@
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>pregelix-dataflow</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-api</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-dataflow-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-data-std</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-common</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-btree</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-nc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-ipc</artifactId>
- <version>0.2.3-SNAPSHOT</version>
+ <version>0.2.4-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>