Repository: swimos/ratchet (language: rust)

Issue:
CI setup
- Lint
- Unit/integration tests
- Autobahn test suite


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6d20958..6ecd574 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,4 +1,4 @@
-on: [push, pull_request]
+on: [ pull_request ]
 
 name: Continuous integration
 
@@ -11,14 +11,14 @@ jobs:
       - uses: actions-rs/toolchain@v1
         with:
           profile: minimal
-          toolchain: 1.69.0
+          toolchain: 1.65
           override: true
       - uses: actions-rs/cargo@v1
         with:
           command: check
 
-  test:
-    name: Test Suite
+  testmsrv:
+    name: Test Suite Latest
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
@@ -31,12 +31,33 @@ jobs:
       - uses: actions-rs/toolchain@v1
         with:
           profile: minimal
-          toolchain: 1.69.0
+          toolchain: 1.78.0
           override: true
       - uses: actions-rs/cargo@v1
         with:
           command: test
-          args: --all-features --workspace
+          args: --all-features --all-targets --workspace
+
+  testlatest:
+    name: Test Suite MSRV
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os:
+          - windows-latest
+          - ubuntu-latest
+          - macos-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: 1.65
+          override: true
+      - uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: --all-features --all-targets  --workspace
 
   fmt:
     name: Rustfmt
@@ -46,7 +67,7 @@ jobs:
       - uses: actions-rs/toolchain@v1
         with:
           profile: minimal
-          toolchain: 1.69.0
+          toolchain: 1.65
           override: true
       - run: rustup component add rustfmt
       - uses: actions-rs/cargo@v1
@@ -62,10 +83,70 @@ jobs:
       - uses: actions-rs/toolchain@v1
         with:
           profile: minimal
-          toolchain: 1.69.0
+          toolchain: 1.65
           override: true
       - run: rustup component add clippy
       - uses: actions-rs/cargo@v1
         with:
           command: clippy
-          args: --all-features --workspace -- -D warnings
\ No newline at end of file
+          args: --all-features --workspace -- -D warnings
+
+  autobahnclient:
+    name: Autobahn Client
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: 1.65
+          override: true
+      - uses: actions-rs/cargo@v1
+        with:
+          command: run
+          args: --bin client --release
+
+  autobahnserver:
+    name: Autobahn Server
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: 1.65
+          override: true
+      - uses: actions-rs/cargo@v1
+        with:
+          command: run
+          args: --bin server --release
+
+  autobahnclientsplit:
+    name: Autobahn Client Split Socket
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: 1.65
+          override: true
+      - uses: actions-rs/cargo@v1
+        with:
+          command: run
+          args: --bin split_client --release
+
+  autobahnserversplit:
+    name: Autobahn Server Split Socket
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: 1.65
+          override: true
+      - uses: actions-rs/cargo@v1
+        with:
+          command: run
+          args: --bin split_server --release
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index eed10fc..541afe3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,9 @@
 
 .idea
 
-ratchet_rs/autobahn/client
-ratchet_rs/autobahn/server
+**/.DS_Store
 
-**/.DS_Store
\ No newline at end of file
+ratchet_rs/autobahn/client/results
+ratchet_rs/autobahn/server/results
+ratchet_rs/autobahn/split_client/results
+ratchet_rs/autobahn/split_server/results
\ No newline at end of file
diff --git a/Cargo.toml b/Cargo.toml
index 52303d0..0c1d199 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,7 +4,12 @@ members = [
     "ratchet_core",
     "ratchet_deflate",
     "ratchet_ext",
-    "ratchet_fixture"
+    "ratchet_fixture",
+    "ratchet_rs/autobahn/client",
+    "ratchet_rs/autobahn/server",
+    "ratchet_rs/autobahn/split_client",
+    "ratchet_rs/autobahn/split_server",
+    "ratchet_rs/autobahn/utils"
 ]
 
 [workspace.dependencies]
diff --git a/ratchet_core/Cargo.toml b/ratchet_core/Cargo.toml
index 944b674..df11f5e 100644
--- a/ratchet_core/Cargo.toml
+++ b/ratchet_core/Cargo.toml
@@ -22,6 +22,7 @@ http = { workspace = true }
 tokio = { workspace = true, features = ["rt", "net", "io-util"] }
 tokio-util = { workspace = true, features = ["codec", "compat"] }
 futures = { workspace = true, optional = true }
+futures-util = { workspace = true }
 derive_more = { workspace = true }
 thiserror = { workspace = true }
 bytes = { workspace = true }
diff --git a/ratchet_core/src/errors.rs b/ratchet_core/src/errors.rs
index 6c1d53c..393055f 100644
--- a/ratchet_core/src/errors.rs
+++ b/ratchet_core/src/errors.rs
@@ -307,6 +307,9 @@ pub enum ProtocolError {
     /// Received unexpected control frame data
     #[error("Received unexpected control frame data")]
     ControlDataMismatch,
+    /// An invalid control frame was received.
+    #[error("Received an invalid control frame")]
+    InvalidControlFrame,
 }
 
 impl From<FromUtf8Error> for Error {
diff --git a/ratchet_core/src/framed/mod.rs b/ratchet_core/src/framed/mod.rs
index d97a1a4..98573fd 100644
--- a/ratchet_core/src/framed/mod.rs
+++ b/ratchet_core/src/framed/mod.rs
@@ -21,6 +21,7 @@ use crate::protocol::{
     MessageType, OpCode, Role,
 };
 use crate::protocol::{BorrowedFramePrinter, FramePrinter};
+use crate::ws::CONTROL_MAX_SIZE;
 use crate::WebSocketStream;
 use bytes::Buf;
 use bytes::{BufMut, BytesMut};
@@ -280,29 +281,34 @@ impl FramedRead {
                 OpCode::ControlCode(c) => {
                     return match c {
                         ControlCode::Close => {
-                            let reason = if payload.len() < 2 {
-                                None
-                            } else {
-                                match CloseCode::try_from([payload[0], payload[1]])? {
-                                    close_code if close_code.is_illegal() => {
-                                        return Err(
-                                            ProtocolError::CloseCode(u16::from(close_code)).into()
-                                        )
-                                    }
-                                    close_code => {
-                                        let close_reason =
-                                            std::str::from_utf8(&payload[2..])?.to_string();
-                                        let description = if close_reason.is_empty() {
-                                            None
-                                        } else {
-                                            Some(close_reason)
-                                        };
-
-                                        let reason = CloseReason::new(close_code, description);
-
-                                        Some(reason)
+                            let reason = match payload.len() {
+                                0 => None,
+                                1 => {
+                                    return Err(ProtocolError::InvalidControlFrame.into());
+                                }
+                                2..=CONTROL_MAX_SIZE => {
+                                    let close_reason =
+                                        std::str::from_utf8(&payload[2..])?.to_string();
+                                    match CloseCode::try_from([payload[0], payload[1]])? {
+                                        close_code if close_code.is_illegal() => {
+                                            return Err(ProtocolError::CloseCode(u16::from(
+                                                close_code,
+                                            ))
+                                            .into())
+                                        }
+                                        close_code => {
+                                            let description = if close_reason.is_empty() {
+                                                None
+                                            } else {
+                                                Some(close_reason)
+                                            };
+                                            Some(CloseReason::new(close_code, description))
+                                        }
                                     }
                                 }
+                                _ => {
+                                    return Err(ProtocolError::FrameOverflow.into());
+                                }
                             };
 
                             Ok(Item::Close(reason))
@@ -492,6 +498,11 @@ where
         self.flags.contains(CodecFlags::ROLE)
     }
 
+    pub async fn flush(&mut self) -> Result<(), Error> {
+        self.io.flush().await?;
+        Ok(())
+    }
+
     pub async fn write<A, F>(
         &mut self,
         opcode: OpCode,
@@ -569,8 +580,9 @@ where
         .await
     }
 
-    pub async fn close(&mut self) {
-        let _r = self.io.shutdown().await;
+    pub async fn shutdown(&mut self) -> Result<(), Error> {
+        self.io.shutdown().await?;
+        Ok(())
     }
 }
 
diff --git a/ratchet_core/src/lib.rs b/ratchet_core/src/lib.rs
index 9270484..11984c0 100644
--- a/ratchet_core/src/lib.rs
+++ b/ratchet_core/src/lib.rs
@@ -68,5 +68,5 @@ use tokio::io::{AsyncRead, AsyncWrite};
 pub(crate) type Request = http::Request<()>;
 
 /// A stream representing a WebSocket connection.
-pub trait WebSocketStream: AsyncRead + AsyncWrite + Unpin + 'static {}
-impl<S> WebSocketStream for S where S: AsyncRead + AsyncWrite + Unpin + 'static {}
+pub trait WebSocketStream: AsyncRead + AsyncWrite + Send + Unpin + 'static {}
+impl<S> WebSocketStream for S where S: AsyncRead + AsyncWrite + Send + Unpin + 'static {}
diff --git a/ratchet_core/src/protocol/mod.rs b/ratchet_core/src/protocol/mod.rs
index fcb27d3..e24d369 100644
--- a/ratchet_core/src/protocol/mod.rs
+++ b/ratchet_core/src/protocol/mod.rs
@@ -27,7 +27,7 @@ use std::convert::TryFrom;
 use thiserror::Error;
 
 bitflags::bitflags! {
-    #[derive(Copy, Clone, Debug, PartialEq)]
+    #[derive(Copy, Clone, Debug, Eq, PartialEq)]
     pub struct HeaderFlags: u8 {
         const FIN       = 0b1000_0000;
 
diff --git a/ratchet_core/src/split/mod.rs b/ratchet_core/src/split/mod.rs
index 5850219..d6a2d95 100644
--- a/ratchet_core/src/split/mod.rs
+++ b/ratchet_core/src/split/mod.rs
@@ -17,6 +17,8 @@ use std::sync::atomic::{AtomicU8, Ordering};
 use std::sync::Arc;
 
 use bytes::BytesMut;
+use futures_util::future::BoxFuture;
+use futures_util::{FutureExt, TryFutureExt};
 use log::{error, trace};
 use tokio::io::AsyncWriteExt;
 
@@ -29,10 +31,10 @@ use crate::framed::{
     Item,
 };
 use crate::protocol::{CloseReason, ControlCode, DataCode, HeaderFlags, MessageType, OpCode};
-use crate::ws::{extension_encode, CloseState, CONTROL_MAX_SIZE};
+use crate::ws::{extension_encode, CloseState, WebSocketClose, CONTROL_MAX_SIZE};
 use crate::{
-    framed, CloseCause, Error, ErrorKind, Message, PayloadType, ProtocolError, Role, WebSocket,
-    WebSocketStream,
+    framed, CloseCause, CloseCode, Error, ErrorKind, Message, PayloadType, ProtocolError, Role,
+    WebSocket, WebSocketStream,
 };
 
 mod bilock;
@@ -79,6 +81,7 @@ where
         control_buffer,
         split_writer: write_half,
         writer,
+        is_server: flags.contains(CodecFlags::ROLE),
     });
 
     let (ext_encoder, ext_decoder) = extension.split();
@@ -115,6 +118,11 @@ impl<S> WriteHalf<S>
 where
     S: WebSocketStream,
 {
+    async fn flush(&mut self) -> Result<(), Error> {
+        self.split_writer.flush().await?;
+        Ok(())
+    }
+
     async fn write<A, E>(
         &mut self,
         buf_ref: A,
@@ -131,6 +139,7 @@ where
             split_writer,
             writer,
             control_buffer,
+            ..
         } = self;
         let buf = buf_ref.as_ref();
 
@@ -202,10 +211,6 @@ where
             }
         }
     }
-
-    async fn close(&mut self) {
-        let _r = self.split_writer.shutdown().await;
-    }
 }
 
 #[derive(Debug)]
@@ -213,6 +218,7 @@ struct WriteHalf<S> {
     split_writer: BiLock<S>,
     writer: FramedWrite,
     control_buffer: BytesMut,
+    is_server: bool,
 }
 
 #[derive(Debug)]
@@ -372,6 +378,22 @@ where
         } = &mut *self.split_writer.lock().await;
         write_close(split_writer, writer, reason, self.role.is_server()).await
     }
+
+    /// Flushes the WebSocket's output stream, ensuring that all intermediately buffered contents
+    /// reach their destination.
+    ///
+    /// # Errors
+    ///
+    /// It is considered an error if not all bytes could be written due to I/O errors or EOF being
+    /// reached.
+    pub async fn flush(&mut self) -> Result<(), Error> {
+        if self.is_closed() {
+            return Err(Error::with_cause(ErrorKind::Close, CloseCause::Error));
+        }
+
+        let writer = &mut *self.split_writer.lock().await;
+        writer.flush().await
+    }
 }
 
 /// An owned read half of a WebSocket connection.
@@ -474,26 +496,34 @@ where
                     Ok(Message::Pong(payload.freeze()))
                 }
                 Item::Close(reason) => {
+                    let code = reason
+                        .as_ref()
+                        .map(|reason| reason.code)
+                        .unwrap_or(CloseCode::Normal);
+
                     close(
+                        role.is_server(),
                         close_state,
                         &mut *split_writer.lock().await,
-                        role.is_server(),
-                        reason,
-                        None,
+                        code,
                     )
-                    .await
+                    .await?;
+                    Ok(Message::Close(reason))
                 }
             },
             Err(e) => {
                 error!("WebSocket read failure: {:?}", e);
-                close(
+
+                // We want to close the connection but return the error produced during the session,
+                // not any during the close sequence.
+                let _ = close(
+                    role.is_server(),
                     close_state,
                     &mut *split_writer.lock().await,
-                    role.is_server(),
-                    None,
-                    Some(e),
+                    CloseCode::Protocol,
                 )
-                .await
+                .await;
+                Err(e)
             }
         }
     }
@@ -527,77 +557,58 @@ where
     }
 }
 
-async fn close<S>(
-    close_state: &AtomicU8,
-    framed: &mut WriteHalf<S>,
-    is_server: bool,
-    reason: Option<CloseReason>,
-    ret: Option<Error>,
-) -> Result<Message, Error>
+impl<S> WebSocketClose for WriteHalf<S>
 where
     S: WebSocketStream,
 {
-    let WriteHalf {
-        split_writer,
-        writer,
-        ..
-    } = framed;
-
-    match close_state.load(Ordering::SeqCst) {
-        STATE_OPEN => {
-            let mut code = match &reason {
-                Some(reason) => u16::from(reason.code).to_be_bytes(),
-                None => [0; 2],
-            };
-
-            // we don't want to immediately await the echoed close frame as the peer may elect to
-            // drain any pending messages **before** echoing the close frame
+    fn write(&mut self, code: CloseCode) -> BoxFuture<Result<(), Error>> {
+        let WriteHalf {
+            split_writer,
+            writer,
+            is_server,
+            ..
+        } = self;
 
-            let write_result = writer
+        Box::pin(async move {
+            writer
                 .write(
                     split_writer,
-                    is_server,
+                    *is_server,
                     OpCode::ControlCode(ControlCode::Close),
                     HeaderFlags::FIN,
-                    &mut code,
+                    &mut u16::from(code).to_be_bytes(),
                     |_, _| Ok(()),
                 )
-                .await;
-            match write_result {
-                Ok(()) => close_state.store(STATE_CLOSING, Ordering::SeqCst),
-                Err(_) => {
-                    if is_server {
-                        // 7.1.1: the TCP stream should be closed first by the server
-                        //
-                        // We aren't interested in any IO errors produced here as the peer *may* have
-                        // already closed the TCP stream.
-                        framed.close().await;
-                    }
-                    close_state.store(STATE_CLOSED, Ordering::SeqCst);
-                }
-            }
-            match ret {
-                Some(err) => Err(err),
-                None => Ok(Message::Close(reason)),
-            }
-        }
-        STATE_CLOSING => {
-            close_state.store(STATE_CLOSED, Ordering::SeqCst);
-            if is_server {
-                // 7.1.1: the TCP stream should be closed first by the server
-                //
-                // We aren't interested in any IO errors produced here as the peer *may* have
-                // already closed the TCP stream.
-                framed.close().await;
-            }
+                .await
+        })
+    }
 
-            Err(ret.unwrap_or_else(|| Error::with_cause(ErrorKind::Close, CloseCause::Stopped)))
-        }
-        STATE_CLOSED => Err(Error::with_cause(ErrorKind::Close, CloseCause::Error)),
-        s => panic!("Unexpected close state: {}", s),
+    fn shutdown(&mut self) -> BoxFuture<Result<(), Error>> {
+        self.split_writer.shutdown().map_err(Into::into).boxed()
     }
 }
 
+async fn close<S>(
+    is_server: bool,
+    state_ref: &AtomicU8,
+    framed: &mut WriteHalf<S>,
+    code: CloseCode,
+) -> Result<(), Error>
+where
+    S: WebSocketStream,
+{
+    let close_state = match state_ref.load(Ordering::SeqCst) {
+        STATE_OPEN => CloseState::NotClosed,
+        STATE_CLOSING => CloseState::Closing,
+        STATE_CLOSED => CloseState::Closing,
+        s => panic!("Unexpected close state: {}", s),
+    };
+    let close_result = crate::ws::close(framed, is_server, close_state, code).await;
+
+    state_ref.store(STATE_CLOSED, Ordering::SeqCst);
+    close_result
+}
+
 /// An error produced by `reunite` if the halves do not match.
 #[derive(Debug)]
 #[allow(missing_docs)]
diff --git a/ratchet_core/src/ws.rs b/ratchet_core/src/ws.rs
index 8d6462a..cba4251 100644
--- a/ratchet_core/src/ws.rs
+++ b/ratchet_core/src/ws.rs
@@ -19,8 +19,10 @@ use crate::protocol::{
     CloseReason, ControlCode, DataCode, HeaderFlags, Message, MessageType, OpCode, PayloadType,
     Role,
 };
-use crate::{WebSocketConfig, WebSocketStream};
+use crate::{CloseCode, WebSocketConfig, WebSocketStream};
 use bytes::BytesMut;
+use futures_util::future::BoxFuture;
+use futures_util::TryFutureExt;
 use log::{error, trace};
 use ratchet_ext::{Extension, ExtensionEncoder, FrameHeader as ExtFrameHeader};
 
@@ -210,11 +212,30 @@ where
                     }
                     Ok(Message::Pong(payload.freeze()))
                 }
-                Item::Close(reason) => close(close_state, framed, reason, None).await,
+                Item::Close(reason) => {
+                    let is_server = framed.is_server();
+                    let code = reason
+                        .as_ref()
+                        .map(|reason| reason.code)
+                        .unwrap_or(CloseCode::Normal);
+
+                    let current_close_state = *close_state;
+                    *close_state = CloseState::Closed;
+
+                    close(framed, is_server, current_close_state, code).await?;
+                    Ok(Message::Close(reason))
+                }
             },
             Err(e) => {
                 error!("WebSocket read failure: {:?}", e);
-                close(close_state, framed, None, Some(e)).await
+
+                let is_server = framed.is_server();
+
+                // We want to close the connection but return the error produced during the session,
+                // not any during the close sequence.
+                let _ = close(framed, is_server, *close_state, CloseCode::Protocol).await;
+                *close_state = CloseState::Closed;
+                Err(e)
             }
         }
     }
@@ -333,6 +354,21 @@ where
             .await
     }
 
+    /// Flushes the WebSocket's output stream, ensuring that all intermediately buffered contents
+    /// reach their destination.
+    ///
+    /// # Errors
+    ///
+    /// It is considered an error if not all bytes could be written due to I/O errors or EOF being
+    /// reached.
+    pub async fn flush(&mut self) -> Result<(), Error> {
+        if self.is_closed() {
+            return Err(Error::with_cause(ErrorKind::Close, CloseCause::Error));
+        }
+
+        self.framed.flush().await
+    }
+
     /// Returns whether this WebSocket is closed.
     pub fn is_closed(&self) -> bool {
         self.close_state == CloseState::Closed
@@ -375,63 +411,71 @@ where
     }
 }
 
-async fn close<S>(
-    close_state: &mut CloseState,
-    framed: &mut FramedIo<S>,
-    reason: Option<CloseReason>,
-    ret: Option<Error>,
-) -> Result<Message, Error>
+/// Trait for closing a WebSocket connection. This is to abstract over both owned and split
+/// WebSockets.
+pub trait WebSocketClose {
+    /// Write a WebSocket close frame. The frame *must* have the FIN flag set high and be
+    /// uncompressed.
+    fn write(&mut self, code: CloseCode) -> BoxFuture<Result<(), Error>>;
+
+    /// Shutdown the connection's underlying IO.
+    fn shutdown(&mut self) -> BoxFuture<Result<(), Error>>;
+}
+
+impl<S> WebSocketClose for FramedIo<S>
 where
     S: WebSocketStream,
 {
-    let server = framed.is_server();
-    match *close_state {
-        CloseState::NotClosed => {
-            let mut code = match &reason {
-                Some(reason) => u16::from(reason.code).to_be_bytes(),
-                None => [0; 2],
-            };
+    fn write(&mut self, code: CloseCode) -> BoxFuture<Result<(), Error>> {
+        Box::pin(async move {
+            self.write(
+                OpCode::ControlCode(ControlCode::Close),
+                HeaderFlags::FIN,
+                &mut u16::from(code).to_be_bytes(),
+                |_, _| Ok(()),
+            )
+            .await
+        })
+    }
 
+    fn shutdown(&mut self) -> BoxFuture<Result<(), Error>> {
+        Box::pin(FramedIo::shutdown(self).map_err(Into::into))
+    }
+}
+
+pub async fn close(
+    closer: &mut impl WebSocketClose,
+    is_server: bool,
+    close_state: CloseState,
+    code: CloseCode,
+) -> Result<(), Error> {
+    match close_state {
+        CloseState::NotClosed => {
             // we don't want to immediately await the echoed close frame as the peer may elect to
             // drain any pending messages **before** echoing the close frame
 
-            let write_result = framed
-                .write(
-                    OpCode::ControlCode(ControlCode::Close),
-                    HeaderFlags::FIN,
-                    &mut code,
-                    |_, _| Ok(()),
-                )
-                .await;
-            match write_result {
-                Ok(()) => *close_state = CloseState::Closing,
-                Err(_) => {
-                    if server {
-                        // 7.1.1: the TCP stream should be closed first by the server
-                        //
-                        // We aren't interested in any IO errors produced here as the peer *may* have
-                        // already closed the TCP stream.
-                        framed.close().await;
-                    }
-                    *close_state = CloseState::Closed;
-                }
-            }
-            match ret {
-                Some(err) => Err(err),
-                None => Ok(Message::Close(reason)),
+            let _ = closer.write(code).await;
+
+            if is_server {
+                // 7.1.1: the TCP stream should be closed first by the server
+                //
+                // We aren't interested in any IO errors produced here as the peer *may* have
+                // already closed the TCP stream.
+                let _ = closer.shutdown().await;
             }
+
+            Ok(())
         }
         CloseState::Closing => {
-            *close_state = CloseState::Closed;
-            if server {
+            if is_server {
                 // 7.1.1: the TCP stream should be closed first by the server
                 //
                 // We aren't interested in any IO errors produced here as the peer *may* have
                 // already closed the TCP stream.
-                framed.close().await;
+                let _ = closer.shutdown().await;
             }
 
-            Err(ret.unwrap_or_else(|| Error::with_cause(ErrorKind::Close, CloseCause::Stopped)))
+            Err(Error::with_cause(ErrorKind::Close, CloseCause::Stopped))
         }
         CloseState::Closed => Err(Error::with_cause(ErrorKind::Close, CloseCause::Error)),
     }
@@ -805,5 +849,8 @@ mod tests {
             err.downcast_ref::<CloseCause>().unwrap(),
             &CloseCause::Error
         );
+
+        assert!(client.is_closed());
+        assert!(server.is_closed());
     }
 }
diff --git a/ratchet_rs/Cargo.toml b/ratchet_rs/Cargo.toml
index d9c8bf5..7aff76f 100644
--- a/ratchet_rs/Cargo.toml
+++ b/ratchet_rs/Cargo.toml
@@ -36,6 +36,14 @@ required-features = ["deflate"]
 name = "autobahn-server"
 required-features = ["deflate"]
 
+[[example]]
+name = "autobahn-split-client"
+required-features = ["deflate", "split"]
+
+[[example]]
+name = "autobahn-split-server"
+required-features = ["deflate", "split"]
+
 [[example]]
 name = "client"
 required-features = ["split"]
diff --git a/ratchet_rs/autobahn/client-results.json b/ratchet_rs/autobahn/client-results.json
deleted file mode 100644
index 87a0ce2..0000000
--- a/ratchet_rs/autobahn/client-results.json
+++ /dev/null
@@ -1,3623 +0,0 @@
-{
-   "Ratchet": {
-      "1.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_1.json"
-      },
-      "1.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_2.json"
-      },
-      "1.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_3.json"
-      },
-      "1.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_4.json"
-      },
-      "1.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_5.json"
-      },
-      "1.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_6.json"
-      },
-      "1.1.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_7.json"
-      },
-      "1.1.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_8.json"
-      },
-      "1.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_1.json"
-      },
-      "1.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_2.json"
-      },
-      "1.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_3.json"
-      },
-      "1.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_4.json"
-      },
-      "1.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_5.json"
-      },
-      "1.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 17,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_6.json"
-      },
-      "1.2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 17,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_7.json"
-      },
-      "1.2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 18,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_8.json"
-      },
-      "10.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_10_1_1.json"
-      },
-      "12.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 507,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_1.json"
-      },
-      "12.1.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2919,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_10.json"
-      },
-      "12.1.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 697,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_11.json"
-      },
-      "12.1.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 840,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_12.json"
-      },
-      "12.1.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1147,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_13.json"
-      },
-      "12.1.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1763,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_14.json"
-      },
-      "12.1.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3019,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_15.json"
-      },
-      "12.1.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2919,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_16.json"
-      },
-      "12.1.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2905,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_17.json"
-      },
-      "12.1.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2856,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_18.json"
-      },
-      "12.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 517,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_2.json"
-      },
-      "12.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 521,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_3.json"
-      },
-      "12.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 541,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_4.json"
-      },
-      "12.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 615,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_5.json"
-      },
-      "12.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 753,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_6.json"
-      },
-      "12.1.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1070,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_7.json"
-      },
-      "12.1.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1251,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_8.json"
-      },
-      "12.1.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1715,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_9.json"
-      },
-      "12.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 80,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_1.json"
-      },
-      "12.2.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6047,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_10.json"
-      },
-      "12.2.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 708,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_11.json"
-      },
-      "12.2.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1224,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_12.json"
-      },
-      "12.2.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2278,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_13.json"
-      },
-      "12.2.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4457,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_14.json"
-      },
-      "12.2.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 8522,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_15.json"
-      },
-      "12.2.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6699,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_16.json"
-      },
-      "12.2.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6321,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_17.json"
-      },
-      "12.2.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6184,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_18.json"
-      },
-      "12.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 94,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_2.json"
-      },
-      "12.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 120,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_3.json"
-      },
-      "12.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 185,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_4.json"
-      },
-      "12.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 352,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_5.json"
-      },
-      "12.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 537,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_6.json"
-      },
-      "12.2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 920,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_7.json"
-      },
-      "12.2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1653,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_8.json"
-      },
-      "12.2.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3238,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_9.json"
-      },
-      "12.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 82,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_1.json"
-      },
-      "12.3.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 8368,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_10.json"
-      },
-      "12.3.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 760,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_11.json"
-      },
-      "12.3.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1399,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_12.json"
-      },
-      "12.3.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2562,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_13.json"
-      },
-      "12.3.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5093,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_14.json"
-      },
-      "12.3.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 9940,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_15.json"
-      },
-      "12.3.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 8570,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_16.json"
-      },
-      "12.3.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 8363,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_17.json"
-      },
-      "12.3.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 8281,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_18.json"
-      },
-      "12.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 90,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_2.json"
-      },
-      "12.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 115,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_3.json"
-      },
-      "12.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 188,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_4.json"
-      },
-      "12.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 423,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_5.json"
-      },
-      "12.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 684,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_6.json"
-      },
-      "12.3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1218,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_7.json"
-      },
-      "12.3.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2216,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_8.json"
-      },
-      "12.3.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4302,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_9.json"
-      },
-      "12.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 650,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_1.json"
-      },
-      "12.4.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3178,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_10.json"
-      },
-      "12.4.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 843,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_11.json"
-      },
-      "12.4.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1010,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_12.json"
-      },
-      "12.4.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1343,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_13.json"
-      },
-      "12.4.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2023,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_14.json"
-      },
-      "12.4.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3377,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_15.json"
-      },
-      "12.4.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3256,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_16.json"
-      },
-      "12.4.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3217,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_17.json"
-      },
-      "12.4.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3242,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_18.json"
-      },
-      "12.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 648,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_2.json"
-      },
-      "12.4.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 647,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_3.json"
-      },
-      "12.4.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 679,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_4.json"
-      },
-      "12.4.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 757,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_5.json"
-      },
-      "12.4.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 833,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_6.json"
-      },
-      "12.4.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 989,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_7.json"
-      },
-      "12.4.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1300,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_8.json"
-      },
-      "12.4.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1932,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_9.json"
-      },
-      "12.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 84,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_1.json"
-      },
-      "12.5.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4412,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_10.json"
-      },
-      "12.5.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 590,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_11.json"
-      },
-      "12.5.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 968,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_12.json"
-      },
-      "12.5.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1799,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_13.json"
-      },
-      "12.5.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3433,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_14.json"
-      },
-      "12.5.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6574,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_15.json"
-      },
-      "12.5.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5006,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_16.json"
-      },
-      "12.5.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4575,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_17.json"
-      },
-      "12.5.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4402,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_18.json"
-      },
-      "12.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 91,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_2.json"
-      },
-      "12.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 118,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_3.json"
-      },
-      "12.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 164,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_4.json"
-      },
-      "12.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 283,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_5.json"
-      },
-      "12.5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 432,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_6.json"
-      },
-      "12.5.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 675,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_7.json"
-      },
-      "12.5.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1223,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_8.json"
-      },
-      "12.5.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2289,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_9.json"
-      },
-      "13.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 508,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_1.json"
-      },
-      "13.1.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2855,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_10.json"
-      },
-      "13.1.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 683,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_11.json"
-      },
-      "13.1.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 838,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_12.json"
-      },
-      "13.1.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1173,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_13.json"
-      },
-      "13.1.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1776,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_14.json"
-      },
-      "13.1.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3034,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_15.json"
-      },
-      "13.1.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2907,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_16.json"
-      },
-      "13.1.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2909,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_17.json"
-      },
-      "13.1.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2845,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_18.json"
-      },
-      "13.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 506,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_2.json"
-      },
-      "13.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 520,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_3.json"
-      },
-      "13.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 524,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_4.json"
-      },
-      "13.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 602,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_5.json"
-      },
-      "13.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 680,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_6.json"
-      },
-      "13.1.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 825,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_7.json"
-      },
-      "13.1.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1112,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_8.json"
-      },
-      "13.1.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1701,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_9.json"
-      },
-      "13.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 508,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_1.json"
-      },
-      "13.2.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2873,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_10.json"
-      },
-      "13.2.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 686,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_11.json"
-      },
-      "13.2.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 841,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_12.json"
-      },
-      "13.2.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1151,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_13.json"
-      },
-      "13.2.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1780,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_14.json"
-      },
-      "13.2.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3009,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_15.json"
-      },
-      "13.2.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2896,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_16.json"
-      },
-      "13.2.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2873,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_17.json"
-      },
-      "13.2.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2906,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_18.json"
-      },
-      "13.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 513,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_2.json"
-      },
-      "13.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 530,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_3.json"
-      },
-      "13.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 545,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_4.json"
-      },
-      "13.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 602,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_5.json"
-      },
-      "13.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 679,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_6.json"
-      },
-      "13.2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 822,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_7.json"
-      },
-      "13.2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1123,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_8.json"
-      },
-      "13.2.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1716,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_9.json"
-      },
-      "13.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 515,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_1.json"
-      },
-      "13.3.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2849,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_10.json"
-      },
-      "13.3.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 684,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_11.json"
-      },
-      "13.3.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 843,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_12.json"
-      },
-      "13.3.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1151,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_13.json"
-      },
-      "13.3.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1776,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_14.json"
-      },
-      "13.3.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2996,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_15.json"
-      },
-      "13.3.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2906,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_16.json"
-      },
-      "13.3.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2865,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_17.json"
-      },
-      "13.3.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2891,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_18.json"
-      },
-      "13.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 518,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_2.json"
-      },
-      "13.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 522,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_3.json"
-      },
-      "13.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 543,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_4.json"
-      },
-      "13.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 605,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_5.json"
-      },
-      "13.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 683,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_6.json"
-      },
-      "13.3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 824,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_7.json"
-      },
-      "13.3.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1129,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_8.json"
-      },
-      "13.3.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1716,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_9.json"
-      },
-      "13.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 505,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_1.json"
-      },
-      "13.4.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2864,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_10.json"
-      },
-      "13.4.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 680,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_11.json"
-      },
-      "13.4.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 827,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_12.json"
-      },
-      "13.4.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1149,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_13.json"
-      },
-      "13.4.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1776,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_14.json"
-      },
-      "13.4.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3011,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_15.json"
-      },
-      "13.4.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2903,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_16.json"
-      },
-      "13.4.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2878,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_17.json"
-      },
-      "13.4.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2910,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_18.json"
-      },
-      "13.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 504,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_2.json"
-      },
-      "13.4.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 524,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_3.json"
-      },
-      "13.4.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 537,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_4.json"
-      },
-      "13.4.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 605,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_5.json"
-      },
-      "13.4.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 681,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_6.json"
-      },
-      "13.4.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 833,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_7.json"
-      },
-      "13.4.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1118,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_8.json"
-      },
-      "13.4.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1699,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_9.json"
-      },
-      "13.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 520,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_1.json"
-      },
-      "13.5.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2878,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_10.json"
-      },
-      "13.5.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 695,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_11.json"
-      },
-      "13.5.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 847,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_12.json"
-      },
-      "13.5.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1162,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_13.json"
-      },
-      "13.5.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1773,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_14.json"
-      },
-      "13.5.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3025,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_15.json"
-      },
-      "13.5.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2937,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_16.json"
-      },
-      "13.5.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2897,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_17.json"
-      },
-      "13.5.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2873,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_18.json"
-      },
-      "13.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 654,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_2.json"
-      },
-      "13.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 676,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_3.json"
-      },
-      "13.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 706,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_4.json"
-      },
-      "13.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 798,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_5.json"
-      },
-      "13.5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 812,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_6.json"
-      },
-      "13.5.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 832,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_7.json"
-      },
-      "13.5.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1115,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_8.json"
-      },
-      "13.5.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1706,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_9.json"
-      },
-      "13.6.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 503,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_1.json"
-      },
-      "13.6.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2848,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_10.json"
-      },
-      "13.6.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 686,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_11.json"
-      },
-      "13.6.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 853,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_12.json"
-      },
-      "13.6.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1151,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_13.json"
-      },
-      "13.6.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1773,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_14.json"
-      },
-      "13.6.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3057,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_15.json"
-      },
-      "13.6.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2949,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_16.json"
-      },
-      "13.6.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2879,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_17.json"
-      },
-      "13.6.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2868,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_18.json"
-      },
-      "13.6.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 507,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_2.json"
-      },
-      "13.6.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 519,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_3.json"
-      },
-      "13.6.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 537,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_4.json"
-      },
-      "13.6.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 600,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_5.json"
-      },
-      "13.6.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 673,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_6.json"
-      },
-      "13.6.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 836,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_7.json"
-      },
-      "13.6.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1115,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_8.json"
-      },
-      "13.6.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1694,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_9.json"
-      },
-      "13.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 507,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_1.json"
-      },
-      "13.7.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2890,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_10.json"
-      },
-      "13.7.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 687,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_11.json"
-      },
-      "13.7.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 839,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_12.json"
-      },
-      "13.7.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1144,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_13.json"
-      },
-      "13.7.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1768,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_14.json"
-      },
-      "13.7.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3048,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_15.json"
-      },
-      "13.7.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2902,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_16.json"
-      },
-      "13.7.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2857,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_17.json"
-      },
-      "13.7.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2841,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_18.json"
-      },
-      "13.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 508,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_2.json"
-      },
-      "13.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 517,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_3.json"
-      },
-      "13.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 537,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_4.json"
-      },
-      "13.7.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 604,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_5.json"
-      },
-      "13.7.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 680,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_6.json"
-      },
-      "13.7.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 824,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_7.json"
-      },
-      "13.7.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1116,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_8.json"
-      },
-      "13.7.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1712,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_9.json"
-      },
-      "2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_1.json"
-      },
-      "2.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_10.json"
-      },
-      "2.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_11.json"
-      },
-      "2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_2.json"
-      },
-      "2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_3.json"
-      },
-      "2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_4.json"
-      },
-      "2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_2_5.json"
-      },
-      "2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_6.json"
-      },
-      "2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_7.json"
-      },
-      "2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_8.json"
-      },
-      "2.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_9.json"
-      },
-      "3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_1.json"
-      },
-      "3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_2.json"
-      },
-      "3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_3.json"
-      },
-      "3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_4.json"
-      },
-      "3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_5.json"
-      },
-      "3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_6.json"
-      },
-      "3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_7.json"
-      },
-      "4.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_1.json"
-      },
-      "4.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_2.json"
-      },
-      "4.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_3.json"
-      },
-      "4.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_4.json"
-      },
-      "4.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_5.json"
-      },
-      "4.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_1.json"
-      },
-      "4.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_2.json"
-      },
-      "4.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_3.json"
-      },
-      "4.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_4.json"
-      },
-      "4.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_5.json"
-      },
-      "5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_1.json"
-      },
-      "5.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_10.json"
-      },
-      "5.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_11.json"
-      },
-      "5.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_12.json"
-      },
-      "5.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_13.json"
-      },
-      "5.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_14.json"
-      },
-      "5.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_15.json"
-      },
-      "5.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_16.json"
-      },
-      "5.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_17.json"
-      },
-      "5.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_18.json"
-      },
-      "5.19": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1003,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_19.json"
-      },
-      "5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_2.json"
-      },
-      "5.20": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1004,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_20.json"
-      },
-      "5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_3.json"
-      },
-      "5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_4.json"
-      },
-      "5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_5.json"
-      },
-      "5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_6.json"
-      },
-      "5.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_7.json"
-      },
-      "5.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_8.json"
-      },
-      "5.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_9.json"
-      },
-      "6.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_1_1.json"
-      },
-      "6.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_1_2.json"
-      },
-      "6.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_1_3.json"
-      },
-      "6.10.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_10_1.json"
-      },
-      "6.10.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_10_2.json"
-      },
-      "6.10.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_10_3.json"
-      },
-      "6.11.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_1.json"
-      },
-      "6.11.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_2.json"
-      },
-      "6.11.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_3.json"
-      },
-      "6.11.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_4.json"
-      },
-      "6.11.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_11_5.json"
-      },
-      "6.12.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_1.json"
-      },
-      "6.12.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_2.json"
-      },
-      "6.12.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_3.json"
-      },
-      "6.12.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_4.json"
-      },
-      "6.12.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_5.json"
-      },
-      "6.12.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_6.json"
-      },
-      "6.12.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_7.json"
-      },
-      "6.12.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_8.json"
-      },
-      "6.13.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_1.json"
-      },
-      "6.13.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_2.json"
-      },
-      "6.13.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_3.json"
-      },
-      "6.13.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_4.json"
-      },
-      "6.13.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_5.json"
-      },
-      "6.14.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_1.json"
-      },
-      "6.14.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_10.json"
-      },
-      "6.14.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_2.json"
-      },
-      "6.14.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_3.json"
-      },
-      "6.14.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_4.json"
-      },
-      "6.14.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_5.json"
-      },
-      "6.14.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_6.json"
-      },
-      "6.14.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_7.json"
-      },
-      "6.14.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_8.json"
-      },
-      "6.14.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_9.json"
-      },
-      "6.15.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_15_1.json"
-      },
-      "6.16.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_16_1.json"
-      },
-      "6.16.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_16_2.json"
-      },
-      "6.16.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_16_3.json"
-      },
-      "6.17.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_1.json"
-      },
-      "6.17.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_2.json"
-      },
-      "6.17.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_3.json"
-      },
-      "6.17.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_4.json"
-      },
-      "6.17.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_5.json"
-      },
-      "6.18.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_1.json"
-      },
-      "6.18.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_2.json"
-      },
-      "6.18.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_3.json"
-      },
-      "6.18.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_4.json"
-      },
-      "6.18.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_5.json"
-      },
-      "6.19.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_1.json"
-      },
-      "6.19.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_2.json"
-      },
-      "6.19.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_3.json"
-      },
-      "6.19.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_4.json"
-      },
-      "6.19.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_5.json"
-      },
-      "6.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_1.json"
-      },
-      "6.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_2.json"
-      },
-      "6.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_3.json"
-      },
-      "6.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 7,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_4.json"
-      },
-      "6.20.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_1.json"
-      },
-      "6.20.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_2.json"
-      },
-      "6.20.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_3.json"
-      },
-      "6.20.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_4.json"
-      },
-      "6.20.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_5.json"
-      },
-      "6.20.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_6.json"
-      },
-      "6.20.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_7.json"
-      },
-      "6.21.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_1.json"
-      },
-      "6.21.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_2.json"
-      },
-      "6.21.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_3.json"
-      },
-      "6.21.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_4.json"
-      },
-      "6.21.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_5.json"
-      },
-      "6.21.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_6.json"
-      },
-      "6.21.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_7.json"
-      },
-      "6.21.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_8.json"
-      },
-      "6.22.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_1.json"
-      },
-      "6.22.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_10.json"
-      },
-      "6.22.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_11.json"
-      },
-      "6.22.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_12.json"
-      },
-      "6.22.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_13.json"
-      },
-      "6.22.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_14.json"
-      },
-      "6.22.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_15.json"
-      },
-      "6.22.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_16.json"
-      },
-      "6.22.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_17.json"
-      },
-      "6.22.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_18.json"
-      },
-      "6.22.19": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_19.json"
-      },
-      "6.22.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_2.json"
-      },
-      "6.22.20": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_20.json"
-      },
-      "6.22.21": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_21.json"
-      },
-      "6.22.22": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_22.json"
-      },
-      "6.22.23": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_23.json"
-      },
-      "6.22.24": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_24.json"
-      },
-      "6.22.25": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_25.json"
-      },
-      "6.22.26": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_26.json"
-      },
-      "6.22.27": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_27.json"
-      },
-      "6.22.28": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_28.json"
-      },
-      "6.22.29": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_29.json"
-      },
-      "6.22.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_3.json"
-      },
-      "6.22.30": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_30.json"
-      },
-      "6.22.31": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_31.json"
-      },
-      "6.22.32": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_32.json"
-      },
-      "6.22.33": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_33.json"
-      },
-      "6.22.34": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_34.json"
-      },
-      "6.22.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_4.json"
-      },
-      "6.22.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_5.json"
-      },
-      "6.22.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_6.json"
-      },
-      "6.22.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_7.json"
-      },
-      "6.22.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_8.json"
-      },
-      "6.22.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_9.json"
-      },
-      "6.23.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_1.json"
-      },
-      "6.23.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_2.json"
-      },
-      "6.23.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_3.json"
-      },
-      "6.23.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_4.json"
-      },
-      "6.23.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_5.json"
-      },
-      "6.23.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_6.json"
-      },
-      "6.23.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_7.json"
-      },
-      "6.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_3_1.json"
-      },
-      "6.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_3_2.json"
-      },
-      "6.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1002,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_1.json"
-      },
-      "6.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1001,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_2.json"
-      },
-      "6.4.3": {
-         "behavior": "NON-STRICT",
-         "behaviorClose": "OK",
-         "duration": 2002,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_3.json"
-      },
-      "6.4.4": {
-         "behavior": "NON-STRICT",
-         "behaviorClose": "OK",
-         "duration": 2002,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_4.json"
-      },
-      "6.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_1.json"
-      },
-      "6.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_2.json"
-      },
-      "6.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_3.json"
-      },
-      "6.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_4.json"
-      },
-      "6.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_5.json"
-      },
-      "6.6.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_1.json"
-      },
-      "6.6.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_10.json"
-      },
-      "6.6.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_11.json"
-      },
-      "6.6.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_2.json"
-      },
-      "6.6.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_3.json"
-      },
-      "6.6.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_4.json"
-      },
-      "6.6.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_5.json"
-      },
-      "6.6.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_6.json"
-      },
-      "6.6.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_7.json"
-      },
-      "6.6.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_8.json"
-      },
-      "6.6.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_9.json"
-      },
-      "6.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_1.json"
-      },
-      "6.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_2.json"
-      },
-      "6.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_3.json"
-      },
-      "6.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_4.json"
-      },
-      "6.8.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_8_1.json"
-      },
-      "6.8.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_8_2.json"
-      },
-      "6.9.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_1.json"
-      },
-      "6.9.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_2.json"
-      },
-      "6.9.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_3.json"
-      },
-      "6.9.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_4.json"
-      },
-      "7.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_1.json"
-      },
-      "7.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_2.json"
-      },
-      "7.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_3.json"
-      },
-      "7.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_4.json"
-      },
-      "7.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_5.json"
-      },
-      "7.1.6": {
-         "behavior": "INFORMATIONAL",
-         "behaviorClose": "INFORMATIONAL",
-         "duration": 7,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_6.json"
-      },
-      "7.13.1": {
-         "behavior": "INFORMATIONAL",
-         "behaviorClose": "INFORMATIONAL",
-         "duration": 1,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_13_1.json"
-      },
-      "7.13.2": {
-         "behavior": "INFORMATIONAL",
-         "behaviorClose": "INFORMATIONAL",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_13_2.json"
-      },
-      "7.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_3_1.json"
-      },
-      "7.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_3_2.json"
-      },
-      "7.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_3_3.json"
-      },
-      "7.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_3_4.json"
-      },
-      "7.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_3_5.json"
-      },
-      "7.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_3_6.json"
-      },
-      "7.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_5_1.json"
-      },
-      "7.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_1.json"
-      },
-      "7.7.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_10.json"
-      },
-      "7.7.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_11.json"
-      },
-      "7.7.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_12.json"
-      },
-      "7.7.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_13.json"
-      },
-      "7.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_2.json"
-      },
-      "7.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_3.json"
-      },
-      "7.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_4.json"
-      },
-      "7.7.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_5.json"
-      },
-      "7.7.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_6.json"
-      },
-      "7.7.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_7.json"
-      },
-      "7.7.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_8.json"
-      },
-      "7.7.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_9.json"
-      },
-      "7.9.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_1.json"
-      },
-      "7.9.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_2.json"
-      },
-      "7.9.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_3.json"
-      },
-      "7.9.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_4.json"
-      },
-      "7.9.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_5.json"
-      },
-      "7.9.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_6.json"
-      },
-      "7.9.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_7.json"
-      },
-      "7.9.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_8.json"
-      },
-      "7.9.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_9.json"
-      },
-      "9.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_1.json"
-      },
-      "9.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_2.json"
-      },
-      "9.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 16,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_3.json"
-      },
-      "9.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 64,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_4.json"
-      },
-      "9.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 126,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_5.json"
-      },
-      "9.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 244,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_6.json"
-      },
-      "9.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_1.json"
-      },
-      "9.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_2.json"
-      },
-      "9.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 14,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_3.json"
-      },
-      "9.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 57,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_4.json"
-      },
-      "9.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 114,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_5.json"
-      },
-      "9.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 253,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_6.json"
-      },
-      "9.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 394,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_1.json"
-      },
-      "9.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 129,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_2.json"
-      },
-      "9.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 58,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_3.json"
-      },
-      "9.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 40,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_4.json"
-      },
-      "9.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 34,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_5.json"
-      },
-      "9.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 34,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_6.json"
-      },
-      "9.3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 33,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_7.json"
-      },
-      "9.3.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 34,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_8.json"
-      },
-      "9.3.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 36,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_9.json"
-      },
-      "9.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 364,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_1.json"
-      },
-      "9.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 111,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_2.json"
-      },
-      "9.4.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 41,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_3.json"
-      },
-      "9.4.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 23,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_4.json"
-      },
-      "9.4.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 19,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_5.json"
-      },
-      "9.4.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 18,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_6.json"
-      },
-      "9.4.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 18,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_7.json"
-      },
-      "9.4.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 19,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_8.json"
-      },
-      "9.4.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 19,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_9.json"
-      },
-      "9.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 570,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_1.json"
-      },
-      "9.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 290,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_2.json"
-      },
-      "9.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 154,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_3.json"
-      },
-      "9.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 85,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_4.json"
-      },
-      "9.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 49,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_5.json"
-      },
-      "9.5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 30,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_6.json"
-      },
-      "9.6.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 567,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_1.json"
-      },
-      "9.6.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 291,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_2.json"
-      },
-      "9.6.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 157,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_3.json"
-      },
-      "9.6.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 83,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_4.json"
-      },
-      "9.6.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 48,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_5.json"
-      },
-      "9.6.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 30,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_6.json"
-      },
-      "9.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 66,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_1.json"
-      },
-      "9.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 69,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_2.json"
-      },
-      "9.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 73,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_3.json"
-      },
-      "9.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 81,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_4.json"
-      },
-      "9.7.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 118,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_5.json"
-      },
-      "9.7.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 250,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_6.json"
-      },
-      "9.8.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 64,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_1.json"
-      },
-      "9.8.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 69,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_2.json"
-      },
-      "9.8.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 69,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_3.json"
-      },
-      "9.8.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 79,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_4.json"
-      },
-      "9.8.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 107,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_5.json"
-      },
-      "9.8.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 202,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_6.json"
-      }
-   }
-}
\ No newline at end of file
diff --git a/ratchet_rs/autobahn/client/Cargo.toml b/ratchet_rs/autobahn/client/Cargo.toml
new file mode 100644
index 0000000..fd40978
--- /dev/null
+++ b/ratchet_rs/autobahn/client/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "client"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+utils = { path = "../utils" }
+tokio = { workspace = true, features = ["rt-multi-thread"] }
+anyhow = { workspace = true }
diff --git a/ratchet_rs/autobahn/client/fuzzingserver.json b/ratchet_rs/autobahn/client/fuzzingserver.json
new file mode 100644
index 0000000..f3c88f4
--- /dev/null
+++ b/ratchet_rs/autobahn/client/fuzzingserver.json
@@ -0,0 +1,9 @@
+{
+  "url": "ws://127.0.0.1:9001",
+  "outdir": "autobahn/results",
+  "cases": [
+    "*"
+  ],
+  "exclude-cases": [],
+  "exclude-agent-cases": {}
+}
diff --git a/ratchet_rs/autobahn/client/src/main.rs b/ratchet_rs/autobahn/client/src/main.rs
new file mode 100644
index 0000000..15e140a
--- /dev/null
+++ b/ratchet_rs/autobahn/client/src/main.rs
@@ -0,0 +1,97 @@
+use std::env::current_dir;
+use std::process::Stdio;
+
+use anyhow::{Context, Result};
+use tokio::process::Command;
+
+use utils::{await_server_start, cargo_command, pipe_logs, validate_results};
+
+const PWD_ERR: &str = "Failed to get PWD";
+const CONTAINER_NAME: &str = "fuzzingserver";
+
+async fn kill_container() {
+    Command::new("docker")
+        .args(["kill", CONTAINER_NAME])
+        .stdin(Stdio::null())
+        .spawn()
+        .expect("Failed to spawn command to kill any lingering test container")
+        .wait()
+        .await
+        .expect("Failed to kill any lingering test container");
+}
+
+fn docker_command() -> Result<Command> {
+    let mut pwd = current_dir().context(PWD_ERR)?;
+    pwd.push("ratchet_rs");
+
+    // mount /pwd/autobahn/client to /autobahn in the volume
+    let mut volume_arg = pwd.clone();
+    volume_arg.push("autobahn/client:/autobahn");
+
+    let mut cmd = Command::new("docker");
+    cmd.args(["run", "-d", "--rm", "-v"])
+        .arg(volume_arg)
+        .args([
+            "-p",
+            "9001:9001",
+            "--init",
+            "--platform",
+            "linux/amd64",
+            "--name",
+            CONTAINER_NAME,
+            "crossbario/autobahn-testsuite:0.8.2",
+            "wstest",
+            "-m",
+            "fuzzingserver",
+            "-s",
+        ])
+        // spec is now available at this directory due to how the host directory was mounted
+        .arg("autobahn/fuzzingserver.json")
+        .current_dir(pwd);
+
+    Ok(cmd)
+}
+
+#[tokio::main]
+async fn main() -> Result<()> {
+    let _server_process = tokio::spawn(async move {
+        // Just in case there is one lingering after being run locally.
+        kill_container().await;
+
+        docker_command()
+            .expect(PWD_ERR)
+            .spawn()
+            .expect("Failed to spawn autobahn server")
+            .wait()
+            .await
+    });
+
+    if let Err(e) = await_server_start(9001).await {
+        kill_container().await;
+        return Err(e);
+    }
+
+    let mut logs_process = match pipe_logs(CONTAINER_NAME).await {
+        Ok(child) => child,
+        Err(e) => {
+            kill_container().await;
+            return Err(e);
+        }
+    };
+
+    cargo_command("autobahn-client")?
+        .spawn()
+        .context("Failed to spawn docker container")?
+        .wait()
+        .await
+        .context("Failed to run autobahn client")?;
+
+    let mut results_dir = current_dir().context(PWD_ERR)?;
+    results_dir.push("ratchet_rs/autobahn/client/results");
+
+    validate_results(results_dir)?;
+    logs_process.kill().await?;
+    kill_container().await;
+
+    Ok(())
+}
diff --git a/ratchet_rs/autobahn/fuzzingclient.json b/ratchet_rs/autobahn/fuzzingclient.json
deleted file mode 100644
index a04e78b..0000000
--- a/ratchet_rs/autobahn/fuzzingclient.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-	"outdir": "./autobahn/server",
-	"servers": [
-		{
-			"agent": "Ratchet",
-			"url": "ws://127.0.0.1:9002"
-		}
-	],
-	"cases": ["*"],
-	"exclude-cases": [],
-	"exclude-agent-cases": {}
-}
diff --git a/ratchet_rs/autobahn/fuzzingserver.json b/ratchet_rs/autobahn/fuzzingserver.json
deleted file mode 100644
index c887c35..0000000
--- a/ratchet_rs/autobahn/fuzzingserver.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-	"url": "ws://127.0.0.1:9001",
-	"outdir": "./autobahn/client",
-	"cases": ["*"],
-	"exclude-cases": [],
-	"exclude-agent-cases": {}
-}
diff --git a/ratchet_rs/autobahn/server-results.json b/ratchet_rs/autobahn/server-results.json
deleted file mode 100644
index a69badd..0000000
--- a/ratchet_rs/autobahn/server-results.json
+++ /dev/null
@@ -1,3623 +0,0 @@
-{
-   "ratchet": {
-      "1.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_1.json"
-      },
-      "1.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_2.json"
-      },
-      "1.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_3.json"
-      },
-      "1.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_4.json"
-      },
-      "1.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_5.json"
-      },
-      "1.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_6.json"
-      },
-      "1.1.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_7.json"
-      },
-      "1.1.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_1_8.json"
-      },
-      "1.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_1.json"
-      },
-      "1.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_2.json"
-      },
-      "1.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_3.json"
-      },
-      "1.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_4.json"
-      },
-      "1.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_5.json"
-      },
-      "1.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 18,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_6.json"
-      },
-      "1.2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 18,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_7.json"
-      },
-      "1.2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 21,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_1_2_8.json"
-      },
-      "10.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 9,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_10_1_1.json"
-      },
-      "12.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 626,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_1.json"
-      },
-      "12.1.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5308,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_10.json"
-      },
-      "12.1.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 796,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_11.json"
-      },
-      "12.1.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 948,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_12.json"
-      },
-      "12.1.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1438,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_13.json"
-      },
-      "12.1.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2804,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_14.json"
-      },
-      "12.1.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5424,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_15.json"
-      },
-      "12.1.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5352,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_16.json"
-      },
-      "12.1.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5437,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_17.json"
-      },
-      "12.1.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5622,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_18.json"
-      },
-      "12.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 612,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_2.json"
-      },
-      "12.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 655,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_3.json"
-      },
-      "12.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 667,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_4.json"
-      },
-      "12.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 730,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_5.json"
-      },
-      "12.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 825,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_6.json"
-      },
-      "12.1.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 944,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_7.json"
-      },
-      "12.1.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1509,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_8.json"
-      },
-      "12.1.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2843,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_1_9.json"
-      },
-      "12.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 110,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_1.json"
-      },
-      "12.2.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 13106,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_10.json"
-      },
-      "12.2.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 902,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_11.json"
-      },
-      "12.2.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1884,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_12.json"
-      },
-      "12.2.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4376,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_13.json"
-      },
-      "12.2.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 8699,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_14.json"
-      },
-      "12.2.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 17706,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_15.json"
-      },
-      "12.2.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 14203,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_16.json"
-      },
-      "12.2.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 13358,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_17.json"
-      },
-      "12.2.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 13024,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_18.json"
-      },
-      "12.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 141,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_2.json"
-      },
-      "12.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 136,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_3.json"
-      },
-      "12.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 237,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_4.json"
-      },
-      "12.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 482,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_5.json"
-      },
-      "12.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 885,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_6.json"
-      },
-      "12.2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1692,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_7.json"
-      },
-      "12.2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3395,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_8.json"
-      },
-      "12.2.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6743,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_2_9.json"
-      },
-      "12.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 98,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_1.json"
-      },
-      "12.3.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11308,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_10.json"
-      },
-      "12.3.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 734,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_11.json"
-      },
-      "12.3.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1263,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_12.json"
-      },
-      "12.3.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2953,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_13.json"
-      },
-      "12.3.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6534,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_14.json"
-      },
-      "12.3.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 13252,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_15.json"
-      },
-      "12.3.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11823,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_16.json"
-      },
-      "12.3.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11151,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_17.json"
-      },
-      "12.3.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11493,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_18.json"
-      },
-      "12.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 105,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_2.json"
-      },
-      "12.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 133,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_3.json"
-      },
-      "12.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 166,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_4.json"
-      },
-      "12.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 368,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_5.json"
-      },
-      "12.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 616,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_6.json"
-      },
-      "12.3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1192,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_7.json"
-      },
-      "12.3.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2294,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_8.json"
-      },
-      "12.3.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5598,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_3_9.json"
-      },
-      "12.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 689,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_1.json"
-      },
-      "12.4.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5214,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_10.json"
-      },
-      "12.4.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 921,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_11.json"
-      },
-      "12.4.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1098,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_12.json"
-      },
-      "12.4.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1475,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_13.json"
-      },
-      "12.4.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2727,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_14.json"
-      },
-      "12.4.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5294,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_15.json"
-      },
-      "12.4.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5275,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_16.json"
-      },
-      "12.4.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5220,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_17.json"
-      },
-      "12.4.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5211,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_18.json"
-      },
-      "12.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 693,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_2.json"
-      },
-      "12.4.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 711,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_3.json"
-      },
-      "12.4.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 742,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_4.json"
-      },
-      "12.4.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 806,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_5.json"
-      },
-      "12.4.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 880,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_6.json"
-      },
-      "12.4.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1047,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_7.json"
-      },
-      "12.4.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1420,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_8.json"
-      },
-      "12.4.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2700,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_4_9.json"
-      },
-      "12.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 95,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_1.json"
-      },
-      "12.5.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11305,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_10.json"
-      },
-      "12.5.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1053,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_11.json"
-      },
-      "12.5.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1836,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_12.json"
-      },
-      "12.5.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3614,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_13.json"
-      },
-      "12.5.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 7264,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_14.json"
-      },
-      "12.5.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 14358,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_15.json"
-      },
-      "12.5.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11942,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_16.json"
-      },
-      "12.5.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11389,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_17.json"
-      },
-      "12.5.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11262,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_18.json"
-      },
-      "12.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 105,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_2.json"
-      },
-      "12.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 132,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_3.json"
-      },
-      "12.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 171,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_4.json"
-      },
-      "12.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 449,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_5.json"
-      },
-      "12.5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 772,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_6.json"
-      },
-      "12.5.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1472,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_7.json"
-      },
-      "12.5.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2853,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_8.json"
-      },
-      "12.5.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5700,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_12_5_9.json"
-      },
-      "13.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 551,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_1.json"
-      },
-      "13.1.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5125,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_10.json"
-      },
-      "13.1.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 745,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_11.json"
-      },
-      "13.1.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 865,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_12.json"
-      },
-      "13.1.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1378,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_13.json"
-      },
-      "13.1.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2643,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_14.json"
-      },
-      "13.1.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5195,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_15.json"
-      },
-      "13.1.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5141,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_16.json"
-      },
-      "13.1.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5129,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_17.json"
-      },
-      "13.1.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5132,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_18.json"
-      },
-      "13.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 549,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_2.json"
-      },
-      "13.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 559,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_3.json"
-      },
-      "13.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 590,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_4.json"
-      },
-      "13.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 650,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_5.json"
-      },
-      "13.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 710,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_6.json"
-      },
-      "13.1.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 818,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_7.json"
-      },
-      "13.1.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1368,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_8.json"
-      },
-      "13.1.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2609,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_1_9.json"
-      },
-      "13.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 548,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_1.json"
-      },
-      "13.2.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5127,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_10.json"
-      },
-      "13.2.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 738,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_11.json"
-      },
-      "13.2.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 861,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_12.json"
-      },
-      "13.2.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1372,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_13.json"
-      },
-      "13.2.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2658,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_14.json"
-      },
-      "13.2.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5206,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_15.json"
-      },
-      "13.2.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5130,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_16.json"
-      },
-      "13.2.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5380,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_17.json"
-      },
-      "13.2.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5297,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_18.json"
-      },
-      "13.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 553,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_2.json"
-      },
-      "13.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 576,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_3.json"
-      },
-      "13.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 596,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_4.json"
-      },
-      "13.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 649,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_5.json"
-      },
-      "13.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 712,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_6.json"
-      },
-      "13.2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 824,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_7.json"
-      },
-      "13.2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1357,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_8.json"
-      },
-      "13.2.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2603,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_2_9.json"
-      },
-      "13.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 571,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_1.json"
-      },
-      "13.3.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5314,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_10.json"
-      },
-      "13.3.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 750,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_11.json"
-      },
-      "13.3.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 880,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_12.json"
-      },
-      "13.3.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1443,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_13.json"
-      },
-      "13.3.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2737,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_14.json"
-      },
-      "13.3.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5193,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_15.json"
-      },
-      "13.3.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5183,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_16.json"
-      },
-      "13.3.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5310,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_17.json"
-      },
-      "13.3.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5297,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_18.json"
-      },
-      "13.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 555,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_2.json"
-      },
-      "13.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 572,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_3.json"
-      },
-      "13.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 601,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_4.json"
-      },
-      "13.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 657,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_5.json"
-      },
-      "13.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 714,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_6.json"
-      },
-      "13.3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 850,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_7.json"
-      },
-      "13.3.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1423,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_8.json"
-      },
-      "13.3.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2708,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_3_9.json"
-      },
-      "13.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 552,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_1.json"
-      },
-      "13.4.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5125,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_10.json"
-      },
-      "13.4.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 741,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_11.json"
-      },
-      "13.4.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 861,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_12.json"
-      },
-      "13.4.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1376,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_13.json"
-      },
-      "13.4.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2644,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_14.json"
-      },
-      "13.4.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5192,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_15.json"
-      },
-      "13.4.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5155,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_16.json"
-      },
-      "13.4.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5127,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_17.json"
-      },
-      "13.4.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5694,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_18.json"
-      },
-      "13.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 554,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_2.json"
-      },
-      "13.4.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 569,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_3.json"
-      },
-      "13.4.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 590,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_4.json"
-      },
-      "13.4.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 656,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_5.json"
-      },
-      "13.4.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 716,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_6.json"
-      },
-      "13.4.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 824,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_7.json"
-      },
-      "13.4.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1361,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_8.json"
-      },
-      "13.4.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2603,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_4_9.json"
-      },
-      "13.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1199,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_1.json"
-      },
-      "13.5.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6059,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_10.json"
-      },
-      "13.5.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 886,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_11.json"
-      },
-      "13.5.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1238,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_12.json"
-      },
-      "13.5.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1824,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_13.json"
-      },
-      "13.5.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2915,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_14.json"
-      },
-      "13.5.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5567,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_15.json"
-      },
-      "13.5.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5331,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_16.json"
-      },
-      "13.5.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5427,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_17.json"
-      },
-      "13.5.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5394,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_18.json"
-      },
-      "13.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1609,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_2.json"
-      },
-      "13.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1168,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_3.json"
-      },
-      "13.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1220,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_4.json"
-      },
-      "13.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 891,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_5.json"
-      },
-      "13.5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 906,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_6.json"
-      },
-      "13.5.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1018,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_7.json"
-      },
-      "13.5.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1984,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_8.json"
-      },
-      "13.5.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3313,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_5_9.json"
-      },
-      "13.6.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 640,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_1.json"
-      },
-      "13.6.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5641,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_10.json"
-      },
-      "13.6.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 815,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_11.json"
-      },
-      "13.6.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1073,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_12.json"
-      },
-      "13.6.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1594,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_13.json"
-      },
-      "13.6.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2776,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_14.json"
-      },
-      "13.6.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5407,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_15.json"
-      },
-      "13.6.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5375,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_16.json"
-      },
-      "13.6.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5352,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_17.json"
-      },
-      "13.6.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5309,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_18.json"
-      },
-      "13.6.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 609,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_2.json"
-      },
-      "13.6.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 622,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_3.json"
-      },
-      "13.6.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 646,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_4.json"
-      },
-      "13.6.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 741,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_5.json"
-      },
-      "13.6.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 872,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_6.json"
-      },
-      "13.6.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 971,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_7.json"
-      },
-      "13.6.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1491,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_8.json"
-      },
-      "13.6.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2868,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_6_9.json"
-      },
-      "13.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 610,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_1.json"
-      },
-      "13.7.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5631,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_10.json"
-      },
-      "13.7.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 811,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_11.json"
-      },
-      "13.7.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 986,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_12.json"
-      },
-      "13.7.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1535,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_13.json"
-      },
-      "13.7.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2851,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_14.json"
-      },
-      "13.7.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5344,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_15.json"
-      },
-      "13.7.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5311,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_16.json"
-      },
-      "13.7.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5355,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_17.json"
-      },
-      "13.7.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5762,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_18.json"
-      },
-      "13.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 599,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_2.json"
-      },
-      "13.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 619,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_3.json"
-      },
-      "13.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 659,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_4.json"
-      },
-      "13.7.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 731,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_5.json"
-      },
-      "13.7.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 807,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_6.json"
-      },
-      "13.7.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 979,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_7.json"
-      },
-      "13.7.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1557,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_8.json"
-      },
-      "13.7.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2908,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_13_7_9.json"
-      },
-      "2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_1.json"
-      },
-      "2.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 44,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_10.json"
-      },
-      "2.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 7,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_11.json"
-      },
-      "2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_2.json"
-      },
-      "2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_3.json"
-      },
-      "2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_4.json"
-      },
-      "2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_2_5.json"
-      },
-      "2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_6.json"
-      },
-      "2.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_7.json"
-      },
-      "2.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_8.json"
-      },
-      "2.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_2_9.json"
-      },
-      "3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_1.json"
-      },
-      "3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_2.json"
-      },
-      "3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_3.json"
-      },
-      "3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_4.json"
-      },
-      "3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_5.json"
-      },
-      "3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_6.json"
-      },
-      "3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_3_7.json"
-      },
-      "4.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_1.json"
-      },
-      "4.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_2.json"
-      },
-      "4.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_3.json"
-      },
-      "4.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_4.json"
-      },
-      "4.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_1_5.json"
-      },
-      "4.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_1.json"
-      },
-      "4.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_2.json"
-      },
-      "4.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_3.json"
-      },
-      "4.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_4.json"
-      },
-      "4.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_4_2_5.json"
-      },
-      "5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_1.json"
-      },
-      "5.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_10.json"
-      },
-      "5.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_11.json"
-      },
-      "5.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_12.json"
-      },
-      "5.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_13.json"
-      },
-      "5.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_14.json"
-      },
-      "5.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_15.json"
-      },
-      "5.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_16.json"
-      },
-      "5.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_17.json"
-      },
-      "5.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_18.json"
-      },
-      "5.19": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1004,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_19.json"
-      },
-      "5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_2.json"
-      },
-      "5.20": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1004,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_20.json"
-      },
-      "5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_3.json"
-      },
-      "5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_4.json"
-      },
-      "5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_5.json"
-      },
-      "5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 43,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_6.json"
-      },
-      "5.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_7.json"
-      },
-      "5.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 11,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_5_8.json"
-      },
-      "5.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_5_9.json"
-      },
-      "6.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_1_1.json"
-      },
-      "6.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_1_2.json"
-      },
-      "6.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_1_3.json"
-      },
-      "6.10.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_10_1.json"
-      },
-      "6.10.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_10_2.json"
-      },
-      "6.10.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_10_3.json"
-      },
-      "6.11.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_1.json"
-      },
-      "6.11.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_2.json"
-      },
-      "6.11.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_3.json"
-      },
-      "6.11.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_11_4.json"
-      },
-      "6.11.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_11_5.json"
-      },
-      "6.12.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_1.json"
-      },
-      "6.12.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_2.json"
-      },
-      "6.12.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_3.json"
-      },
-      "6.12.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_4.json"
-      },
-      "6.12.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_5.json"
-      },
-      "6.12.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_6.json"
-      },
-      "6.12.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_7.json"
-      },
-      "6.12.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_12_8.json"
-      },
-      "6.13.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_1.json"
-      },
-      "6.13.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_2.json"
-      },
-      "6.13.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_3.json"
-      },
-      "6.13.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_4.json"
-      },
-      "6.13.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_13_5.json"
-      },
-      "6.14.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_1.json"
-      },
-      "6.14.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_10.json"
-      },
-      "6.14.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_2.json"
-      },
-      "6.14.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_3.json"
-      },
-      "6.14.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_4.json"
-      },
-      "6.14.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_5.json"
-      },
-      "6.14.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_6.json"
-      },
-      "6.14.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_7.json"
-      },
-      "6.14.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_8.json"
-      },
-      "6.14.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_14_9.json"
-      },
-      "6.15.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_15_1.json"
-      },
-      "6.16.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_16_1.json"
-      },
-      "6.16.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_16_2.json"
-      },
-      "6.16.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_16_3.json"
-      },
-      "6.17.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_1.json"
-      },
-      "6.17.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_2.json"
-      },
-      "6.17.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_3.json"
-      },
-      "6.17.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_4.json"
-      },
-      "6.17.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_17_5.json"
-      },
-      "6.18.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_1.json"
-      },
-      "6.18.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_2.json"
-      },
-      "6.18.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_3.json"
-      },
-      "6.18.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_4.json"
-      },
-      "6.18.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_18_5.json"
-      },
-      "6.19.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_1.json"
-      },
-      "6.19.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_2.json"
-      },
-      "6.19.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_3.json"
-      },
-      "6.19.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_4.json"
-      },
-      "6.19.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_19_5.json"
-      },
-      "6.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_1.json"
-      },
-      "6.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_2.json"
-      },
-      "6.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_3.json"
-      },
-      "6.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_2_4.json"
-      },
-      "6.20.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_1.json"
-      },
-      "6.20.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_2.json"
-      },
-      "6.20.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_3.json"
-      },
-      "6.20.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_4.json"
-      },
-      "6.20.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_5.json"
-      },
-      "6.20.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_6.json"
-      },
-      "6.20.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_20_7.json"
-      },
-      "6.21.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_1.json"
-      },
-      "6.21.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_2.json"
-      },
-      "6.21.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_3.json"
-      },
-      "6.21.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_4.json"
-      },
-      "6.21.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_5.json"
-      },
-      "6.21.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_6.json"
-      },
-      "6.21.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_7.json"
-      },
-      "6.21.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_21_8.json"
-      },
-      "6.22.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_1.json"
-      },
-      "6.22.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_10.json"
-      },
-      "6.22.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_11.json"
-      },
-      "6.22.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_12.json"
-      },
-      "6.22.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_13.json"
-      },
-      "6.22.14": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_14.json"
-      },
-      "6.22.15": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_15.json"
-      },
-      "6.22.16": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_16.json"
-      },
-      "6.22.17": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_17.json"
-      },
-      "6.22.18": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_18.json"
-      },
-      "6.22.19": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_19.json"
-      },
-      "6.22.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_2.json"
-      },
-      "6.22.20": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_20.json"
-      },
-      "6.22.21": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_21.json"
-      },
-      "6.22.22": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_22.json"
-      },
-      "6.22.23": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_23.json"
-      },
-      "6.22.24": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_24.json"
-      },
-      "6.22.25": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_25.json"
-      },
-      "6.22.26": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_26.json"
-      },
-      "6.22.27": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_27.json"
-      },
-      "6.22.28": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_28.json"
-      },
-      "6.22.29": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_29.json"
-      },
-      "6.22.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_3.json"
-      },
-      "6.22.30": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_30.json"
-      },
-      "6.22.31": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_31.json"
-      },
-      "6.22.32": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_32.json"
-      },
-      "6.22.33": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_33.json"
-      },
-      "6.22.34": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_34.json"
-      },
-      "6.22.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_4.json"
-      },
-      "6.22.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_5.json"
-      },
-      "6.22.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_6.json"
-      },
-      "6.22.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_7.json"
-      },
-      "6.22.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_8.json"
-      },
-      "6.22.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_22_9.json"
-      },
-      "6.23.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_1.json"
-      },
-      "6.23.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_2.json"
-      },
-      "6.23.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_3.json"
-      },
-      "6.23.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_4.json"
-      },
-      "6.23.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_5.json"
-      },
-      "6.23.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_6.json"
-      },
-      "6.23.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_23_7.json"
-      },
-      "6.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_3_1.json"
-      },
-      "6.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_3_2.json"
-      },
-      "6.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1002,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_1.json"
-      },
-      "6.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1002,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_2.json"
-      },
-      "6.4.3": {
-         "behavior": "NON-STRICT",
-         "behaviorClose": "OK",
-         "duration": 2002,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_3.json"
-      },
-      "6.4.4": {
-         "behavior": "NON-STRICT",
-         "behaviorClose": "OK",
-         "duration": 2002,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_4_4.json"
-      },
-      "6.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_1.json"
-      },
-      "6.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_2.json"
-      },
-      "6.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_3.json"
-      },
-      "6.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 3,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_4.json"
-      },
-      "6.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 6,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_5_5.json"
-      },
-      "6.6.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_1.json"
-      },
-      "6.6.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_10.json"
-      },
-      "6.6.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_11.json"
-      },
-      "6.6.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_2.json"
-      },
-      "6.6.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_3.json"
-      },
-      "6.6.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_4.json"
-      },
-      "6.6.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_5.json"
-      },
-      "6.6.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_6.json"
-      },
-      "6.6.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_7.json"
-      },
-      "6.6.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_6_8.json"
-      },
-      "6.6.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_6_9.json"
-      },
-      "6.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_1.json"
-      },
-      "6.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_2.json"
-      },
-      "6.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_3.json"
-      },
-      "6.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_7_4.json"
-      },
-      "6.8.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_8_1.json"
-      },
-      "6.8.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_6_8_2.json"
-      },
-      "6.9.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_1.json"
-      },
-      "6.9.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_2.json"
-      },
-      "6.9.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_3.json"
-      },
-      "6.9.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_6_9_4.json"
-      },
-      "7.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_1.json"
-      },
-      "7.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_2.json"
-      },
-      "7.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_3.json"
-      },
-      "7.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_4.json"
-      },
-      "7.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_5.json"
-      },
-      "7.1.6": {
-         "behavior": "INFORMATIONAL",
-         "behaviorClose": "INFORMATIONAL",
-         "duration": 19,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_1_6.json"
-      },
-      "7.13.1": {
-         "behavior": "INFORMATIONAL",
-         "behaviorClose": "INFORMATIONAL",
-         "duration": 2,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_13_1.json"
-      },
-      "7.13.2": {
-         "behavior": "INFORMATIONAL",
-         "behaviorClose": "INFORMATIONAL",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_13_2.json"
-      },
-      "7.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_3_1.json"
-      },
-      "7.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_3_2.json"
-      },
-      "7.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_3_3.json"
-      },
-      "7.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_3_4.json"
-      },
-      "7.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_3_5.json"
-      },
-      "7.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_3_6.json"
-      },
-      "7.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": null,
-         "reportfile": "ratchet_case_7_5_1.json"
-      },
-      "7.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_1.json"
-      },
-      "7.7.10": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_10.json"
-      },
-      "7.7.11": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_11.json"
-      },
-      "7.7.12": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_12.json"
-      },
-      "7.7.13": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_13.json"
-      },
-      "7.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_2.json"
-      },
-      "7.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_3.json"
-      },
-      "7.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_4.json"
-      },
-      "7.7.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_5.json"
-      },
-      "7.7.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 2,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_6.json"
-      },
-      "7.7.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_7.json"
-      },
-      "7.7.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_8.json"
-      },
-      "7.7.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_7_7_9.json"
-      },
-      "7.9.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_1.json"
-      },
-      "7.9.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_2.json"
-      },
-      "7.9.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_3.json"
-      },
-      "7.9.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_4.json"
-      },
-      "7.9.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_5.json"
-      },
-      "7.9.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_6.json"
-      },
-      "7.9.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_7.json"
-      },
-      "7.9.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_8.json"
-      },
-      "7.9.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 0,
-         "remoteCloseCode": 1002,
-         "reportfile": "ratchet_case_7_9_9.json"
-      },
-      "9.1.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 4,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_1.json"
-      },
-      "9.1.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 18,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_2.json"
-      },
-      "9.1.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 76,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_3.json"
-      },
-      "9.1.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 285,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_4.json"
-      },
-      "9.1.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 531,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_5.json"
-      },
-      "9.1.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1063,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_1_6.json"
-      },
-      "9.2.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 5,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_1.json"
-      },
-      "9.2.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 21,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_2.json"
-      },
-      "9.2.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 69,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_3.json"
-      },
-      "9.2.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 275,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_4.json"
-      },
-      "9.2.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 554,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_5.json"
-      },
-      "9.2.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 1115,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_2_6.json"
-      },
-      "9.3.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 978,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_1.json"
-      },
-      "9.3.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 555,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_2.json"
-      },
-      "9.3.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 446,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_3.json"
-      },
-      "9.3.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 419,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_4.json"
-      },
-      "9.3.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 393,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_5.json"
-      },
-      "9.3.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 389,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_6.json"
-      },
-      "9.3.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 387,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_7.json"
-      },
-      "9.3.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 350,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_8.json"
-      },
-      "9.3.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 231,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_3_9.json"
-      },
-      "9.4.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 947,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_1.json"
-      },
-      "9.4.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 553,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_2.json"
-      },
-      "9.4.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 433,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_3.json"
-      },
-      "9.4.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 412,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_4.json"
-      },
-      "9.4.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 394,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_5.json"
-      },
-      "9.4.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 391,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_6.json"
-      },
-      "9.4.7": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 388,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_7.json"
-      },
-      "9.4.8": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 348,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_8.json"
-      },
-      "9.4.9": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 227,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_4_9.json"
-      },
-      "9.5.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 599,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_1.json"
-      },
-      "9.5.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 322,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_2.json"
-      },
-      "9.5.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 183,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_3.json"
-      },
-      "9.5.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 114,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_4.json"
-      },
-      "9.5.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 79,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_5.json"
-      },
-      "9.5.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 64,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_5_6.json"
-      },
-      "9.6.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 593,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_1.json"
-      },
-      "9.6.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 322,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_2.json"
-      },
-      "9.6.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 199,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_3.json"
-      },
-      "9.6.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 128,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_4.json"
-      },
-      "9.6.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 90,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_5.json"
-      },
-      "9.6.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 77,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_6_6.json"
-      },
-      "9.7.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 86,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_1.json"
-      },
-      "9.7.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 90,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_2.json"
-      },
-      "9.7.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 99,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_3.json"
-      },
-      "9.7.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 124,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_4.json"
-      },
-      "9.7.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 167,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_5.json"
-      },
-      "9.7.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 500,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_7_6.json"
-      },
-      "9.8.1": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 83,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_1.json"
-      },
-      "9.8.2": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 97,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_2.json"
-      },
-      "9.8.3": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 136,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_3.json"
-      },
-      "9.8.4": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 123,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_4.json"
-      },
-      "9.8.5": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 175,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_5.json"
-      },
-      "9.8.6": {
-         "behavior": "OK",
-         "behaviorClose": "OK",
-         "duration": 495,
-         "remoteCloseCode": 1000,
-         "reportfile": "ratchet_case_9_8_6.json"
-      }
-   }
-}
\ No newline at end of file
diff --git a/ratchet_rs/autobahn/server/Cargo.toml b/ratchet_rs/autobahn/server/Cargo.toml
new file mode 100644
index 0000000..ff1b022
--- /dev/null
+++ b/ratchet_rs/autobahn/server/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "server"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+utils = { path = "../utils" }
+tokio = { workspace = true, features = ["rt-multi-thread"] }
+anyhow = { workspace = true }
diff --git a/ratchet_rs/autobahn/server/fuzzingclient.json b/ratchet_rs/autobahn/server/fuzzingclient.json
new file mode 100644
index 0000000..b6d9bec
--- /dev/null
+++ b/ratchet_rs/autobahn/server/fuzzingclient.json
@@ -0,0 +1,15 @@
+{
+  "outdir": "autobahn/results",
+  "servers": [
+    {
+      "agent": "Ratchet",
+      "url": "ws://127.0.0.1:9002"
+    }
+  ],
+  "cases": [
+    "*"
+  ],
+  "exclude-cases": [
+  ],
+  "exclude-agent-cases": {}
+}
diff --git a/ratchet_rs/autobahn/server/src/main.rs b/ratchet_rs/autobahn/server/src/main.rs
new file mode 100644
index 0000000..eaee535
--- /dev/null
+++ b/ratchet_rs/autobahn/server/src/main.rs
@@ -0,0 +1,81 @@
+use std::env::current_dir;
+use std::sync::Arc;
+
+use anyhow::{bail, Context, Result};
+use tokio::process::Command;
+use tokio::sync::Notify;
+use utils::{await_server_start, cargo_command, validate_results};
+
+const PWD_ERR: &str = "Failed to get PWD";
+
+fn docker_command() -> Result<Command> {
+    let mut pwd = current_dir().context(PWD_ERR)?;
+    pwd.push("ratchet_rs");
+
+    // mount /pwd/autobahn/server to /autobahn in the volume
+    let mut volume_arg = pwd.clone();
+    volume_arg.push("autobahn/server:/autobahn");
+
+    let mut cmd = Command::new("docker");
+    cmd.args(["run", "--rm", "-v"])
+        .arg(volume_arg)
+        .args([
+            "--network",
+            "host",
+            "--platform",
+            "linux/amd64",
+            "crossbario/autobahn-testsuite:0.8.2",
+            "wstest",
+            "-m",
+            "fuzzingclient",
+            "-s",
+        ])
+        // spec is now available at this directory due to how the host directory was mounted
+        .arg("autobahn/fuzzingclient.json")
+        .current_dir(pwd);
+
+    Ok(cmd)
+}
+
+#[tokio::main]
+async fn main() -> Result<()> {
+    let stop = Arc::new(Notify::new());
+    let server_stop = stop.clone();
+
+    let server_process = tokio::spawn(async move {
+        let mut child = cargo_command("autobahn-server")
+            .expect(PWD_ERR)
+            .spawn()
+            .expect("Failed to spawn autobahn server");
+
+        server_stop.notified().await;
+        child.kill().await.expect("Failed to kill process");
+    });
+
+    if let Err(e) = await_server_start(9002).await {
+        stop.notify_waiters();
+        server_process.await.expect("Cargo server process failed");
+        return Err(e);
+    }
+
+    let result = docker_command()?
+        .spawn()
+        .context("Failed to spawn docker container")?
+        .wait()
+        .await
+        .context("Autobahn suite failed")?;
+
+    if !result.success() {
+        bail!("Autobahn suite failed");
+    }
+
+    let mut results_dir = current_dir().context(PWD_ERR)?;
+    results_dir.push("ratchet_rs/autobahn/server/results");
+
+    validate_results(results_dir)?;
+
+    stop.notify_waiters();
+    server_process.await.expect("Cargo server process failed");
+
+    Ok(())
+}
diff --git a/ratchet_rs/autobahn/split_client/Cargo.toml b/ratchet_rs/autobahn/split_client/Cargo.toml
new file mode 100644
index 0000000..c42c8d1
--- /dev/null
+++ b/ratchet_rs/autobahn/split_client/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "split_client"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+utils = { path = "../utils" }
+tokio = { workspace = true, features = ["rt-multi-thread"] }
+anyhow = { workspace = true }
diff --git a/ratchet_rs/autobahn/split_client/fuzzingserver.json b/ratchet_rs/autobahn/split_client/fuzzingserver.json
new file mode 100644
index 0000000..46d639b
--- /dev/null
+++ b/ratchet_rs/autobahn/split_client/fuzzingserver.json
@@ -0,0 +1,9 @@
+{
+  "url": "ws://127.0.0.1:9003",
+  "outdir": "autobahn/results",
+  "cases": [
+    "*"
+  ],
+  "exclude-cases": [],
+  "exclude-agent-cases": {}
+}
diff --git a/ratchet_rs/autobahn/split_client/src/main.rs b/ratchet_rs/autobahn/split_client/src/main.rs
new file mode 100644
index 0000000..1946f2c
--- /dev/null
+++ b/ratchet_rs/autobahn/split_client/src/main.rs
@@ -0,0 +1,97 @@
+use std::env::current_dir;
+use std::process::Stdio;
+
+use anyhow::{Context, Result};
+use tokio::process::Command;
+
+use utils::{await_server_start, cargo_command, pipe_logs, validate_results};
+
+const PWD_ERR: &str = "Failed to get PWD";
+const CONTAINER_NAME: &str = "fuzzingsplitserver";
+
+async fn kill_container() {
+    Command::new("docker")
+        .args(["kill", CONTAINER_NAME])
+        .stdin(Stdio::null())
+        .spawn()
+        .expect("Failed to spawn command to kill any lingering test container")
+        .wait()
+        .await
+        .expect("Failed to kill any lingering test container");
+}
+
+fn docker_command() -> Result<Command> {
+    let mut pwd = current_dir().context(PWD_ERR)?;
+    pwd.push("ratchet_rs");
+
+    // mount /pwd/autobahn/client to /autobahn in the volume
+    let mut volume_arg = pwd.clone();
+    volume_arg.push("autobahn/split_client:/autobahn");
+
+    let mut cmd = Command::new("docker");
+    cmd.args(["run", "-d", "--rm", "-v"])
+        .arg(volume_arg)
+        .args([
+            "-p",
+            "9003:9003",
+            "--init",
+            "--platform",
+            "linux/amd64",
+            "--name",
+            CONTAINER_NAME,
+            "crossbario/autobahn-testsuite:0.8.2",
+            "wstest",
+            "-m",
+            "fuzzingserver",
+            "-s",
+        ])
+        // spec is now available at this directory due to how the host directory was mounted
+        .arg("autobahn/fuzzingserver.json")
+        .current_dir(pwd);
+
+    Ok(cmd)
+}
+
+#[tokio::main]
+async fn main() -> Result<()> {
+    let _server_process = tokio::spawn(async move {
+        // Just in case there is one lingering after being run locally.
+        kill_container().await;
+
+        docker_command()
+            .expect(PWD_ERR)
+            .spawn()
+            .expect("Failed to spawn autobahn server")
+            .wait()
+            .await
+    });
+
+    if let Err(e) = await_server_start(9003).await {
+        kill_container().await;
+        return Err(e);
+    }
+
+    let mut logs_process = match pipe_logs(CONTAINER_NAME).await {
+        Ok(child) => child,
+        Err(e) => {
+            kill_container().await;
+            return Err(e);
+        }
+    };
+
+    cargo_command("autobahn-split-client")?
+        .spawn()
+        .context("Failed to spawn docker container")?
+        .wait()
+        .await
+        .context("Failed to run autobahn client")?;
+
+    let mut results_dir = current_dir().context(PWD_ERR)?;
+    results_dir.push("ratchet_rs/autobahn/split_client/results");
+
+    validate_results(results_dir)?;
+    logs_process.kill().await?;
+    kill_container().await;
+
+    Ok(())
+}
diff --git a/ratchet_rs/autobahn/split_server/Cargo.toml b/ratchet_rs/autobahn/split_server/Cargo.toml
new file mode 100644
index 0000000..a3cd48c
--- /dev/null
+++ b/ratchet_rs/autobahn/split_server/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "split_server"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+utils = { path = "../utils" }
+tokio = { workspace = true, features = ["rt-multi-thread"] }
+anyhow = { workspace = true }
diff --git a/ratchet_rs/autobahn/split_server/fuzzingclient.json b/ratchet_rs/autobahn/split_server/fuzzingclient.json
new file mode 100644
index 0000000..b5c3596
--- /dev/null
+++ b/ratchet_rs/autobahn/split_server/fuzzingclient.json
@@ -0,0 +1,15 @@
+{
+  "outdir": "autobahn/results",
+  "servers": [
+    {
+      "agent": "Ratchet",
+      "url": "ws://127.0.0.1:9004"
+    }
+  ],
+  "cases": [
+    "*"
+  ],
+  "exclude-cases": [
+  ],
+  "exclude-agent-cases": {}
+}
diff --git a/ratchet_rs/autobahn/split_server/src/main.rs b/ratchet_rs/autobahn/split_server/src/main.rs
new file mode 100644
index 0000000..6cc3ce5
--- /dev/null
+++ b/ratchet_rs/autobahn/split_server/src/main.rs
@@ -0,0 +1,81 @@
+use std::env::current_dir;
+use std::sync::Arc;
+
+use anyhow::{bail, Context, Result};
+use tokio::process::Command;
+use tokio::sync::Notify;
+use utils::{await_server_start, cargo_command, validate_results};
+
+const PWD_ERR: &str = "Failed to get PWD";
+
+fn docker_command() -> Result<Command> {
+    let mut pwd = current_dir().context(PWD_ERR)?;
+    pwd.push("ratchet_rs");
+
+    // mount /pwd/autobahn/server to /autobahn in the volume
+    let mut volume_arg = pwd.clone();
+    volume_arg.push("autobahn/split_server:/autobahn");
+
+    let mut cmd = Command::new("docker");
+    cmd.args(["run", "--rm", "-v"])
+        .arg(volume_arg)
+        .args([
+            "--network",
+            "host",
+            "--platform",
+            "linux/amd64",
+            "crossbario/autobahn-testsuite:0.8.2",
+            "wstest",
+            "-m",
+            "fuzzingclient",
+            "-s",
+        ])
+        // spec is now available at this directory due to how the host directory was mounted
+        .arg("autobahn/fuzzingclient.json")
+        .current_dir(pwd);
+
+    Ok(cmd)
+}
+
+#[tokio::main]
+async fn main() -> Result<()> {
+    let stop = Arc::new(Notify::new());
+    let server_stop = stop.clone();
+
+    let server_process = tokio::spawn(async move {
+        let mut child = cargo_command("autobahn-split-server")
+            .expect(PWD_ERR)
+            .spawn()
+            .expect("Failed to spawn autobahn server");
+
+        server_stop.notified().await;
+        child.kill().await.expect("Failed to start kill process");
+    });
+
+    if let Err(e) = await_server_start(9004).await {
+        stop.notify_waiters();
+        server_process.await.expect("Cargo server process failed");
+        return Err(e);
+    }
+
+    let result = docker_command()?
+        .spawn()
+        .context("Failed to spawn docker container")?
+        .wait()
+        .await
+        .context("Autobahn suite failed")?;
+
+    if !result.success() {
+        bail!("Autobahn suite failed");
+    }
+
+    let mut results_dir = current_dir().context(PWD_ERR)?;
+    results_dir.push("ratchet_rs/autobahn/split_server/results");
+
+    validate_results(results_dir)?;
+
+    stop.notify_waiters();
+    server_process.await.expect("Cargo server process failed");
+
+    Ok(())
+}
diff --git a/ratchet_rs/autobahn/utils/Cargo.toml b/ratchet_rs/autobahn/utils/Cargo.toml
new file mode 100644
index 0000000..7ff733f
--- /dev/null
+++ b/ratchet_rs/autobahn/utils/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "utils"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+ratchet_rs = { path = "../.." }
+tokio = { workspace = true, features = ["process", "macros", "time"] }
+anyhow = { workspace = true }
+serde_json = { workspace = true }
diff --git a/ratchet_rs/autobahn/utils/src/lib.rs b/ratchet_rs/autobahn/utils/src/lib.rs
new file mode 100644
index 0000000..7787d47
--- /dev/null
+++ b/ratchet_rs/autobahn/utils/src/lib.rs
@@ -0,0 +1,112 @@
+use std::env::current_dir;
+use std::fs::File;
+use std::io::BufReader;
+use std::path::PathBuf;
+use std::time::Duration;
+
+use anyhow::Result;
+use anyhow::{bail, Context};
+use serde_json::Value;
+use tokio::net::TcpStream;
+use tokio::process::{Child, Command};
+use tokio::time::Instant;
+
+use ratchet_rs::{subscribe, WebSocketConfig};
+
+const PWD_ERR: &str = "Failed to get PWD";
+
+pub fn cargo_command(example: &str) -> Result<Command> {
+    let mut pwd = current_dir().context(PWD_ERR)?;
+    pwd.push("ratchet_rs");
+
+    let mut cmd = Command::new("cargo");
+    cmd.args(["run", "--release", "--example", example, "--all-features"])
+        .current_dir(pwd)
+        .env("RUST_BACKTRACE", "FULL");
+
+    Ok(cmd)
+}
+
+pub fn validate_results(mut dir: PathBuf) -> Result<()> {
+    dir.push("index.json");
+
+    let file = File::open(dir).context("Failed to open client results file")?;
+    let reader = BufReader::new(file);
+    let results = serde_json::from_reader::<_, Value>(reader)?;
+
+    match results {
+        Value::Object(map) => {
+            let ratchet_results = map
+                .get("Ratchet")
+                .expect("Missing results key")
+                .as_object()
+                .expect("Invalid result structure");
+
+            let mut failures = Vec::new();
+
+            for (test_id, test) in ratchet_results {
+                match test {
+                    Value::Object(object) => match object["behavior"].as_str() {
+                        Some(result) => {
+                            if !["OK", "INFORMATIONAL", "NON-STRICT"].contains(&result) {
+                                failures.push(format!("Test {test_id} failed with: {result}"));
+                            }
+                        }
+                        _ => bail!("Invalid results structure"),
+                    },
+                    _ => bail!("Invalid results structure"),
+                }
+            }
+
+            if !failures.is_empty() {
+                eprintln!("Autobahn test suite encountered failures:");
+
+                for test in failures {
+                    eprintln!("\t{test}");
+                }
+
+                bail!("Autobahn test suite failure")
+            } else {
+                println!("All tests passed");
+            }
+        }
+        _ => bail!("Invalid results structure"),
+    }
+
+    Ok(())
+}
+
+pub async fn pipe_logs(name: &str) -> Result<Child> {
+    Command::new("docker")
+        .args(["logs", name, "-f"])
+        .spawn()
+        .context("Failed to probe container for logs")
+}
+
+pub async fn await_server_start(port: u64) -> Result<()> {
+    const TIMEOUT: u64 = 30;
+    let start = Instant::now();
+
+    loop {
+        match await_handshake(port).await {
+            Ok(()) => break Ok(()),
+            Err(_) => {
+                if start.elapsed() > Duration::from_secs(TIMEOUT) {
+                    bail!("Autobahn Server failed to start within {TIMEOUT} seconds");
+                }
+                tokio::time::sleep(Duration::from_secs(1)).await;
+            }
+        }
+    }
+}
+
+async fn await_handshake(port: u64) -> Result<(), ratchet_rs::Error> {
+    let stream = TcpStream::connect(format!("127.0.0.1:{port}")).await?;
+    subscribe(
+        WebSocketConfig::default(),
+        stream,
+        format!("ws://localhost:{port}/getCaseCount"),
+    )
+    .await
+    .map(|_| ())
+}
diff --git a/ratchet_rs/examples/autobahn-client.rs b/ratchet_rs/examples/autobahn-client.rs
index 29faa73..48ce60b 100644
--- a/ratchet_rs/examples/autobahn-client.rs
+++ b/ratchet_rs/examples/autobahn-client.rs
@@ -16,17 +16,20 @@ use bytes::BytesMut;
 use ratchet_deflate::{Deflate, DeflateExtProvider};
 use ratchet_rs::UpgradedClient;
 use ratchet_rs::{Error, Message, PayloadType, ProtocolRegistry, WebSocketConfig};
+use tokio::io::{BufReader, BufWriter};
 use tokio::net::TcpStream;
 
 const AGENT: &str = "Ratchet";
 
-async fn subscribe(url: &str) -> Result<UpgradedClient<TcpStream, Deflate>, Error> {
+async fn subscribe(
+    url: &str,
+) -> Result<UpgradedClient<BufReader<BufWriter<TcpStream>>, Deflate>, Error> {
     let stream = TcpStream::connect("127.0.0.1:9001").await.unwrap();
     stream.set_nodelay(true).unwrap();
 
     ratchet_rs::subscribe_with(
         WebSocketConfig::default(),
-        stream,
+        BufReader::new(BufWriter::new(stream)),
         url,
         &DeflateExtProvider::default(),
         ProtocolRegistry::default(),
@@ -35,9 +38,6 @@ async fn subscribe(url: &str) -> Result<UpgradedClient<TcpStream, Deflate>, Erro
 }
 
 async fn get_case_count() -> Result<u32, Error> {
-    let stream = TcpStream::connect("127.0.0.1:9001").await.unwrap();
-    stream.set_nodelay(true).unwrap();
-
     let mut websocket = subscribe("ws://localhost:9001/getCaseCount")
         .await
         .unwrap()
@@ -54,7 +54,7 @@ async fn get_case_count() -> Result<u32, Error> {
 }
 
 async fn update_reports() -> Result<(), Error> {
-    let mut _websocket = subscribe(&format!(
+    let _websocket = subscribe(&format!(
         "ws://localhost:9001/updateReports?agent={}",
         AGENT
     ))
@@ -79,10 +79,12 @@ async fn run_test(case: u32) -> Result<(), Error> {
             Message::Text => {
                 let _s = String::from_utf8(buf.to_vec())?;
                 websocket.write(&mut buf, PayloadType::Text).await?;
+                websocket.flush().await?;
                 buf.clear();
             }
             Message::Binary => {
                 websocket.write(&mut buf, PayloadType::Binary).await?;
+                websocket.flush().await?;
                 buf.clear();
             }
             Message::Ping(_) | Message::Pong(_) => {}
@@ -96,9 +98,7 @@ async fn main() {
     let total = get_case_count().await.unwrap();
 
     for case in 1..=total {
-        if let Err(e) = run_test(case).await {
-            println!("{}", e);
-        }
+        let _r = run_test(case).await;
     }
 
     update_reports().await.unwrap();
diff --git a/ratchet_rs/examples/autobahn-server.rs b/ratchet_rs/examples/autobahn-server.rs
index 6cfe79f..ce53fac 100644
--- a/ratchet_rs/examples/autobahn-server.rs
+++ b/ratchet_rs/examples/autobahn-server.rs
@@ -13,8 +13,10 @@
 // limitations under the License.
 
 use bytes::BytesMut;
+use log::trace;
 use ratchet_rs::deflate::DeflateExtProvider;
 use ratchet_rs::{Error, Message, PayloadType, ProtocolRegistry, WebSocketConfig};
+use tokio::io::{BufReader, BufWriter};
 use tokio::net::{TcpListener, TcpStream};
 
 #[tokio::main]
@@ -23,19 +25,13 @@ async fn main() {
     let listener = TcpListener::bind(&addr).await.unwrap();
 
     while let Ok((stream, _)) = listener.accept().await {
-        tokio::spawn(accept(stream));
-    }
-}
-
-async fn accept(stream: TcpStream) {
-    if let Err(e) = run(stream).await {
-        println!("{:?}", e);
+        tokio::spawn(async move { run(stream).await });
     }
 }
 
 async fn run(stream: TcpStream) -> Result<(), Error> {
     let mut websocket = ratchet_rs::accept_with(
-        stream,
+        BufReader::new(BufWriter::new(stream)),
         WebSocketConfig::default(),
         DeflateExtProvider::default(),
         ProtocolRegistry::default(),
@@ -53,14 +49,19 @@ async fn run(stream: TcpStream) -> Result<(), Error> {
             Message::Text => {
                 let _s = String::from_utf8(buf.to_vec())?;
                 websocket.write(&mut buf, PayloadType::Text).await?;
+                websocket.flush().await?;
                 buf.clear();
             }
             Message::Binary => {
                 websocket.write(&mut buf, PayloadType::Binary).await?;
+                websocket.flush().await?;
                 buf.clear();
             }
             Message::Ping(_) | Message::Pong(_) => {}
-            Message::Close(_) => return Ok(()),
+            Message::Close(_) => {
+                trace!("Test received close frame: {}", websocket.is_closed());
+                return Ok(());
+            }
         }
     }
 }
diff --git a/ratchet_rs/examples/autobahn-split-client.rs b/ratchet_rs/examples/autobahn-split-client.rs
new file mode 100644
index 0000000..9da25d0
--- /dev/null
+++ b/ratchet_rs/examples/autobahn-split-client.rs
@@ -0,0 +1,107 @@
+// Copyright 2015-2021 Swim Inc.
+//
+// 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 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.
+
+use bytes::BytesMut;
+use ratchet_deflate::{Deflate, DeflateExtProvider};
+use ratchet_rs::UpgradedClient;
+use ratchet_rs::{Error, Message, PayloadType, ProtocolRegistry, WebSocketConfig};
+use tokio::io::{BufReader, BufWriter};
+use tokio::net::TcpStream;
+
+const AGENT: &str = "Ratchet";
+
+async fn subscribe(
+    url: &str,
+) -> Result<UpgradedClient<BufReader<BufWriter<TcpStream>>, Deflate>, Error> {
+    let stream = TcpStream::connect("127.0.0.1:9003").await.unwrap();
+    stream.set_nodelay(true).unwrap();
+
+    ratchet_rs::subscribe_with(
+        WebSocketConfig::default(),
+        BufReader::new(BufWriter::new(stream)),
+        url,
+        &DeflateExtProvider::default(),
+        ProtocolRegistry::default(),
+    )
+    .await
+}
+
+async fn get_case_count() -> Result<u32, Error> {
+    let mut websocket = subscribe("ws://localhost:9003/getCaseCount")
+        .await
+        .unwrap()
+        .websocket;
+    let mut buf = BytesMut::new();
+
+    match websocket.read(&mut buf).await? {
+        Message::Text => {
+            let count = String::from_utf8(buf.to_vec()).unwrap();
+            Ok(count.parse::<u32>().unwrap())
+        }
+        _ => panic!(),
+    }
+}
+
+async fn update_reports() -> Result<(), Error> {
+    let _websocket = subscribe(&format!(
+        "ws://localhost:9003/updateReports?agent={}",
+        AGENT
+    ))
+    .await
+    .unwrap();
+    Ok(())
+}
+
+async fn run_test(case: u32) -> Result<(), Error> {
+    let (mut tx, mut rx) = subscribe(&format!(
+        "ws://localhost:9003/runCase?case={}&agent={}",
+        case, AGENT
+    ))
+    .await
+    .unwrap()
+    .websocket
+    .split()
+    .unwrap();
+
+    let mut buf = BytesMut::new();
+
+    loop {
+        match rx.read(&mut buf).await? {
+            Message::Text => {
+                let _s = String::from_utf8(buf.to_vec())?;
+                tx.write(&mut buf, PayloadType::Text).await?;
+                tx.flush().await?;
+                buf.clear();
+            }
+            Message::Binary => {
+                tx.write(&mut buf, PayloadType::Binary).await?;
+                tx.flush().await?;
+                buf.clear();
+            }
+            Message::Ping(_) | Message::Pong(_) => {}
+            Message::Close(_) => break Ok(()),
+        }
+    }
+}
+
+#[tokio::main]
+async fn main() {
+    let total = get_case_count().await.unwrap();
+
+    for case in 1..=total {
+        let _r = run_test(case).await;
+    }
+
+    update_reports().await.unwrap();
+}
diff --git a/ratchet_rs/examples/autobahn-split-server.rs b/ratchet_rs/examples/autobahn-split-server.rs
new file mode 100644
index 0000000..5b1b8c6
--- /dev/null
+++ b/ratchet_rs/examples/autobahn-split-server.rs
@@ -0,0 +1,67 @@
+// Copyright 2015-2021 Swim Inc.
+//
+// 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 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.
+
+use bytes::BytesMut;
+use ratchet_rs::deflate::DeflateExtProvider;
+use ratchet_rs::{Error, Message, PayloadType, ProtocolRegistry, WebSocketConfig};
+use tokio::io::{BufReader, BufWriter};
+use tokio::net::{TcpListener, TcpStream};
+
+#[tokio::main]
+async fn main() {
+    let addr = "127.0.0.1:9004";
+    let listener = TcpListener::bind(&addr).await.unwrap();
+
+    while let Ok((stream, _)) = listener.accept().await {
+        tokio::spawn(async move { run(stream).await });
+    }
+}
+
+async fn run(stream: TcpStream) -> Result<(), Error> {
+    let (mut tx, mut rx) = ratchet_rs::accept_with(
+        BufReader::new(BufWriter::new(stream)),
+        WebSocketConfig::default(),
+        DeflateExtProvider::default(),
+        ProtocolRegistry::default(),
+    )
+    .await
+    .unwrap()
+    .upgrade()
+    .await?
+    .websocket
+    .split()
+    .unwrap();
+
+    let mut buf = BytesMut::new();
+
+    loop {
+        match rx.read(&mut buf).await? {
+            Message::Text => {
+                let _s = String::from_utf8(buf.to_vec())?;
+                tx.write(&mut buf, PayloadType::Text).await?;
+                tx.flush().await?;
+                buf.clear();
+            }
+            Message::Binary => {
+                tx.write(&mut buf, PayloadType::Binary).await?;
+                tx.flush().await?;
+                buf.clear();
+            }
+            Message::Ping(_) | Message::Pong(_) => {}
+            Message::Close(_) => {
+                return Ok(());
+            }
+        }
+    }
+}


Test patch:
diff --git a/ratchet_core/src/framed/tests.rs b/ratchet_core/src/framed/tests.rs
index b3fb61f..64896fb 100644
--- a/ratchet_core/src/framed/tests.rs
+++ b/ratchet_core/src/framed/tests.rs
@@ -249,10 +249,7 @@ async fn close() {
     )
     .await;
 
-    let mut frame = vec![136, 126, 1, 0];
-    frame.extend_from_slice(&[0; 256]);
-
-    let buffer = BytesMut::from_iter(frame);
+    let buffer = BytesMut::from_iter(vec![136, 2, 0, 0]);
     let mut framed = FramedIo::new(EmptyIo, buffer, Role::Client, usize::MAX, 0);
 
     let decode_result = framed.read_next(&mut BytesMut::default(), &mut NoExt).await;
diff --git a/ratchet_core/src/split/tests.rs b/ratchet_core/src/split/tests.rs
index cd01877..742045f 100644
--- a/ratchet_core/src/split/tests.rs
+++ b/ratchet_core/src/split/tests.rs
@@ -406,7 +406,7 @@ async fn close_then_err() {
 
 #[tokio::test]
 async fn reuse_after_closure() {
-    let ((mut client_tx, mut client_rx), (_server_tx, mut server_rx)) = fixture();
+    let ((mut client_tx, mut client_rx), (server_tx, mut server_rx)) = fixture();
     let reason = CloseReason::new(CloseCode::Normal, None);
 
     client_tx
@@ -439,4 +439,9 @@ async fn reuse_after_closure() {
         err.downcast_ref::<CloseCause>().unwrap(),
         &CloseCause::Error
     );
+
+    assert!(client_tx.is_closed());
+    assert!(client_rx.is_closed());
+    assert!(server_tx.is_closed());
+    assert!(server_rx.is_closed());
 }