You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by mm...@apache.org on 2018/11/02 16:22:06 UTC

[1/5] metron git commit: METRON-1803: Integrate Cypress with Travis (tiborm via mmiklavc) closes apache/metron#1226

Repository: metron
Updated Branches:
  refs/heads/master fefbb376f -> 9b6260fd4


http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js b/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js
new file mode 100644
index 0000000..58f7d26
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress/integration/pcap/pcap.spec.js
@@ -0,0 +1,228 @@
+/// <reference types="Cypress" />
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+context('PCAP Tab', () => {
+
+  beforeEach(() => {
+    cy.server();
+    cy.route({
+      method: 'GET',
+      url: '/api/v1/user',
+      response: 'user'
+    });
+
+    cy.route('GET', 'config', 'fixture:config.json');
+    cy.route('POST', 'search', 'fixture:search.json');
+
+    cy.route({
+      method: 'GET',
+      url: '/api/v1/pcap?state=*',
+      response: []
+    }).as('runningJobs');
+    
+    cy.visit('http://localhost:4200/login');
+    cy.get('[name="user"]').type('user');
+    cy.get('[name="password"]').type('password');
+    cy.contains('LOG IN').click();
+  });
+
+  afterEach(() => {
+    cy.get('.logout-link').click();
+  });
+
+  it('checking running jobs on navigating to PCAP tab', () => {
+    cy.contains('PCAP').click();
+    cy.wait('@runningJobs').its('url').should('include', '?state=RUNNING');
+  });
+
+  it('submitting PCAP job request', () => {
+    cy.contains('PCAP').click();
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json')
+      .as('postingPcapJob');
+
+    cy.get('[data-qe-id="ip-src-addr"]').type('222.123.111.000');
+    cy.get('[data-qe-id="ip-dst-addr"]').type('111.123.222.000');
+    cy.get('[data-qe-id="ip-src-port"]').type('3333');
+    cy.get('[data-qe-id="ip-dst-port"]').type('7777');
+    cy.get('[data-qe-id="protocol"]').type('24');
+    cy.get('[data-qe-id="include-reverse"]').check();
+    cy.get('[data-qe-id="packet-filter"]').type('filter');
+    
+    cy.get('[data-qe-id="submit-button"]').click();
+
+    cy.wait('@postingPcapJob').then((xhr) => {
+      expect(xhr.request.body.ipSrcAddr).to.equal('222.123.111.000');
+      expect(xhr.request.body.ipDstAddr).to.equal('111.123.222.000');
+      expect(xhr.request.body.ipSrcPort).to.equal('3333');
+      expect(xhr.request.body.ipDstPort).to.equal('7777');
+      expect(xhr.request.body.protocol).to.equal('24');
+      expect(xhr.request.body.includeReverse).to.equal(true);
+      expect(xhr.request.body.packetFilter).to.equal('filter');
+    });
+  });
+
+  it('requesting job status', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-01.json').as('jobStatusCheck');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@jobStatusCheck').its('url').should('include', '/api/v1/pcap/job_1537878471649_0001');
+  });
+
+  it('process status in percentage', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-01.json').as('jobStatusCheck');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@jobStatusCheck');
+
+    cy.contains('75%').should('be.visible');
+  });
+
+  it('getting pcap json', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-02.json').as('statusCheck');
+    cy.route('GET', '/api/v1/pcap/*/pdml*', 'fixture:pcap.page-01.json').as('gettingPdml');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@statusCheck');
+
+    cy.wait('@gettingPdml').its('url').should('include', '/api/v1/pcap/job_1537878471649_0001/pdml?page=1');
+  });
+
+
+  it('rendering pcap table', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-02.json').as('statusCheck');
+    cy.route('GET', '/api/v1/pcap/*/pdml*', 'fixture:pcap.page-01.json').as('gettingPdml');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@statusCheck');
+
+    cy.wait('@gettingPdml');
+
+    cy.get('app-pcap-list table').should('be.visible');
+    cy.get(':nth-child(3) > .timestamp').should('contain', '1458240269.414664000 Mar 17, 2016 18:44:29.414664000 UTC');
+  });
+
+  it('showing pcap details', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-02.json').as('statusCheck');
+    cy.route('GET', '/api/v1/pcap/*/pdml*', 'fixture:pcap.page-01.json').as('gettingPdml');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@statusCheck');
+    cy.wait('@gettingPdml');
+
+    cy.get('app-pcap-list table').should('be.visible');
+    cy.contains('General information').should('not.be.visible');
+
+    cy.get(':nth-child(3) > .timestamp').click();
+    
+    cy.contains('General information').should('be.visible');
+    cy.get('[data-qe-id="proto"]').should('have.length', 6);
+  });
+
+  it('navigating accross pages', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-02.json').as('statusCheck');
+    cy.route('GET', '/api/v1/pcap/*/pdml*', 'fixture:pcap.page-01.json').as('gettingPdml');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@statusCheck');
+    cy.wait('@gettingPdml');
+
+    cy.contains('Page 1 of 2').should('be.visible');
+    
+    cy.get('.fa-chevron-right').click();
+
+    cy.wait('@gettingPdml').its('url').should('include', '?page=2');
+  });
+
+  it('downloading pdml', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-02.json').as('statusCheck');
+    cy.route('GET', '/api/v1/pcap/*/pdml*', 'fixture:pcap.page-01.json').as('gettingPdml');
+    // cy.route('GET', '/api/v1/pcap/*/pdml*').as('download');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@statusCheck');
+    cy.wait('@gettingPdml');
+
+    cy.contains('Download').should('be.visible');
+    cy.get('[href="/api/v1/pcap/job_1537878471649_0001/raw?page=1"]').should('be.visible');
+
+    cy.get('.fa-chevron-right').click();
+
+    cy.get('[href="/api/v1/pcap/job_1537878471649_0001/raw?page=2"]').should('be.visible');
+  });
+
+
+  it('cancelling (kill) pcap query job', () => {
+    cy.route('POST', '/api/v1/pcap/fixed', 'fixture:pcap.status-00.json');
+    cy.route('GET', '/api/v1/pcap/*', 'fixture:pcap.status-01.json').as('jobStatusCheck');
+    cy.route('DELETE', '/api/v1/pcap/kill/*', 'fixture:pcap.status-02.json').as('killJob');
+
+    cy.contains('PCAP').click();
+    cy.get('[data-qe-id="submit-button"]').click();
+    
+    cy.wait('@jobStatusCheck');
+
+    cy.get('[data-qe-id="pcap-cancel-query-button"]').click();
+    cy.contains('Yes').click();
+
+    cy.wait('@killJob').its('url').should('include', '/api/v1/pcap/kill/job_1537878471649_0001');
+  });
+
+  it('showing filter validation messages', () => {
+    cy.contains('PCAP').click();
+
+    cy.get('[data-qe-id="ip-src-addr"]').type('aaa.bbb.111.000');
+    cy.get('[data-qe-id="ip-dst-addr"]').type('ccc.ddd.222.000');
+    cy.get('[data-qe-id="ip-src-port"]').type('99999');
+    cy.get('[data-qe-id="ip-dst-port"]').type('aaaa');
+    
+    cy.get('.pcap-search-validation-errors').should('be.visible');
+    cy.get('.pcap-search-validation-errors li').should('have.length', 4);
+  });
+
+  it('showing date validation messages', () => {
+    cy.contains('PCAP').click();
+
+    cy.get('[data-qe-id="end-time"]').click();
+    cy.get('.pika-select-year').select('2015');
+    cy.get('[data-day="11"] > .pika-button').click();
+    
+    cy.get('.pcap-search-validation-errors').should('be.visible');
+    cy.get('.pcap-search-validation-errors li').should('have.length', 1);
+  });
+})

http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/package-lock.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/package-lock.json b/metron-interface/metron-alerts/package-lock.json
index bb2512e..b912b52 100644
--- a/metron-interface/metron-alerts/package-lock.json
+++ b/metron-interface/metron-alerts/package-lock.json
@@ -3541,6 +3541,45 @@
         }
       }
     },
+    "@cypress/listr-verbose-renderer": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
+      "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "cli-cursor": "^1.0.2",
+        "date-fns": "^1.27.2",
+        "figures": "^1.7.0"
+      }
+    },
+    "@cypress/xvfb": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz",
+      "integrity": "sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.1.0",
+        "lodash.once": "^4.1.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.5",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz",
+          "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
     "@ngtools/webpack": {
       "version": "6.0.8",
       "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-6.0.8.tgz",
@@ -5431,6 +5470,18 @@
       "integrity": "sha1-1YSBOWBgdUDdsgLeiz4ilQTUXP8=",
       "dev": true
     },
+    "@types/blob-util": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz",
+      "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==",
+      "dev": true
+    },
+    "@types/bluebird": {
+      "version": "3.5.18",
+      "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz",
+      "integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==",
+      "dev": true
+    },
     "@types/bootstrap": {
       "version": "4.1.2",
       "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-4.1.2.tgz",
@@ -5440,6 +5491,22 @@
         "popper.js": "^1.14.1"
       }
     },
+    "@types/chai": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz",
+      "integrity": "sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg==",
+      "dev": true
+    },
+    "@types/chai-jquery": {
+      "version": "1.1.35",
+      "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz",
+      "integrity": "sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ==",
+      "dev": true,
+      "requires": {
+        "@types/chai": "*",
+        "@types/jquery": "*"
+      }
+    },
     "@types/es6-promise": {
       "version": "0.0.33",
       "resolved": "https://registry.npmjs.org/@types/es6-promise/-/es6-promise-0.0.33.tgz",
@@ -5457,6 +5524,24 @@
       "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.6.tgz",
       "integrity": "sha512-403D4wN95Mtzt2EoQHARf5oe/jEPhzBOBNrunk+ydQGW8WmkQ/E8rViRAEB1qEt/vssfGfNVD6ujP4FVeegrLg=="
     },
+    "@types/lodash": {
+      "version": "4.14.87",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz",
+      "integrity": "sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw==",
+      "dev": true
+    },
+    "@types/minimatch": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+      "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
+      "dev": true
+    },
+    "@types/mocha": {
+      "version": "2.2.44",
+      "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz",
+      "integrity": "sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw==",
+      "dev": true
+    },
     "@types/moment": {
       "version": "2.13.0",
       "resolved": "https://registry.npmjs.org/@types/moment/-/moment-2.13.0.tgz",
@@ -5487,6 +5572,22 @@
       "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
       "dev": true
     },
+    "@types/sinon": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.0.0.tgz",
+      "integrity": "sha512-cuK4xM8Lg2wd8cxshcQa8RG4IK/xfyB6TNE6tNVvkrShR4xdrYgsV04q6Dp6v1Lp6biEFdzD8k8zg/ujQeiw+A==",
+      "dev": true
+    },
+    "@types/sinon-chai": {
+      "version": "2.7.29",
+      "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz",
+      "integrity": "sha512-EkI/ZvJT4hglWo7Ipf9SX+J+R9htNOMjW8xiOhce7+0csqvgoF5IXqY5Ae1GqRgNtWCuaywR5HjVa1snkTqpOw==",
+      "dev": true,
+      "requires": {
+        "@types/chai": "*",
+        "@types/sinon": "*"
+      }
+    },
     "@webassemblyjs/ast": {
       "version": "1.4.3",
       "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz",
@@ -5817,6 +5918,12 @@
         "tslib": "^1.9.0"
       }
     },
+    "ansi-escapes": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+      "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+      "dev": true
+    },
     "ansi-html": {
       "version": "0.0.7",
       "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
@@ -5897,6 +6004,12 @@
       "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
       "dev": true
     },
+    "array-filter": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+      "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
+      "dev": true
+    },
     "array-find-index": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
@@ -5919,6 +6032,18 @@
         "es-abstract": "^1.7.0"
       }
     },
+    "array-map": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+      "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
+      "dev": true
+    },
+    "array-reduce": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+      "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
+      "dev": true
+    },
     "array-slice": {
       "version": "0.2.3",
       "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
@@ -6076,6 +6201,12 @@
         "postcss-value-parser": "^3.2.3"
       }
     },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+      "dev": true
+    },
     "aws4": {
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
@@ -6684,6 +6815,12 @@
       "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
       "dev": true
     },
+    "buffer-crc32": {
+      "version": "0.2.13",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+      "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+      "dev": true
+    },
     "buffer-fill": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
@@ -6828,6 +6965,15 @@
         "schema-utils": "^0.4.2"
       }
     },
+    "cachedir": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz",
+      "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==",
+      "dev": true,
+      "requires": {
+        "os-homedir": "^1.0.1"
+      }
+    },
     "callsite": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
@@ -6904,6 +7050,12 @@
         }
       }
     },
+    "check-more-types": {
+      "version": "2.24.0",
+      "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
+      "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
+      "dev": true
+    },
     "chokidar": {
       "version": "1.7.0",
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
@@ -6933,6 +7085,12 @@
       "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A==",
       "dev": true
     },
+    "ci-info": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
+      "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
+      "dev": true
+    },
     "cipher-base": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
@@ -7001,6 +7159,53 @@
         }
       }
     },
+    "cli-cursor": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+      "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+      "dev": true,
+      "requires": {
+        "restore-cursor": "^1.0.1"
+      }
+    },
+    "cli-spinners": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
+      "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=",
+      "dev": true
+    },
+    "cli-truncate": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
+      "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
+      "dev": true,
+      "requires": {
+        "slice-ansi": "0.0.4",
+        "string-width": "^1.0.1"
+      },
+      "dependencies": {
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+          "dev": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+          "dev": true,
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        }
+      }
+    },
     "cliui": {
       "version": "3.2.0",
       "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@@ -7164,6 +7369,15 @@
       "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
       "dev": true
     },
+    "common-tags": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz",
+      "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.18.0"
+      }
+    },
     "commondir": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -7634,6 +7848,302 @@
       "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
       "dev": true
     },
+    "cypress": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.1.0.tgz",
+      "integrity": "sha512-UqLbXgHvM8Y6Y+roHrepZMWcyMN5u4KcjpTbJTZi0d5O2Prvtqmnpoky7a4C65q4oRQXeSc6cBZUhxJkhU4pbQ==",
+      "dev": true,
+      "requires": {
+        "@cypress/listr-verbose-renderer": "0.4.1",
+        "@cypress/xvfb": "1.2.3",
+        "@types/blob-util": "1.3.3",
+        "@types/bluebird": "3.5.18",
+        "@types/chai": "4.0.8",
+        "@types/chai-jquery": "1.1.35",
+        "@types/jquery": "3.2.16",
+        "@types/lodash": "4.14.87",
+        "@types/minimatch": "3.0.3",
+        "@types/mocha": "2.2.44",
+        "@types/sinon": "4.0.0",
+        "@types/sinon-chai": "2.7.29",
+        "bluebird": "3.5.0",
+        "cachedir": "1.3.0",
+        "chalk": "2.4.1",
+        "check-more-types": "2.24.0",
+        "commander": "2.11.0",
+        "common-tags": "1.4.0",
+        "debug": "3.1.0",
+        "execa": "0.10.0",
+        "executable": "4.1.1",
+        "extract-zip": "1.6.6",
+        "fs-extra": "4.0.1",
+        "getos": "3.1.0",
+        "glob": "7.1.2",
+        "is-ci": "1.0.10",
+        "is-installed-globally": "0.1.0",
+        "lazy-ass": "1.6.0",
+        "listr": "0.12.0",
+        "lodash": "4.17.10",
+        "log-symbols": "2.2.0",
+        "minimist": "1.2.0",
+        "progress": "1.1.8",
+        "ramda": "0.24.1",
+        "request": "2.87.0",
+        "request-progress": "0.3.1",
+        "supports-color": "5.1.0",
+        "tmp": "0.0.31",
+        "url": "0.11.0",
+        "yauzl": "2.8.0"
+      },
+      "dependencies": {
+        "@types/jquery": {
+          "version": "3.2.16",
+          "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.2.16.tgz",
+          "integrity": "sha512-q2WC02YxQoX2nY1HRKlYGHpGP1saPmD7GN0pwCDlTz35a4eOtJG+aHRlXyjCuXokUukSrR2aXyBhSW3j+jPc0A==",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+          "dev": true,
+          "requires": {
+            "color-convert": "^1.9.0"
+          }
+        },
+        "bluebird": {
+          "version": "3.5.0",
+          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
+          "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "2.4.1",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^3.2.1",
+            "escape-string-regexp": "^1.0.5",
+            "supports-color": "^5.3.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "5.5.0",
+              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+              "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+              "dev": true,
+              "requires": {
+                "has-flag": "^3.0.0"
+              }
+            }
+          }
+        },
+        "commander": {
+          "version": "2.11.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+          "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+          "dev": true
+        },
+        "concat-stream": {
+          "version": "1.6.0",
+          "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+          "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "readable-stream": "^2.2.2",
+            "typedarray": "^0.0.6"
+          }
+        },
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "execa": {
+          "version": "0.10.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
+          "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^6.0.0",
+            "get-stream": "^3.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "extract-zip": {
+          "version": "1.6.6",
+          "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
+          "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
+          "dev": true,
+          "requires": {
+            "concat-stream": "1.6.0",
+            "debug": "2.6.9",
+            "mkdirp": "0.5.0",
+            "yauzl": "2.4.1"
+          },
+          "dependencies": {
+            "debug": {
+              "version": "2.6.9",
+              "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+              "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+              "dev": true,
+              "requires": {
+                "ms": "2.0.0"
+              }
+            },
+            "yauzl": {
+              "version": "2.4.1",
+              "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+              "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+              "dev": true,
+              "requires": {
+                "fd-slicer": "~1.0.1"
+              }
+            }
+          }
+        },
+        "has-flag": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+          "dev": true
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "mkdirp": {
+          "version": "0.5.0",
+          "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+          "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+          "dev": true,
+          "requires": {
+            "minimist": "0.0.8"
+          },
+          "dependencies": {
+            "minimist": {
+              "version": "0.0.8",
+              "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+              "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+              "dev": true
+            }
+          }
+        },
+        "progress": {
+          "version": "1.1.8",
+          "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+          "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+          "dev": true
+        },
+        "request": {
+          "version": "2.87.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
+          "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
+          "dev": true,
+          "requires": {
+            "aws-sign2": "~0.7.0",
+            "aws4": "^1.6.0",
+            "caseless": "~0.12.0",
+            "combined-stream": "~1.0.5",
+            "extend": "~3.0.1",
+            "forever-agent": "~0.6.1",
+            "form-data": "~2.3.1",
+            "har-validator": "~5.0.3",
+            "http-signature": "~1.2.0",
+            "is-typedarray": "~1.0.0",
+            "isstream": "~0.1.2",
+            "json-stringify-safe": "~5.0.1",
+            "mime-types": "~2.1.17",
+            "oauth-sign": "~0.8.2",
+            "performance-now": "^2.1.0",
+            "qs": "~6.5.1",
+            "safe-buffer": "^5.1.1",
+            "tough-cookie": "~2.3.3",
+            "tunnel-agent": "^0.6.0",
+            "uuid": "^3.1.0"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+          "dev": true
+        },
+        "semver": {
+          "version": "5.5.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+          "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
+          "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^2.0.0"
+          },
+          "dependencies": {
+            "has-flag": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+              "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+              "dev": true
+            }
+          }
+        },
+        "tmp": {
+          "version": "0.0.31",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
+          "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
+          "dev": true,
+          "requires": {
+            "os-tmpdir": "~1.0.1"
+          }
+        },
+        "uuid": {
+          "version": "3.3.2",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+          "dev": true
+        },
+        "yauzl": {
+          "version": "2.8.0",
+          "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz",
+          "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=",
+          "dev": true,
+          "requires": {
+            "buffer-crc32": "~0.2.3",
+            "fd-slicer": "~1.0.1"
+          }
+        }
+      }
+    },
     "d": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
@@ -7652,6 +8162,12 @@
         "assert-plus": "^1.0.0"
       }
     },
+    "date-fns": {
+      "version": "1.29.0",
+      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
+      "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
+      "dev": true
+    },
     "date-format": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
@@ -7983,6 +8499,12 @@
         "crossvent": "1.5.4"
       }
     },
+    "duplexer": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+      "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+      "dev": true
+    },
     "duplexify": {
       "version": "3.6.0",
       "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
@@ -8024,6 +8546,12 @@
       "integrity": "sha512-PbJGGpDSNn3fyUN1eQESAmnMT+a1QAO4NEZgikDuGOn7tbAuMHF87jNna+NoVsMBfEEYzfpn/ay88HgDCJUbQA==",
       "dev": true
     },
+    "elegant-spinner": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
+      "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
+      "dev": true
+    },
     "elliptic": {
       "version": "6.4.1",
       "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
@@ -8342,6 +8870,22 @@
       "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
       "dev": true
     },
+    "event-stream": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz",
+      "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==",
+      "dev": true,
+      "requires": {
+        "duplexer": "^0.1.1",
+        "flatmap-stream": "^0.1.0",
+        "from": "^0.1.7",
+        "map-stream": "0.0.7",
+        "pause-stream": "^0.0.11",
+        "split": "^1.0.1",
+        "stream-combiner": "^0.2.2",
+        "through": "^2.3.8"
+      }
+    },
     "eventemitter3": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
@@ -8409,12 +8953,27 @@
         }
       }
     },
+    "executable": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
+      "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+      "dev": true,
+      "requires": {
+        "pify": "^2.2.0"
+      }
+    },
     "exit": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
       "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
       "dev": true
     },
+    "exit-hook": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+      "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+      "dev": true
+    },
     "expand-braces": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
@@ -8809,6 +9368,16 @@
         "pend": "~1.2.0"
       }
     },
+    "figures": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+      "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+      "dev": true,
+      "requires": {
+        "escape-string-regexp": "^1.0.5",
+        "object-assign": "^4.1.0"
+      }
+    },
     "file-loader": {
       "version": "1.1.11",
       "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz",
@@ -8916,6 +9485,12 @@
         }
       }
     },
+    "flatmap-stream": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.0.tgz",
+      "integrity": "sha512-Nlic4ZRYxikqnK5rj3YoxDVKGGtUjcNDUtvQ7XsdGLZmMwdUYnXf10o1zcXtzEZTBgc6GxeRpQxV/Wu3WPIIHA==",
+      "dev": true
+    },
     "flush-write-stream": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
@@ -8952,6 +9527,28 @@
       "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
       "dev": true
     },
+    "form-data": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+      "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+      "dev": true,
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "1.0.6",
+        "mime-types": "^2.1.12"
+      },
+      "dependencies": {
+        "combined-stream": {
+          "version": "1.0.6",
+          "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+          "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+          "dev": true,
+          "requires": {
+            "delayed-stream": "~1.0.0"
+          }
+        }
+      }
+    },
     "forwarded": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -8973,6 +9570,12 @@
       "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
       "dev": true
     },
+    "from": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+      "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
+      "dev": true
+    },
     "from2": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@@ -8992,6 +9595,17 @@
         "null-check": "^1.0.0"
       }
     },
+    "fs-extra": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz",
+      "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "jsonfile": "^3.0.0",
+        "universalify": "^0.1.0"
+      }
+    },
     "fs-write-stream-atomic": {
       "version": "1.0.10",
       "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@@ -9627,6 +10241,26 @@
       "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
       "dev": true
     },
+    "getos": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.0.tgz",
+      "integrity": "sha512-i9vrxtDu5DlLVFcrbqUqGWYlZN/zZ4pGMICCAcZoYsX3JA54nYp8r5EThw5K+m2q3wszkx4Th746JstspB0H4Q==",
+      "dev": true,
+      "requires": {
+        "async": "2.4.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "2.4.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz",
+          "integrity": "sha1-SZAgDxjqW4N8LMT4wDGmmFw4VhE=",
+          "dev": true,
+          "requires": {
+            "lodash": "^4.14.0"
+          }
+        }
+      }
+    },
     "getpass": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@@ -9668,6 +10302,15 @@
         "is-glob": "^2.0.0"
       }
     },
+    "global-dirs": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+      "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+      "dev": true,
+      "requires": {
+        "ini": "^1.3.4"
+      }
+    },
     "globals": {
       "version": "9.18.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
@@ -9800,6 +10443,36 @@
         }
       }
     },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+      "dev": true
+    },
+    "har-validator": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+      "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+      "dev": true,
+      "requires": {
+        "ajv": "^5.1.0",
+        "har-schema": "^2.0.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "5.5.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+          "dev": true,
+          "requires": {
+            "co": "^4.6.0",
+            "fast-deep-equal": "^1.0.0",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.3.0"
+          }
+        }
+      }
+    },
     "has": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -10420,6 +11093,17 @@
         }
       }
     },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
     "https-browserify": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -10638,6 +11322,15 @@
       "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
       "dev": true
     },
+    "is-ci": {
+      "version": "1.0.10",
+      "resolved": "http://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
+      "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
+      "dev": true,
+      "requires": {
+        "ci-info": "^1.0.0"
+      }
+    },
     "is-data-descriptor": {
       "version": "0.1.4",
       "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
@@ -10729,6 +11422,16 @@
         "is-extglob": "^1.0.0"
       }
     },
+    "is-installed-globally": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+      "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+      "dev": true,
+      "requires": {
+        "global-dirs": "^0.1.0",
+        "is-path-inside": "^1.0.0"
+      }
+    },
     "is-number": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
@@ -10791,6 +11494,12 @@
       "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
       "dev": true
     },
+    "is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "dev": true
+    },
     "is-regex": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
@@ -11229,6 +11938,21 @@
       "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
       "dev": true
     },
+    "jsonfile": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
+      "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "jsonify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+      "dev": true
+    },
     "jsprim": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
@@ -12301,6 +13025,12 @@
         "is-buffer": "^1.1.5"
       }
     },
+    "lazy-ass": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
+      "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
+      "dev": true
+    },
     "lazy-cache": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
@@ -12585,6 +13315,107 @@
         "immediate": "~3.0.5"
       }
     },
+    "listr": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz",
+      "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "cli-truncate": "^0.2.1",
+        "figures": "^1.7.0",
+        "indent-string": "^2.1.0",
+        "is-promise": "^2.1.0",
+        "is-stream": "^1.1.0",
+        "listr-silent-renderer": "^1.1.1",
+        "listr-update-renderer": "^0.2.0",
+        "listr-verbose-renderer": "^0.4.0",
+        "log-symbols": "^1.0.2",
+        "log-update": "^1.0.2",
+        "ora": "^0.2.3",
+        "p-map": "^1.1.1",
+        "rxjs": "^5.0.0-beta.11",
+        "stream-to-observable": "^0.1.0",
+        "strip-ansi": "^3.0.1"
+      },
+      "dependencies": {
+        "log-symbols": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.0.0"
+          }
+        },
+        "rxjs": {
+          "version": "5.5.12",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
+          "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
+          "dev": true,
+          "requires": {
+            "symbol-observable": "1.0.1"
+          }
+        },
+        "symbol-observable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
+          "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
+          "dev": true
+        }
+      }
+    },
+    "listr-silent-renderer": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
+      "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
+      "dev": true
+    },
+    "listr-update-renderer": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz",
+      "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "cli-truncate": "^0.2.1",
+        "elegant-spinner": "^1.0.1",
+        "figures": "^1.7.0",
+        "indent-string": "^3.0.0",
+        "log-symbols": "^1.0.2",
+        "log-update": "^1.0.2",
+        "strip-ansi": "^3.0.1"
+      },
+      "dependencies": {
+        "indent-string": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+          "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+          "dev": true
+        },
+        "log-symbols": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.0.0"
+          }
+        }
+      }
+    },
+    "listr-verbose-renderer": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
+      "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "cli-cursor": "^1.0.2",
+        "date-fns": "^1.27.2",
+        "figures": "^1.7.0"
+      }
+    },
     "load-json-file": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -12663,6 +13494,12 @@
       "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=",
       "dev": true
     },
+    "lodash.once": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+      "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
+      "dev": true
+    },
     "lodash.tail": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
@@ -12715,6 +13552,16 @@
         }
       }
     },
+    "log-update": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
+      "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
+      "dev": true,
+      "requires": {
+        "ansi-escapes": "^1.0.0",
+        "cli-cursor": "^1.0.2"
+      }
+    },
     "log4js": {
       "version": "3.0.5",
       "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.5.tgz",
@@ -12836,6 +13683,12 @@
       "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
       "dev": true
     },
+    "map-stream": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
+      "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=",
+      "dev": true
+    },
     "map-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
@@ -12886,6 +13739,12 @@
         "readable-stream": "^2.0.1"
       }
     },
+    "memorystream": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+      "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
+      "dev": true
+    },
     "meow": {
       "version": "3.7.0",
       "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
@@ -13207,6 +14066,12 @@
         "dragula": "^3.7.2"
       }
     },
+    "nice-try": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+      "dev": true
+    },
     "no-case": {
       "version": "2.3.2",
       "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
@@ -13597,6 +14462,133 @@
         }
       }
     },
+    "npm-run-all": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.3.tgz",
+      "integrity": "sha512-aOG0N3Eo/WW+q6sUIdzcV2COS8VnTZCmdji0VQIAZF3b+a3YWb0AD0vFIyjKec18A7beLGbaQ5jFTNI2bPt9Cg==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.0",
+        "chalk": "^2.1.0",
+        "cross-spawn": "^6.0.4",
+        "memorystream": "^0.3.1",
+        "minimatch": "^3.0.4",
+        "ps-tree": "^1.1.0",
+        "read-pkg": "^3.0.0",
+        "shell-quote": "^1.6.1",
+        "string.prototype.padend": "^3.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+          "dev": true,
+          "requires": {
+            "color-convert": "^1.9.0"
+          }
+        },
+        "chalk": {
+          "version": "2.4.1",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^3.2.1",
+            "escape-string-regexp": "^1.0.5",
+            "supports-color": "^5.3.0"
+          }
+        },
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "has-flag": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+          "dev": true
+        },
+        "load-json-file": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+          "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "parse-json": "^4.0.0",
+            "pify": "^3.0.0",
+            "strip-bom": "^3.0.0"
+          }
+        },
+        "parse-json": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.3.1",
+            "json-parse-better-errors": "^1.0.1"
+          }
+        },
+        "path-type": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+          "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+          "dev": true,
+          "requires": {
+            "pify": "^3.0.0"
+          }
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        },
+        "read-pkg": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+          "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+          "dev": true,
+          "requires": {
+            "load-json-file": "^4.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^3.0.0"
+          }
+        },
+        "semver": {
+          "version": "5.5.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+          "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+          "dev": true
+        },
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "5.5.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        }
+      }
+    },
     "npm-run-path": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -13786,6 +14778,12 @@
         "wrappy": "1"
       }
     },
+    "onetime": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+      "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+      "dev": true
+    },
     "opn": {
       "version": "5.3.0",
       "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
@@ -13827,6 +14825,18 @@
         }
       }
     },
+    "ora": {
+      "version": "0.2.3",
+      "resolved": "http://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
+      "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.1",
+        "cli-cursor": "^1.0.2",
+        "cli-spinners": "^0.1.2",
+        "object-assign": "^4.0.1"
+      }
+    },
     "original": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
@@ -14066,6 +15076,15 @@
         "pinkie-promise": "^2.0.0"
       }
     },
+    "pause-stream": {
+      "version": "0.0.11",
+      "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+      "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+      "dev": true,
+      "requires": {
+        "through": "~2.3"
+      }
+    },
     "pbkdf2": {
       "version": "3.0.16",
       "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
@@ -14084,6 +15103,12 @@
       "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
       "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
     },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+      "dev": true
+    },
     "pify": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
@@ -14537,6 +15562,15 @@
       "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
       "dev": true
     },
+    "ps-tree": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz",
+      "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=",
+      "dev": true,
+      "requires": {
+        "event-stream": "~3.3.0"
+      }
+    },
     "pseudomap": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -14652,6 +15686,12 @@
       "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
       "dev": true
     },
+    "ramda": {
+      "version": "0.24.1",
+      "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz",
+      "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=",
+      "dev": true
+    },
     "randomatic": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
@@ -15098,6 +16138,15 @@
         }
       }
     },
+    "request-progress": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz",
+      "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=",
+      "dev": true,
+      "requires": {
+        "throttleit": "~0.0.2"
+      }
+    },
     "require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -15152,6 +16201,16 @@
       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
       "dev": true
     },
+    "restore-cursor": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+      "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+      "dev": true,
+      "requires": {
+        "exit-hook": "^1.0.0",
+        "onetime": "^1.0.0"
+      }
+    },
     "ret": {
       "version": "0.1.15",
       "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
@@ -15720,6 +16779,18 @@
       "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
       "dev": true
     },
+    "shell-quote": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+      "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
+      "dev": true,
+      "requires": {
+        "array-filter": "~0.0.0",
+        "array-map": "~0.0.0",
+        "array-reduce": "~0.0.0",
+        "jsonify": "~0.0.0"
+      }
+    },
     "signal-exit": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
@@ -15741,6 +16812,12 @@
       "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
       "dev": true
     },
+    "slice-ansi": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+      "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+      "dev": true
+    },
     "slide": {
       "version": "1.1.6",
       "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
@@ -16072,6 +17149,15 @@
         "wbuf": "^1.7.2"
       }
     },
+    "split": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+      "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+      "dev": true,
+      "requires": {
+        "through": "2"
+      }
+    },
     "split-string": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -16196,6 +17282,16 @@
         "readable-stream": "^2.0.2"
       }
     },
+    "stream-combiner": {
+      "version": "0.2.2",
+      "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
+      "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=",
+      "dev": true,
+      "requires": {
+        "duplexer": "~0.1.1",
+        "through": "~2.3.4"
+      }
+    },
     "stream-each": {
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
@@ -16263,6 +17359,12 @@
       "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
       "dev": true
     },
+    "stream-to-observable": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz",
+      "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=",
+      "dev": true
+    },
     "streamroller": {
       "version": "0.7.0",
       "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
@@ -16355,6 +17457,17 @@
         }
       }
     },
+    "string.prototype.padend": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
+      "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.2",
+        "es-abstract": "^1.4.3",
+        "function-bind": "^1.0.2"
+      }
+    },
     "string_decoder": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz",
@@ -16499,6 +17612,12 @@
       "resolved": "https://registry.npmjs.org/tether/-/tether-1.4.0.tgz",
       "integrity": "sha1-D5+hcfdb9YSF2BSelHmdeudNHBo="
     },
+    "throttleit": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
+      "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
+      "dev": true
+    },
     "through": {
       "version": "2.3.8",
       "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
@@ -16610,6 +17729,15 @@
       "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
       "dev": true
     },
+    "tough-cookie": {
+      "version": "2.3.4",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+      "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+      "dev": true,
+      "requires": {
+        "punycode": "^1.4.1"
+      }
+    },
     "tree-kill": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
@@ -16946,6 +18074,12 @@
         "imurmurhash": "^0.1.4"
       }
     },
+    "universalify": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+      "dev": true
+    },
     "unpipe": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",

http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/package.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/package.json b/metron-interface/metron-alerts/package.json
index ef72bb7..ff3e27c 100644
--- a/metron-interface/metron-alerts/package.json
+++ b/metron-interface/metron-alerts/package.json
@@ -5,12 +5,15 @@
   "angular-cli": {},
   "scripts": {
     "build": "./node_modules/@angular/cli/bin/ng build --prod",
-    "start": "ng serve",
+    "start": "ng serve --aot",
     "lint": "tslint \"src/**/*.ts\"",
     "test": "ng test --browsers=Chrome",
-    "testCI": "ng test --watch=false --browsers=ChromeHeadless",
+    "testCI": "ng test --watch=false --browsers=ChromeHeadless && npm run cypress:ci",
     "pree2e": "webdriver-manager update",
-    "e2e": "protractor-flake --protractor-path=./node_modules/.bin/protractor --max-attempts=3 -- ./protractor.conf.js"
+    "e2e": "protractor-flake --protractor-path=./node_modules/.bin/protractor --max-attempts=3 -- ./protractor.conf.js",
+    "cypress:run": "cypress run", 
+    "cypress:open": "cypress open", 
+    "cypress:ci": "run-p --race start cypress:run"
   },
   "private": true,
   "dependencies": {
@@ -51,6 +54,7 @@
     "@types/pikaday-time": "^1.4.2",
     "codelyzer": "^4.0.1",
     "compression": "^1.7.3",
+    "cypress": "^3.1.0",
     "express": "^4.16.3",
     "http-proxy-middleware": "^0.18.0",
     "jasmine-core": "~2.5.2",
@@ -62,6 +66,7 @@
     "karma-jasmine": "~1.1.0",
     "karma-jasmine-html-reporter": "^0.2.2",
     "node-sass": "^4.9.3",
+    "npm-run-all": "^4.1.3",
     "optimist": "0.6.1",
     "protractor": "^5.4.0",
     "protractor-flake": "^3.3.0",


[2/5] metron git commit: METRON-1803: Integrate Cypress with Travis (tiborm via mmiklavc) closes apache/metron#1226

Posted by mm...@apache.org.
http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress/fixtures/search.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress/fixtures/search.json b/metron-interface/metron-alerts/cypress/fixtures/search.json
new file mode 100644
index 0000000..e2e03e4
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress/fixtures/search.json
@@ -0,0 +1,5647 @@
+{
+  "total":104593,
+  "results":[
+     {
+        "id":"ad5cc7ea-5954-479f-8589-51f94b1c2f02",
+        "source":{
+           "average":10.0,
+           "max":10.0,
+           "metron_alert":[
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537279364136",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537279364122",
+                 "enrichmentjoinbolt:joiner:ts":"1537279364128",
+                 "adapter:geoadapter:begin:ts":"1537279364125",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537279364133",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-14:02:39.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537279364125",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537279364125",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537279364130",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537279359000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537279364122",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537279364125",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537279364130",
+                 "adapter:threatinteladapter:begin:ts":"1537279364133",
+                 "tcpflags":"***A**S*",
+                 "guid":"c6843745-203c-49e1-80ad-f060eb88c9b1",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537280091506",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537280091491",
+                 "enrichmentjoinbolt:joiner:ts":"1537280091498",
+                 "adapter:geoadapter:begin:ts":"1537280091493",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537280091503",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-14:14:47.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537280091493",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537280091493",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537280091501",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537280087000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537280091491",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537280091493",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537280091501",
+                 "adapter:threatinteladapter:begin:ts":"1537280091503",
+                 "tcpflags":"***A****",
+                 "guid":"f6521c0a-7aa9-4fc2-82ef-34c647d793f4",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537280221040",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537280221027",
+                 "enrichmentjoinbolt:joiner:ts":"1537280221031",
+                 "adapter:geoadapter:begin:ts":"1537280221029",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537280221037",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-14:16:56.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537280221029",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537280221029",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537280221035",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537280216000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537280221027",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537280221029",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537280221035",
+                 "adapter:threatinteladapter:begin:ts":"1537280221037",
+                 "tcpflags":"***A**S*",
+                 "guid":"4b1a23db-8040-4639-88ae-83294d45921e",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537280908414",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537280908400",
+                 "enrichmentjoinbolt:joiner:ts":"1537280908405",
+                 "adapter:geoadapter:begin:ts":"1537280908403",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537280908411",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-14:28:27.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537280908402",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537280908403",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537280908407",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537280907000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537280908400",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537280908402",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537280908407",
+                 "adapter:threatinteladapter:begin:ts":"1537280908411",
+                 "tcpflags":"***A****",
+                 "guid":"7f8babb8-72d6-4823-824a-0d57035bdfff",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537284816200",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537284816186",
+                 "enrichmentjoinbolt:joiner:ts":"1537284816191",
+                 "adapter:geoadapter:begin:ts":"1537284816188",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537284816198",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-15:33:35.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537284816188",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537284816189",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537284816194",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537284815000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537284816186",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537284816188",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537284816194",
+                 "adapter:threatinteladapter:begin:ts":"1537284816196",
+                 "tcpflags":"***A****",
+                 "guid":"007a98c7-4301-44e1-b80d-a35cf5a88019",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537285796807",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537285796794",
+                 "enrichmentjoinbolt:joiner:ts":"1537285796799",
+                 "adapter:geoadapter:begin:ts":"1537285796796",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537285796804",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-15:49:52.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537285796796",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537285796796",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537285796802",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537285792000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537285796794",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537285796796",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537285796802",
+                 "adapter:threatinteladapter:begin:ts":"1537285796804",
+                 "tcpflags":"***A**S*",
+                 "guid":"337b657f-9c48-45a2-b356-0ab08de9f549",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537296522470",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537295997966",
+                 "enrichmentjoinbolt:joiner:ts":"1537295997971",
+                 "adapter:geoadapter:begin:ts":"1537295997968",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537296522293",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-18:39:53.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537295997968",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537295997968",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537295997973",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537295993000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537295997966",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537295997968",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537295997973",
+                 "adapter:threatinteladapter:begin:ts":"1537296522293",
+                 "tcpflags":"***A**S*",
+                 "guid":"0517c267-f7c9-409a-8b8f-40d95254eb2d",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537296937969",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537296937958",
+                 "enrichmentjoinbolt:joiner:ts":"1537296937963",
+                 "adapter:geoadapter:begin:ts":"1537296937960",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537296937967",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-18:55:33.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537296937960",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537296937960",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537296937965",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537296933000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537296937958",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537296937960",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537296937965",
+                 "adapter:threatinteladapter:begin:ts":"1537296937967",
+                 "tcpflags":"***A****",
+                 "guid":"f2a6c42c-ec04-4e8e-ae8d-29a7a642b8be",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537297658265",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537297658252",
+                 "enrichmentjoinbolt:joiner:ts":"1537297658256",
+                 "adapter:geoadapter:begin:ts":"1537297658254",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537297658261",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:07:37.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537297658254",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537297658254",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537297658259",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537297657000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537297658252",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537297658254",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537297658259",
+                 "adapter:threatinteladapter:begin:ts":"1537297658261",
+                 "tcpflags":"***A**S*",
+                 "guid":"2f34effe-93dc-41d4-aa04-920c89982f9c",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537297780829",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537297780818",
+                 "enrichmentjoinbolt:joiner:ts":"1537297780822",
+                 "adapter:geoadapter:begin:ts":"1537297780820",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537297780827",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:09:35.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537297780820",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537297780820",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537297780825",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537297775000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537297780818",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537297780820",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537297780825",
+                 "adapter:threatinteladapter:begin:ts":"1537297780827",
+                 "tcpflags":"***A**S*",
+                 "guid":"bbbbdb93-fbef-4479-b018-02b92cc88103",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537298899732",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537298899713",
+                 "enrichmentjoinbolt:joiner:ts":"1537298899718",
+                 "adapter:geoadapter:begin:ts":"1537298899716",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537298899729",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:28:18.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537298899716",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537298899716",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537298899720",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537298898000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537298899713",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537298899716",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537298899720",
+                 "adapter:threatinteladapter:begin:ts":"1537298899722",
+                 "tcpflags":"***A**S*",
+                 "guid":"5e42b3f7-5baf-48f6-b596-4db3e5e5f30b",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537299378075",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537299378057",
+                 "enrichmentjoinbolt:joiner:ts":"1537299378062",
+                 "adapter:geoadapter:begin:ts":"1537299378059",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537299378072",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:36:17.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537299378059",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537299378059",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537299378066",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537299377000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537299378057",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537299378059",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537299378066",
+                 "adapter:threatinteladapter:begin:ts":"1537299378072",
+                 "tcpflags":"***A****",
+                 "guid":"d6df0c6a-9e7c-41c9-8ee6-38681225a38c",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537300647845",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537300647833",
+                 "enrichmentjoinbolt:joiner:ts":"1537300647837",
+                 "adapter:geoadapter:begin:ts":"1537300647834",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537300647842",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:57:26.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537300647834",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537300647834",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537300647839",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537300646000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537300647833",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537300647834",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537300647839",
+                 "adapter:threatinteladapter:begin:ts":"1537300647842",
+                 "tcpflags":"***A**S*",
+                 "guid":"2f45a7f0-9771-49c3-8eba-bd1f8af8174f",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537301518165",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537301518147",
+                 "enrichmentjoinbolt:joiner:ts":"1537301518158",
+                 "adapter:geoadapter:begin:ts":"1537301518149",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537301518163",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-20:11:57.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537301518149",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537301518149",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537301518160",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537301517000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537301518147",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537301518149",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537301518160",
+                 "adapter:threatinteladapter:begin:ts":"1537301518163",
+                 "tcpflags":"***A**S*",
+                 "guid":"0dd2ce0a-62aa-4800-a7de-ad56d0ed2f41",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537304529055",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537304529042",
+                 "enrichmentjoinbolt:joiner:ts":"1537304529048",
+                 "adapter:geoadapter:begin:ts":"1537304529045",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537304529053",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-21:02:04.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537304529045",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537304529045",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537304529050",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537304524000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537304529042",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537304529045",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537304529050",
+                 "adapter:threatinteladapter:begin:ts":"1537304529053",
+                 "tcpflags":"***A****",
+                 "guid":"13760f67-1412-4463-8de3-a74def82c6ed",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537277777169",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537277777156",
+                 "enrichmentjoinbolt:joiner:ts":"1537277777161",
+                 "adapter:geoadapter:begin:ts":"1537277777158",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537277777165",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-13:36:15.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537277777158",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537277777158",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537277777163",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537277775000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537277777156",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537277777158",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537277777162",
+                 "adapter:threatinteladapter:begin:ts":"1537277777165",
+                 "tcpflags":"***A****",
+                 "guid":"32c60f70-7a76-4d7b-a943-939a6cea9a3f",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537277957306",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537277957293",
+                 "enrichmentjoinbolt:joiner:ts":"1537277957299",
+                 "adapter:geoadapter:begin:ts":"1537277957296",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537277957303",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-13:39:16.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537277957296",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537277957296",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537277957301",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537277956000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537277957293",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537277957296",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537277957301",
+                 "adapter:threatinteladapter:begin:ts":"1537277957303",
+                 "tcpflags":"***A****",
+                 "guid":"7dcf592a-d562-4ac6-92e7-aaea2ee14417",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537277957306",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537277957293",
+                 "enrichmentjoinbolt:joiner:ts":"1537277957299",
+                 "adapter:geoadapter:begin:ts":"1537277957296",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537277957303",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-13:39:16.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537277957296",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537277957296",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537277957301",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537277956000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537277957293",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537277957296",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537277957301",
+                 "adapter:threatinteladapter:begin:ts":"1537277957303",
+                 "tcpflags":"***A****",
+                 "guid":"ebe214d5-a0ee-485e-bf39-78e8afde9711",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537281281274",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537281281256",
+                 "enrichmentjoinbolt:joiner:ts":"1537281281261",
+                 "adapter:geoadapter:begin:ts":"1537281281258",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537281281273",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-14:34:37.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537281281258",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537281281258",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537281281263",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537281277000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537281281256",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537281281258",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537281281263",
+                 "adapter:threatinteladapter:begin:ts":"1537281281266",
+                 "tcpflags":"***A****",
+                 "guid":"f4d8a573-e957-4c22-b4e1-b9c657cd911d",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537281652539",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537281652526",
+                 "enrichmentjoinbolt:joiner:ts":"1537281652532",
+                 "adapter:geoadapter:begin:ts":"1537281652530",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537281652536",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-14:40:51.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537281652529",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537281652530",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537281652534",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537281651000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537281652526",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537281652529",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537281652534",
+                 "adapter:threatinteladapter:begin:ts":"1537281652536",
+                 "tcpflags":"***A**S*",
+                 "guid":"c4f85a6b-0ebf-4e89-b212-5e0567788f03",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537281947945",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537281947925",
+                 "enrichmentjoinbolt:joiner:ts":"1537281947930",
+                 "adapter:geoadapter:begin:ts":"1537281947927",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537281947942",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-14:45:43.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537281947927",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537281947928",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537281947932",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537281943000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537281947925",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537281947927",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537281947932",
+                 "adapter:threatinteladapter:begin:ts":"1537281947935",
+                 "tcpflags":"***A****",
+                 "guid":"c507d367-4556-41b9-8975-6cfc52b83545",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537282850352",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537282850310",
+                 "enrichmentjoinbolt:joiner:ts":"1537282850315",
+                 "adapter:geoadapter:begin:ts":"1537282850312",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537282850350",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-15:00:45.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537282850312",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537282850313",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537282850317",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537282845000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537282850310",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537282850312",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537282850317",
+                 "adapter:threatinteladapter:begin:ts":"1537282850350",
+                 "tcpflags":"***A**S*",
+                 "guid":"78cb2af0-6056-464b-a94a-7d4ccedcc269",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537283450157",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537283450144",
+                 "enrichmentjoinbolt:joiner:ts":"1537283450150",
+                 "adapter:geoadapter:begin:ts":"1537283450147",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537283450156",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-15:10:46.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537283450147",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537283450147",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537283450153",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537283446000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537283450144",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537283450147",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537283450153",
+                 "adapter:threatinteladapter:begin:ts":"1537283450156",
+                 "tcpflags":"***A**S*",
+                 "guid":"67e7927d-bf35-4506-9ce5-8236aea37417",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537296522491",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537296158983",
+                 "enrichmentjoinbolt:joiner:ts":"1537296158988",
+                 "adapter:geoadapter:begin:ts":"1537296158985",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537296522299",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-18:42:34.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537296158985",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537296158985",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537296158990",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537296154000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537296158983",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537296158985",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537296158990",
+                 "adapter:threatinteladapter:begin:ts":"1537296522299",
+                 "tcpflags":"***A****",
+                 "guid":"8a851c1a-9f4f-45d1-b06a-c9c0d800f91c",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537296522537",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537296487429",
+                 "enrichmentjoinbolt:joiner:ts":"1537296487439",
+                 "adapter:geoadapter:begin:ts":"1537296487432",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537296522318",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-18:48:05.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537296487432",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537296487432",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537296487441",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537296485000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537296487429",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537296487432",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537296487441",
+                 "adapter:threatinteladapter:begin:ts":"1537296522318",
+                 "tcpflags":"***A**S*",
+                 "guid":"5c9a68d8-16ff-44fe-83a6-9feb0b045125",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537297341824",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537297341800",
+                 "enrichmentjoinbolt:joiner:ts":"1537297341805",
+                 "adapter:geoadapter:begin:ts":"1537297341803",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537297341814",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:02:17.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537297341803",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537297341803",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537297341808",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537297337000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537297341800",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537297341803",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537297341808",
+                 "adapter:threatinteladapter:begin:ts":"1537297341811",
+                 "tcpflags":"***A**S*",
+                 "guid":"1767fe9d-d61d-46b5-9cb7-c24b8074ddec",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537297520177",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537297520165",
+                 "enrichmentjoinbolt:joiner:ts":"1537297520170",
+                 "adapter:geoadapter:begin:ts":"1537297520167",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537297520174",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:05:18.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537297520167",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537297520167",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537297520172",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537297518000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537297520165",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537297520167",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537297520172",
+                 "adapter:threatinteladapter:begin:ts":"1537297520174",
+                 "tcpflags":"***A****",
+                 "guid":"fc5b9a63-0894-4b16-9c5b-76c35cb00757",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537297710682",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537297710669",
+                 "enrichmentjoinbolt:joiner:ts":"1537297710674",
+                 "adapter:geoadapter:begin:ts":"1537297710671",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537297710679",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:08:29.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537297710671",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537297710671",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537297710676",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537297709000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537297710669",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537297710671",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537297710676",
+                 "adapter:threatinteladapter:begin:ts":"1537297710679",
+                 "tcpflags":"***A**S*",
+                 "guid":"6b63bfb3-f809-46f0-932e-c22d5071b502",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537298106549",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537298106533",
+                 "enrichmentjoinbolt:joiner:ts":"1537298106539",
+                 "adapter:geoadapter:begin:ts":"1537298106536",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C98B4",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537298106547",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:15:02.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A**S*,0xC88832BC,0x522C98B4,,0xFAF0,128,0,1899,44,45056,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537298106536",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537298106536",
+                 "id":"1899",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537298106541",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537298102000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537298106533",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537298106536",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"45056",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537298106541",
+                 "adapter:threatinteladapter:begin:ts":"1537298106544",
+                 "tcpflags":"***A**S*",
+                 "guid":"096b5469-6c46-4f54-b0a4-61ffc125d74c",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537300567318",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537300567298",
+                 "enrichmentjoinbolt:joiner:ts":"1537300567302",
+                 "adapter:geoadapter:begin:ts":"1537300567300",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537300567312",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-19:56:06.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537300567300",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537300567300",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537300567306",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537300566000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537300567298",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537300567300",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537300567306",
+                 "adapter:threatinteladapter:begin:ts":"1537300567312",
+                 "tcpflags":"***A****",
+                 "guid":"9d84c1f0-2924-439a-abd7-32a4e8c69253",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537300823287",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BD",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"40",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537300823274",
+                 "enrichmentjoinbolt:joiner:ts":"1537300823279",
+                 "adapter:geoadapter:begin:ts":"1537300823276",
+                 "tcpwindow":"0xFAF0",
+                 "threat:triage:rules:0:name":null,
+                 "tcpack":"0x522C999D",
+                 "protocol":"TCP",
+                 "source:type":"snort",
+                 "adapter:threatinteladapter:end:ts":"1537300823285",
+                 "ip_dst_addr":"192.168.138.158",
+                 "original_string":"09/18/18-20:00:22.000000 ,1,999158,0,\"'snort test alert'\",TCP,188.165.164.184,80,192.168.138.158,49195,00:00:00:00:00:00,00:00:00:00:00:00,0x3C,***A****,0xC88832BD,0x522C999D,,0xFAF0,128,0,1900,40,40960,,,,",
+                 "adapter:hostfromjsonlistadapter:end:ts":"1537300823277",
+                 "tos":"0",
+                 "adapter:geoadapter:end:ts":"1537300823276",
+                 "id":"1900",
+                 "enrichments:geo:ip_src_addr:latitude":"48.8582",
+                 "ip_src_addr":"188.165.164.184",
+                 "threatintelsplitterbolt:splitter:end:ts":"1537300823281",
+                 "threat:triage:rules:0:score":10,
+                 "timestamp":1537300822000,
+                 "ethdst":"00:00:00:00:00:00",
+                 "enrichments:geo:ip_src_addr:location_point":"48.8582,2.3387000000000002",
+                 "threat:triage:rules:0:reason":null,
+                 "enrichmentsplitterbolt:splitter:end:ts":"1537300823274",
+                 "threat:triage:score":10.0,
+                 "is_alert":"true",
+                 "adapter:hostfromjsonlistadapter:begin:ts":"1537300823277",
+                 "enrichments:geo:ip_src_addr:country":"FR",
+                 "ttl":"128",
+                 "metaalerts":[
+                    "ad5cc7ea-5954-479f-8589-51f94b1c2f02"
+                 ],
+                 "ethlen":"0x3C",
+                 "iplen":"40960",
+                 "ip_src_port":"80",
+                 "threatintelsplitterbolt:splitter:begin:ts":"1537300823281",
+                 "adapter:threatinteladapter:begin:ts":"1537300823284",
+                 "tcpflags":"***A****",
+                 "guid":"afa4b156-bc2f-4e6f-bf0c-ad03695056e3",
+                 "sig_id":"999158",
+                 "sig_generator":"1"
+              },
+              {
+                 "msg":"'snort test alert'",
+                 "sig_rev":"0",
+                 "ip_dst_port":"49195",
+                 "threatinteljoinbolt:joiner:ts":"1537302847425",
+                 "ethsrc":"00:00:00:00:00:00",
+                 "threat:triage:rules:0:comment":null,
+                 "tcpseq":"0xC88832BC",
+                 "enrichments:geo:ip_src_addr:longitude":"2.3387000000000002",
+                 "dgmlen":"44",
+                 "enrichmentsplitterbolt:splitter:begin:ts":"1537302847413",
+                 "enrichmentjoinbolt:joiner:ts":"1537302847418",
+                 "adapter:geoadapter:begin:ts":"1537302847415",
+              

<TRUNCATED>

[3/5] metron git commit: METRON-1803: Integrate Cypress with Travis (tiborm via mmiklavc) closes apache/metron#1226

Posted by mm...@apache.org.
http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress/fixtures/pcap.status-00.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress/fixtures/pcap.status-00.json b/metron-interface/metron-alerts/cypress/fixtures/pcap.status-00.json
new file mode 100644
index 0000000..2a3cdcc
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress/fixtures/pcap.status-00.json
@@ -0,0 +1,7 @@
+{
+  "jobId":"job_1537878471649_0001",
+  "jobStatus":"RUNNING",
+  "description":"map: 0.0%, reduce: 0.0%",
+  "percentComplete":0.0,
+  "pageTotal":0
+}

http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress/fixtures/pcap.status-01.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress/fixtures/pcap.status-01.json b/metron-interface/metron-alerts/cypress/fixtures/pcap.status-01.json
new file mode 100644
index 0000000..1505f71
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress/fixtures/pcap.status-01.json
@@ -0,0 +1,7 @@
+{
+  "jobId":"job_1537878471649_0001",
+  "jobStatus":"RUNNING",
+  "description":"map: 100.0%, reduce: 100.0%",
+  "percentComplete":75.0,
+  "pageTotal":0
+}

http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress/fixtures/pcap.status-02.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress/fixtures/pcap.status-02.json b/metron-interface/metron-alerts/cypress/fixtures/pcap.status-02.json
new file mode 100644
index 0000000..662c27a
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress/fixtures/pcap.status-02.json
@@ -0,0 +1,7 @@
+{
+  "jobId":"job_1537878471649_0001",
+  "jobStatus":"SUCCEEDED",
+  "description":"Job completed.",
+  "percentComplete":100.0,
+  "pageTotal":2
+}
\ No newline at end of file


[4/5] metron git commit: METRON-1803: Integrate Cypress with Travis (tiborm via mmiklavc) closes apache/metron#1226

Posted by mm...@apache.org.
http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress/fixtures/pcap.page-01.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress/fixtures/pcap.page-01.json b/metron-interface/metron-alerts/cypress/fixtures/pcap.page-01.json
new file mode 100644
index 0000000..61082ed
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress/fixtures/pcap.page-01.json
@@ -0,0 +1,12383 @@
+{
+  "version":"0",
+  "creator":"wireshark/1.8.10",
+  "time":"Mon Sep 24 14:16:26 2018",
+  "captureFile":"",
+  "packets":[
+     {
+        "protos":[
+           {
+              "name":"geninfo",
+              "pos":"0",
+              "showname":"General information",
+              "size":"722",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"num",
+                    "pos":"0",
+                    "showname":"Number",
+                    "size":"722",
+                    "value":"1",
+                    "show":"1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"len",
+                    "pos":"0",
+                    "showname":"Frame Length",
+                    "size":"722",
+                    "value":"2d2",
+                    "show":"722",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"caplen",
+                    "pos":"0",
+                    "showname":"Captured Length",
+                    "size":"722",
+                    "value":"2d2",
+                    "show":"722",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"timestamp",
+                    "pos":"0",
+                    "showname":"Captured Time",
+                    "size":"722",
+                    "value":"1458240269.373968000",
+                    "show":"Mar 17, 2016 18:44:29.373968000 UTC",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"frame",
+              "pos":"0",
+              "showname":"Frame 1: 722 bytes on wire (5776 bits), 722 bytes captured (5776 bits) on interface 0",
+              "size":"722",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"frame.interface_id",
+                    "pos":"0",
+                    "showname":"Interface id: 0",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.dlt",
+                    "pos":"0",
+                    "showname":"WTAP_ENCAP: 1",
+                    "size":"0",
+                    "value":null,
+                    "show":"1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time",
+                    "pos":"0",
+                    "showname":"Arrival Time: Mar 17, 2016 18:44:29.373968000 UTC",
+                    "size":"0",
+                    "value":null,
+                    "show":"Mar 17, 2016 18:44:29.373968000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.offset_shift",
+                    "pos":"0",
+                    "showname":"Time shift for this packet: 0.000000000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.000000000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_epoch",
+                    "pos":"0",
+                    "showname":"Epoch Time: 1458240269.373968000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"1458240269.373968000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_delta",
+                    "pos":"0",
+                    "showname":"Time delta from previous captured frame: 0.000000000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.000000000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_delta_displayed",
+                    "pos":"0",
+                    "showname":"Time delta from previous displayed frame: 0.000000000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.000000000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_relative",
+                    "pos":"0",
+                    "showname":"Time since reference or first frame: 0.000000000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.000000000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.number",
+                    "pos":"0",
+                    "showname":"Frame Number: 1",
+                    "size":"0",
+                    "value":null,
+                    "show":"1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.len",
+                    "pos":"0",
+                    "showname":"Frame Length: 722 bytes (5776 bits)",
+                    "size":"0",
+                    "value":null,
+                    "show":"722",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.cap_len",
+                    "pos":"0",
+                    "showname":"Capture Length: 722 bytes (5776 bits)",
+                    "size":"0",
+                    "value":null,
+                    "show":"722",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.marked",
+                    "pos":"0",
+                    "showname":"Frame is marked: False",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.ignored",
+                    "pos":"0",
+                    "showname":"Frame is ignored: False",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.protocols",
+                    "pos":"0",
+                    "showname":"Protocols in frame: eth:ip:tcp:ssh",
+                    "size":"0",
+                    "value":null,
+                    "show":"eth:ip:tcp:ssh",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"eth",
+              "pos":"0",
+              "showname":"Ethernet II, Src: CadmusCo_96:a4:7a (08:00:27:96:a4:7a), Dst: 0a:00:27:00:00:00 (0a:00:27:00:00:00)",
+              "size":"14",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"eth.dst",
+                    "pos":"0",
+                    "showname":"Destination: 0a:00:27:00:00:00 (0a:00:27:00:00:00)",
+                    "size":"6",
+                    "value":"0a0027000000",
+                    "show":"0a:00:27:00:00:00",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"eth.addr",
+                          "pos":"0",
+                          "showname":"Address: 0a:00:27:00:00:00 (0a:00:27:00:00:00)",
+                          "size":"6",
+                          "value":"0a0027000000",
+                          "show":"0a:00:27:00:00:00",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.lg",
+                          "pos":"0",
+                          "showname":".... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)",
+                          "size":"3",
+                          "value":"1",
+                          "show":"1",
+                          "unmaskedvalue":"0a0027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.ig",
+                          "pos":"0",
+                          "showname":".... ...0 .... .... .... .... = IG bit: Individual address (unicast)",
+                          "size":"3",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"0a0027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"eth.src",
+                    "pos":"6",
+                    "showname":"Source: CadmusCo_96:a4:7a (08:00:27:96:a4:7a)",
+                    "size":"6",
+                    "value":"08002796a47a",
+                    "show":"08:00:27:96:a4:7a",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"eth.addr",
+                          "pos":"6",
+                          "showname":"Address: CadmusCo_96:a4:7a (08:00:27:96:a4:7a)",
+                          "size":"6",
+                          "value":"08002796a47a",
+                          "show":"08:00:27:96:a4:7a",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.lg",
+                          "pos":"6",
+                          "showname":".... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)",
+                          "size":"3",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"080027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.ig",
+                          "pos":"6",
+                          "showname":".... ...0 .... .... .... .... = IG bit: Individual address (unicast)",
+                          "size":"3",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"080027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"eth.type",
+                    "pos":"12",
+                    "showname":"Type: IP (0x0800)",
+                    "size":"2",
+                    "value":"0800",
+                    "show":"0x0800",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"ip",
+              "pos":"14",
+              "showname":"Internet Protocol Version 4, Src: 192.168.66.121 (192.168.66.121), Dst: 192.168.66.1 (192.168.66.1)",
+              "size":"20",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"ip.version",
+                    "pos":"14",
+                    "showname":"Version: 4",
+                    "size":"1",
+                    "value":"45",
+                    "show":"4",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.hdr_len",
+                    "pos":"14",
+                    "showname":"Header length: 20 bytes",
+                    "size":"1",
+                    "value":"45",
+                    "show":"20",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.dsfield",
+                    "pos":"15",
+                    "showname":"Differentiated Services Field: 0x10 (DSCP 0x04: Unknown DSCP; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))",
+                    "size":"1",
+                    "value":"10",
+                    "show":"16",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"ip.dsfield.dscp",
+                          "pos":"15",
+                          "showname":"0001 00.. = Differentiated Services Codepoint: Unknown (0x04)",
+                          "size":"1",
+                          "value":"4",
+                          "show":"0x04",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.dsfield.ecn",
+                          "pos":"15",
+                          "showname":".... ..00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00)",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0x00",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.len",
+                    "pos":"16",
+                    "showname":"Total Length: 708",
+                    "size":"2",
+                    "value":"02c4",
+                    "show":"708",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.id",
+                    "pos":"18",
+                    "showname":"Identification: 0x7cd9 (31961)",
+                    "size":"2",
+                    "value":"7cd9",
+                    "show":"0x7cd9",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.flags",
+                    "pos":"20",
+                    "showname":"Flags: 0x02 (Don't Fragment)",
+                    "size":"1",
+                    "value":"40",
+                    "show":"0x02",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"ip.flags.rb",
+                          "pos":"20",
+                          "showname":"0... .... = Reserved bit: Not set",
+                          "size":"1",
+                          "value":"40",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.flags.df",
+                          "pos":"20",
+                          "showname":".1.. .... = Don't fragment: Set",
+                          "size":"1",
+                          "value":"40",
+                          "show":"1",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.flags.mf",
+                          "pos":"20",
+                          "showname":"..0. .... = More fragments: Not set",
+                          "size":"1",
+                          "value":"40",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.frag_offset",
+                    "pos":"20",
+                    "showname":"Fragment offset: 0",
+                    "size":"2",
+                    "value":"4000",
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.ttl",
+                    "pos":"22",
+                    "showname":"Time to live: 64",
+                    "size":"1",
+                    "value":"40",
+                    "show":"64",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.proto",
+                    "pos":"23",
+                    "showname":"Protocol: TCP (6)",
+                    "size":"1",
+                    "value":"06",
+                    "show":"6",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.checksum",
+                    "pos":"24",
+                    "showname":"Header checksum: 0xb57f [correct]",
+                    "size":"2",
+                    "value":"b57f",
+                    "show":"0xb57f",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"ip.checksum_good",
+                          "pos":"24",
+                          "showname":"Good: True",
+                          "size":"2",
+                          "value":"b57f",
+                          "show":"1",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.checksum_bad",
+                          "pos":"24",
+                          "showname":"Bad: False",
+                          "size":"2",
+                          "value":"b57f",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.src",
+                    "pos":"26",
+                    "showname":"Source: 192.168.66.121 (192.168.66.121)",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.addr",
+                    "pos":"26",
+                    "showname":"Source or Destination Address: 192.168.66.121 (192.168.66.121)",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.src_host",
+                    "pos":"26",
+                    "showname":"Source Host: 192.168.66.121",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.host",
+                    "pos":"26",
+                    "showname":"Source or Destination Host: 192.168.66.121",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.dst",
+                    "pos":"30",
+                    "showname":"Destination: 192.168.66.1 (192.168.66.1)",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.addr",
+                    "pos":"30",
+                    "showname":"Source or Destination Address: 192.168.66.1 (192.168.66.1)",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.dst_host",
+                    "pos":"30",
+                    "showname":"Destination Host: 192.168.66.1",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.host",
+                    "pos":"30",
+                    "showname":"Source or Destination Host: 192.168.66.1",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"tcp",
+              "pos":"34",
+              "showname":"Transmission Control Protocol, Src Port: ssh (22), Dst Port: 55791 (55791), Seq: 1, Ack: 1, Len: 656",
+              "size":"32",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"tcp.srcport",
+                    "pos":"34",
+                    "showname":"Source port: ssh (22)",
+                    "size":"2",
+                    "value":"0016",
+                    "show":"22",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.dstport",
+                    "pos":"36",
+                    "showname":"Destination port: 55791 (55791)",
+                    "size":"2",
+                    "value":"d9ef",
+                    "show":"55791",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.port",
+                    "pos":"34",
+                    "showname":"Source or Destination Port: 22",
+                    "size":"2",
+                    "value":"0016",
+                    "show":"22",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.port",
+                    "pos":"36",
+                    "showname":"Source or Destination Port: 55791",
+                    "size":"2",
+                    "value":"d9ef",
+                    "show":"55791",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.stream",
+                    "pos":"34",
+                    "showname":"Stream index: 0",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.len",
+                    "pos":"46",
+                    "showname":"TCP Segment Len: 656",
+                    "size":"1",
+                    "value":"80",
+                    "show":"656",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.seq",
+                    "pos":"38",
+                    "showname":"Sequence number: 1    (relative sequence number)",
+                    "size":"4",
+                    "value":"12903044",
+                    "show":"1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.nxtseq",
+                    "pos":"34",
+                    "showname":"Next sequence number: 657    (relative sequence number)",
+                    "size":"0",
+                    "value":null,
+                    "show":"657",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.ack",
+                    "pos":"42",
+                    "showname":"Acknowledgment number: 1    (relative ack number)",
+                    "size":"4",
+                    "value":"8b92f3e7",
+                    "show":"1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.hdr_len",
+                    "pos":"46",
+                    "showname":"Header length: 32 bytes",
+                    "size":"1",
+                    "value":"80",
+                    "show":"32",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.flags",
+                    "pos":"46",
+                    "showname":"Flags: 0x018 (PSH, ACK)",
+                    "size":"2",
+                    "value":"18",
+                    "show":"0x0018",
+                    "unmaskedvalue":"8018",
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"tcp.flags.res",
+                          "pos":"46",
+                          "showname":"000. .... .... = Reserved: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"80",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.ns",
+                          "pos":"46",
+                          "showname":"...0 .... .... = Nonce: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"80",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.cwr",
+                          "pos":"47",
+                          "showname":".... 0... .... = Congestion Window Reduced (CWR): Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.ecn",
+                          "pos":"47",
+                          "showname":".... .0.. .... = ECN-Echo: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.urg",
+                          "pos":"47",
+                          "showname":".... ..0. .... = Urgent: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.ack",
+                          "pos":"47",
+                          "showname":".... ...1 .... = Acknowledgment: Set",
+                          "size":"1",
+                          "value":"1",
+                          "show":"1",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.push",
+                          "pos":"47",
+                          "showname":".... .... 1... = Push: Set",
+                          "size":"1",
+                          "value":"1",
+                          "show":"1",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.reset",
+                          "pos":"47",
+                          "showname":".... .... .0.. = Reset: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.syn",
+                          "pos":"47",
+                          "showname":".... .... ..0. = Syn: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.fin",
+                          "pos":"47",
+                          "showname":".... .... ...0 = Fin: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"18",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.window_size_value",
+                    "pos":"48",
+                    "showname":"Window size value: 501",
+                    "size":"2",
+                    "value":"01f5",
+                    "show":"501",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.window_size",
+                    "pos":"48",
+                    "showname":"Calculated window size: 501",
+                    "size":"2",
+                    "value":"01f5",
+                    "show":"501",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.window_size_scalefactor",
+                    "pos":"48",
+                    "showname":"Window size scaling factor: -1 (unknown)",
+                    "size":"2",
+                    "value":"01f5",
+                    "show":"-1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.checksum",
+                    "pos":"50",
+                    "showname":"Checksum: 0x0882 [validation disabled]",
+                    "size":"2",
+                    "value":"0882",
+                    "show":"0x0882",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"tcp.checksum_good",
+                          "pos":"50",
+                          "showname":"Good Checksum: False",
+                          "size":"2",
+                          "value":"0882",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.checksum_bad",
+                          "pos":"50",
+                          "showname":"Bad Checksum: False",
+                          "size":"2",
+                          "value":"0882",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.options",
+                    "pos":"54",
+                    "showname":"Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps",
+                    "size":"12",
+                    "value":"0101080a0014f4f811bdb98f",
+                    "show":"01:01:08:0a:00:14:f4:f8:11:bd:b9:8f",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"",
+                          "pos":"54",
+                          "showname":null,
+                          "size":"1",
+                          "value":"01",
+                          "show":"No-Operation (NOP)",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":[
+                             {
+                                "name":"ip.opt.type",
+                                "pos":"54",
+                                "showname":"Type: 1",
+                                "size":"1",
+                                "value":"01",
+                                "show":"1",
+                                "unmaskedvalue":null,
+                                "hide":null,
+                                "fields":[
+                                   {
+                                      "name":"ip.opt.type.copy",
+                                      "pos":"54",
+                                      "showname":"0... .... = Copy on fragmentation: No",
+                                      "size":"1",
+                                      "value":"0",
+                                      "show":"0",
+                                      "unmaskedvalue":"01",
+                                      "hide":null,
+                                      "fields":null,
+                                      "protos":null
+                                   },
+                                   {
+                                      "name":"ip.opt.type.class",
+                                      "pos":"54",
+                                      "showname":".00. .... = Class: Control (0)",
+                                      "size":"1",
+                                      "value":"0",
+                                      "show":"0",
+                                      "unmaskedvalue":"01",
+                                      "hide":null,
+                                      "fields":null,
+                                      "protos":null
+                                   },
+                                   {
+                                      "name":"ip.opt.type.number",
+                                      "pos":"54",
+                                      "showname":"...0 0001 = Number: No-Operation (NOP) (1)",
+                                      "size":"1",
+                                      "value":"1",
+                                      "show":"1",
+                                      "unmaskedvalue":"01",
+                                      "hide":null,
+                                      "fields":null,
+                                      "protos":null
+                                   }
+                                ],
+                                "protos":null
+                             }
+                          ],
+                          "protos":null
+                       },
+                       {
+                          "name":"",
+                          "pos":"55",
+                          "showname":null,
+                          "size":"1",
+                          "value":"01",
+                          "show":"No-Operation (NOP)",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":[
+                             {
+                                "name":"ip.opt.type",
+                                "pos":"55",
+                                "showname":"Type: 1",
+                                "size":"1",
+                                "value":"01",
+                                "show":"1",
+                                "unmaskedvalue":null,
+                                "hide":null,
+                                "fields":[
+                                   {
+                                      "name":"ip.opt.type.copy",
+                                      "pos":"55",
+                                      "showname":"0... .... = Copy on fragmentation: No",
+                                      "size":"1",
+                                      "value":"0",
+                                      "show":"0",
+                                      "unmaskedvalue":"01",
+                                      "hide":null,
+                                      "fields":null,
+                                      "protos":null
+                                   },
+                                   {
+                                      "name":"ip.opt.type.class",
+                                      "pos":"55",
+                                      "showname":".00. .... = Class: Control (0)",
+                                      "size":"1",
+                                      "value":"0",
+                                      "show":"0",
+                                      "unmaskedvalue":"01",
+                                      "hide":null,
+                                      "fields":null,
+                                      "protos":null
+                                   },
+                                   {
+                                      "name":"ip.opt.type.number",
+                                      "pos":"55",
+                                      "showname":"...0 0001 = Number: No-Operation (NOP) (1)",
+                                      "size":"1",
+                                      "value":"1",
+                                      "show":"1",
+                                      "unmaskedvalue":"01",
+                                      "hide":null,
+                                      "fields":null,
+                                      "protos":null
+                                   }
+                                ],
+                                "protos":null
+                             }
+                          ],
+                          "protos":null
+                       },
+                       {
+                          "name":"",
+                          "pos":"56",
+                          "showname":null,
+                          "size":"10",
+                          "value":"080a0014f4f811bdb98f",
+                          "show":"Timestamps: TSval 1373432, TSecr 297646479",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":[
+                             {
+                                "name":"tcp.option_kind",
+                                "pos":"56",
+                                "showname":"Kind: Timestamp (8)",
+                                "size":"1",
+                                "value":"08",
+                                "show":"8",
+                                "unmaskedvalue":null,
+                                "hide":null,
+                                "fields":null,
+                                "protos":null
+                             },
+                             {
+                                "name":"tcp.option_len",
+                                "pos":"57",
+                                "showname":"Length: 10",
+                                "size":"1",
+                                "value":"0a",
+                                "show":"10",
+                                "unmaskedvalue":null,
+                                "hide":null,
+                                "fields":null,
+                                "protos":null
+                             },
+                             {
+                                "name":"tcp.options.timestamp.tsval",
+                                "pos":"58",
+                                "showname":"Timestamp value: 1373432",
+                                "size":"4",
+                                "value":"0014f4f8",
+                                "show":"1373432",
+                                "unmaskedvalue":null,
+                                "hide":null,
+                                "fields":null,
+                                "protos":null
+                             },
+                             {
+                                "name":"tcp.options.timestamp.tsecr",
+                                "pos":"62",
+                                "showname":"Timestamp echo reply: 297646479",
+                                "size":"4",
+                                "value":"11bdb98f",
+                                "show":"297646479",
+                                "unmaskedvalue":null,
+                                "hide":null,
+                                "fields":null,
+                                "protos":null
+                             }
+                          ],
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.analysis",
+                    "pos":"34",
+                    "showname":"SEQ/ACK analysis",
+                    "size":"0",
+                    "value":"",
+                    "show":"",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"tcp.analysis.bytes_in_flight",
+                          "pos":"34",
+                          "showname":"Bytes in flight: 656",
+                          "size":"0",
+                          "value":null,
+                          "show":"656",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"ssh",
+              "pos":"66",
+              "showname":"SSH Protocol",
+              "size":"656",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"ssh.encrypted_packet",
+                    "pos":"66",
+                    "showname":"Encrypted Packet: 5b2bfe1fa006867834412184af9f5b239737763adead7140...",
+                    "size":"656",
+                    "value":"5b2bfe1fa006867834412184af9f5b239737763adead71408fc01b88e548b2cc86f341a39771c6ed16f2b0bb3e6ab6109e73c7d68ca7545852f91930e4633c17fb9dc7aa794b0d820d0fa3ac65bf0f013e5449d5953d2943506657e2b76b548e67f5c9ce1a4c53db1b52465bde7208baf11f3fe01975418b4db186a38ad32947d1908b62e532da4b729353a932423d25f5f734484076aa4143c6a74937a4ea49448e261ae1ecb6b07bbdf5c98d0855940a19018c88263b8936f7b3e9a4b6cd98090fa10a10e37ad20fe5d833071ad6d5b2886ba85ec72affb83e316443dbe29dbf643e6aa05595c90765cf85f6da55cc1c09d8dccc7d05da022429ad602a559a044b7e2663b0c153a3011bf824ef8d1fa56cba957c5f5d2276a1c9e92de65782f406848c6e20f634c5d1fea843a8bf1a4058e85553f5838f7299958fbf54be84e46c5a3c3965f8bed7fe03a9a1168a892e0073adeb54deca171a318d11fc1a8179f91632310213da327965a40bc6fe18eae55e8da6b57d7ef9f3a05b42381bcb3db8f8efd6d0c638a2cdd46efb0b8f1274e98672f644b2275947e626b02e5166f86c2dd4a67b81e213f8c064927a396815db589f10e5e521ffedb13f8edbe2de01c6fc8bf0e12c82212e497794aa045e9b6fcca83b4cad0a3b5e6ca2d1feaf8887b4d64f
 22989396ecfa8f7f1835eed422580505109fed36797bdc10a9168d5148daef6a8710c3df1d6366c9763ab4ebd359d86a8ea14819252fb52ba423422d1f60b0179316b3729e479ba07e88cb886938c8daae65d470dde91e5336e0fc4221a72cc49057d878aa5924875d097483e94bc44a4ea93aee8780e56c50a405932841f50da156e1f90559a7c4f76999442fb433a26fc703dea656bbe03790ac3c9c5318ff5f81d87d483524bbfe7ff167",
+                    "show":"5b:2b:fe:1f:a0:06:86:78:34:41:21:84:af:9f:5b:23:97:37:76:3a:de:ad:71:40:8f:c0:1b:88:e5:48:b2:cc:86:f3:41:a3:97:71:c6:ed:16:f2:b0:bb:3e:6a:b6:10:9e:73:c7:d6:8c:a7:54:58:52:f9:19:30:e4:63:3c:17:fb:9d:c7:aa:79:4b:0d:82:0d:0f:a3:ac:65:bf:0f:01:3e:54:49:d5:95:3d:29:43:50:66:57:e2:b7:6b:54:8e:67:f5:c9:ce:1a:4c:53:db:1b:52:46:5b:de:72:08:ba:f1:1f:3f:e0:19:75:41:8b:4d:b1:86:a3:8a:d3:29:47:d1:90:8b:62:e5:32:da:4b:72:93:53:a9:32:42:3d:25:f5:f7:34:48:40:76:aa:41:43:c6:a7:49:37:a4:ea:49:44:8e:26:1a:e1:ec:b6:b0:7b:bd:f5:c9:8d:08:55:94:0a:19:01:8c:88:26:3b:89:36:f7:b3:e9:a4:b6:cd:98:09:0f:a1:0a:10:e3:7a:d2:0f:e5:d8:33:07:1a:d6:d5:b2:88:6b:a8:5e:c7:2a:ff:b8:3e:31:64:43:db:e2:9d:bf:64:3e:6a:a0:55:95:c9:07:65:cf:85:f6:da:55:cc:1c:09:d8:dc:cc:7d:05:da:02:24:29:ad:60:2a:55:9a:04:4b:7e:26:63:b0:c1:53:a3:01:1b:f8:24:ef:8d:1f:a5:6c:ba:95:7c:5f:5d:22:76:a1:c9:e9:2d:e6:57:82:f4:06:84:8c:6e:20:f6:34:c5:d1:fe:a8:43:a8:bf:1a:40:58:e8:55:53:f5:83:8f:72:99:95:8f:bf:54:be:84:e4:6c:5a:
 3c:39:65:f8:be:d7:fe:03:a9:a1:16:8a:89:2e:00:73:ad:eb:54:de:ca:17:1a:31:8d:11:fc:1a:81:79:f9:16:32:31:02:13:da:32:79:65:a4:0b:c6:fe:18:ea:e5:5e:8d:a6:b5:7d:7e:f9:f3:a0:5b:42:38:1b:cb:3d:b8:f8:ef:d6:d0:c6:38:a2:cd:d4:6e:fb:0b:8f:12:74:e9:86:72:f6:44:b2:27:59:47:e6:26:b0:2e:51:66:f8:6c:2d:d4:a6:7b:81:e2:13:f8:c0:64:92:7a:39:68:15:db:58:9f:10:e5:e5:21:ff:ed:b1:3f:8e:db:e2:de:01:c6:fc:8b:f0:e1:2c:82:21:2e:49:77:94:aa:04:5e:9b:6f:cc:a8:3b:4c:ad:0a:3b:5e:6c:a2:d1:fe:af:88:87:b4:d6:4f:22:98:93:96:ec:fa:8f:7f:18:35:ee:d4:22:58:05:05:10:9f:ed:36:79:7b:dc:10:a9:16:8d:51:48:da:ef:6a:87:10:c3:df:1d:63:66:c9:76:3a:b4:eb:d3:59:d8:6a:8e:a1:48:19:25:2f:b5:2b:a4:23:42:2d:1f:60:b0:17:93:16:b3:72:9e:47:9b:a0:7e:88:cb:88:69:38:c8:da:ae:65:d4:70:dd:e9:1e:53:36:e0:fc:42:21:a7:2c:c4:90:57:d8:78:aa:59:24:87:5d:09:74:83:e9:4b:c4:4a:4e:a9:3a:ee:87:80:e5:6c:50:a4:05:93:28:41:f5:0d:a1:56:e1:f9:05:59:a7:c4:f7:69:99:44:2f:b4:33:a2:6f:c7:03:de:a6:56:bb:e0:37:90:ac:3c:9c:53:18:ff:5f:81:d8:7d:48:35:24:bb:fe:7f:f1:6
 7",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           }
+        ]
+     },
+     {
+        "protos":[
+           {
+              "name":"geninfo",
+              "pos":"0",
+              "showname":"General information",
+              "size":"66",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"num",
+                    "pos":"0",
+                    "showname":"Number",
+                    "size":"66",
+                    "value":"2",
+                    "show":"2",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"len",
+                    "pos":"0",
+                    "showname":"Frame Length",
+                    "size":"66",
+                    "value":"42",
+                    "show":"66",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"caplen",
+                    "pos":"0",
+                    "showname":"Captured Length",
+                    "size":"66",
+                    "value":"42",
+                    "show":"66",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"timestamp",
+                    "pos":"0",
+                    "showname":"Captured Time",
+                    "size":"66",
+                    "value":"1458240269.412017000",
+                    "show":"Mar 17, 2016 18:44:29.412017000 UTC",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"frame",
+              "pos":"0",
+              "showname":"Frame 2: 66 bytes on wire (528 bits), 66 bytes captured (528 bits) on interface 0",
+              "size":"66",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"frame.interface_id",
+                    "pos":"0",
+                    "showname":"Interface id: 0",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.dlt",
+                    "pos":"0",
+                    "showname":"WTAP_ENCAP: 1",
+                    "size":"0",
+                    "value":null,
+                    "show":"1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time",
+                    "pos":"0",
+                    "showname":"Arrival Time: Mar 17, 2016 18:44:29.412017000 UTC",
+                    "size":"0",
+                    "value":null,
+                    "show":"Mar 17, 2016 18:44:29.412017000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.offset_shift",
+                    "pos":"0",
+                    "showname":"Time shift for this packet: 0.000000000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.000000000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_epoch",
+                    "pos":"0",
+                    "showname":"Epoch Time: 1458240269.412017000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"1458240269.412017000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_delta",
+                    "pos":"0",
+                    "showname":"Time delta from previous captured frame: 0.038049000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.038049000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_delta_displayed",
+                    "pos":"0",
+                    "showname":"Time delta from previous displayed frame: 0.038049000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.038049000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.time_relative",
+                    "pos":"0",
+                    "showname":"Time since reference or first frame: 0.038049000 seconds",
+                    "size":"0",
+                    "value":null,
+                    "show":"0.038049000",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.number",
+                    "pos":"0",
+                    "showname":"Frame Number: 2",
+                    "size":"0",
+                    "value":null,
+                    "show":"2",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.len",
+                    "pos":"0",
+                    "showname":"Frame Length: 66 bytes (528 bits)",
+                    "size":"0",
+                    "value":null,
+                    "show":"66",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.cap_len",
+                    "pos":"0",
+                    "showname":"Capture Length: 66 bytes (528 bits)",
+                    "size":"0",
+                    "value":null,
+                    "show":"66",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.marked",
+                    "pos":"0",
+                    "showname":"Frame is marked: False",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.ignored",
+                    "pos":"0",
+                    "showname":"Frame is ignored: False",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"frame.protocols",
+                    "pos":"0",
+                    "showname":"Protocols in frame: eth:ip:tcp",
+                    "size":"0",
+                    "value":null,
+                    "show":"eth:ip:tcp",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"eth",
+              "pos":"0",
+              "showname":"Ethernet II, Src: 0a:00:27:00:00:00 (0a:00:27:00:00:00), Dst: CadmusCo_96:a4:7a (08:00:27:96:a4:7a)",
+              "size":"14",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"eth.dst",
+                    "pos":"0",
+                    "showname":"Destination: CadmusCo_96:a4:7a (08:00:27:96:a4:7a)",
+                    "size":"6",
+                    "value":"08002796a47a",
+                    "show":"08:00:27:96:a4:7a",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"eth.addr",
+                          "pos":"0",
+                          "showname":"Address: CadmusCo_96:a4:7a (08:00:27:96:a4:7a)",
+                          "size":"6",
+                          "value":"08002796a47a",
+                          "show":"08:00:27:96:a4:7a",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.lg",
+                          "pos":"0",
+                          "showname":".... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)",
+                          "size":"3",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"080027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.ig",
+                          "pos":"0",
+                          "showname":".... ...0 .... .... .... .... = IG bit: Individual address (unicast)",
+                          "size":"3",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"080027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"eth.src",
+                    "pos":"6",
+                    "showname":"Source: 0a:00:27:00:00:00 (0a:00:27:00:00:00)",
+                    "size":"6",
+                    "value":"0a0027000000",
+                    "show":"0a:00:27:00:00:00",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"eth.addr",
+                          "pos":"6",
+                          "showname":"Address: 0a:00:27:00:00:00 (0a:00:27:00:00:00)",
+                          "size":"6",
+                          "value":"0a0027000000",
+                          "show":"0a:00:27:00:00:00",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.lg",
+                          "pos":"6",
+                          "showname":".... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)",
+                          "size":"3",
+                          "value":"1",
+                          "show":"1",
+                          "unmaskedvalue":"0a0027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"eth.ig",
+                          "pos":"6",
+                          "showname":".... ...0 .... .... .... .... = IG bit: Individual address (unicast)",
+                          "size":"3",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"0a0027",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"eth.type",
+                    "pos":"12",
+                    "showname":"Type: IP (0x0800)",
+                    "size":"2",
+                    "value":"0800",
+                    "show":"0x0800",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"ip",
+              "pos":"14",
+              "showname":"Internet Protocol Version 4, Src: 192.168.66.1 (192.168.66.1), Dst: 192.168.66.121 (192.168.66.121)",
+              "size":"20",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"ip.version",
+                    "pos":"14",
+                    "showname":"Version: 4",
+                    "size":"1",
+                    "value":"45",
+                    "show":"4",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.hdr_len",
+                    "pos":"14",
+                    "showname":"Header length: 20 bytes",
+                    "size":"1",
+                    "value":"45",
+                    "show":"20",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.dsfield",
+                    "pos":"15",
+                    "showname":"Differentiated Services Field: 0x10 (DSCP 0x04: Unknown DSCP; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))",
+                    "size":"1",
+                    "value":"10",
+                    "show":"16",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"ip.dsfield.dscp",
+                          "pos":"15",
+                          "showname":"0001 00.. = Differentiated Services Codepoint: Unknown (0x04)",
+                          "size":"1",
+                          "value":"4",
+                          "show":"0x04",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.dsfield.ecn",
+                          "pos":"15",
+                          "showname":".... ..00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00)",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0x00",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.len",
+                    "pos":"16",
+                    "showname":"Total Length: 52",
+                    "size":"2",
+                    "value":"0034",
+                    "show":"52",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.id",
+                    "pos":"18",
+                    "showname":"Identification: 0x3794 (14228)",
+                    "size":"2",
+                    "value":"3794",
+                    "show":"0x3794",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.flags",
+                    "pos":"20",
+                    "showname":"Flags: 0x02 (Don't Fragment)",
+                    "size":"1",
+                    "value":"40",
+                    "show":"0x02",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"ip.flags.rb",
+                          "pos":"20",
+                          "showname":"0... .... = Reserved bit: Not set",
+                          "size":"1",
+                          "value":"40",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.flags.df",
+                          "pos":"20",
+                          "showname":".1.. .... = Don't fragment: Set",
+                          "size":"1",
+                          "value":"40",
+                          "show":"1",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.flags.mf",
+                          "pos":"20",
+                          "showname":"..0. .... = More fragments: Not set",
+                          "size":"1",
+                          "value":"40",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.frag_offset",
+                    "pos":"20",
+                    "showname":"Fragment offset: 0",
+                    "size":"2",
+                    "value":"4000",
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.ttl",
+                    "pos":"22",
+                    "showname":"Time to live: 64",
+                    "size":"1",
+                    "value":"40",
+                    "show":"64",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.proto",
+                    "pos":"23",
+                    "showname":"Protocol: TCP (6)",
+                    "size":"1",
+                    "value":"06",
+                    "show":"6",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.checksum",
+                    "pos":"24",
+                    "showname":"Header checksum: 0xfd54 [correct]",
+                    "size":"2",
+                    "value":"fd54",
+                    "show":"0xfd54",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"ip.checksum_good",
+                          "pos":"24",
+                          "showname":"Good: True",
+                          "size":"2",
+                          "value":"fd54",
+                          "show":"1",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"ip.checksum_bad",
+                          "pos":"24",
+                          "showname":"Bad: False",
+                          "size":"2",
+                          "value":"fd54",
+                          "show":"0",
+                          "unmaskedvalue":null,
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.src",
+                    "pos":"26",
+                    "showname":"Source: 192.168.66.1 (192.168.66.1)",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.addr",
+                    "pos":"26",
+                    "showname":"Source or Destination Address: 192.168.66.1 (192.168.66.1)",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.src_host",
+                    "pos":"26",
+                    "showname":"Source Host: 192.168.66.1",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.host",
+                    "pos":"26",
+                    "showname":"Source or Destination Host: 192.168.66.1",
+                    "size":"4",
+                    "value":"c0a84201",
+                    "show":"192.168.66.1",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.dst",
+                    "pos":"30",
+                    "showname":"Destination: 192.168.66.121 (192.168.66.121)",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.addr",
+                    "pos":"30",
+                    "showname":"Source or Destination Address: 192.168.66.121 (192.168.66.121)",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.dst_host",
+                    "pos":"30",
+                    "showname":"Destination Host: 192.168.66.121",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"ip.host",
+                    "pos":"30",
+                    "showname":"Source or Destination Host: 192.168.66.121",
+                    "size":"4",
+                    "value":"c0a84279",
+                    "show":"192.168.66.121",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 }
+              ]
+           },
+           {
+              "name":"tcp",
+              "pos":"34",
+              "showname":"Transmission Control Protocol, Src Port: 55791 (55791), Dst Port: ssh (22), Seq: 1, Ack: 657, Len: 0",
+              "size":"32",
+              "hide":null,
+              "fields":[
+                 {
+                    "name":"tcp.srcport",
+                    "pos":"34",
+                    "showname":"Source port: 55791 (55791)",
+                    "size":"2",
+                    "value":"d9ef",
+                    "show":"55791",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.dstport",
+                    "pos":"36",
+                    "showname":"Destination port: ssh (22)",
+                    "size":"2",
+                    "value":"0016",
+                    "show":"22",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.port",
+                    "pos":"34",
+                    "showname":"Source or Destination Port: 55791",
+                    "size":"2",
+                    "value":"d9ef",
+                    "show":"55791",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.port",
+                    "pos":"36",
+                    "showname":"Source or Destination Port: 22",
+                    "size":"2",
+                    "value":"0016",
+                    "show":"22",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.stream",
+                    "pos":"34",
+                    "showname":"Stream index: 0",
+                    "size":"0",
+                    "value":null,
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.len",
+                    "pos":"46",
+                    "showname":"TCP Segment Len: 0",
+                    "size":"1",
+                    "value":"80",
+                    "show":"0",
+                    "unmaskedvalue":null,
+                    "hide":"yes",
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.seq",
+                    "pos":"38",
+                    "showname":"Sequence number: 1    (relative sequence number)",
+                    "size":"4",
+                    "value":"8b92f3e7",
+                    "show":"1",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.ack",
+                    "pos":"42",
+                    "showname":"Acknowledgment number: 657    (relative ack number)",
+                    "size":"4",
+                    "value":"129032d4",
+                    "show":"657",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.hdr_len",
+                    "pos":"46",
+                    "showname":"Header length: 32 bytes",
+                    "size":"1",
+                    "value":"80",
+                    "show":"32",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.flags",
+                    "pos":"46",
+                    "showname":"Flags: 0x010 (ACK)",
+                    "size":"2",
+                    "value":"10",
+                    "show":"0x0010",
+                    "unmaskedvalue":"8010",
+                    "hide":null,
+                    "fields":[
+                       {
+                          "name":"tcp.flags.res",
+                          "pos":"46",
+                          "showname":"000. .... .... = Reserved: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"80",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.ns",
+                          "pos":"46",
+                          "showname":"...0 .... .... = Nonce: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"80",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.cwr",
+                          "pos":"47",
+                          "showname":".... 0... .... = Congestion Window Reduced (CWR): Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.ecn",
+                          "pos":"47",
+                          "showname":".... .0.. .... = ECN-Echo: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.urg",
+                          "pos":"47",
+                          "showname":".... ..0. .... = Urgent: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.ack",
+                          "pos":"47",
+                          "showname":".... ...1 .... = Acknowledgment: Set",
+                          "size":"1",
+                          "value":"1",
+                          "show":"1",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.push",
+                          "pos":"47",
+                          "showname":".... .... 0... = Push: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.reset",
+                          "pos":"47",
+                          "showname":".... .... .0.. = Reset: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.syn",
+                          "pos":"47",
+                          "showname":".... .... ..0. = Syn: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       },
+                       {
+                          "name":"tcp.flags.fin",
+                          "pos":"47",
+                          "showname":".... .... ...0 = Fin: Not set",
+                          "size":"1",
+                          "value":"0",
+                          "show":"0",
+                          "unmaskedvalue":"10",
+                          "hide":null,
+                          "fields":null,
+                          "protos":null
+                       }
+                    ],
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.window_size_value",
+                    "pos":"48",
+                    "showname":"Window size value: 8151",
+                    "size":"2",
+                    "value":"1fd7",
+                    "show":"8151",
+                    "unmaskedvalue":null,
+                    "hide":null,
+                    "fields":null,
+                    "protos":null
+                 },
+                 {
+                    "name":"tcp.window_size",
+                    "pos":"48",
+                    "showname":"Calculated window size

<TRUNCATED>

[5/5] metron git commit: METRON-1803: Integrate Cypress with Travis (tiborm via mmiklavc) closes apache/metron#1226

Posted by mm...@apache.org.
METRON-1803: Integrate Cypress with Travis (tiborm via mmiklavc) closes apache/metron#1226


Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/9b6260fd
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/9b6260fd
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/9b6260fd

Branch: refs/heads/master
Commit: 9b6260fd4b9ecf355864b77c8889d27539623381
Parents: fefbb37
Author: tiborm <ti...@gmail.com>
Authored: Fri Nov 2 10:21:41 2018 -0600
Committer: Michael Miklavcic <mi...@gmail.com>
Committed: Fri Nov 2 10:21:41 2018 -0600

----------------------------------------------------------------------
 metron-interface/metron-alerts/cypress.json     |     7 +
 .../metron-alerts/cypress/fixtures/config.json  |    23 +
 .../cypress/fixtures/pcap.page-01.json          | 12383 +++++++++++++++++
 .../cypress/fixtures/pcap.status-00.json        |     7 +
 .../cypress/fixtures/pcap.status-01.json        |     7 +
 .../cypress/fixtures/pcap.status-02.json        |     7 +
 .../metron-alerts/cypress/fixtures/search.json  |  5647 ++++++++
 .../cypress/integration/pcap/pcap.spec.js       |   228 +
 .../metron-alerts/package-lock.json             |  1134 ++
 metron-interface/metron-alerts/package.json     |    11 +-
 10 files changed, 19451 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress.json b/metron-interface/metron-alerts/cypress.json
new file mode 100644
index 0000000..7c0410d
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress.json
@@ -0,0 +1,7 @@
+{
+  "viewportWidth": 1435,
+  "viewportHeight": 850,
+  "video": false,
+  "supportFile": false,
+  "pluginsFile": false
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/metron/blob/9b6260fd/metron-interface/metron-alerts/cypress/fixtures/config.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/cypress/fixtures/config.json b/metron-interface/metron-alerts/cypress/fixtures/config.json
new file mode 100644
index 0000000..190e514
--- /dev/null
+++ b/metron-interface/metron-alerts/cypress/fixtures/config.json
@@ -0,0 +1,23 @@
+{
+  "es.clustername":"metron",
+  "es.ip":"node1:9300",
+  "es.date.format":"yyyy.MM.dd.HH",
+  "parser.error.topic":"indexing",
+  "update.hbase.table":"metron_update",
+  "update.hbase.cf":"t",
+  "es.client.settings":{
+     "client.transport.ping_timeout":"500s"
+  },
+  "profiler.client.period.duration":"15",
+  "profiler.client.period.duration.units":"MINUTES",
+  "user.settings.hbase.table":"user_settings",
+  "user.settings.hbase.cf":"cf",
+  "bootstrap.servers":"node1:6667",
+  "source.type.field":"source:type",
+  "threat.triage.score.field":"threat:triage:score",
+  "enrichment.writer.batchSize":"15",
+  "enrichment.writer.batchTimeout":"0",
+  "profiler.writer.batchSize":"15",
+  "profiler.writer.batchTimeout":"0",
+  "geo.hdfs.file":"/apps/metron/geo/default/GeoLite2-City.mmdb.gz"
+}
\ No newline at end of file