heartbeat-response-tp-experiment-2a
authorGregg Lind <glind@mozilla.com>
Fri, 28 Nov 2014 16:21:42 -0600
changeset 1041 a971c2565a3b2b1ccb205ee94e5009273fc15650
parent 1040 010280c6160becf8d51e2dae7ff89a99490cd563
child 1042 2028a9d7ce919a6320a50d35a600dc8d040d643d
push id871
push userglind@mozilla.com
push dateFri, 28 Nov 2014 22:22:01 +0000
heartbeat-response-tp-experiment-2a
testcases/heartbeat-response-tp-experiment-2a/README.html
testcases/heartbeat-response-tp-experiment-2a/README.md
testcases/heartbeat-response-tp-experiment-2a/deploy-howto.md
testcases/heartbeat-response-tp-experiment-2a/heartbeat-response-tp-experiment-2a.jar
testcases/heartbeat-response-tp-experiment-2a/heartbeat-response-tp-experiment-2a.js
testcases/index.json
new file mode 100644
--- /dev/null
+++ b/testcases/heartbeat-response-tp-experiment-2a/README.html
@@ -0,0 +1,1024 @@
+<!DOCTYPE html><html><head><meta charset="utf-8"><style>body {
+  width: 45em;
+  border: 1px solid #ddd;
+  outline: 1300px solid #fff;
+  margin: 16px auto;
+}
+
+body .markdown-body
+{
+  padding: 30px;
+}
+
+@font-face {
+  font-family: fontawesome-mini;
+  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAzUABAAAAAAFNgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABbAAAABwAAAAcZMzaOEdERUYAAAGIAAAAHQAAACAAOQAET1MvMgAAAagAAAA+AAAAYHqhde9jbWFwAAAB6AAAAFIAAAFa4azkLWN2dCAAAAI8AAAAKAAAACgFgwioZnBnbQAAAmQAAAGxAAACZVO0L6dnYXNwAAAEGAAAAAgAAAAIAAAAEGdseWYAAAQgAAAFDgAACMz7eroHaGVhZAAACTAAAAAwAAAANgWEOEloaGVhAAAJYAAAAB0AAAAkDGEGa2htdHgAAAmAAAAAEwAAADBEgAAQbG9jYQAACZQAAAAaAAAAGgsICJBtYXhwAAAJsAAAACAAAAAgASgBD25hbWUAAAnQAAACZwAABOD4no+3cG9zdAAADDgAAABsAAAAmF+yXM9wcmVwAAAMpAAAAC4AAAAusPIrFAAAAAEAAAAAyYlvMQAAAADLVHQgAAAAAM/u9uZ4nGNgZGBg4ANiCQYQYGJgBEJuIGYB8xgABMMAPgAAAHicY2Bm42OcwMDKwMLSw2LMwMDQBqGZihmiwHycoKCyqJjB4YPDh4NsDP+BfNb3DIuAFCOSEgUGRgAKDgt4AAB4nGNgYGBmgGAZBkYGEAgB8hjBfBYGCyDNxcDBwMTA9MHhQ9SHrA8H//9nYACyQyFs/sP86/kX8HtB9UIBIxsDXICRCUgwMaACRoZhDwA3fxKSAAAAAAHyAHABJQB/AIEAdAFGAOsBIwC/ALgAxACGAGYAugBNACcA/wCIeJxdUbtOW0EQ3Q0PA4HE2CA52hSzmZDGe6EFCcTVjWJkO4XlCGk3cpGLcQEfQIFEDdqvGaChpEibBiEXSHxCPiESM2uIojQ7O7NzzpkzS8qRqnfpa89T5ySQwt0GzTb9Tki1swD3pOvrjYy0gwdabGb0ynX7/gsGm9GUO2oA5T1vKQ8ZTTuBWrSn/tH8Cob7/B/zOxi0NNP01DoJ6SEE5ptxS4PvGc26yw/6gtXhYjAwpJim4i4/plL+tzTnasuwtZHRvIMzEfnJNEBTa20Emv7UIdXzcRRLkMumsTaYmLL+JBPBhcl0VVO1zPjawV2ys+hggyrNgQfYw1Z5DB4ODyYU0rckyiwNEfZiq8QIEZMcCjnl3Mn+pED5SBLGvElKO+OGtQbGkdfAoDZPs/88m01tbx3C+FkcwXe/GUs6+MiG2hgRYjtiKYAJREJGVfmGGs+9LAbkUvvPQJSA5fGPf50ItO7YRDyXtXUOMVYIen7b3PLLirtWuc6LQndvqmqo0inN+17OvscDnh4Lw0FjwZvP+/5Kgfo8LK40aA4EQ3o3ev+iteqIq7wXPrIn07+xWgAAAAABAAH//wAPeJyFlctvG1UUh+/12DPN1B7P3JnYjj2Ox4/MuDHxJH5N3UdaEUQLqBIkfQQioJWQ6AMEQkIqsPGCPwA1otuWSmTBhjtps2ADWbJg3EpIXbGouqSbCraJw7kzNo2dRN1cnXN1ZvT7zuuiMEI7ncizyA0URofRBJpCdbQuIFShYY+GZRrxMDVtih5TwQPHtXDFFSIKoWIbuREBjLH27Ny4MsbVx+uOJThavebgVrNRLAiYx06rXsvhxLgWx9xpfHdrs/ekc2Pl2cpPCVEITQpwbj8VQhfXSq2m+Wxqaq2D73Kne5e3NjHqQNj3CRYlJlgUl/jRNP+2Gs2pNYRQiOnmUaQDqm30KqKiTTWPWjboxnTWpvgxjXo0KrtZXAHt7hwIz0YVcj88JnKlJKi3NPAwLyDwZudSmJSMMJFDYaOkaol6XtESx3Gt1VTytdZJ3DCLeaVhVnCBH1fycHTxFXwPX+l2e3d6H/TufGGmMTLTnbSJUdo00zuBswMO/nl3YLeL/wnu9/limCuD3vC54h5NBVz6Li414AI8Vx3iiosKcQXUbrvhFFiYb++HN4DaF4XzFW0fIN4XDWJ3a3XQoq9V8WiyRmdsatV9xUcHims1JloH0YUa090G3Tro3mC6c01f+YwCPquINr1PTaCP6rVTOOmf0GE2dBc7zWIhji3/5MchSuBHgDbU99RMWt3YUNMZMJmx92YP6NsHx/5/M1yvInpnkIOM3Z8fA3JQ2lW1RFC1KaBPDFXNAHYYvGy73aYZZZ3HifbeuiVZCpwA3oQBs0wGPYJbJfg60xrKEbKiNtTe1adwrpBRwlAuQ3q3VRaX0QmQ9a49BTSCuF1MLfQ6+tinOubRBZuWPNoMevGMT+V41KitO1is3D/tpMcq1JHZqDHGs8DoYGDkxJgKjHROeTCmhZvzPm9pod+ltKm4PN7Dyvvldlpsg8D+4AUJZ3F/JBstZz7cbFRxsaAGV6yX/dkcycWf8eS3QlQea+YLjdm3yrOnrhFpUyKVvFE4lpv4bO3Svx/6F/4xmiDu/RT5iI++lko18mY1oX+5UGKR6kmVjM/Zb76yfHtxy+h/SyQ0lLdpdKy/lWB6szatetQJ8nZ80A2Qt6ift6gJeavU3BO4gtxs/KCtNPVibCtYCWY3SIlSBPKXZALXiIR9oZeJ1AuMyxLpHIy/yO7vSiSE+kZvk0ihJ30HgHfzZtEMmvV58x6dtqns0XTAW7Vdm4HJ04OCp/crOO7rd9SGxQAE/mVA9xRN+kVSMRFF6S9JFGUtthkjBA5tFCWc2l4V43Ex9GmUP3SI37Jjmir9KqlaDJ4S4JB3vuM/jzyH1+8MuoZ+QGzfnvPoJb96cZlWjMcKLfgDwB7E634JTY+asjsPzS5CiVnEWY+KsrsIN5rn3mAPjqmQBxGjcGKB9f9ZxY3mYC2L85CJ2FXIxKKyHk+dg0FHbuEc7D5NzWUX32WxFcWNGRAbvwSx0RmIXVDuYySafluQBmzA/ssqJAMLnli+WIC90Gw4lm85wcp0qjArEDPJJV/sSx4P9ungTpgMw5gVC1XO4uULq0s3v1rqLi0vX/z65vlH50f8T/RHmSPTk5xxWBWOluMT6WiOy+tdvWxlV/XQb3o3c6Ssr+r6I708GsX9/nzp1tKFh0s3v7m4vAy/Hnb/KMOvc1wump6Il48K6mGDy02X9Yd65pa+nQIjk76lWxCkG8NBCP0HQS9IpAAAeJxjYGRgYGBhcCrq214Qz2/zlUGenQEEzr/77oug/zewFbB+AHI5GJhAogBwKQ0qeJxjYGRgYH3/P46BgZ0BBNgKGBgZUAEPAE/7At0AAAB4nGNngAB2IGYjhBsYBAAIYADVAAAAAAAAAAAAAFwAyAEeAaACCgKmAx4DggRmAAAAAQAAAAwAagAEAAAAAAACAAEAAgAWAAABAAChAAAAAHiclZI7bxQxFIWPd/JkUYQChEhIyAVKgdBMskm1QkKrRETpQiLRUczueB/K7HhlOxttg8LvoKPgP9DxFxANDR0tHRWi4NjrPIBEgh1p/dm+vufcawNYFWsQmP6e4jSyQB2fI9cwj++RE9wTjyPP4LYoI89iWbyLPIe6+Bh5Hs9rryMv4GbtW+RF3EhuRa7jbrIbeQkPkjdUETOLnL0Kip4FVvAhco1RXyMnSPEz8gzWxE7kWTwUp5HnsCLeR57HW/El8gJWa58iL+JO7UfkOh4l9yMv4UnyEtvQGGECgwF66MNBooF1bGCL1ELB/TYU+ZBRlvsKQ44Se6jQ4a7hef+fh72Crv25kp+8lNWGmeKoOI5jJLb1aGIGvb6TjfWNLdkqdFvJw4l1amjlXtXRZqRN7lSRylZZyhBqpVFWmTEXgWfUrpi/hZOQXdOd4rKuXOtEWT3k5IArPRzTUU5tHKjecZkTpnVbNOnt6jzN8240GD4xtikvZW56043rPMg/dS+dlOceXoR+WPbJ55Dsekq1lJpnypsMUsYOdCW30o103Ytu/lvh+5RWFLfBjm9/N8hJntPhvx92rnoE/kyHdGasGy754kw36vsVf/lFeBi+0COu+cfgQr42G3CRpeLoZ53gmfe3X6rcKt5oVxnptHR9JS8ehVUd5wvvahN2uqxOOpMXapibI5k7Zwbt4xBSaTfoKBufhAnO/uqNcfK8OTs0OQ6l7JIqFjDhYj5WcjevCnI/1DDiI8j4ndWb/5YzDZWh79yomWXeXj7Nnw70/2TIeFPTrlSh89k1ObOSRVZWZfgF0r/zJQB4nG2JUQuCQBCEd07TTg36fb2IyBaLd3vWaUh/vmSJnvpgmG8YcmS8X3Shf3R7QA4OBUocUKHGER5NNbOOEvwc1txnuWkTRb/aPjimJ5vXabI+3VfOiyS15UWvyezM2xiGOPyuMohOH8O8JiO4Af+FsAGNAEuwCFBYsQEBjlmxRgYrWCGwEFlLsBRSWCGwgFkdsAYrXFhZsBQrAAA=) format('woff');
+}
+
+@font-face {
+  font-family: octicons-anchor;
+  src: url(data:font/woff;charset=utf-8;base64,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) format('woff');
+}
+
+.markdown-body {
+  font-family: sans-serif;
+  -ms-text-size-adjust: 100%;
+  -webkit-text-size-adjust: 100%;
+  color: #333333;
+  overflow: hidden;
+  font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
+  font-size: 16px;
+  line-height: 1.6;
+  word-wrap: break-word;
+}
+
+.markdown-body a {
+  background: transparent;
+}
+
+.markdown-body a:active,
+.markdown-body a:hover {
+  outline: 0;
+}
+
+.markdown-body b,
+.markdown-body strong {
+  font-weight: bold;
+}
+
+.markdown-body mark {
+  background: #ff0;
+  color: #000;
+  font-style: italic;
+  font-weight: bold;
+}
+
+.markdown-body sub,
+.markdown-body sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+.markdown-body sup {
+  top: -0.5em;
+}
+.markdown-body sub {
+  bottom: -0.25em;
+}
+
+.markdown-body h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
+}
+
+.markdown-body img {
+  border: 0;
+}
+
+.markdown-body hr {
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+  height: 0;
+}
+
+.markdown-body pre {
+  overflow: auto;
+}
+
+.markdown-body code,
+.markdown-body kbd,
+.markdown-body pre,
+.markdown-body samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+
+.markdown-body input {
+  color: inherit;
+  font: inherit;
+  margin: 0;
+}
+
+.markdown-body html input[disabled] {
+  cursor: default;
+}
+
+.markdown-body input {
+  line-height: normal;
+}
+
+.markdown-body input[type="checkbox"] {
+  box-sizing: border-box;
+  padding: 0;
+}
+
+.markdown-body table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+.markdown-body td,
+.markdown-body th {
+  padding: 0;
+}
+
+.markdown-body .codehilitetable {
+  border: 0;
+  border-spacing: 0;
+}
+
+.markdown-body .codehilitetable tr {
+  border: 0;
+}
+
+.markdown-body .codehilitetable pre,
+.markdown-body div.codehilite {
+  margin: 0;
+}
+
+.markdown-body .linenos,
+.markdown-body .code,
+.markdown-body .codehilitetable td {
+  border: 0;
+  padding: 0;
+}
+
+.markdown-body td:not(.linenos) .linenodiv {
+  padding: 0 !important;
+}
+
+.markdown-body .code {
+  width: 100%;
+}
+
+.markdown-body .linenos div pre,
+.markdown-body .linenodiv pre,
+.markdown-body .linenodiv {
+  border: 0;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+  -webkit-border-top-left-radius: 3px;
+  -webkit-border-bottom-left-radius: 3px;
+  -moz-border-radius-topleft: 3px;
+  -moz-border-radius-bottomleft: 3px;
+  border-top-left-radius: 3px;
+  border-bottom-left-radius: 3px;
+}
+
+.markdown-body .code div pre,
+.markdown-body .code div {
+  border: 0;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+  -webkit-border-top-right-radius: 3px;
+  -webkit-border-bottom-right-radius: 3px;
+  -moz-border-radius-topright: 3px;
+  -moz-border-radius-bottomright: 3px;
+  border-top-right-radius: 3px;
+  border-bottom-right-radius: 3px;
+}
+
+.markdown-body * {
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+
+.markdown-body input {
+  font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
+  line-height: 1.4;
+}
+
+.markdown-body a {
+  color: #4183c4;
+  text-decoration: none;
+}
+
+.markdown-body a:hover,
+.markdown-body a:focus,
+.markdown-body a:active {
+  text-decoration: underline;
+}
+
+.markdown-body hr {
+  height: 0;
+  margin: 15px 0;
+  overflow: hidden;
+  background: transparent;
+  border: 0;
+  border-bottom: 1px solid #ddd;
+}
+
+.markdown-body hr:before,
+.markdown-body hr:after {
+  display: table;
+  content: " ";
+}
+
+.markdown-body hr:after {
+  clear: both;
+}
+
+.markdown-body h1,
+.markdown-body h2,
+.markdown-body h3,
+.markdown-body h4,
+.markdown-body h5,
+.markdown-body h6 {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  line-height: 1.1;
+}
+
+.markdown-body h1 {
+  font-size: 30px;
+}
+
+.markdown-body h2 {
+  font-size: 21px;
+}
+
+.markdown-body h3 {
+  font-size: 16px;
+}
+
+.markdown-body h4 {
+  font-size: 14px;
+}
+
+.markdown-body h5 {
+  font-size: 12px;
+}
+
+.markdown-body h6 {
+  font-size: 11px;
+}
+
+.markdown-body blockquote {
+  margin: 0;
+}
+
+.markdown-body ul,
+.markdown-body ol {
+  padding: 0;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.markdown-body ol ol,
+.markdown-body ul ol {
+  list-style-type: lower-roman;
+}
+
+.markdown-body ul ul ol,
+.markdown-body ul ol ol,
+.markdown-body ol ul ol,
+.markdown-body ol ol ol {
+  list-style-type: lower-alpha;
+}
+
+.markdown-body dd {
+  margin-left: 0;
+}
+
+.markdown-body code,
+.markdown-body pre,
+.markdown-body samp {
+  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
+  font-size: 12px;
+}
+
+.markdown-body pre {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.markdown-body kbd {
+  background-color: #e7e7e7;
+  background-image: -moz-linear-gradient(#fefefe, #e7e7e7);
+  background-image: -webkit-linear-gradient(#fefefe, #e7e7e7);
+  background-image: linear-gradient(#fefefe, #e7e7e7);
+  background-repeat: repeat-x;
+  border-radius: 2px;
+  border: 1px solid #cfcfcf;
+  color: #000;
+  padding: 3px 5px;
+  line-height: 10px;
+  font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
+  display: inline-block;
+}
+
+.markdown-body>*:first-child {
+  margin-top: 0 !important;
+}
+
+.markdown-body>*:last-child {
+  margin-bottom: 0 !important;
+}
+
+.markdown-body .headeranchor-link {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  display: block;
+  padding-right: 6px;
+  padding-left: 30px;
+  margin-left: -30px;
+}
+
+.markdown-body .headeranchor-link:focus {
+  outline: none;
+}
+
+.markdown-body h1,
+.markdown-body h2,
+.markdown-body h3,
+.markdown-body h4,
+.markdown-body h5,
+.markdown-body h6 {
+  position: relative;
+  margin-top: 1em;
+  margin-bottom: 16px;
+  font-weight: bold;
+  line-height: 1.4;
+}
+
+.markdown-body h1 .headeranchor,
+.markdown-body h2 .headeranchor,
+.markdown-body h3 .headeranchor,
+.markdown-body h4 .headeranchor,
+.markdown-body h5 .headeranchor,
+.markdown-body h6 .headeranchor {
+  display: none;
+  color: #000;
+  vertical-align: middle;
+}
+
+.markdown-body h1:hover .headeranchor-link,
+.markdown-body h2:hover .headeranchor-link,
+.markdown-body h3:hover .headeranchor-link,
+.markdown-body h4:hover .headeranchor-link,
+.markdown-body h5:hover .headeranchor-link,
+.markdown-body h6:hover .headeranchor-link {
+  height: 1em;
+  padding-left: 8px;
+  margin-left: -30px;
+  line-height: 1;
+  text-decoration: none;
+}
+
+.markdown-body h1:hover .headeranchor-link .headeranchor,
+.markdown-body h2:hover .headeranchor-link .headeranchor,
+.markdown-body h3:hover .headeranchor-link .headeranchor,
+.markdown-body h4:hover .headeranchor-link .headeranchor,
+.markdown-body h5:hover .headeranchor-link .headeranchor,
+.markdown-body h6:hover .headeranchor-link .headeranchor {
+  display: inline-block;
+}
+
+.markdown-body h1 {
+  padding-bottom: 0.3em;
+  font-size: 2.25em;
+  line-height: 1.2;
+  border-bottom: 1px solid #eee;
+}
+
+.markdown-body h2 {
+  padding-bottom: 0.3em;
+  font-size: 1.75em;
+  line-height: 1.225;
+  border-bottom: 1px solid #eee;
+}
+
+.markdown-body h3 {
+  font-size: 1.5em;
+  line-height: 1.43;
+}
+
+.markdown-body h4 {
+  font-size: 1.25em;
+}
+
+.markdown-body h5 {
+  font-size: 1em;
+}
+
+.markdown-body h6 {
+  font-size: 1em;
+  color: #777;
+}
+
+.markdown-body p,
+.markdown-body blockquote,
+.markdown-body ul,
+.markdown-body ol,
+.markdown-body dl,
+.markdown-body table,
+.markdown-body pre,
+.markdown-body .admonition {
+  margin-top: 0;
+  margin-bottom: 16px;
+}
+
+.markdown-body hr {
+  height: 4px;
+  padding: 0;
+  margin: 16px 0;
+  background-color: #e7e7e7;
+  border: 0 none;
+}
+
+.markdown-body ul,
+.markdown-body ol {
+  padding-left: 2em;
+}
+
+.markdown-body ul ul,
+.markdown-body ul ol,
+.markdown-body ol ol,
+.markdown-body ol ul {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.markdown-body li>p {
+  margin-top: 16px;
+}
+
+.markdown-body dl {
+  padding: 0;
+}
+
+.markdown-body dl dt {
+  padding: 0;
+  margin-top: 16px;
+  font-size: 1em;
+  font-style: italic;
+  font-weight: bold;
+}
+
+.markdown-body dl dd {
+  padding: 0 16px;
+  margin-bottom: 16px;
+}
+
+.markdown-body blockquote {
+  padding: 0 15px;
+  color: #777;
+  border-left: 4px solid #ddd;
+}
+
+.markdown-body blockquote>:first-child {
+  margin-top: 0;
+}
+
+.markdown-body blockquote>:last-child {
+  margin-bottom: 0;
+}
+
+.markdown-body table {
+  display: block;
+  width: 100%;
+  overflow: auto;
+  word-break: normal;
+  word-break: keep-all;
+}
+
+.markdown-body table th {
+  font-weight: bold;
+}
+
+.markdown-body table th,
+.markdown-body table td {
+  padding: 6px 13px;
+  border: 1px solid #ddd;
+}
+
+.markdown-body table tr {
+  background-color: #fff;
+  border-top: 1px solid #ccc;
+}
+
+.markdown-body table tr:nth-child(2n) {
+  background-color: #f8f8f8;
+}
+
+.markdown-body img {
+  max-width: 100%;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+
+.markdown-body code,
+.markdown-body samp {
+  padding: 0;
+  padding-top: 0.2em;
+  padding-bottom: 0.2em;
+  margin: 0;
+  font-size: 85%;
+  background-color: rgba(0,0,0,0.04);
+  border-radius: 3px;
+}
+
+.markdown-body code:before,
+.markdown-body code:after {
+  letter-spacing: -0.2em;
+  content: "\00a0";
+}
+
+.markdown-body pre>code {
+  padding: 0;
+  margin: 0;
+  font-size: 100%;
+  word-break: normal;
+  white-space: pre;
+  background: transparent;
+  border: 0;
+}
+
+.markdown-body .codehilite {
+  margin-bottom: 16px;
+}
+
+.markdown-body .codehilite pre,
+.markdown-body pre {
+  padding: 16px;
+  overflow: auto;
+  font-size: 85%;
+  line-height: 1.45;
+  background-color: #f7f7f7;
+  border-radius: 3px;
+}
+
+.markdown-body .codehilite pre {
+  margin-bottom: 0;
+  word-break: normal;
+}
+
+.markdown-body pre {
+  word-wrap: normal;
+}
+
+.markdown-body pre code {
+  display: inline;
+  max-width: initial;
+  padding: 0;
+  margin: 0;
+  overflow: initial;
+  line-height: inherit;
+  word-wrap: normal;
+  background-color: transparent;
+  border: 0;
+}
+
+.markdown-body pre code:before,
+.markdown-body pre code:after {
+  content: normal;
+}
+
+/* Admonition */
+.markdown-body .admonition {
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+  padding: 0.5em 1em 0.5em 1em;
+  color: #888888;
+  background-color: #F7F7F7;
+  border: 1px solid #888888;
+}
+
+.markdown-body .admonition blockquote {
+  color: rgba(136, 136, 136, 0.5);
+  border-left: 4px solid rgba(136, 136, 136, 0.5);
+}
+
+.markdown-body .admonition table {
+  color: #333;
+}
+
+.markdown-body .admonition p {
+  padding: 0;
+  margin: 0;
+}
+
+.markdown-body .admonition-title {
+  font-weight: bold;
+  margin: 0;
+}
+
+.markdown-body .admonition-icon {
+  font: normal normal 16px fontawesome-mini;
+  line-height: 1.5;
+  -moz-osx-font-smoothing: grayscale;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+  float: left;
+}
+
+.markdown-body .attention {
+  color: #4F8A10;
+  background-color: #DFF2BF;
+  border: 1px solid #4F8A10;
+}
+
+.markdown-body .caution {
+  color: #D63301;
+  background-color: #FFCCBA;
+  border: 1px solid #D63301;
+}
+
+.markdown-body .hint {
+  color: #00529B;
+  background-color: #BDE5F8;
+  border: 1px solid #00529B;
+}
+
+.markdown-body .danger {
+  color: #D8000C;
+  background-color: #FFBABA;
+  border: 1px solid #D8000C;
+}
+
+.markdown-body .question {
+  color: #00049b;
+  background-color: #BDC8F8;
+  border: 1px solid #00049b;
+}
+
+.markdown-body .note {
+  color: #9F6000;
+  background-color: #FEEFB3;
+  border: 1px solid #9F6000;
+}
+
+.markdown-body .attention {
+  color: #4F8A10;
+  background-color: #DFF2BF;
+  border: 1px solid #4F8A10;
+}
+
+.markdown-body .caution blockquote {
+  color: rgba(214, 51, 1, .5);
+  border-left: 4px solid rgba(214, 51, 1, .5);
+}
+
+.markdown-body .hint blockquote {
+  color: rgba(0, 82, 155, .5);
+  border-left: 4px solid rgba(0, 82, 155, .5);
+}
+
+.markdown-body .danger blockquote {
+  color: rgba(216, 0, 12, .5);
+  border-left: 4px solid rgba(216, 0, 12, .5);
+}
+
+.markdown-body .question blockquote {
+  color: rgba(0, 4, 155, .5);
+  border-left: 4px solid rgba(0, 4, 155, .5);;
+}
+
+.markdown-body .note blockquote {
+  color: rgba(159, 96, 0, .5);
+  border-left: 4px solid rgba(159, 96, 0, .5);
+}
+
+.markdown-body .admonition-icon:before {
+  content: "\f040\00a0";
+}
+
+.markdown-body .attention > .admonition-icon:before {
+  content: "\f058\00a0";
+}
+
+.markdown-body .caution > .admonition-icon:before {
+  content: "\f06a\00a0";
+}
+
+.markdown-body .hint > .admonition-icon:before {
+  content: "\f05a\00a0";
+}
+
+.markdown-body .danger > .admonition-icon:before {
+  content: "\f056\00a0";
+}
+
+.markdown-body .question > .admonition-icon:before {
+  content: "\f059\00a0";
+}
+
+.markdown-body .note > .admonition-icon:before {
+  content: "\f040\00a0";
+}
+
+/* progress bar*/
+.markdown-body .progress {
+  display: block;
+  width: 300px;
+  margin: 10px 0;
+  height: 24px;
+  border: 1px solid #ccc;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+  background-color: #F8F8F8;
+  position: relative;
+  box-shadow: inset -1px 1px 3px rgba(0, 0, 0, .1);
+}
+
+.markdown-body .progress-label {
+  position: absolute;
+  text-align: center;
+  font-weight: bold;
+  width: 100%; margin: 0;
+  line-height: 24px;
+  color: #333;
+  text-shadow: 1px 1px 0 #fefefe, -1px -1px 0 #fefefe, -1px 1px 0 #fefefe, 1px -1px 0 #fefefe, 0 1px 0 #fefefe, 0 -1px 0 #fefefe, 1px 0 0 #fefefe, -1px 0 0 #fefefe, 1px 1px 2px #000;
+  -webkit-font-smoothing: antialiased !important;
+  white-space: nowrap;
+  overflow: hidden;
+}
+
+.markdown-body .progress-bar {
+  height: 24px;
+  float: left;
+  border-right: 1px solid #ccc;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+  background-color: #34c2e3;
+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5);
+  background-size: 30px 30px;
+  background-image: -webkit-linear-gradient(
+    135deg, rgba(255, 255, 255, .4) 27%,
+    transparent 27%,
+    transparent 53%, rgba(255, 255, 255, .4) 53%,
+    rgba(255, 255, 255, .4) 77%,
+    transparent 77%, transparent
+  );
+  background-image: -moz-linear-gradient(
+    135deg,
+    rgba(255, 255, 255, .4) 27%, transparent 27%,
+    transparent 53%, rgba(255, 255, 255, .4) 53%,
+    rgba(255, 255, 255, .4) 77%, transparent 77%,
+    transparent
+  );
+  background-image: -ms-linear-gradient(
+    135deg,
+    rgba(255, 255, 255, .4) 27%, transparent 27%,
+    transparent 53%, rgba(255, 255, 255, .4) 53%,
+    rgba(255, 255, 255, .4) 77%, transparent 77%,
+    transparent
+  );
+  background-image: -o-linear-gradient(
+    135deg,
+    rgba(255, 255, 255, .4) 27%, transparent 27%,
+    transparent 53%, rgba(255, 255, 255, .4) 53%,
+    rgba(255, 255, 255, .4) 77%, transparent 77%,
+    transparent
+  );
+  background-image: linear-gradient(
+    135deg,
+    rgba(255, 255, 255, .4) 27%, transparent 27%,
+    transparent 53%, rgba(255, 255, 255, .4) 53%,
+    rgba(255, 255, 255, .4) 77%, transparent 77%,
+    transparent
+  );
+}
+
+.markdown-body .progress-100plus .progress-bar {
+  background-color: #1ee038;
+}
+
+.markdown-body .progress-80plus .progress-bar {
+  background-color: #86e01e;
+}
+
+.markdown-body .progress-60plus .progress-bar {
+  background-color: #f2d31b;
+}
+
+.markdown-body .progress-40plus .progress-bar {
+  background-color: #f2b01e;
+}
+
+.markdown-body .progress-20plus .progress-bar {
+  background-color: #f27011;
+}
+
+.markdown-body .progress-0plus .progress-bar {
+  background-color: #f63a0f;
+}
+
+.markdown-body .gloss .progress-bar {
+  box-shadow:
+    inset -1px 1px 0 rgba(255, 255, 255, .5),
+    inset 0 -4px 12px rgba(255, 255, 255, .7),
+    inset 0 4px 12px rgba(255, 255, 255, .7),
+    inset 0 -12px 0 rgba(0, 0, 0, .05),
+    inset 1px -1px 0 rgba(255, 255, 255, .2);
+}
+
+.markdown-body .candystripe-animate .progress-bar{
+  -webkit-animation: animate-stripes 3s linear infinite;
+  -moz-animation: animate-stripes 3s linear infinite;
+  animation: animate-stripes 3s linear infinite;
+}
+
+@-webkit-keyframes animate-stripes {
+  0% {
+    background-position: 0 0;
+  }
+
+  100% {
+    background-position: 60px 0;
+  }
+}
+
+@-moz-keyframes animate-stripes {
+  0% {
+    background-position: 0 0;
+  }
+
+  100% {
+    background-position: 60px 0;
+  }
+}
+
+@keyframes animate-stripes {
+  0% {
+    background-position: 0 0;
+  }
+
+  100% {
+    background-position: 60px 0;
+  }
+}
+
+/* Multimarkdown Critic Blocks */
+.markdown-body .critic_mark {
+  background: #ff0;
+}
+
+.markdown-body .critic_delete {
+  color: #c82829;
+  text-decoration: line-through;
+}
+
+.markdown-body .critic_insert {
+  color: #718c00 ;
+  text-decoration: underline;
+}
+
+.markdown-body .critic_comment {
+  color: #8e908c;
+  font-style: italic;
+}
+
+.markdown-body .headeranchor {
+  font: normal normal 16px octicons-anchor;
+  line-height: 1;
+  display: inline-block;
+  text-decoration: none;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.headeranchor:before {
+  content: '\f05c';
+}
+
+.markdown-body .task-list-item {
+  list-style-type: none;
+}
+
+.markdown-body .task-list-item+.task-list-item {
+  margin-top: 3px;
+}
+
+.markdown-body .task-list-item input {
+  margin: 0 4px 0.25em -20px;
+  vertical-align: middle;
+}
+
+/* Media */
+@media only screen and (min-width: 480px) {
+  .markdown-body {
+    font-size:14px;
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .markdown-body {
+    font-size:16px;
+  }
+}
+
+@media print {
+  .markdown-body * {
+    background: transparent !important;
+    color: black !important;
+    filter:none !important;
+    -ms-filter: none !important;
+  }
+
+  .markdown-body {
+    font-size:12pt;
+    max-width:100%;
+    outline:none;
+    border: 0;
+  }
+
+  .markdown-body a,
+  .markdown-body a:visited {
+    text-decoration: underline;
+  }
+
+  .markdown-body .headeranchor-link {
+    display: none;
+  }
+
+  .markdown-body a[href]:after {
+    content: " (" attr(href) ")";
+  }
+
+  .markdown-body abbr[title]:after {
+    content: " (" attr(title) ")";
+  }
+
+  .markdown-body .ir a:after,
+  .markdown-body a[href^="javascript:"]:after,
+  .markdown-body a[href^="#"]:after {
+    content: "";
+  }
+
+  .markdown-body pre {
+    white-space: pre;
+    white-space: pre-wrap;
+    word-wrap: break-word;
+  }
+
+  .markdown-body pre,
+  .markdown-body blockquote {
+    border: 1px solid #999;
+    padding-right: 1em;
+    page-break-inside: avoid;
+  }
+
+  .markdown-body .progress,
+  .markdown-body .progress-bar {
+    box-shadow: none;
+  }
+
+  .markdown-body tr,
+  .markdown-body img {
+    page-break-inside: avoid;
+  }
+
+  .markdown-body img {
+    max-width: 100% !important;
+  }
+
+  .markdown-body p,
+  .markdown-body h2,
+  .markdown-body h3 {
+    orphans: 3;
+    widows: 3;
+  }
+
+  .markdown-body h2,
+  .markdown-body h3 {
+    page-break-after: avoid;
+  }
+}
+</style><title>README</title></head><body><article class="markdown-body"><h1 id="firefox-heartbeat-uptake-rate-experiment-addon-test-pilot"><a name="user-content-firefox-heartbeat-uptake-rate-experiment-addon-test-pilot" href="#firefox-heartbeat-uptake-rate-experiment-addon-test-pilot" class="headeranchor-link"  aria-hidden="true"><span class="headeranchor"></span></a>Firefox Heartbeat Uptake Rate Experiment Addon (Test Pilot)</h1>
+<h2 id="summary"><a name="user-content-summary" href="#summary" class="headeranchor-link"  aria-hidden="true"><span class="headeranchor"></span></a>Summary</h2>
+<p>UI experiment to understand effectiveness of different UI patterns on Response Rate and Response Bias.</p>
+<p>Eventual Goal:  Close the loop between on-going Feedback and Support.</p>
+<h2 id="author"><a name="user-content-author" href="#author" class="headeranchor-link"  aria-hidden="true"><span class="headeranchor"></span></a>Author:</h2>
+<p>Gregg Lind <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#103;&#108;&#105;&#110;&#100;&#64;&#109;&#111;&#122;&#105;&#108;&#108;&#97;&#46;&#99;&#111;&#109;">&#103;&#108;&#105;&#110;&#100;&#64;&#109;&#111;&#122;&#105;&#108;&#108;&#97;&#46;&#99;&#111;&#109;</a></p>
+<h2 id="project-homepage"><a name="user-content-project-homepage" href="#project-homepage" class="headeranchor-link"  aria-hidden="true"><span class="headeranchor"></span></a>Project Homepage</h2>
+<p><a href="https://github.com/gregglind/firefox-pulse/heartbeat-telemetry-experiment-1/tp-heartbeat-experiment-2a/">https://github.com/gregglind/firefox-pulse/heartbeat-telemetry-experiment-1/tp-heartbeat-experiment-2a/</a></p>
+<h2 id="recorded-data"><a name="user-content-recorded-data" href="#recorded-data" class="headeranchor-link"  aria-hidden="true"><span class="headeranchor"></span></a>Recorded Data</h2>
+<p>On Mozilla servers, record<br />
+- actions in the &lsquo;pulse&rsquo; UI elements<br />
+- submitted ratings<br />
+- attributes of profile (addons, active minutes, some browser settings)</p>
+<h2 id="what-prompted-mozilla-to-run-this-test"><a name="user-content-what-prompted-mozilla-to-run-this-test" href="#what-prompted-mozilla-to-run-this-test" class="headeranchor-link"  aria-hidden="true"><span class="headeranchor"></span></a>What prompted Mozilla to run this test?</h2>
+<p>Mozilla wants to collect ongoing feedback to improve Firefox.  The<br />
+<a href="https://input.mozilla.org/en-US/feedback">Input</a> program has been insufficient to these needs.</p>
+<p>As part of getting this right in the future, we want to understand how UI affects feedback.  This experiment looks at three aspect of ui:</p>
+<ul>
+<li>type of widget</li>
+<li>topic and phrasing of question</li>
+</ul>
+<p>Data collected from this test will be used to inform many uncoming features relating to feedback, repair, and support.</p>
+<p><img alt="Heartbeat logo" src="https://raw.githubusercontent.com/gregglind/firefox-pulse/dev/heartbeat-telemetry-experiment-1/data/icons/heartbeat-icon.png" title="=128x128" /></p></article></body></html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testcases/heartbeat-response-tp-experiment-2a/README.md
@@ -0,0 +1,39 @@
+Firefox Heartbeat Uptake Rate Experiment Addon (Test Pilot)
+=========================================================
+
+## Summary
+
+UI experiment to understand effectiveness of different UI patterns on Response Rate and Response Bias.
+
+Eventual Goal:  Close the loop between on-going Feedback and Support.
+
+## Author:
+
+Gregg Lind <glind@mozilla.com>
+
+## Project Homepage
+
+https://github.com/gregglind/firefox-pulse/heartbeat-telemetry-experiment-1/tp-heartbeat-experiment-2a/
+
+## Recorded Data
+
+On Mozilla servers, record
+- actions in the 'pulse' UI elements
+- submitted ratings
+- attributes of profile (addons, active minutes, some browser settings)
+
+## What prompted Mozilla to run this test?
+
+Mozilla wants to collect ongoing feedback to improve Firefox.  The
+[Input](https://input.mozilla.org/en-US/feedback) program has been insufficient to these needs.
+
+As part of getting this right in the future, we want to understand how UI affects feedback.  This experiment looks at three aspect of ui:
+
+- type of widget
+- topic and phrasing of question
+
+Data collected from this test will be used to inform many uncoming features relating to feedback, repair, and support.
+
+
+![Heartbeat logo](https://raw.githubusercontent.com/gregglind/firefox-pulse/dev/heartbeat-telemetry-experiment-1/data/icons/heartbeat-icon.png =128x128)
+
new file mode 100644
--- /dev/null
+++ b/testcases/heartbeat-response-tp-experiment-2a/deploy-howto.md
@@ -0,0 +1,12 @@
+
+1. Copy files in the directory to hg directory for testpilot web
+
+  /testcases/heartbeat-response-tp-experiment-2a
+
+2. fabric:
+
+  fab package:heartbeat-response-tp-experiment-2a,,index.json
+  fab test_valid:index.json
+  fab push
+
+3. Wait and profit?
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..276130cb04c007847c9087512498d6b124059b1f
GIT binary patch
literal 13374
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
new file mode 100644
--- /dev/null
+++ b/testcases/heartbeat-response-tp-experiment-2a/heartbeat-response-tp-experiment-2a.js
@@ -0,0 +1,125 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*jshint forin:true, noarg:false, noempty:true, eqeqeq:true, bitwise:true,
+  strict:true, undef:true, curly:false, browser:true,
+  unused:true,
+  indent:2, maxerr:50, devel:true, node:true, boss:true, white:true,
+  globalstrict:true, nomen:false, newcap:true, moz: true */
+
+/*global */
+
+var BaseClasses = require("study_base_classes.js");
+
+// Configure throttling
+const LOCALE_REGEX = "en";  // en only
+
+const SLUG = "heartbeat-response-tp-experiment-2a";
+const RANDOM_DEPLOY_PREFIX = "extensions.testpilot.deploymentRandomizer";
+const RANDOM = "pulse-research";
+// Configure the Installer
+const ADDON_ID = "heartbeat-telemetry-experiment-1@mozilla.com"; // from package.json
+const ADDON_URL = "https://testpilot.mozillalabs.com/addons/"+SLUG+".xpi"; // --output-file //CHANGE TO PROPER HOST
+
+const ALLOWED_CHANNELS = ["aurora", "nightly"];
+
+let modules = {};
+Cu.import("resource://gre/modules/AddonManager.jsm", modules);
+Cu.import("resource://gre/modules/Services.jsm", modules);
+let {AddonManager, Services} = modules;
+
+exports.experimentInfo = {
+  testId: SLUG,
+  testName: "Heartbeat Response Rate UI Test",
+  testInfoUrl: "https://testpilot.mozillalabs.com/testcases/"+SLUG+"/README.html", //CHANGE TO INFO PAGE
+  summary: "UI Variations for Collecting Feedback",
+  versionNumber: 1,
+  duration: 110, //CHANGE TO NUMBER OF DESIRED DAYS
+  minTPVersion: "1.2.3",
+  minFXVersion: "34.0",  // not 34 beta
+  optInRequired: false,
+
+  randomDeployment: {
+    minRoll: 41,
+    maxRoll: 60,
+    rolloutCode: RANDOM,  // reuse previous code
+  },
+
+  runOrNotFunc: function () {
+    // Only run if there's no other study running
+    if (studyMutex.checkConflicted(ADDON_ID)) {
+      return false;
+    }
+
+    // Target appropriate locale
+    let locale = Services.prefs.getCharPref("general.useragent.locale");
+    if (!new RegExp("^" + LOCALE_REGEX, "i").test(locale)) {
+      return false;
+    }
+
+    let rd = Services.prefs.getCharPref(RANDOM_DEPLOY_PREFIX + '.' + RANDOM);
+    dump("random deploy is: " + 1 * rd + "\n");
+    dump("locale is: " + locale + '\n' );
+
+    let channel = Services.prefs.getCharPref("app.update.channel");
+    if (ALLOWED_CHANNELS.length) {
+      if (ALLOWED_CHANNELS.indexOf(channel) < 0) {
+        return false;  // bad channel!
+      }
+    }
+    // Must be good to run
+    return true;
+  },
+
+  // Wrap runOrNotFunc for newer versions of Test Pilot
+  filter: function (cb) {
+    cb(exports.experimentInfo.runOrNotFunc());
+  },
+};
+
+// Prepare to check and claim the study mutex
+let studyMutex = new BaseClasses.CurrentStudyMutex(ADDON_ID);
+
+// Define a data store as empty as possible
+exports.dataStoreInfo = {
+  fileName: "testpilot_" + exports.experimentInfo.testId + "_empty.sqlite",
+  tableName: "empty",
+  columns: [{
+    property: "empty",
+    type: BaseClasses.TYPE_STRING,
+    displayName: "empty"
+  }]
+};
+
+// Define a handler that just installs an add-on
+function Installer() Installer.baseConstructor.call(this, null)
+BaseClasses.extend(Installer, BaseClasses.GenericGlobalObserver);
+exports.handlers = new Installer();
+Installer.prototype.onExperimentStartup = function (store) {
+  Installer.superClass.onExperimentStartup.call(this, store);
+
+  // Claim the current study
+  studyMutex.claimExclusive(ADDON_ID);
+
+  // Don't use BaseClasses.AddonController, which has different
+  // assumptions!
+  AddonManager.getAllAddons(function (addons) {
+    let installed = false;
+    addons.forEach(function ({id}) {
+      // Remember that it was already installed
+      if (id === ADDON_ID) installed = true;
+    });
+    if (!installed) {
+      AddonManager.getInstallForURL(ADDON_URL, function (install) {
+        install.install();
+      }, "application/x-xpinstall");
+    }
+  });
+};
+
+// Define an empty web content as there's no data to show
+function NoData() NoData.baseConstructor.call(this, exports.experimentInfo)
+BaseClasses.extend(NoData, BaseClasses.GenericWebContent);
+NoData.prototype.__defineGetter__("dataCanvas", function () "");
+exports.webContent = new NoData();
--- a/testcases/index.json
+++ b/testcases/index.json
@@ -1,219 +1,227 @@
 {
-  "maintain_experiments": [],
+  "maintain_experiments": [], 
   "legacy": [
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/searchui",
-      "id": "8",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/search/searchbar-thumbnail.png",
-      "name": "Search",
+      "url": "https://testpilot.mozillalabs.com/testcases/searchui", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/search/searchbar-thumbnail.png", 
+      "id": "8", 
+      "name": "Search", 
       "summary": "What are the most used interfaces to access search engines through Firefox?"
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/betaui.html",
-      "id": "100",
-      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png",
-      "name": "Firefox 4 Beta Interface",
+      "url": "https://testpilot.mozillalabs.com/testcases/betaui.html", 
+      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png", 
+      "id": "100", 
+      "name": "Firefox 4 Beta Interface", 
       "summary": "We are studying how the changes to the toolbar and menu bar in the Firefox 4 beta affect usage of the interface."
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/betaui2",
-      "id": "101",
-      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png",
-      "name": "Beta UI Survey 2",
+      "url": "https://testpilot.mozillalabs.com/testcases/betaui2", 
+      "thumbnail": "http://hg.mozilla.org/labs/testpilot/raw-file/269edaf8034d/extension/skin/all/badge-default.png", 
+      "id": "101", 
+      "name": "Beta UI Survey 2", 
       "summary": "We are studying how the changes to the toolbar and menu bar in the Firefox 4 beta affect usage of the interface."
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/toolbar",
-      "id": "6",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/toolbars/toolbar-study-thumbnail.png",
-      "name": "Toolbar Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/toolbar", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/toolbars/toolbar-study-thumbnail.png", 
+      "id": "6", 
+      "name": "Toolbar Study", 
       "summary": "We would like to have a better understanding of how Firefox's current toolbar is commonly used. How often do people click on the Back  button, how often do people switch search engines? The study data will be directly used to improve the toolbar design for Firefox 4."
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close.html",
-      "id": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-study-thumbnail.png",
-      "name": "Tab Open/Close Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close.html", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-study-thumbnail.png", 
+      "id": "1", 
+      "name": "Tab Open/Close Study", 
       "summary": "Tabbed browsing is offered by all major web browsers. The first question we want to explore: what would be the best default browser behavior after users close or open a tab when many tabs are open?"
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-switch-study",
-      "id": "5",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-switch-thumbnail.png",
-      "name": "Tab Switch Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-switch-study", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/tab-switch-thumbnail.png", 
+      "id": "5", 
+      "name": "Tab Switch Study", 
       "summary": "This 5-day study aims to understand how people switch between tabs. The result of this study will help Firefox team design better ways for people to manage their tabs. "
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/menuitemusage",
-      "id": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/menu-study-thumbnail.png",
-      "name": "Menu Item Usage Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/menuitemusage", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/menu-study-thumbnail.png", 
+      "id": "4", 
+      "name": "Menu Item Usage Study", 
       "summary": "Remembering which username/password combination to use on a given site can be very frustrating. Firefox tries to help solve a part of this  problem with the Password Manager feature. Can it be more helpful? "
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html",
-      "id": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/account-password-study-thumbnail.png",
-      "name": "Accounts and Passwords Study",
+      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/account-password-study-thumbnail.png", 
+      "id": "3", 
+      "name": "Accounts and Passwords Study", 
       "summary": "Remembering which username/password combination to use on a given site can be very frustrating. Firefox tries to help solve a part of this  problem with the Password Manager feature. Can it be more helpful? "
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html",
-      "id": "account_password_survey",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png",
-      "name": "Accounts and Passwords Survey",
+      "url": "https://testpilot.mozillalabs.com/testcases/account-password.html", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png", 
+      "id": "account_password_survey", 
+      "name": "Accounts and Passwords Survey", 
       "summary": ""
-    },
+    }, 
     {
-      "url": "https://testpilot.mozillalabs.com/testcases/perception",
-      "id": "beta_perception_survey_1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png",
-      "name": "How Do You Feel About Your Firefox Browser",
+      "url": "https://testpilot.mozillalabs.com/testcases/perception", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/pilot-survey-thumbnail.png", 
+      "id": "beta_perception_survey_1", 
+      "name": "How Do You Feel About Your Firefox Browser", 
       "summary": "The aim of this survey is to understand users' perception on their Firefox browser in general over time. We will follow up a similar survey in a month to understand the change of user perception."
     }
-  ],
+  ], 
   "new_experiments": [
     {
       "default": {
-        "hash": "c2fea1669f36ca3af16a8e19027c6944ca45a988ce9351dc8c368aa0c85e69ad",
-        "name": "Dependencies",
+        "hash": "c2fea1669f36ca3af16a8e19027c6944ca45a988ce9351dc8c368aa0c85e69ad", 
+        "name": "Dependencies", 
         "jarfile": "base_classes.jar"
       }
-    },
+    }, 
+    {
+      "default": {
+        "studyfile": "pulse-response-tp-experiment-1a.js", 
+        "hash": "e8655b6a4af70034fcee225383af286f26416387a19e262217abb5ed7f8af10c", 
+        "name": "pulse-response-tp-experiment-1a", 
+        "jarfile": "pulse-response-tp-experiment-1a/pulse-response-tp-experiment-1a.jar"
+      }
+    }, 
     {
       "default": {
-        "studyfile": "pulse-response-tp-experiment-1a.js",
-        "hash": "e8655b6a4af70034fcee225383af286f26416387a19e262217abb5ed7f8af10c",
-        "name": "pulse-response-tp-experiment-1a",
-        "jarfile": "pulse-response-tp-experiment-1a/pulse-response-tp-experiment-1a.jar"
+        "studyfile": "research_installer.js", 
+        "hash": "df34c8070ddfc712d2f7ebed9408427cd13788b187f92c244be77267b10f4026", 
+        "name": "Firefox Personalization Study", 
+        "jarfile": "up-research/research_installer-2.jar"
       }
-    },
+    }, 
     {
       "default": {
-        "studyfile": "research_installer.js",
-        "hash": "df34c8070ddfc712d2f7ebed9408427cd13788b187f92c244be77267b10f4026",
-        "name": "Firefox Personalization Study",
-        "jarfile": "up-research/research_installer-2.jar"
+        "studyfile": "heartbeat-response-tp-experiment-2a.js", 
+        "hash": "18f27325b65a02602f81d545adabd5cb682d37fb4adfd283fe8f619b54ef82a8", 
+        "name": "heartbeat-response-tp-experiment-2a", 
+        "jarfile": "heartbeat-response-tp-experiment-2a/heartbeat-response-tp-experiment-2a.jar"
       }
     }
-  ],
+  ], 
   "results": [
     {
-      "title": "Min and Max Tabs",
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#minmax",
-      "studyId": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/min-max-avg-tabs-open-thumb.png",
-      "date": "Thu Oct 15 2009",
-      "summary": "How many tabs do users have open at a time?",
+      "title": "Min and Max Tabs", 
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#minmax", 
+      "studyId": "1", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/min-max-avg-tabs-open-thumb.png", 
+      "date": "Thu Oct 15 2009", 
+      "summary": "How many tabs do users have open at a time?", 
       "id": "1_results_min_max"
-    },
+    }, 
     {
-      "title": "Tab Lifespans",
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#lifespans",
-      "studyId": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/tab-lifespans-thumb.png",
-      "date": "Thu Oct 15 2009",
-      "summary": "How long does an individual tab stay open on average?",
+      "title": "Tab Lifespans", 
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#lifespans", 
+      "studyId": "1", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/tab-lifespans-thumb.png", 
+      "date": "Thu Oct 15 2009", 
+      "summary": "How long does an individual tab stay open on average?", 
       "id": "1_results_lifespans"
-    },
+    }, 
     {
-      "title": "Switching on Tab Closure",
-      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#close-switch",
-      "studyId": "1",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/close-switch-stats-thumb.png",
-      "date": "Thu Oct 15 2009",
-      "summary": "When a user closes a tab, Firefox automatically switches to another tab (call it the 'default' tab). Is this default tab usually the one that the user wants or not?",
+      "title": "Switching on Tab Closure", 
+      "url": "https://testpilot.mozillalabs.com/testcases/tab-open-close/results.html#close-switch", 
+      "studyId": "1", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/tab-open-close/graphs/close-switch-stats-thumb.png", 
+      "date": "Thu Oct 15 2009", 
+      "summary": "When a user closes a tab, Firefox automatically switches to another tab (call it the 'default' tab). Is this default tab usually the one that the user wants or not?", 
       "id": "1_results_switch_on_close"
-    },
+    }, 
     {
-      "title": "Bookmarks",
-      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#bookmark",
-      "studyId": "2",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/bookmark-density.png",
-      "date": "Thu Jan 14 2010",
-      "summary": "How many bookmarks do people use?",
+      "title": "Bookmarks", 
+      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#bookmark", 
+      "studyId": "2", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/bookmark-density.png", 
+      "date": "Thu Jan 14 2010", 
+      "summary": "How many bookmarks do people use?", 
       "id": "2_results_num_bookmarks"
-    },
+    }, 
     {
-      "title": "Bookmark  Folders",
-      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#folder",
-      "studyId": "2",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-count.png",
-      "date": "Thu Jan 14 2010",
-      "summary": "How many folders do people use to manage their bookmarks?",
+      "title": "Bookmark  Folders", 
+      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#folder", 
+      "studyId": "2", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-count.png", 
+      "date": "Thu Jan 14 2010", 
+      "summary": "How many folders do people use to manage their bookmarks?", 
       "id": "2_results_bookmark_folders"
-    },
+    }, 
     {
-      "title": "Bookmark Levels",
-      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#depth",
-      "studyId": "2",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-depth.png",
-      "date": "Thu Jan 14 2010",
-      "summary": "How deep are those folders that people use to manage their bookmarks?",
+      "title": "Bookmark Levels", 
+      "url": "https://testpilot.mozillalabs.com/testcases/a-week-life/results.html#depth", 
+      "studyId": "2", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/a-week-life/graphs/folder-depth.png", 
+      "date": "Thu Jan 14 2010", 
+      "summary": "How deep are those folders that people use to manage their bookmarks?", 
       "id": "2_results_folder_levels"
-    },
+    }, 
     {
-      "title": "Computer Sharing",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#sharecomputer",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/sharecomputer.jpg",
-      "date": "Thu Jan 28 2010",
-      "summary": "Do people share their computer?",
+      "title": "Computer Sharing", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#sharecomputer", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/sharecomputer.jpg", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "Do people share their computer?", 
       "id": "3_results_computer_share"
-    },
+    }, 
     {
-      "title": "Password Amount",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#passwordcount",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/passwordcount.png",
-      "date": "Thu Jan 28 2010",
-      "summary": "How many passwords do people use?",
+      "title": "Password Amount", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#passwordcount", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/passwordcount.png", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "How many passwords do people use?", 
       "id": "3_results_num_passwords"
-    },
+    }, 
     {
-      "title": "Satisfaction: Accounts and Passwords Management",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#feelhappy",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/feelhappy.png",
-      "date": "Thu Jan 28 2010",
-      "summary": "How happy do people feel with current ways of managing accounts and passwords?",
+      "title": "Satisfaction: Accounts and Passwords Management", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#feelhappy", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/feelhappy.png", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "How happy do people feel with current ways of managing accounts and passwords?", 
       "id": "3_results_satisfaction"
-    },
+    }, 
     {
-      "title": "Password Reuse",
-      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#repeat",
-      "studyId": "3",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/repeat_pw.png",
-      "date": "Thu Jan 28 2010",
-      "summary": "Do people repeat the same password on different sites?",
+      "title": "Password Reuse", 
+      "url": "https://testpilot.mozillalabs.com/testcases/password-distribution/results.html#repeat", 
+      "studyId": "3", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/password-distribution/graphs/repeat_pw.png", 
+      "date": "Thu Jan 28 2010", 
+      "summary": "Do people repeat the same password on different sites?", 
       "id": "3_results_password_reuse"
-    },
+    }, 
     {
-      "title": "Most Used Menu Items",
-      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q1",
-      "studyId": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all.png",
-      "date": "Thu Mar 11 2010",
-      "summary": " Which menu items are the most or the least commonly used?",
+      "title": "Most Used Menu Items", 
+      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q1", 
+      "studyId": "4", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all.png", 
+      "date": "Thu Mar 11 2010", 
+      "summary": " Which menu items are the most or the least commonly used?", 
       "id": "4_results_most_used_items"
-    },
+    }, 
     {
-      "title": "Most Used Menu Items by Mouse Interaction",
-      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q2",
-      "studyId": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/menu_graphic.png",
-      "date": "Thu Mar 11 2010",
-      "summary": " What are most and least used Firefox menu items by only mouse interactions?",
+      "title": "Most Used Menu Items by Mouse Interaction", 
+      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q2", 
+      "studyId": "4", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/menu_graphic.png", 
+      "date": "Thu Mar 11 2010", 
+      "summary": " What are most and least used Firefox menu items by only mouse interactions?", 
       "id": "4_results_most_used_mouse"
-    },
+    }, 
     {
-      "title": "Most Used Menu Items by Mouse or Keyboard Shortcut",
-      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q3",
-      "studyId": "4",
-      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all_mouse_ordered.png",
-      "date": "Thu Mar 11 2010",
-      "summary": " Which menu items are the most or the least commonly used, by mouse click or keyboard shortcut?",
+      "title": "Most Used Menu Items by Mouse or Keyboard Shortcut", 
+      "url": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/results.html#Q3", 
+      "studyId": "4", 
+      "thumbnail": "https://testpilot.mozillalabs.com/testcases/menu-item-usage/graphs/itemid_all_mouse_ordered.png", 
+      "date": "Thu Mar 11 2010", 
+      "summary": " Which menu items are the most or the least commonly used, by mouse click or keyboard shortcut?", 
       "id": "4_results_most_used_keyboard"
     }
   ]
-}
+}
\ No newline at end of file